calc.g
来自「Java写的词法/语法分析器。可生成JAVA语言或者是C++的词法和语法分析器。」· G 代码 · 共 65 行
G
65 行
options { language="Cpp";}class CalcParser extends Parser;options { buildAST = true; // uses CommonAST by default}expr : mexpr (PLUS^ mexpr)* SEMI! ;mexpr : atom (STAR^ atom)* ;atom: INT ;class CalcLexer extends Lexer;WS_ : (' ' | '\t' | '\n' | '\r') { _ttype = ANTLR_USE_NAMESPACE(antlr)Token::SKIP; } ;LPAREN: '(' ;RPAREN: ')' ;STAR: '*' ;PLUS: '+' ;SEMI: ';' ;protectedDIGIT : '0'..'9' ;INT : (DIGIT)+ ;class CalcTreeWalker extends TreeParser;expr returns [float r]{ float a,b; r=0;} : #(PLUS a=expr b=expr) {r = a+b;} | #(STAR a=expr b=expr) {r = a*b;} | i:INT {r = atof(i->getText().c_str());} ;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?