Звездный ('*') оператор Antlr4, занимающий большой объем памяти
Я работаю над переработкой частей моей грамматики, чтобы уменьшить потребление памяти. Я застрял на правило, которое содержит оператор звезды ('*'). Я пробовал несколько разных вещей, но каждый раз, когда я запускаю сгенерированный код на C#, он быстро съедает более 2 ГБ памяти, когда пытается сопоставить содержимое помеченного правила, но не может найти совпадение. Я считаю, что правильно использую оператор звезды для случаев, которые будут происходить 0 или более раз. Любая помощь будет оценена. Это это правило ниже:
hierarchical_identifier_branch_index_star : (hierarchical_identifier_branch_index)* ;
hierarchical_identifier_branch_index : Left_bracket hierarchical_identifier_branch_index_expr Right_bracket ;
hierarchical_identifier_branch_index_expr : expression | Dollar ;