I'm attaching the complete grammar file. I'd really appreciate if you take a look at it. As is mentioned in the previous email, the following is the main change I made.
FLOAT : ('0'..'9')+ ( {input.LA(2) != '.'}? => '.' ('0'..'9')+ EXPONENT? {$type = FLOAT;} | {$type = INT;} ) | ('0'..'9')+ EXPONENT ; Thanks. On Sun, Nov 13, 2011 at 11:06 PM, Jiwon Seo <ji...@stanford.edu> wrote: > 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
simple.g
Description: Binary data
-- 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.