在antlr4中,我想定义一个字符串,但从中排除允许各自单个字符的组合:=。什么是定义语法的语法
EQUAL : '=';
NUMBER: DIGIT+;
DIGIT : ('0'..'9');
LITERALEQUAL: ((CHAR | NUMBER | EQUAL | OTHERS) ' '?)+;
fragment CHAR :[a-z]| [A-Z];
fragment OTHERS: '.' | '/' | ':' | '-' | '#' | '?' | '&' | '_' | '[' | ']' | '^' | ';' | '"' | '=';
只要你不制定词法分析器规则或隐式标记,例如:
stmt : value ':=' something ; <-- implicit token
或
BADEquals : ':=' ; <-- explicit lexer definition
如果您的目标是允许:
和=
但排除组合:=
,则您的最终语法将不允许它。