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);
        }