我有一个非常基本的要求,即根据四个变量r
,p
,c
,s
和三个函数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非常陌生。谁能帮我找出我做错了什么吗?我们是否按照我的方式定义变量?另外,如果有人对这种问题有更好的解决方案,我将非常感激。