ANTLR несоответствующий токен в простой грамматике - PullRequest
0 голосов
/ 29 июня 2018

В настоящее время я отлаживаю свою грамматику в ANTLRworks и уменьшила ее гораздо больше, чем это разумно:

grammar DebugInternalGrammar;


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

Который, при тестировании в интерпретаторе против String

"L"

просто дает

MismatchedTokenException (76! = 34)

То, что работает, соответствует "", также уменьшая грамматику до:

grammar DebugInternalGrammar;


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

соответствует "L" (я предполагаю, что это означает, что дерево анализа в ANTLRworks показывает <epsilon> как лист).

Что здесь не так? Это не та часть грамматики, которая раньше вызывала у меня проблемы, поэтому я ломаю голову над тем, в чем может быть проблема и что ANTLRworks пытается мне сказать.

...