antlr4
antlr4 copied to clipboard
The highly-optimized fork of ANTLR 4 (see README)
https://github.com/tunnelvisionlabs/antlr4/blob/269c382dd23ebccf0f987523205bf9fe6d72e021/runtime/Java/src/org/antlr/v4/runtime/ParserRuleContext.java#L143 If you call ```java context1.copyFrom(context2) ``` you necessarily call `addAnyChild` which have this assert, so it fails. Vanilla antlr doesn't have this, why do you?
https://github.com/tunnelvisionlabs/antlr4/blob/f3510fd494554185cc641257ef437c80443e8beb/tool/src/org/antlr/v4/codegen/ParserFactory.java#L63 This field can likely be removed once this is addressed: https://github.com/tunnelvisionlabs/antlr4/blob/f3510fd494554185cc641257ef437c80443e8beb/tool/src/org/antlr/v4/codegen/model/InvokeRule.java#L44
The following grammar should produce an error relating to the `value` label before generating code: ```antlr grammar A; a : 'a'; b : 'b'; y1 : value=a; y2 options {...
```antlr expression : ID # alt1 ; expression2 // expected error (too few alt labels) options { baseContext = expression; } : ID ; ID : [a-z]+; ```
Are there scenarios where it is still needed at runtime? I would have thought that generation would require this file but then not needed at runtime? Thanks.
This unique feature of the optimized fork is not currently documented.
By supporting immutable trees as output from the parser, it would be easier to create a generalized framework for concrete syntax transformations in the trees. The factory described in #1...
The `CaretToken` used in ANTLRWorks 2 and GoWorks already acts as this type of token used with ANTLR 4. A generalized mechanism for handling this could be implemented by allowing...
The `SyntaxFactory` class in Roslyn provides simple methods for creating new syntax trees. ANTLR users wishing to perform manual construction of syntax trees could benefit from automatically generating this type...