У меня есть требование, когда я хочу расширить существующую грамматику A с помощью дополнений, определенных в грамматике B, для создания грамматики C.
Я уже пробовал импортировать грамматику A в B, но это только выбор некоторые вещи определены в грамматике A. Я предполагаю, что неиспользуемое содержимое A в B пропускается при создании классов. Это имеет смысл, поскольку требование состоит не в том, чтобы наследовать, а смешивать / объединять / объединять две грамматики.
Просто для понимания (оригинальная грамматика огромна), пример:
Файл : A.g4:
grammar A;
keywords
: X
| Y
| Z
;
X: 'X';
Y: 'Y';
Z: 'Z';
Файл: B.g4:
grammar B;
keywords
: A
| B
| C
;
A: 'A';
B: 'B';
C: 'C';
Файл: C .g4:
grammar C;
keywords
: X
| Y
| Z
| A
| B
| C
;
X: 'X';
Y: 'Y';
Z: 'Z';
A: 'A';
B: 'B';
C: 'C';
Примечание: У меня нет возможности напрямую манипулировать грамматикой A, но я хочу сохранить всю функциональность в грамматике A вместе с дополнительными правилами / ключевыми словами и др c. определяется в грамматике B, как показано выше.
Любая помощь будет высоко ценится. Спасибо.