[antlr-interest] Has anyone seen this kind of stack trace?

Terence Parr parrt at cs.usfca.edu
Tue Nov 29 11:37:28 PST 2011


interesting. i get:

/tmp $ a3.4 LuaWalker.g 
error(10):  internal error: LuaWalker.g : java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
java.util.Vector.set(Vector.java:712)
org.antlr.analysis.DFA.createMinMaxTables(DFA.java:535)
org.antlr.analysis.DFA.createStateTables(DFA.java:439)
org.antlr.codegen.CodeGenerator.genLookaheadDecision(CodeGenerator.java:645)
org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1792)
org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:1413)
org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:999)
org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:910)
org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:490)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:421)
org.antlr.Tool.generateRecognizer(Tool.java:655)
org.antlr.Tool.process(Tool.java:468)
org.antlr.Tool.main(Tool.java:93)

but had to take out import token vocab. can you send me that?
Ter
On Nov 29, 2011, at 5:26 AM, Alan D. Cabrera wrote:

> I'm running ANTLR on my tree walker ANTLR file and get this error message and don't understand what I'm doing wrong:
> 
> error(10):  internal error: com/toolazydogs/lua4j/LuaWalker.g : java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
> java.util.Vector.set(Vector.java:712)
> org.antlr.analysis.DFA.createMinMaxTables(DFA.java:535)
> org.antlr.analysis.DFA.createStateTables(DFA.java:439)
> org.antlr.codegen.CodeGenerator.genLookaheadDecision(CodeGenerator.java:645)
> org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:2876)
> org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:2382)
> org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1537)
> org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1441)
> org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:493)
> org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:421)
> org.antlr.Tool.generateRecognizer(Tool.java:655)
> org.antlr.Tool.process(Tool.java:468)
> org.antlr.mojo.antlr3.Antlr3Mojo.execute(Antlr3Mojo.java:378)
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
> org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
> org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
> org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
> org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:597)
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> 
> 
> /**
> * Copyright 2010-2011 (C) Alan D. Cabrera
> *
> * Licensed under the Apache License, Version 2.0 (the "License");
> * you may not use this file except in compliance with the License.
> * You may obtain a copy of the License at
> *
> *    http://www.apache.org/licenses/LICENSE-2.0
> *
> * Unless required by applicable law or agreed to in writing, software
> * distributed under the License is distributed on an "AS IS" BASIS,
> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> * See the License for the specific language governing permissions and
> * limitations under the License.
> */
> tree grammar LuaWalker;
> options
> {
>   tokenVocab=Lua;
>   ASTLabelType=CommonTree;
>   filter = true;
> }
> @header
> {
> package com.toolazydogs.lua4j;
> import org.objectweb.asm.*;
> import com.toolazydogs.lua4j.compiler.*;
> }
> @members
> {
>   void print(String s) { System.out.print(s); }
>   void println(String s) { System.out.println(s); }
> }
> 
> chunk
>   : ^(CHUNK c=.)
>   ;
> 
> stat
>   : ^(ASSIGN varlist explist)
>   | functioncall
>   | chunk
>   | ^(WHILE exp chunk)
>   | ^(REPEAT chunk exp)
>   | ^(IF exp chunk)
>   | ^(IF exp chunk chunk)
>   | ^(IF exp chunk elseif+ chunk?)
>   | ^(FOR NAME exp exp exp chunk)
>   | ^(FOR NAME exp exp chunk)
>   | ^(FORIN namelist explist chunk)
>   | ^(FUNCTION funcname funcbody)
>   | ^(LOCAL namelist explist?)
>   ;
> 
> elseif
>   : ^(ELSEIF exp chunk)
>   ;
> 
> laststat
>   : RETURN
>   | ^(RETURN explist)
>   | BREAK
>   ;
> 
> funcname
>   : ^(FNAMETHIS NAME NAME+)
>   | ^(FNAME NAME+)
>   ;
> 
> varlist
>   : ^(VARLIST var+)
>   ;
> 
> var
>   : ^(INDEX varPrefix exp)
>   | ^(VAR NAME)
>   ;
> 
> varPrefix
>   : ^(FUNCALL vp=. nameAndArgs)
>   | ^(SINGLE exp)
>   | ^(VAR NAME)
>   ;
> 
> prefixexp
>   : ^(FUNCALL p=. nameAndArgs)
>   | varOrExp
>   ;
> 
> functioncall
>   : ^(FUNCALL p=. nameAndArgs)
>   ;
> 
> varOrExp
>   : var
>   | ^(SINGLE exp)
>   ;
> 
> nameAndArgs
>   : ^(ARGS args)
>   | ^(ARGSWITHSELF NAME args)
>   ;
> 
> args
>   : EXPLIST
>   | explist
>   | tableconstructor
>   | string
>   ;
> 
> namelist
>   : ^(NAMELIST NAME+)
>   ;
> 
> explist
>   : ^(EXPLIST exp+)
>   ;
> 
> exp
>   : ^('or' or or+)
>   | or
>   ;
> 
> or
>   : ^('and' and and+)
>   | and
>   ;
> 
> and
>   : ^('<' compare compare)
>   | ^('<=' compare compare)
>   | ^('>' compare compare)
>   | ^('>=' compare compare)
>   | ^('==' compare compare)
>   | ^('~=' compare compare)
>   | compare
>   ;
> 
> compare
>   : ^('..' concatenation concatenation+)
>   | concatenation
>   ;
> 
> concatenation
>   : ^('+' add_sub add_sub)
>   | ^('-' add_sub add_sub)
>   | add_sub
>   ;
> 
> add_sub
>   : ^('*' b b)
>   | ^('/' b b)
>   | ^('%' b b)
>   | b
>   ;
> 
> b
>   : ^(NEGATE unary)
>   | unary
>   ;
> 
> unary
>   : ^('^' atom atom)
>   | atom
>   ;
> 
> atom    : 'nil'
>       | 'false'
>       | 'true'
>       | number
>       | string
>       | ^(FUNCBODY parlist? chunk)
>       | prefixexp
>       | tableconstructor
>       | '...'
>    ;
> 
> funcbody
>   : ^(FUNCBODY parlist? chunk)
>   ;
> 
> parlist
>   : ^(PARAMETERS namelist)
>   | ^(PARAMETERS namelist '...')
>   | ^(PARAMETERS '...')
>   ;
> 
> tableconstructor
>   : ^(TBLCTOR field+)
>   | TBLCTOR
>   ;
> 
> field
>   : ^(TBLFIELD exp exp)
>   | ^(TBLFIELD NAME exp)
>   | ^(TBLFIELD exp)
>   ;
> 
> number
>   : INTEGER
>   | FLOAT
>   | EXPONENT
>   | HEX
>   ;
> 
> string
>   : ^(STRING s=.)
>   ;
> 
> 
> 
> 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