Closed
Description
Stackoverflow: https://stackoverflow.com/questions/72266899/golang-performance-issues
Google group: https://groups.google.com/g/antlr-discussion/c/OdhAIsy2GfI
Example code: https://github.com/movelazar/perf-repro
A simple rule such as:
1 EQ 2 OR
1 EQ 2 OR
1 EQ 2 OR
1 EQ 2 OR
1 EQ 2
takes exponentially longer to parse the more 1 EQ 2 OR
clauses there are. This does not happen in python (by my testing) or CSharp, Dart, Java (by stackoverflow comment).
On my machine, # of lines vs parse time:
11: 0.5s
12: 1.2s
13: 3.2s
14: 8.1s
15: 21.9s
16: 57.5s
Given that Python doesn't face this issue I can't imagine I'm doing something terrible in my grammar.
Issue goes away if I put parens on things but that's not a real solution.
On 4.10.1, first noticed with 4.9.1.
Any help is greatly appreciated. Surprised I can't find others with this issue.