【问题标题】:ANTLR not recognizing special characters tokensANTLR 无法识别特殊字符标记
【发布时间】: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。

提前致谢!

【问题讨论】:

    标签: java token antlr lexer


    【解决方案1】:

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

    还是谢谢你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-10
      • 2020-12-18
      • 2012-03-28
      • 1970-01-01
      • 2015-11-02
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多