本文介绍使用Antlr4实现一个支持四则运算的程序,关于Antlr4的安装可以参考上一篇文章。
工具:Intellij IDEA + antlr4 plugin
1. 编辑antlr4的语法文件
grammar LabelExpr;
/** 起始规则 语法分析器起点 */
prog: stat+ ;
stat: expr NEWLINE # printExpr
| ID '=' expr NEWLINE # assign
| NEWLINE # blank
;
expr: expr op=('*'|'/') expr # MulDiv
| expr op=('+'|'-') expr # AddSub
| INT # int
| ID # id
| '(' expr ')' # parens
;
ID : [a-zA-Z]+ ; // 匹配标识符
INT : [0-9]+ ; // 匹配整数
NEWLINE : '\r'? '\n' ; // 新行 即语句终止标志
WS : [ \t]+ -> skip ; // 丢弃空白字符
MUL : '*' ;
DIV : '/' ;
Add : '+' ;
SUB : '-' ;
在IDEA中可以直接使用ANTLR Preview窗口测试语法文件是否正确