次のようなルール定義があります。
reference: volume':'first_page'-'last_page ;
volume: INTEGER;
first_page: INTEGER;
last_page: INTEGER;
INTEGER: [0-9]+;
FREE_TEXT_WORD: NON_SPACE+;
fragment NON_SPACE : ~[ \r\n\t];
「 168:321-331 」という入力を考えると、参照ルールに一致すると思いました。しかし実際には、文字列全体がFREE_TEXT_WORDとしてトークン化されます。
この場合、 INTEGERトークンをFREE_TEXT_WORDより優先させるにはどうすればよいですか?
ありがとう。