我认为这是一个愚蠢的问题,但我刚刚开始使用ANTLR.我将他们的教程中的"SimpleCalc"语法放在一起,并用C作为目标语言生成它.我得到SimpleCalcParser.c/.h和SimpleCalcLexer.c/.h作为输出,我能够编译这些并成功构建.但是现在,我如何实际使用生成的代码?我很难找到有用的文档中的任何内容.
下面是我的main()函数.这也来自教程.
#include "SimpleCalcLexer.h" int main(int argc, char * argv[]) { pANTLR3_INPUT_STREAM input; pSimpleCalcLexer lex; pANTLR3_COMMON_TOKEN_STREAM tokens; pSimpleCalcParser parser; input = antlr3AsciiFileStreamNew ((pANTLR3_UINT8)argv[1]); lex = SimpleCalcLexerNew (input); tokens = antlr3CommonTokenStreamSourceNew (ANTLR3_SIZE_HINT, TOKENSOURCE(lex)); parser = SimpleCalcParserNew (tokens); parser ->expr(parser); // Must manually clean up // parser ->free(parser); tokens ->free(tokens); lex ->free(lex); input ->close(input); return 0; }
编辑:根据第一个响应,我应该说我运行这样的程序:"./ testantlr test.txt",其中test.txt包含"4 + 1".没有输出.
从这里开始,我将如何访问生成的语法树中的"4",或打印出整个语法树?基本上,我如何访问ANTLR生成的语法树中的东西?