これはかなり単純なはずです。ANTLR を使用してレクサー文法に取り組んでおり、変数識別子の最大長を 30 文字に制限したいと考えています。私はこの行でこれを達成しようとしました(通常の正規表現に従います - '' のものを除いて - 構文):
ID : ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9'|'_'){0,29} {System.out.println("IDENTIFIER FOUND.");}
;
コード生成にエラーはありませんが、生成されたコードの次の行が原因でコンパイルが失敗しました。
0,29
明らかに、antlr は括弧の間のテキストのセクションを取得し、それを印刷行とともに受け入れ状態領域に配置しています。ANTLR サイトを検索しましたが、同等の表現の例や参照は見つかりませんでした。この式の構文は何ですか?