Добавьте следующий фрагмент к вашей грамматике:
@members {
public final java.util.List<java.util.Map.Entry<String, String>> parameters = new java.util.ArrayList<>();
}
Измените правило назначения:
assign: name=ID '=' value=(INT | DATA ) {
parameters.add(new java.util.AbstractMap.SimpleImmutableEntry($name.text, $value.text));
};
Теперь вы можете использовать поле StudyParser.parameters
для доступа к необходимой информации:
StudyParser parser = ...;
parser.study();
System.out.println(parser.parameters);
Также обратите внимание, что ваша грамматика, вероятно, немного ошибочна, поскольку допускает следующий ввод: study(x=1y=2)
.