次の文法のインタープリターで「___sad」を実行しようとすると
grammar identTest;
options
{
language = Java;
output=AST;
}
goal: identifier;
fragment Letter: (('a'..'z') | ('A'..'Z'));
fragment Digit : '0' .. '9';
identifier :IDENTIFIER;
IDENTIFIER: Letter+;
WS:(' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;};
インタープリター出力: デバッガー出力:
インタープリターにはアンダースコア文字が含まれており、デバッガーはそれを無視しているようです! この場合、ある種の例外が発生することが予想されます (文法では「A」から「z」の文字のみが定義されているため)。私の文法の何が問題なのですか?