Я скопировал грамматику antlr4 json отсюда: грамматика json
, и я изменил некоторое правило и код, как показано ниже:
grammar PyJson;
my_rule
: STRING
;
waha
: STRING
| INT
;
STRING
: '"' (ESC | SAFECODEPOINT)* '"'
;
fragment ESC
: '\\' (["\\/bfnrt] | UNICODE)
;
fragment UNICODE
: 'u' HEX HEX HEX HEX
;
fragment HEX
: [0-9a-fA-F]
;
fragment SAFECODEPOINT
: ~ ["\\\u0000-\u001F]
;
fragment INT
: '0' | [1-9] [0-9]*
;
WS
: [ \t\n\r] + -> skip
;
Я использую my_rule для тестирования "helloWorld", и он работает хорошо. Но если изменить правило «ваха» на «ВАХА», оно выдаст ошибку.
[@0,0:11='"helloWorld"',<WAHA>,1:0]
[@1,20:19='<EOF>',<EOF>,5:0]
line 1:0 mismatched input '"helloWorld"' expecting STRING
почему правило грамматики запускает ошибку только потому, что я изменяю регистр правила? не могли бы вы мне помочь, пожалуйста? спасибо!