1
たとえば最大8桁の整数だけを受け入れるLexerを作成する必要があります。このように書くのではなく、これを行うための代替手段はありますか?ANTR3はトークンに許容される文字数を設定します
INTEGER : (DIG | DIG DIG | DIG DIG DIG | ...)
たとえば最大8桁の整数だけを受け入れるLexerを作成する必要があります。このように書くのではなく、これを行うための代替手段はありますか?ANTR3はトークンに許容される文字数を設定します
INTEGER : (DIG | DIG DIG | DIG DIG DIG | ...)
これは、このようゲーテッドセマンティック述語を使用して行うことができます。述語のこの種について
INTEGER
@init{int n = 1;}
: ({n <= 8}?=> DIGIT {n++;})+
;
fragment DIGIT : '0'..'9';
詳細は、以下を参照してくださいWhat is a 'semantic predicate' in ANTLR?