gpt4 book ai didi

java - 尝试让 ANTLR 语法遵循 AND/OR 语句

转载 作者:行者123 更新时间:2023-12-01 13:59:45 25 4
gpt4 key购买 nike

我有以下输入作为我想要的格式的示例。

(A = 'a' AND B != 'something') OR (C != 'abc*') OR (D != 'xyz' AND D != 'wui')

我有以下 ANTLR 语法,不幸的是它不能满足我的需要。

grammar Parser;

prog: expr*;
expr: LEFTPAREN expr RIGHTPAREN
| expr (AND|OR) expr
| LEFTPAREN equation RIGHTPAREN
| equation
;
equation : identifier equality value
| LEFTPAREN equation RIGHTPAREN
;
equality : (EQUALS | NOTEQUALS);
identifier : ID;
value : STRING;

LEFTPAREN : '(';
RIGHTPAREN : ')';
AND : '&&';
OR : '||';
EQUALS : '=';
NOTEQUALS : '!=';
NEWLINE : [\r\n]+ ;
STRING : ('"'|'\'') ('a'..'z'|'A'..'Z'|'0'..'9'|'*'|'_'|'-')* ('"'|'\'');
ID : ('a'..'z'|'A'..'Z')+;
INT : '0'..'9'+;
WS : [ \t\n\r]+ -> skip ;

当我运行antlr4实用程序来运行它时

line 1:9 no viable alternative at input '(A='a'AND' line 1:13 extraneous input 'B' expecting {'=', '!='} line 1:29 mismatched input ')' expecting STRING line 1:34 mismatched input '(' expecting {'=', '!='} line 1:51 mismatched input '(' expecting {'=', '!='} line 1:67 extraneous input 'D' expecting {'=', '!='} line 1:77 mismatched input ')' expecting STRING

我得到了这棵树Generated Parse Tree

我仍在尝试理解和学习 ANTLR4,但有人能给我一些让它发挥作用的指导吗?

最佳答案

您使用了 AND 和 OR 还是使用了 && 和 ||?语法需要 && 和 ||。

关于java - 尝试让 ANTLR 语法遵循 AND/OR 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19409566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com