private string Preprocess(string unprocessedCode)
{
SymbolTable<string, IValue> symbolTable = new SymbolTable<string, IValue>();
var stream = new AntlrInputStream(unprocessedCode);
var lexer = new VBALexer(stream);
var tokens = new CommonTokenStream(lexer);
var parser = new VBAConditionalCompilationParser(tokens);
parser.AddErrorListener(new ExceptionErrorListener());
var evaluator = new VBAPreprocessorVisitor(symbolTable, new VBAPredefinedCompilationConstants(_vbaVersion));
var tree = parser.compilationUnit();
var expr = evaluator.Visit(tree);
return expr.Evaluate().AsString;
}
}