[antlr-interest] crash with tree filter

Jim Idle jimi at temporal-wave.com
Thu Apr 1 06:37:29 PDT 2010


This is usually because one of your tokens has not formal definition and ends up out of range. Unfortunately there is a bug (I think I trigger it usually when developing import grammars) that does not record that a token has no definition under certain circumstances. So, check your token defs - the answer is buried in there somewhere.

Jim

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of James Briant
> Sent: Wednesday, March 31, 2010 8:06 PM
> To: ANTLR Interest
> Subject: [antlr-interest] crash with tree filter
> 
> error(10):  internal error:
> com/binaryfinery/comb/javaparser/generated/JavaDef.g :
> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 50
> java.util.Vector.set(Vector.java:712)
> org.antlr.analysis.DFA.createMinMaxTables(DFA.java:531)
> org.antlr.analysis.DFA.createStateTables(DFA.java:435)
> org.antlr.codegen.CodeGenerator.genLookaheadDecision(CodeGenerator.java
> :653)
> org.antlr.grammar.v2.CodeGenTreeWalker.block(CodeGenTreeWalker.java:101
> 8)
> org.antlr.grammar.v2.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:797)
> org.antlr.grammar.v2.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:588
> )
> org.antlr.grammar.v2.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.ja
> va:530)
> org.antlr.grammar.v2.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:3
> 36)
> org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:432)
> org.antlr.Tool.generateRecognizer(Tool.java:641)
> org.antlr.Tool.process(Tool.java:454)
> org.antlr.mojo.antlr3.Antlr3Mojo.execute(Antlr3Mojo.java:391)
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginM
> anager.java:451)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defaul
> tLifecycleExecutor.java:558)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGo
> al(DefaultLifecycleExecutor.java:512)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Default
> LifecycleExecutor.java:482)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandl
> eFailures(DefaultLifecycleExecutor.java:330)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments
> (DefaultLifecycleExecutor.java:291)
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLife
> cycleExecutor.java:142)
> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
> org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
> org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja
> va:39)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
> rImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
> org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> 
> This is where it tanks:
> 
> switchBlockLabels
>     :   ^(SWITCH_BLOCK_LABEL_LIST switchCaseLabels* )
>     ;
> 
> switchCaseLabels
>     :   ^(CASE expression blockStatement*)
>     | ^(DEFAULT blockStatement*)
>     ;
> 
> Any ideas?
> 
> Thanks,
> 
> Jamie
> 
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address





More information about the antlr-interest mailing list