package eu.wietsevenema.lang.oberon.ast.visitors.interpreter;
import java.util.List;
import xtc.tree.Visitor;
import eu.wietsevenema.lang.oberon.ast.declarations.Declarations;
import eu.wietsevenema.lang.oberon.ast.declarations.Module;
import eu.wietsevenema.lang.oberon.ast.statements.Statement;
import eu.wietsevenema.lang.oberon.interpreter.InterpreterScope;
public class ModuleEvaluator extends Visitor {
InterpreterScope scope;
public ModuleEvaluator(InterpreterScope scope) {
this.scope = scope;
}
public void visit(Module module) {
Declarations decls = module.getDeclarations();
DeclarationEvaluator declEval = new DeclarationEvaluator(scope);
declEval.dispatch(decls);
List<Statement> statements = module.getStats();
StatementEvaluator statEval = new StatementEvaluator(scope);
for (Statement stat : statements) {
statEval.dispatch(stat);
}
}
}