[il-antlr-interest: 31713] [SPAM] [antlr-interest] [SPAM] Syntax ambiguity?
Sorry, the subject is not very informational but I cannot get the hang of the problem, so I cannot devise a better subject. I have this small grammar: grammar Gr3; options { output=AST; } stat : fun1 | fun2 ; fun1 : 'fun1(' ID1 ')' ; fun2 : 'fun2(' ID2 ')' ; fragment DIGIT : '0'..'9' ; fragment LETTER : ('a'..'z' | 'A'..'Z') ; ID1 : (DIGIT | LETTER)+ ; ID2 : (DIGIT | LETTER | '_' | '-' | '.')+ ; WS : (' '|'\t')+ { skip(); } ; It can recognize, say, fun1(AB) and fun2(AB_CD) as expected but not fun2(AB), which should also be valid since AB matches both ID1 or ID2. Rewriting fun2 as fun2 : 'fun2(' (ID1 | ID2) ')' ; works but is not satisfactory because I want an ID2 as fun2 argument, not an ID1. So, how can I force ANTLR to consider ID1 in this position? Thanks, -- O.L. 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: 31714] Re: [antlr-interest] [SPAM] [SPAM] Syntax ambiguity?
On 03/04/2011 03:02 AM, Olivier Lefevre wrote: Sorry, the subject is not very informational but I cannot get the hang of the problem, so I cannot devise a better subject. I have this small grammar: grammar Gr3; options { output=AST; } stat : fun1 | fun2 ; fun1 : 'fun1(' ID1 ')' ; fun2 : 'fun2(' ID2 ')' ; fragment DIGIT : '0'..'9' ; fragment LETTER : ('a'..'z' | 'A'..'Z') ; ID1 : (DIGIT | LETTER)+ ; ID2 : (DIGIT | LETTER | '_' | '-' | '.')+ ; WS : (' '|'\t')+ { skip(); } ; It can recognize, say, fun1(AB) and fun2(AB_CD) as expected but not fun2(AB), which should also be valid since AB matches both ID1 or ID2. Rewriting fun2 as fun2 : 'fun2(' (ID1 | ID2) ')' ; works but is not satisfactory because I want an ID2 as fun2 argument, not an ID1. So, how can I force ANTLR to consider ID1 in this position? Sorry, After reading what I wrote (of course after I sent it) and re-reading what you wanted, I will offer up the following different solution: You could change fun2 to: fun2 : 'fun2(' (id1=ID1 { id1.setType(ID2); } | ID2 ) ')' ; Now, you will always have an ID2 in fun2 Even if it was lexed as ID1, it would be changed during the parser to an ID2 so your tree parser will always see an ID2. Thanks, -- O.L. List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- Kevin J. Cummings kjch...@verizon.net cummi...@kjchome.homeip.net cummi...@kjc386.framingham.ma.us Registered Linux User #1232 (http://counter.li.org) 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: 31716] [antlr-interest] Template rewriting: processing lists of things (possible bug?)
Dear all, I'm using ANTLR 3.3. In a template rewriting grammar, structures like rule: l+=otherRule+ create a list of nulls in $l if otherRule isn't a template rewrite. This seems undesirable behaviour since I'd've thought that unrewritten rules should just appear in $l as their original text? Am I doing something wrong, is it correct behaviour (in which case, is there an explanation as to why it's correct please?) or is it a bug? Below is a grammar playing around with this; to clearly separate behaviour, I treat lower case words as tokens, rewrite upper case words and don't rewrite numbers. I then play with collections of all three. My sample input is: hi there 123 456 THIRD LIST ; mixture 07 THINGS ; MY 2 mixture ; version 3 MIXTURE After the three pure collections, I try mixing them up. I've come up with two ways of rewriting a list containing a mixture of rules, rewrites and tokens (I know ANTLR refuses to mix tokens and rules in its own lists): - one (mix) is to insert a new rule (mixItem) which turns everything in the mixture into a template (which seems like a lot of work --- is there a templating shorthand for rewriting a rule to its identical self?); - another (hackMix) is to manually build the list using rule.text to work around the rules-turn-into-nulls problem. - I also sketch an idealMix rule which doesn't work. Is there a version of idealMix which does work and is less messy than mix or hackMix please? Any suggestions gratefully received... Conrad grammar PlusEquals; options { output = template; rewrite = true; } file: tokeNs rules rewrites ';' mix ';' hackMix ';' idealMix ; // To collect some tokens, you need it.text. input - output: //hi there - Tokens (2): [hi, there] tokeNs : (w+=TOKEN)+ - template(w={$w}) Tokens (length(w)): [w:{\it.text\};separator={, }] ; TOKEN : ('a'..'z')+ ; // You can't collect rules: $w contains a list of nulls. input - output: // 123 456 - Rules (2): [] rules : (w+=rule)+ - template(w={$w}) Rules (length(w)): [w:{\it\};separator={, }] ; rule: NUMBER ; NUMBER : ('0'..'9')+ ; // To collect rewrites, you just use it directly. input - output: // THIRD LIST - Rewrites (2): [THIRD, LIST] rewrites: (w+=rewrite)+ - template(w={$w}) Rewrites (length(w)): [w:{it};separator={, }] ; rewrite : CAPS - template(w={$text}) \w\ ; CAPS: ('A'..'Z')+ ; // Because rules don't seem to accumulate right, turn everything into rewrites: // mixture 07 THINGS - // Mixture (3): [Token:mixture, Rule:07, Rewrite:THINGS] mix : (w+=mixItem)+ - template(w={$w}) Mixture (length(w)): [w:{it};separator={, }] ; mixItem : rule - template(w={$text}) Rule:\w\ | rewrite - template(w={$text}) Rewrite:w | TOKEN - template(w={$text}) Token:\w\ ; // Build list manually; possible to avoid creating hackMixItem? // My 2 mixture - Hacky mixture (3): [MY, 2, mixture] hackMix returns [List w = new ArrayList()]: (hackMixItem { $w.add($hackMixItem.text); })+ - template(w={$w}) Hacky mixture (length(w)): [w:{it};separator={, }] ; hackMixItem : rule | rewrite | TOKEN ; // Doesn't work; no idea whether anything like it could. // version 3 MIXTURE - Ideal mix (0): [] // I know ANTLR stops you from mixing tokens and rules in one list anyway. idealMix : (w+=(rule | rewrite | TOKEN))+ - template(w={$w}) Ideal mix (length(w)): [w:{it};separator={, }] ; WS : (' '|'\t'|'\n')+ {$channel=HIDDEN;} ; 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: 31719] [antlr-interest] Tree grammar for expression subrules?
Is there a pattern to follow for creating tree grammars for subrules? // parser rule. this works. expression : (a=term - $a) ( ( '|' b=term - ^(OR $expression $b) | '|'- ^(OR $expression EPSILON) ) )* ; // tree grammar 1, based on CMinus example in the book.Throws a MismatchedTreeNodeException complaining about lack of // 'UP' at SEQUENCE_EXPR expression : IF_ACTION | ID | ID ATTRIBUTES | STRINGLITERAL | EPSILON | ^(GROUPED_EXPR expression) | ^(OPTIONAL_EXPR expression) | ^(SEQUENCE_EXPR expression) ; Any pointers welcomed. Thx++ Jerry 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: 31720] Re: [antlr-interest] How to get the complete syntax tree
Thank you Bart, your post at stackoverflow.com was exactly what I was looking for. The explanation is very clear. Thanks! El 3 de marzo de 2011 19:22, Bart Kiers bki...@gmail.com escribió: Hi, 2011/3/3 Juan Manuel Cámara juanm...@gmail.com ... The Parser works fine, but its return is a flat tree, all tokens are childs of the root. Is this the normal use? Can someone guess what I'm doing wrong, or tell me the way to get the complete tree? ... _You_ need to tell how the tree looks like. See: http://www.antlr.org/wiki/display/ANTLR3/Tree+construction http://www.antlr.org/wiki/display/ANTLR3/Tree+constructionAnd/or: http://stackoverflow.com/questions/4931346/how-to-output-the-ast-built-using-antlr http://stackoverflow.com/questions/4931346/how-to-output-the-ast-built-using-antlr Regards, Bart. 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: 31721] Re: [antlr-interest] Template rewriting: processing lists of things (possible bug?)
hi. Rules do not return templates by default; you have to set them. any that does not returns a null, hence, the list of nulls you get :) Ter On Mar 4, 2011, at 3:28 AM, Conrad Hughes wrote: Dear all, I'm using ANTLR 3.3. In a template rewriting grammar, structures like rule: l+=otherRule+ create a list of nulls in $l if otherRule isn't a template rewrite. This seems undesirable behaviour since I'd've thought that unrewritten rules should just appear in $l as their original text? Am I doing something wrong, is it correct behaviour (in which case, is there an explanation as to why it's correct please?) or is it a bug? Below is a grammar playing around with this; to clearly separate behaviour, I treat lower case words as tokens, rewrite upper case words and don't rewrite numbers. I then play with collections of all three. My sample input is: hi there 123 456 THIRD LIST ; mixture 07 THINGS ; MY 2 mixture ; version 3 MIXTURE After the three pure collections, I try mixing them up. I've come up with two ways of rewriting a list containing a mixture of rules, rewrites and tokens (I know ANTLR refuses to mix tokens and rules in its own lists): - one (mix) is to insert a new rule (mixItem) which turns everything in the mixture into a template (which seems like a lot of work --- is there a templating shorthand for rewriting a rule to its identical self?); - another (hackMix) is to manually build the list using rule.text to work around the rules-turn-into-nulls problem. - I also sketch an idealMix rule which doesn't work. Is there a version of idealMix which does work and is less messy than mix or hackMix please? Any suggestions gratefully received... Conrad grammar PlusEquals; options { output = template; rewrite = true; } file: tokeNs rules rewrites ';' mix ';' hackMix ';' idealMix ; // To collect some tokens, you need it.text. input - output: //hi there - Tokens (2): [hi, there] tokeNs : (w+=TOKEN)+ - template(w={$w}) Tokens (length(w)): [w:{\it.text\};separator={, }] ; TOKEN : ('a'..'z')+ ; // You can't collect rules: $w contains a list of nulls. input - output: // 123 456 - Rules (2): [] rules : (w+=rule)+ - template(w={$w}) Rules (length(w)): [w:{\it\};separator={, }] ; rule: NUMBER ; NUMBER : ('0'..'9')+ ; // To collect rewrites, you just use it directly. input - output: // THIRD LIST - Rewrites (2): [THIRD, LIST] rewrites: (w+=rewrite)+ - template(w={$w}) Rewrites (length(w)): [w:{it};separator={, }] ; rewrite : CAPS - template(w={$text}) \w\ ; CAPS: ('A'..'Z')+ ; // Because rules don't seem to accumulate right, turn everything into rewrites: // mixture 07 THINGS - // Mixture (3): [Token:mixture, Rule:07, Rewrite:THINGS] mix : (w+=mixItem)+ - template(w={$w}) Mixture (length(w)): [w:{it};separator={, }] ; mixItem : rule - template(w={$text}) Rule:\w\ | rewrite - template(w={$text}) Rewrite:w | TOKEN - template(w={$text}) Token:\w\ ; // Build list manually; possible to avoid creating hackMixItem? // My 2 mixture - Hacky mixture (3): [MY, 2, mixture] hackMix returns [List w = new ArrayList()]: (hackMixItem { $w.add($hackMixItem.text); })+ - template(w={$w}) Hacky mixture (length(w)): [w:{it};separator={, }] ; hackMixItem : rule | rewrite | TOKEN ; // Doesn't work; no idea whether anything like it could. // version 3 MIXTURE - Ideal mix (0): [] // I know ANTLR stops you from mixing tokens and rules in one list anyway. idealMix : (w+=(rule | rewrite | TOKEN))+ - template(w={$w}) Ideal mix (length(w)): [w:{it};separator={, }] ; WS : (' '|'\t'|'\n')+ {$channel=HIDDEN;} ; 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: 31722] Re: [antlr-interest] Tree grammar for expression subrules?
On Fri, Mar 4, 2011 at 6:53 PM, g...@novadsp.com g...@novadsp.com wrote: Is there a pattern to follow for creating tree grammars for subrules? // parser rule. this works. expression : (a=term - $a) ( ( '|' b=term - ^(OR $expression $b) | '|'- ^(OR $expression EPSILON) ) )* ; I'd expect that to become the tree-grammar rule: expression : term | ^(OR expression term) | ^(OR expression EPSILON) ; instead of: // tree grammar 1, based on CMinus example in the book.Throws a MismatchedTreeNodeException complaining about lack of // 'UP' at SEQUENCE_EXPR expression : IF_ACTION | ID | ID ATTRIBUTES | STRINGLITERAL | EPSILON | ^(GROUPED_EXPR expression) | ^(OPTIONAL_EXPR expression) | ^(SEQUENCE_EXPR expression) ; Regards, Bart. 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: 31723] [SPAM] [antlr-interest] [SPAM] Re: [SPAM] [SPAM] Syntax ambiguity?
First, a correction. I wrote: So, how can I force ANTLR to consider ID1 in this position? I meant ID2, of course. On 3/4/2011 9:33 AM, Kevin J. Cummings wrote: fun2 : 'fun2(' (id1=ID1 { id1.setType(ID2); } | ID2 ) ')' ; This is a perfectly good solution, thanks! It's a pity the ANTLR book doesn't mention this technique. Just for my understanding of ANTLR, though, I wonder if there isn't a solution at the lexer level: some way to tell the lexer that if it sees a 'fun2(' then it *must* look for an ID2 next. Regards, -- O.L. 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: 31724] Re: [antlr-interest] [SPAM] [SPAM] Re: [SPAM] [SPAM] Syntax ambiguity?
On 03/04/2011 03:28 PM, Olivier Lefevre wrote: Just for my understanding of ANTLR, though, I wonder if there isn't a solution at the lexer level: some way to tell the lexer that if it sees a 'fun2(' then it *must* look for an ID2 next. That would involve the lexer knowing something about the parsing context, which it doesn't. Your entire character stream gets tokenized before the parser even gets run Regards, -- O.L. List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- Kevin J. Cummings kjch...@verizon.net cummi...@kjchome.homeip.net cummi...@kjc386.framingham.ma.us Registered Linux User #1232 (http://counter.li.org) 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: 31725] [antlr-interest] Updated CSharp2 Runtime in main?
hello, Is there a development version with updated CSharp2 runtime? I cannot get it to work at all :-/ I found the snapshots: http://www.antlr.org/depot/antlr3//main/target/antlr-master-3.3.1-SNAPSHOT-src.jar but they do not contain the runtimes other than the java one. Another question: Would it be useful to switch to ANTLR3.1 because .NET binaries exist? Thanks! -- Felix Natter 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: 31726] Re: [antlr-interest] Tree grammar for expression subrules?
On 04/03/2011 19:13, Bart Kiers wrote: I'd expect that to become the tree-grammar rule: expression : term | ^(OR expression term) | ^(OR expression EPSILON) ; Hello Bart Once again, extremely useful input. Thanks. My question though still stands. Cannot discern any pattern in writing the tree rules as, for example, this seems to violate cardinality ... or does it? 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: 31727] [SPAM] [antlr-interest] [SPAM] Re: [SPAM] [SPAM] Re: [SPAM] [SPAM] Syntax ambiguity?
On 3/4/2011 9:32 PM, Kevin J. Cummings wrote: That would involve the lexer knowing something about the parsing context, which it doesn't. Your entire character stream gets tokenized before the parser even gets run I see. I thought cases like this might be an argument for a combined lexer-parser but I have since found the notes where TP argues it: http://www.antlr.org/blog/antlr3/lexical.tml -- O.L. 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: 31728] Re: [antlr-interest] Updated CSharp2 Runtime in main?
Felix Is there a development version with updated CSharp2 runtime? I've been able to use the CSharp2 run-time with the following changes, the original code was pulled as a tarball from Atlassian: * Atlassian CSharp2 running is missing the IASTRuleReturnScope file. Implemented as namespace Antlr.Runtime { /** summaryAST rules have trees/summary */ public interface IAstRuleReturnScopeT { /** summaryHas a value potentially if output=AST;/summary */ object Tree { get; } } } * The following typo appears to be in all versions of the VS2008 .csproj files (the file does not exist either): Compile Include=IAstRuleReturnScope`1.cs / HTH On 04/03/2011 21:26, Felix Natter wrote: hello, Is there a development version with updated CSharp2 runtime? I cannot get it to work at all :-/ I found the snapshots: http://www.antlr.org/depot/antlr3//main/target/antlr-master-3.3.1-SNAPSHOT-src.jar but they do not contain the runtimes other than the java one. Another question: Would it be useful to switch to ANTLR3.1 because .NET binaries exist? 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: 31729] [SPAM] [antlr-interest] [SPAM] Re: Syntax ambiguity?
I see. I thought cases like this might be an argument for a combined lexer-parser but I have since found the notes where TP argues it: against it, I meant. 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: 31730] [SPAM] [antlr-interest] [SPAM] Re: C# Target: Problems with Mono
On 3/1/2011 10:00 PM, Felix Natter wrote: I am trying to generate C# code from my grammar for use with Mono2 (v1.9). ** (Antlr3.exe:4230): WARNING **: Missing method System.Reflection.Emit.DynamicMethod::.ctor(string,Type,Type[]) 1) The Mono team is quite candid about what is missing: http://www.go-mono.com/status/ (System.Reflection can be found under mscorlib) 2) Mono 2.1.9 is ancient: the long-term and current stable versions are 2.6.7 and 2.10.1: http://www.go-mono.com/mono-downloads/download.html 3) Has anyone run the ANTLR C# runtime through Moma, the Mono Migration Analyzer? http://mono-project.com/Moma -- O.L. 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.