SymbolTable in reducer
This commit is contained in:
parent
b0dd1a6527
commit
59f5032a61
@ -95,13 +95,13 @@ pub enum Func {
|
||||
}
|
||||
}
|
||||
|
||||
struct Reducer {
|
||||
|
||||
struct Reducer<'a> {
|
||||
symbol_table: &'a SymbolTable,
|
||||
}
|
||||
|
||||
impl Reducer {
|
||||
fn new() -> Reducer {
|
||||
Reducer { }
|
||||
impl<'a> Reducer<'a> {
|
||||
fn new(symbol_table: &'a SymbolTable) -> Reducer {
|
||||
Reducer { symbol_table }
|
||||
}
|
||||
|
||||
fn output(&mut self) -> Result<ReducedAST, String> {
|
||||
@ -109,12 +109,12 @@ impl Reducer {
|
||||
}
|
||||
}
|
||||
|
||||
impl ASTVisitor for Reducer {
|
||||
impl<'a> ASTVisitor for Reducer<'a> {
|
||||
|
||||
}
|
||||
|
||||
pub fn perform_reduction(mut input: AST, _symbol_table: &SymbolTable) -> Result<ReducedAST, String> {
|
||||
let mut reducer = Reducer::new();
|
||||
pub fn perform_reduction(mut input: AST, symbol_table: &SymbolTable) -> Result<ReducedAST, String> {
|
||||
let mut reducer = Reducer::new(symbol_table);
|
||||
let _ = input.visit(&mut reducer).map_err(|e| e.to_string())?;
|
||||
reducer.output()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user