ANTLR & antlrworks 初试

下载和尝试了好几个版本的ANTLR 和 antlrworks进行调试,现在把成功的例子保存一下。
成功安装的ANTLRWorks版本信息
ANTLRWorks是自带ANTLR的,所以你电脑中安装的ANTLR版本与ANTLRWorks无关。

ANTLRWorks1.4.3下载(提取码3pfa)
双击打开ANTLRWorks1.4.3,按照下面截图一步步执行。
在这里插入图片描述
在这里插入图片描述
将下面代码贴到文档编辑区。

grammar ExprSimple;

options {
    output = AST;
    ASTLabelType = CommonTree; // type of $stat.tree ref etc...
}
 
INT     :   '0'..'9'+ ;
NEWLINE :   '\r'? '\n' ;
WS      :   (' '|'\t')+ {skip();} ;
 
prog    :   stat+ ;
 
stat    :   expr NEWLINE    -> expr
        ;
     
expr    :   multExpr (('+'^|'-'^) multExpr)*
        ;
 
multExpr:   atom ('*'^ atom)* ;
 
atom    :   INT
        |   '('! expr ')'!
        ;

另存为(save as)–>找个路径存储,将鼠标放到某一行时,下面就会出现对应的Syntax Diagram。
在这里插入图片描述
选择菜单栏中Generate->Generate Code,得到下面提示。
在这里插入图片描述
选择栏中Run->Debug,可以选择手动input或者通过文件input,这里注意Start Rule要选择小写开头的,相当于C语言中的main函数。(用大写命名lexer,用小写命名parser)
在这里插入图片描述

test.txt
1+2+3+4

得到如下图所示的Parse Tree。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值