ANTLR无法识别特殊字符标记

时间:2017-05-19 18:38:09

标签: java token antlr lexer

我正在为复杂的逻辑操作编写语法规则,我仍然坚持使用令牌。我的lexer语法是这样的:

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。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我刚刚找到了解决方案。我认为这是编码问题,我只需将语法文件中的工具选项编码设置为 UTF-8

谢谢你!