当前位置:  开发笔记 > 编程语言 > 正文

如何使用ANTLR生成的语法文件?

如何解决《如何使用ANTLR生成的语法文件?》经验,为你挑选了0个好方法。

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

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有