Fix the wrong look-ahead for the TypeDecl rule #2
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.
Given the following code:
The parser incorrectly interprets the semi-keyword 'protected' as a
type identifier and issues the following error message: "Expected
EqualSign but found Identifier".
The visibility specifiers are indeed semi-keywords, i.e. they can in
certain situations be treated as identifiers (like procedure names
for instance). This however is an exception, where visibility specifiers
strict, private, public, protected and published (among other keywords
like procedure, class or type) explicitly terminate the nested type
declarations section.
The solution was simple: in a look-ahead procedure for the TypeDecl rule,
I added an additional constraint check for visibility semi-keywords. If
they are present, the rule is no longer accepted and the type section is
terminated.