我可以编写一条规则,其中初始令牌部分修复且部分通用吗?
rule: ID '=' NUMBER
;
ID: (A.. Z | a.. Z) +
NUMBER: (0 .. 9) +
但是,只有令牌ID的形式为var *(var是固定的)
由于
答案 0 :(得分:2)
你是说这个吗?
// Use this instead of ID in all parser rules that take either token
identifier
: VAR_ID | ID
;
VAR_ID
: 'var' ('A'..'Z' | 'a'..'z')*
;
ID
: ('A'..'Z' | 'a'..'z')+
;
无论哪种方式:如果可能,请 NOT 对您的错误消息使用严格的词法分析器语法。它们较慢且对用户来说完全难以理解。您应该以轻松的形式解析ID
,然后稍后检查它是否处于正确的形式。