Yes - that is fine. The interpreter is not able to deal with the predicate is all :)
Jim > -----Original Message----- > From: seoji...@gmail.com [mailto:seoji...@gmail.com] On Behalf Of Jiwon > Seo > Sent: Sunday, November 13, 2011 11:06 PM > To: Jim Idle > Cc: antlr-interest@antlr.org > Subject: Re: [antlr-interest] Using range operator (INT .. INT) > > I did the following change: > > FLOAT > : ('0'..'9')+ > ( > {input.LA(2) != '.'}? => '.' ('0'..'9')+ EXPONENT? {$type = > FLOAT;} > | {$type = INT;} > ) > | ('0'..'9')+ EXPONENT > ; > > I tested it inside antlrworks, and very strangely, it works fine with > the debugger(generates the right parse tree), but raises Mismatched > token exception with the interpreter. > > Is the above right way to do this? > > > On Sun, Nov 13, 2011 at 5:10 PM, Jim Idle <j...@temporal-wave.com> > wrote: > > Please read the wiki articles - your rules conflict and there are > > simple ways around this :) > > > > Jim > > > >> -----Original Message----- > >> From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- > >> boun...@antlr.org] On Behalf Of Jiwon Seo > >> Sent: Sunday, November 13, 2011 9:58 AM > >> To: Christian > >> Cc: antlr-interest@antlr.org > >> Subject: Re: [antlr-interest] Using range operator (INT .. INT) > >> > >> I attached a simplified grammar file with the problem. > >> If you run the interpreter in antlrworks 1.4.3 the following will > >> give an error > >> > >> int n:0..10 > >> > >> But the following won't give an error: > >> > >> int n:0 .. 10 // white space before and after .. > >> > >> > >> Note that my definition of FLOAT does not conflict with the range > >> operator: > >> > >> FLOAT > >> : ('0'..'9')+ '.' ('0'..'9')+ EXPONENT? > >> | ('0'..'9')+ EXPONENT > >> ; > >> > >> > >> Thanks. > >> > >> On Sun, Nov 13, 2011 at 3:09 AM, Christian <chw...@gmx.de> wrote: > >> > Hello Jiwon, > >> > > >> > first, try to write a simple minimal grammar that represents your > >> > usecase because I do not see anything that explains the behavior > >> > you described. Maybe there are some other rules that influence the > >> parsing. > >> > > >> > Tell us afterwards. > >> > > >> > Regards, > >> > Christian > >> > > >> > Am 13.11.2011 10:31, schrieb Jiwon Seo: > >> >> I'm trying to add range operator in my language, and I'm having a > >> >> problem with it. > >> >> > >> >> The range operator is defined as following: > >> >> > >> >> range: INT '..' INT ; > >> >> > >> >> where INT is '0'..'9'+ > >> >> > >> >> I do have FLOAT, but it is defined such that it does not have > >> >> conflict with the range operator: > >> >> > >> >> FLOAT: ('0'..'9')+'.'('0'..'9')+ EXPONENT? > >> >> | ('0'..'9')+ EXPONENT > >> >> ; > >> >> > >> >> The thing is, if I use the range operator with white spaces > before > >> >> & after the dots(such as 10 .. 100), it parses fine But without > >> >> the white spaces(such as 10..100), it says > 'MismatchedTokenException' . > >> >> > >> >> Can anyone see why it's acting like that? I do not use dot ('.') > >> >> in any other places. > >> >> > >> >> I'm using antlrworks 1.4.3 for writing grammar and testing it > >> >> (interpreter & debugger) > >> >> > >> >> Thanks. > >> >> > >> >> 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 > > 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.