主要使用ANTLR4实现改效果小学生的高等数学,智能计算器,主要学习思想,高等程序员必备思想,有更好想法的欢迎发表看法先看效果图:如下文法示例,专业术语文法,不懂留言或者多多百度和FQ整个加减乘除的词法的语法就由以下几行的antlr4代码来实现,先贴在下面:
/*** Define a grammar called Hello*/
// 以下以小写字母开头的文法表示为语法元素
// 由大写字母开头的文法表示为词法元素
// 词法元素的表示类似于正则表示式//
语法元素的表示类似于BNF
grammar ExprCombined;
expr :(Int|String) #basic|expr op=(Mul|Div) expr #mulDivExpr
|expr op=(Add|Min) expr #addMinExpr
| LPAREN expr RPAREN #groupExpr;RPAREN : ')' ;
LPAREN : '(' ;Add :'+';Min :'-';Mul :'*';Div :'/';String : '"' ~'"'+ '"';
Int:[0-9]+;Identifier :
Letter LetterOrDigit* ;
WS : [ \t\r\n]+ -> channel(HIDDEN) ;
fragment Letter : [a-zA-Z_] ;
fragment LetterOrDigit : [a-zA-Z0-9_] ;
这段文法写好运行会产生文件在obj文件夹
其他语言都可以调用
此文为看点(世道如今)原创内容,特此声明