首页 > 解决方案 > 简单语法中的 ANTLR 不匹配标记

问题描述

我目前正在 ANTLRworks 中调试我的语法,并将其减少得远远超出了合理范围:

grammar DebugInternalGrammar;


RULE_STRING :
    '"' (
        ('\\' .) |
        (~ (
            '\\' |
            '"'
        ))
    )* '"'
;

其中,在解释器中针对字符串进行测试时

“大号”

只是产生

MismatchedTokenException(76!=34)

起作用的是匹配"",还将语法简化为:

grammar DebugInternalGrammar;


RULE_STRING :
    '"' (
        (~ (
            '\\' |
            '"'
        ))
    )* '"'
;

匹配"L"(我认为这就是 ANTLRworks 中的解析树显示<epsilon>为叶子时的含义)。

这里有什么问题?这不是之前给我带来麻烦的语法部分,所以我在摸索问题可能是什么以及 ANTLRworks 试图告诉我什么。

标签: antlr3antlrworks

解决方案


推荐阅读