Angesichts der folgenden ANTLR Grammatik:ANTLR: unerwartetes Zeichen
tokens
{
SET;
UNKNOWN;
LIST;
}
statement : SET_KEYWORD list = value_list -> ^(SET $list)
| UNKNOWN_KEYWORD -> ^(UNKNOWN);
value_list : element += value (COMMA_KEYWORD element += value)* -> ^(LIST $element+);
value : STRING_KEYWORD;
SET_KEYWORD : 'SET';
UNKNOWN_KEYWORD : .;
fragment STRING_KEYWORD : '"' ('a'..'z' | 'A'..'Z')* '"';
Wenn man analysiert den folgenden Text (dh ohne die Anführungszeichen zu schließen):
SET "example
ANTLR gibt den folgenden Fehler:
TEST(1) : lexer error 1 :
Unexpected character at offset 12, (end of input).
This indicates a poorly specified lexer RULE
or unterminated input element such as: "STRING["]
The lexer was matching from line 1, offset 3, which
looks like this:
"example
Man könnte denken, dass das UNKNOWN_KEYWORD diese Art von Problemen aufholen wird. Wie kann man die Grammatik korrigieren, so dass die oben genannte Fehlermeldung nicht mehr angezeigt wird?