Я использую рамки ANTLR4 и это фрагмент моего языка:ANTLR как получить тип маркеров с рекурсией
r
: RN #RNName
| 'DLRRelationIntersectionOf' LPAREN r COMMA r RPAREN #RIntersection
| 'DLRRelationUnionOf' LPAREN r COMMA r RPAREN #RUnion
Как вы можете видеть, RN является терминальным узлом, так что я могу легко обрабатывать его. Но r - это нетерминальный узел, поэтому он может быть очень сложным, например DLRRelationUnionOf (RN1, DLRRelationIntersectionOf (RN2, RN3)). Моя цель - обработать узел r и рекурсивно искать RN. Проблема заключается в том, что когда-то retrive правилу г в коде, как:
DLRParser.RContext recursiveRule = ctx.r();
как я могу смотреть в recursiveRule выяснить RNs?