代码之家  ›  专栏  ›  技术社区  ›  kutschkem

简单语法中的ANTLR不匹配标记

  •  1
  • kutschkem  · 技术社区  · 8 年前

    我目前正在ANTLRworks中调试我的语法,并将其简化到了合理的程度:

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

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

    “我”

    只是屈服

    不匹配的TokenException(76!=34)

    什么是工作匹配 "" ,还将语法简化为:

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

    比赛 "L" (我假设这就是ANTLRworks中的解析树显示 <epsilon> 如树叶)。

    这里怎么了?这并不是以前给我带来麻烦的语法部分,所以我在琢磨这个问题可能是什么,以及AntlWorks想告诉我什么。

    0 回复  |  直到 8 年前
    推荐文章