[antlr-interest] bug of antlr-3.1.2 python target generated from Lua.g

Chunlin Zhang zhangchunlin at gmail.com
Thu Apr 29 03:10:18 PDT 2010


I got a Lua.g from http://www.antlr.org/grammar/1178608849736/Lua.g ,and 
I use "java -jar antlr-3.1.2.jar Lua.g" to generate LuaLexer.py and 
LuaParser.py.

LuaLexer.py have Syntax error(but modify all "skip()" to "self.skip()") 
will be OK
error in my computer:
'''
 > "D:\Python26\python.exe" -u "E:\DEV\luaparser\LuaLexer.py" factorial.lua
Traceback (most recent call last):
   File "E:\DEV\luaparser\LuaLexer.py", line 2980, in <module>
     main(sys.argv)
   File "E:\DEV\luaparser\LuaLexer.py", line 2976, in main
     main.execute(argv)
   File 
"D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\main.py", 
line 151, in execute
     self.parseStream(options, inStream)
   File 
"D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\main.py", 
line 180, in parseStream
     for token in lexer:
   File 
"D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\recognizers.py", 
line 1055, in next
     token = self.nextToken()
   File 
"D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\recognizers.py", 
line 1117, in nextToken
     self.mTokens()
   File "E:\DEV\luaparser\LuaLexer.py", line 2537, in mTokens
     self.mLINE_COMMENT()
   File "E:\DEV\luaparser\LuaLexer.py", line 2103, in mLINE_COMMENT
     skip();
NameError: global name 'skip' is not defined

'''

But LuaParser.py I can not use...
The error:
'''
>> "D:\Python26\python.exe" -u "E:\DEV\luaparser\LuaParser.py" bisect.lua
> Traceback (most recent call last):
>   File "E:\DEV\luaparser\LuaParser.py", line 3264, in <module>
>     main(sys.argv)
>   File "E:\DEV\luaparser\LuaParser.py", line 3260, in main
>     main.execute(argv)
>   File "D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\main.py", line 151, in execute
>     self.parseStream(options, inStream)
>   File "D:\Python26\lib\site-packages\antlr_python_runtime-3.1.2-py2.6.egg\antlr3\main.py", line 218, in parseStream
>     result = getattr(parser, options.parserRule)()
> TypeError: getattr(): attribute name must be string
'''

Can It be fixed??
Thanks!



More information about the antlr-interest mailing list