[antlr-interest] Has anyone seen this kind of stack trace?
Jim Idle
jimi at temporal-wave.com
Thu Dec 1 06:07:31 PST 2011
Could be, but I would double check it.
Jim
-----Original Message-----
From: Alan D. Cabrera [mailto:list at toolazydogs.com]
Sent: Thursday, December 01, 2011 9:48 AM
To: Jim Idle
Cc: antlr-interest at antlr.org
Subject: Re: [antlr-interest] Has anyone seen this kind of stack trace?
Yep. Just replied to that one too. All tokens are accounted for. This
is a different bug. :)
Regards,
Alan
On Nov 30, 2011, at 5:31 PM, Jim Idle wrote:
> Yes - did you see my next email? You have a token that is being used
> but it does not have a lexer definition. When you use import, this is
> not detected. It is a bug but for some reason, it was not easy to fix
> and it has been left. So, it is being given the last token number plus
> one, but that does not exist and so it exceeds the bounds.
>
> Jim
>
> -----Original Message-----
> From: Alan D. Cabrera [mailto:list at toolazydogs.com]
> Sent: Thursday, December 01, 2011 9:25 AM
> To: Jim Idle
> Cc: antlr-interest at antlr.org
> Subject: Re: [antlr-interest] Has anyone seen this kind of stack trace?
>
> I am using maven and both *.g files get compiled by antlr:
>
> [INFO]
> [INFO] --- antlr3-maven-plugin:3.3:antlr (default) @ lua4j --- [INFO]
> ANTLR: Processing source directory
> /Users/adc/dev/lua4j/src/main/antlr3
> ANTLR Parser Generator Version 3.3 Nov 30, 2010 12:46:29
> com/toolazydogs/lua4j/Lua.g com/toolazydogs/lua4j/LuaWalker.g
> error(10): internal error: com/toolazydogs/lua4j/LuaWalker.g :
> java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 64
>
>
>
> Regards,
> Alan
>
> On Nov 30, 2011, at 5:12 PM, Jim Idle wrote:
>
>> Your tree, parser, lexer are out of sync and the token numbers have
>> therefore changed. Regen lexer, parser, then walker. If you use Maven
> then
>> this will be avoided.
>>
>> Jim
>>
>>
>> -----Original Message-----
>> From: antlr-interest-bounces at antlr.org
>> [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Alan D.
>> Cabrera
>> Sent: Tuesday, November 29, 2011 9:26 PM
>> To: antlr-interest at antlr.org
>> Subject: [antlr-interest] Has anyone seen this kind of stack trace?
>>
>> 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.jav
> a:64
>> 5)
>>
> org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:28
> 76)
>> org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:23
>> 82)
>>
> org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:15
> 37)
>>
>
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(DefaultB
> uild
>> PluginManager.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.buildProjec
> t(Li
>> fecycleModuleBuilder.java:84)
>>
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProjec
> t(Li
>> fecycleModuleBuilder.java:59)
>>
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBui
> ld(L
>> ifecycleStarter.java:183)
>>
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycle
> Star
>> ter.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(DelegatingMethodAccess
> orIm
>> pl.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(Lau
> nche
>> r.java:409)
>>
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:3
> 52)
>>
>>
>> /**
>> * 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-addres
>> s
>>
>> List: http://www.antlr.org/mailman/listinfo/antlr-interest
>> Unsubscribe:
> http://www.antlr.org/mailman/options/antlr-interest/your-email-address
>
> 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