Я обнаружил, что решение состоит в том, чтобы сделать следующее:
specialSynonym5 : (UTTAR PRADESH)=>a=UTTAR b=PRADESH { a.Type = WORD; } -> ^(SpecialSynonymNode ^(SynonymNode $a $b) ^(SynonymNode UPABBR))
| (UPABBR) => a=UPABBR { a.Type = WORD; } -> ^(SpecialSynonymNode^(SynonymNode $a) ^(SynonymNode UTTAR PRADESH))
| a=UTTAR { a.Type = WORD; };
| a=PRADESH { a.Type = WORD; };
Добавление этого здесь на случай, если кто-то еще столкнется с тем же вопросом.это не часть проверки все еще ускользает от меня.Буду обновлять этот ответ, как только я знаю, как это сделать.
Получил это тоже.Создайте токен, используя {(object) adaptor.Create (WORD, "")}.Таким образом, правило становится
specialSynonym5 : (UTTAR PRADESH)=>a=UTTAR b=PRADESH { a.Type = WORD; } -> ^(SpecialSynonymNode ^(SynonymNode $a $b) ^(SynonymNode {(object)adaptor.Create(WORD, "u.p.")} ))
| (UPABBR) => a=UPABBR { a.Type = WORD; } -> ^(SpecialSynonymNode^(SynonymNode $a) ^(SynonymNode {(object)adaptor.Create(WORD, "uttar")} {(object)adaptor.Create(WORD, "pradesh")}))
| a=UTTAR { a.Type = WORD; };
| a=PRADESH { a.Type = WORD; };
Возможно, есть лучшее решение, чем это, но сейчас это то, что у меня есть.