Have you tried generating your code and running it with the 4.3-opt release instead of the reference release? For highly complex grammars like this one, it may produce better performance results.
https://github.com/sharwell/antlr4/releases/tag/4.3-opt
· The only decision preventing SLL mode from parsing funSigTest.andthen is the decision in typeName. In 4 of 4 cases where SLL mode couldn’t pick a unique answer, it picked the first alternative but the second was actually the correct alternative. If you reverse the order of these two alternatives, it will get 4 of 4 correct. For Modularize.andthen, it was getting 37 of 38 wrong; after reordering it still gets 1 of 38 wrong which means SLL mode won’t work for that file. For the Modularize.andthen input file, the conditionalConstructsConstituents and allowableIdentifierTypes rules also contain decisions which are context sensitive (i.e. would cause SLL to fail, even if typeName did not cause it to fail).
· Many decisions in your grammar are ambiguous. For these decisions, ANTLR will choose an alternative for you and it may or may not be the one you want. The following rules contain decision which always result in an ambiguity (at least for the inputs you provided):
o allowedParametersInTypeTemplate (50 invocations) – There is only one decision in this rule; I’m not sure what the ambiguous alternatives were.
o typeInstanceOrIdentifierInvoked (37 invocations) – The ambiguous decision is the one between identifierName and typeName, because every identifierName can also be parsed as a typeName.
o collectionsCall (14 invocations) – The ambiguity occurs because one alternative of expressionList matches a single expression. The middle alternative of collectionsCall can be simply removed; it matches a strict subset of the input matched by the first alternative and will thus never be used.
o expressionsNaturalHabitat (13 invocations) – The problem here is the same as the one in collectionsCall. The second alternative can be simply removed to eliminate the ambiguity.
o enumBodyConstituents (4 invocations) – There is only one decision in this rule; I’m not sure what the ambiguous alternatives were.
o funTemplateArgSignatureInFunCall (2 invocations)
· The Whitespace and NewLine tokens are marked with the ->skip action. This means not only will these tokens not be created, but there is not even a token type assigned to them. The wSandNewLine parser rule creates new token types named Whitespace and NewLine, but these are not the same values as the Whitespace and NewLine lexer rules (the lexer rules with those names literally do not exist at all from the parser’s perspective). The wSandNewLine rule and all references to it can be removed from the parser, resulting in a 700kb decrease in the size of the generated parser Java code.
Sam
--
The 4.3-opt release is available through Maven Central. If you aren’t using Maven, you can download the Jar files directly.
ANTLR 4 does not have problems resolving ambiguities. The problem with ambiguity is cases like the following “reference” rule:
reference : typeReference | methodReference;
typeReference : typeName;
methodReference : methodName;
typeName : Identifier;
methodName : Identifier;
In this case, the typeReference and methodReference alternatives are ambiguous. ANTLR 4 will resolve the ambiguity by choosing typeReference. Despite writing it in the grammar, a reference in the parse tree produced for this language will never be a method reference. This could lead to problems processing the parse tree, where visitors might expect the tree to differentiate between type references and method references. Resolving the ambiguity in this example might look like this:
reference : typeOrMethodReference;
typeOrMethodReference : typeOrMethodName;
typeOrMethodName : Identifier;
The grammar no longer pretends to differentiate between the syntactically equivalent type name and method name, making it clear that code operating on the parse tree will need to address this separately. The parse tree produced for an ambiguous grammar/input combination will be syntactically valid (according to the grammar), but may or may not be semantically valid.
The reportAmbiguity line includes the following information:
· d=443 (primary): The ambiguous decision is decision #443, which appears in the rule “primary”. If the “primary” rule only contains one decision, then clearly this is a reference to that decision. Otherwise, if you pass the -atn flag to ANTLR when you generate your parser, you will find a file named GrammarName.primary.dot (or similar) containing the ATN graph for the “primary” rule in GraphViz format. Open that file to identify decision #443 within the rule.
· ambigAlts={38, 40}: Alternatives 38 and 40 are ambiguous for the input provided. Note that the first alternative has index 1, not 0.
The reference release of ANTLR does not perform any left-factoring for you. The following rule is therefore highly inefficient:
abc
: a b c
| a b
| a
;
The following equivalent rule is much more efficient.
abc
: a (b c?)?
;
Obviously automatic left-factoring to improve performance is a desirable feature, but we just haven’t had the opportunity to implement it fully. Finally, it appears your explanation of the method by which the decision is made here follows the logic used by PEG parsers. ANTLR 4 uses a new parsing algorithm which is very different from this approach.
Thanks,
Sam
From: antlr-di...@googlegroups.com [mailto:antlr-di...@googlegroups.com]
Sent: Tuesday, July 22, 2014 6:52 AM
To: antlr-di...@googlegroups.com
Subject: [antlr-discussion] Re: Code Too Large For Try Statement
Thanks Mr. Sam for the reply,
I just downloaded 4.3-opt but that is just source and ant build file with it gives some errors and i have never worked with java landscape as such on script levels. So it will take a bit of time figuring out mavens and ants.
line 14:28 reportAmbiguity d=443 (primary): ambigAlts={38, 40}, input='value ;'
in this line what does d=443 mean and by ambigAlts={38,40} i thought that it was 38th and 40th
option of primary rule where ambiguity is occurring but many a times i have noticed that what it is
reporting has nothing to do with the rule being interpreted or that ambiguity does not make any sense.
I am watching certain videos about left factoring. But in case of Antlr4 why is it difficult for it interpret a repetition of a segment when it is inside of a certain rule
for instance rule
abc:
a b c
| a b
| a
;
it knows now it is in Rule abc. So it should therefore also know that there are only 3 main options to check. Therefore as soon as it enters the rule abc
whatever it is interpreting it should record the success and failures within that rule. If my input is a b it should fail on 1st option because input does not have c.
when moving to 2nd option for check. instead of re-evaluating the input it should check what was successful in the previous option,
two rules a and b did match previously, now it should first check what are the rules in this new option it is going to match input with.
There it would realize that the rules inside this option have already been perfectly match so it need not to match anything again.
Would not that cause automatic left-factoring and also speed up the parsing.
I apologize if that or something better is already being done in this regard by the Antlr 4
and i certainly apologize if i sound like teaching the Teacher. But that is my prattle.
Thanks
Regards
Right_Then
--
The following equivalent rule is much more efficient.
abc
: a (b c?)?
;
Antlr43opt>> javac AndThenWas*.java -verbose[parsing started RegularFileObject[AndThenWasBaseListener.java]][parsing completed 172ms][parsing started RegularFileObject[AndThenWasBaseVisitor.java]][parsing completed 42ms][parsing started RegularFileObject[AndThenWasLexer.java]][parsing completed 13ms][parsing started RegularFileObject[AndThenWasListener.java]][parsing completed 96ms][parsing started RegularFileObject[AndThenWasParser.java]][parsing completed 1021ms][parsing started RegularFileObject[AndThenWasVisitor.java]][parsing completed 103ms][search path for source files: .,H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar][search path for class files: C:\Program Files\Java\jdk1.7.0_45\jre\lib\resources.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\rt.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\sunrsasign.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\jsse.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\jce.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\charsets.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\jfr.jar,C:\Program Files\Java\jdk1.7.0_45\jre\classes,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\access-bridge.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\dnsns.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\jaccess.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\localedata.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunec.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunjce_provider.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunmscapi.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunpkcs11.jar,C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\zipfs.jar,C:\Program Files\OpenNI\Bin\org.OpenNI.jar,.,H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/ParserRuleContext.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/Token.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/misc/NotNull.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/ErrorNode.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/TerminalNode.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/ParseTreeListener.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Object.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/dfa/DFA.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/util/List.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/util/Iterator.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/util/ArrayList.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/Parser.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/Recognizer.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/RuleContext.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/RuleNode.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/ParseTree.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/SyntaxTree.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/Tree.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/String.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/TokenStream.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/RecognitionException.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/atn/ATN.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/tree/ParseTreeVisitor.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/Lexer.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/CharStream.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/TokenSource.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/annotation/Retention.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/annotation/RetentionPolicy.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/annotation/Target.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/annotation/ElementType.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/annotation/Annotation.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Override.class)]][loading ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0_45\lib\ct.sym(META-INF/sym/rt.jar/java/lang/Integer.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/atn/LexerATNSimulator.class)]][loading ZipFileIndexFileObject[H:\Downloads\Software\ProgrammingTools\LangGrammer\ANTLR\Antrl4\4.3\Opt\antlr4-4.3-complete.jar(org/antlr/v4/runtime/atn/ParserATNSimulator.class)]]Round 1: input files: {AndThenWasBaseListener, AndThenWasBaseVisitor, AndThenWasLexer, AndThenWasListener, AndThenWasParser, AndThenWasVisitor} annotations: [java.lang.Override, org.antlr.v4.runtime.misc.NotNull, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion,RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion, RuleVersion] last round: false
Antlr43opt>>
There was a bug in the way the particular antlr4-4.3-complete.jar file is getting created for the optimized fork. Some files were left out, resulting in the behavior you observed. I’m working on a 4.3.1 patch release to resolve this issue.
In the meantime, try using the following two files instead of just one file:
1. antlr4-runtime-4.3-complete.jar
2. antlr4-4.3.jar
Thanks,
Sam
From: antlr-di...@googlegroups.com [mailto:antlr-di...@googlegroups.com]
Sent: Wednesday, July 23, 2014 8:01 AM
To: antlr-di...@googlegroups.com
Subject: [antlr-discussion] Re: Code Too Large For Try Statement
Mr. Sam
--
I just tested this and it turns out the two files you actually need are these:
1. antlr4-4.3-complete.jar
2. antlr4-runtime-4.3-complete.jar
The complete runtime jar contains the files missing from antlr4-4.3-complete.jar, but does not contain all of the tool’s dependencies.
Sam
You can now get antlr4-4.3.1-complete.jar from the following location, and it will work by itself:
https://oss.sonatype.org/content/repositories/releases/com/tunnelvisionlabs/antlr4/4.3.1/
Thanks,
Sam