用ANTLR4实现加减乘除小学生数学利器,高级程序员思想

主要使用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文件夹

其他语言都可以调用

此文为看点(世道如今)原创内容,特此声明

posted @ 2016-08-30 11:03  如今  阅读(393)  评论(0编辑  收藏  举报