[il-antlr-interest: 33031] [antlr-interest] alternatives to linq LambdaExpression Compile method
I have a program that has to compile and execute formulas on the fly. I am using antlr to build linq expression trees which I then compile using the LambdaExpression.Compile() method. The problem is that this method is far too slow. Are there any other alternatives perhaps commercial that would be faster? Any other suggestions? Thanks List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33032] [antlr-interest] Line start vs non-line ...
Hi All, I hope this is a simple request to answer. I have a simple preprocessor I want to write but I can't get the rules right. I think I am regex challenged. In simple terms I want to have this: lines : (lineStartingWithPlus | lineNotStartingWithPlus)* ; If these were rules A and B respectively then ... + this line matches A this line matches B Please can someone help ? Rgs, James. List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33033] Re: [antlr-interest] Line start vs non-line ...
Hi James, Something like this would do the trick: lines : (LineStartingWithPlus | LineNotStartingWithPlus | LineBreak)* EOF ; LineStartingWithPlus : '+' ~('\r' | '\n')* ; LineNotStartingWithPlus : ~'+' ~('\r' | '\n')* ; LineBreak : ('\r'? '\n' | '\r') ; Regards, Bart. On Tue, Jul 5, 2011 at 12:18 PM, James Ladd james_l...@hotmail.com wrote: Hi All, I hope this is a simple request to answer. I have a simple preprocessor I want to write but I can't get the rules right. I think I am regex challenged. In simple terms I want to have this: lines : (lineStartingWithPlus | lineNotStartingWithPlus)* ; If these were rules A and B respectively then ... + this line matches A this line matches B Please can someone help ? Rgs, James. 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 -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33035] [antlr-interest] same character for multiple rules?
Hi and Hello to everyone, I would really appreciate any hints and advices if someone can give my relating to my problem. I would like to know how to deal with the situation where you would use same character for multiple rules/operations. For example in Visual Basic you use '=' for both variable assignment (a=10) and for comparison (if(a=10 then ). Clearly, using assignment rule:assignment: ID '=' expression; and later relation rule: relation: atom ('=' atom)*; gives out error like rule relation has non-LL(*) decision due to recursive rule invocations reachable from alts 1,6. Resolve by left-factoring or using syntactic predicates or using backtrack=true option. And, yes, it is clear that antlr can not decide when to use assignment and when comparison, makes sense. But, my question is, how to deal with this? I'm not interested in using different characters for rules(e.x. '==' etc.). Is this where I have to look into the backtracking? Or is there some other way, that I'm not aware of? Help would be most appreciated, Lee List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33037] [antlr-interest] grammar for mixed languages syntax
Hi, I would like to build a grammar for a language that can embed sql compliant statements. Basicaly the language is a basic-like case insensitive syntax (with for .. next, if .. end if classic syntax), but you can also insert direct sql statement (that must end by semicolon), for example for selecting data into a variable, or deleting, calling a stored procedure... whatever. If you wonder what language I am mentioning, it is the PowerScript language that is used by Sybase's Powerbuilder. Could you give me some pointers about how to proceed, if that kind of parsing is possible with antlr ? Thanks. -- Sébastien Kirche List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33038] Re: [antlr-interest] grammar for mixed languages syntax
Hi Sébastien, What you are trying to build as an interpreter of a language with dynamical features. Hence simple preprocessor will not fit. Try to look for island grammars. Search the example folder for this. 2011/7/5 Sébastien Kirche sebastien.kir...@gmail.com: Hi, I would like to build a grammar for a language that can embed sql compliant statements. Basicaly the language is a basic-like case insensitive syntax (with for .. next, if .. end if classic syntax), but you can also insert direct sql statement (that must end by semicolon), for example for selecting data into a variable, or deleting, calling a stored procedure... whatever. If you wonder what language I am mentioning, it is the PowerScript language that is used by Sybase's Powerbuilder. Could you give me some pointers about how to proceed, if that kind of parsing is possible with antlr ? Thanks. -- Sébastien Kirche List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- With best regards, Y.Y. List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33044] Re: [antlr-interest] grammar for mixed languages syntax
2011/7/5 Yauhen Yakimovich eugeny.yakimovi...@gmail.com: Hi Sébastien, What you are trying to build as an interpreter of a language with dynamical features. Hence simple preprocessor will not fit. Try to look for island grammars. Search the example folder for this. Thanks for the tip. Indeed the javadoc parsing within the simple language seems similar to my embedded sql parsing. It will help. -- Sébastien Kirche List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33045] Re: [antlr-interest] alternatives to linq LambdaExpression Compile method
Hi, Sam thank you for your answer. Just to be clear my problem is that the Compile method is too slow. The code that gets executed as a result of the compilation is fine. Costa List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33046] Re: [antlr-interest] same character for multiple rules?
For visual basic you need a much more involved rule: assignStatement : lvalues ( // Assignments // ( compoundBinaryOperator ) expression - ^(compoundBinaryOperator lvalues expression) | // Without any operators, then we must have had an invocation // - ^(CALL lvalues) ) ; compoundBinaryOperator : OPCATEQ | OPEXPEQ | OPMULEQ | OPDIVEQ | OPIDIVEQ | OPPLUSEQ | OPMINUSEQ | OPSLEQ | OPSREQ | OPEQ ; Then your expression tree can use OPEQ in the correct precedence order as needed. I have commercially available grammars for VB.Net and C# if you (or anyone else) are interested. Jim -Original Message- From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- boun...@antlr.org] On Behalf Of Roy Metzger Sent: Tuesday, July 05, 2011 5:00 AM To: antlr-interest@antlr.org Subject: [antlr-interest] same character for multiple rules? Hi and Hello to everyone, I would really appreciate any hints and advices if someone can give my relating to my problem. I would like to know how to deal with the situation where you would use same character for multiple rules/operations. For example in Visual Basic you use '=' for both variable assignment (a=10) and for comparison (if(a=10 then ). Clearly, using assignment rule:assignment: ID '=' expression; and later relation rule: relation: atom ('=' atom)*; gives out error like rule relation has non-LL(*) decision due to recursive rule invocations reachable from alts 1,6. Resolve by left- factoring or using syntactic predicates or using backtrack=true option. And, yes, it is clear that antlr can not decide when to use assignment and when comparison, makes sense. But, my question is, how to deal with this? I'm not interested in using different characters for rules(e.x. '==' etc.). Is this where I have to look into the backtracking? Or is there some other way, that I'm not aware of? Help would be most appreciated, Lee 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 -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33047] Re: [antlr-interest] antlr 3.4 beta 4 (release candidate)
ah. right. -Xmx500M brings it right up. ok, fixed. thanks! Ter On Jul 5, 2011, at 7:23 AM, Petteri Räty wrote: I can reproduce the exception: attempting LL(1) DFA (d=425) for 639:29: ( DIGIT )? error(10): internal error: libbash.g : java.lang.NullPointerException org.antlr.grammar.v3.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:5250) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3981) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:2379) org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1534) org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1438) org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:506) 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) make: *** [cgrammar.run] Error 1 real0m12.480s user0m21.972s sys 0m1.509s On 05.07.2011 04:10, Mu Qiao wrote: There is a rule that might take longer time. But it won't take longer than 30 seconds to get the error. I used antlr-master-3.4-beta4-completejar.jar and this is the command I used: java -classpath antlr-master-3.4-beta4-completejar.jar org.antlr.Tool -Xwatchconversion libbash.g On Tue, Jul 5, 2011 at 4:53 AM, Terence Parr pa...@cs.usfca.edu wrote: Hi. still spins for me. sorry. Ter On Jul 4, 2011, at 1:56 AM, Mu Qiao wrote: I fixed my grammar so that ANTLR doesn't spin forever on it. Then there's a new problem: attempting LL(1) DFA (d=419) for 632:29: ( DIGIT )? error(10): internal error: libbash.g : java.lang.NullPointerException org.antlr.grammar.v3.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:5250) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3981) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:2379) org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1534) org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1438) org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:506) 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) ANTLR-3.3 doesn't have that problem. The attachment is my grammar. On Wed, Jun 29, 2011 at 4:56 AM, Terence Parr pa...@cs.usfca.edu wrote: http://antlr.org/download a few more things fixed. Ter List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- Best wishes, Mu Qiao GnuPG fingerprint: 92B1 B0C4 8D14 F8C4 EFA5 3ACC 30B3 0DE4 17B1 57E9 libbash.g 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 -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this
[il-antlr-interest: 33048] [antlr-interest] input.TokenStream is null
I'm trying to make a TreeWalker for a tree like this: input: int x = 3 output AST: ^(VARDEF int x 3) My parser works just fine and also generates an AST like shown above, but whenever I want to resolve anything from the AST, like with $variableType.text, there is allways a NullReferenceException in the generated C# 2.0 TreeWalker. My TreeWalker: tree grammar SGLTreeWalker; options { tokenVocab = SGL; language = 'CSharp2'; } [...] compilationUnit : (statement)+ ; statement : variableDefinitionList ; variableDefinitionList : ^(VARDEF variableType variableName expression) { Console.WriteLine($variableType.text); } ; The problematic generated part looks like this: Match(input, Token.UP, null); Console.WriteLine(((variableType1 != null) ? input.TokenStream.ToString( input.TreeAdaptor.GetTokenStartIndex(variableType1.Start), input.TreeAdaptor.GetTokenStopIndex(variableType1.Start)) : null)); It turns out that input.TokenStream is null so it throws the NullReferenceException. I read that this can happen if the used TreeNodeStream isn't buffered, but I used the CommonTreeNodeStream so it should be buffered I think. Any idea on what's going wrong? List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups il-antlr-interest group. To post to this group, send email to il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
[il-antlr-interest: 33049] Re: [antlr-interest] antlr 3.4 beta 4 (release candidate)
I'm not sure if this problem is related to antlr or the c runtime. I've already fixed the code for the input stream change which Jim mentioned in another email. But when I compile the generated code, I get a lot of errors like the following: libbashLexer.cpp::xx: error: '_empty' was not declared in this scope libbashParser.cpp::xx: error: '_empty' was not declared in this scope And some errors like: libbashParser.cpp::xx: error: 'FOLLOW_set_in_flcomment420' was not declared in this scope My C runtime is 3.4-beta4. On Wed, Jul 6, 2011 at 4:29 AM, Terence Parr pa...@cs.usfca.edu wrote: ah. right. -Xmx500M brings it right up. ok, fixed. thanks! Ter On Jul 5, 2011, at 7:23 AM, Petteri Räty wrote: I can reproduce the exception: attempting LL(1) DFA (d=425) for 639:29: ( DIGIT )? error(10): internal error: libbash.g : java.lang.NullPointerException org.antlr.grammar.v3.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:5250) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3981) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:2379) org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1534) org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1438) org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:506) 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) make: *** [cgrammar.run] Error 1 real 0m12.480s user 0m21.972s sys 0m1.509s On 05.07.2011 04:10, Mu Qiao wrote: There is a rule that might take longer time. But it won't take longer than 30 seconds to get the error. I used antlr-master-3.4-beta4-completejar.jar and this is the command I used: java -classpath antlr-master-3.4-beta4-completejar.jar org.antlr.Tool -Xwatchconversion libbash.g On Tue, Jul 5, 2011 at 4:53 AM, Terence Parr pa...@cs.usfca.edu wrote: Hi. still spins for me. sorry. Ter On Jul 4, 2011, at 1:56 AM, Mu Qiao wrote: I fixed my grammar so that ANTLR doesn't spin forever on it. Then there's a new problem: attempting LL(1) DFA (d=419) for 632:29: ( DIGIT )? error(10): internal error: libbash.g : java.lang.NullPointerException org.antlr.grammar.v3.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:5250) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3981) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.ebnf(CodeGenTreeWalker.java:4878) org.antlr.grammar.v3.CodeGenTreeWalker.element(CodeGenTreeWalker.java:3967) org.antlr.grammar.v3.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:3753) org.antlr.grammar.v3.CodeGenTreeWalker.block(CodeGenTreeWalker.java:3125) org.antlr.grammar.v3.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:2379) org.antlr.grammar.v3.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:1534) org.antlr.grammar.v3.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:1438) org.antlr.grammar.v3.CodeGenTreeWalker.grammar_(CodeGenTreeWalker.java:506) 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) ANTLR-3.3 doesn't have that problem. The attachment is my grammar. On Wed, Jun 29, 2011 at 4:56 AM, Terence Parr pa...@cs.usfca.edu wrote: http://antlr.org/download a few more things fixed. Ter List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- Best wishes, Mu Qiao GnuPG fingerprint: 92B1 B0C4 8D14 F8C4 EFA5 3ACC 30B3 0DE4 17B1 57E9 libbash.g List: