我认为这是一个愚蠢的问题,但我刚刚开始使用 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 生成的语法树中的内容?