ANTLR简单公式解析器

时间:2018-08-05 17:45:08

标签: java parsing antlr

我有一个非常基本的要求,即根据四个变量rpcs和三个函数min,{{ 1}},max

例如:

avg

或者可能是:

max(avg(r, p, s), avg(c, s))

我想使用ANTLR解析这种公式。

我已经尝试过一些语法r

Formula.g4

但是在运行grammar Formula; /* Parser rules */ formula : arg EOF; func: ( MIN | MAX | AVG ) '(' arg (COMMA arg)+ ')'; arg : ( R | P | C | S | func ); /* Lexer rules */ MAX : 'max'; MIN : 'min'; AVG : 'avg'; WHITESPACE : [ \t\r\n] -> skip; R : 'r'; P : 'p'; C : 'c'; S : 's'; COMMA : ','; 并编译生成的Java文件之后运行grun Formula formula时,这没有任何作用。

我对ANTLR非常陌生。谁能帮我找出我做错了什么吗?我们是否按照我的方式定义变量?另外,如果有人对这种问题有更好的解决方案,我将非常感激。

0 个答案:

没有答案