我正在尝试编写 antlr 语法,以便可以在某个 ID 上创建匹配项。
我需要匹配一个以字符'n'开头并以'd'结尾的字符并且这个ID可以有空格。在其他任何地方我都想忽略空格
// lexer/terminal rules start with an upper case letter
ID
:
(
'a'..'z'
| 'A'..'Z'
| '0'..'9'
| ('+'|'-'|'*'|'/'|'_')
| '='
| '~'
| '{'
| '}'
| ','
| NA
)+
;
NA : 'n'[ ]['a'..'z']'d' ;
WS : [ \t\n]+ -> skip;
我用表达式 A1=not denied 测试了这个
它认为 A1=not 作为 ID 并尝试作为错误节点
您是否可以有一个忽略空格但将某个字符串作为“未尝试”的例外的语法