-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[golang] Fixes for #4460 and #4462 (ambiguities) #4461
Merged
Merged
+835
−90
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
With the fixes, parse time for the "fmt" package is more than twice as fast as before all these ambiguity fixes.
Waiting on #4458 to be merged. |
Antlr4 has a blocking bug, and the fix is not being merged.
@teverett This PR is all set. Thanks. |
@kaby76 thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #4460 and #4462. It changes the grammar to have a rudimentary symbol table, rewrites the
primaryExpr
to be left-recursion free, and adds critical disambiguation logic to theprimaryExpr
rule alts. That change improves the performance of the parser with another halving of the runtime of the test suite over #4458.This PR also fixes #4462. An ambiguity was detected in an if-statement test.
Also changed in this PR is the template for testing Cpp. There has been a change in CMake on Windows where older versions are not supported. It was necessary to patch the Antlr runtime for Cpp. antlr/antlr4#4808