【发布时间】:2017-05-19 18:38:09
【问题描述】:
我正在为复杂的逻辑运算编写语法规则,但我被标记所困。我的词法分析是这样的:
VAR : 'A'..'Z';
WS : [ \t\r]+ -> skip;
NL : '\n';
TRUE : '1';
FALSE : '0';
AND : '∧';
NAND : '⊼';
OR : '∨';
XOR : '⊻';
NOR : '⊽';
IMPLIES : '⇒';
BICOND : '⇔';
NEGATE : '¬';
EQUIV : '≡';
EQ : '=';
LPAR : '(';
RPAR : ')';
如您所见,我对每个操作都使用了特殊符号(应该可以识别)。问题是,当我测试解析器并尝试访问树时,它给了我下一个错误:
line 1:1 token recognition error at: '⊼'
使用每个运算符都会给我同样的错误。 我可以看出问题与编码有关,因为如果我将符号替换为更常见的符号,它会访问树并给我正确的操作结果。
我在 Java 中使用 ANTLR。
提前致谢!
【问题讨论】: