質問

初期トークンが部分的に固定され、部分的に汎用であるルールを作成できますか?

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 リラックスしたフォームで行い、後でそれが正確に正しいフォームであるかどうかを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top