初期トークンが部分的に固定され、部分的に一般的なルールを作成できますか?
rule: ID '=' NUMBER
;
ID: (A.. Z | a.. Z) +
NUMBER: (0 .. 9) +
ただし、トークン ID が var* の形式の場合のみ (var は固定)
ありがとう
初期トークンが部分的に固定され、部分的に一般的なルールを作成できますか?
rule: ID '=' NUMBER
;
ID: (A.. Z | a.. Z) +
NUMBER: (0 .. 9) +
ただし、トークン ID が var* の形式の場合のみ (var は固定)
ありがとう
これのことですか?
// 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')+
;
いずれにせよ、可能であれば、エラー メッセージに厳密な字句解析文法を使用しないでください。それらは遅く、ユーザーには完全に判読できません。リラックスした形式で解析ID
し、正確に正しい形式であるかどうかを後で確認する必要があります。