私は、特定のトークン/トークンの組み合わせを探す、組み合わせた ANTLR 文法を持っています。一部のトークンは、0 回または 1 回使用できます。これらのトークンのハッシュマップに「見つかった」または「見つからなかった」値を保存したいと考えています。トークンが利用可能な場合にこれを行う方法はすでに知っています。しかし、見つからなかったトークンに対してどうすればよいでしょうか。
次の例は、非常に単純化されていることを示しています。
grammar Expr;
@header {
import java.util.HashMap;
}
@members {
HashMap<String,String> memory = new HashMap<String,String>();
}
statements: ONE
(WS TWO {memory.put("two","found");})?
WS THREE EOF;
ONE: 'one';
TWO: 'two';
THREE: 'three';
WS: ' ';
この文法内で「TWO」が見つからなかったため、HashMap に別の値を設定する可能性はありますか?
memory.put("two","not found");