В ANTLR v2.x вы можете вернуть только одно значение, в отличие от ANTLR v3.x, где несколько возвращаемых значений автоматически переносятся контейнером, содержащим несколько возвращаемых значений.
Вам придется возвращатькакая-то коллекция или пользовательский объект:
declSpecifiers returns [Map map]
{map = new HashMap();}
: ( storageClassSpecifier { /* populate your map here */ }
| typeQualifier { /* populate your map here */ }
| typeSpecifier { /* populate your map here */ }
)+
;
Полагаю, вы знаете, что ANTLR v2 довольно старый: если вы можете, перейдите на v3 (я знаю, что это не всегда вариант ... но все же).