Yes, that's right. It's clearly a conflict with the ':' and the ':=' token and using another character avoids the problem. I can't do that though since I'm trying to build a grammar for VHDL; the language is a given.
Mark On Fri, Jan 14, 2011 at 4:48 PM, Søren Kristiansen <[email protected]>wrote: > Not sure your assumption about look ahead is correct but the gurus will > have > to answer that ;-) > > Try changing RULE_EQUALS to match ';=' and 15;=0 as input will give the > expected result. > > Regards > Soren > > 2011/1/14 Mark Christiaens <[email protected]> > > > That was my first guess too but I doubt that that is the cause. > > > > Without the space, I expect it to see the 15 (corresponding to > > the ('0'..'9')+ part) and then look ahead and see that the next part must > > start with a ':' followed by a number. Since it doesn't see a number (it > > sees a '=') it should end the RULE_ABSTRACT_LITERAL. Then parsing can > > continue and would start from the ':' to match the RULE_EQUALS and then > > again the RULE_ABSTRACT_LITERAL. > > > > Mark > > > > > > On Fri, Jan 14, 2011 at 4:30 PM, Søren Kristiansen <[email protected] > >wrote: > > > >> Hi Mark, > >> Without the space before ':=', 15: will match your > >> RULE_ABSTRACT_LITERAL rule and then '=' can't be > >> matchted. > >> > >> Regards > >> Soren > >> > >> 2011/1/14 Mark Christiaens <[email protected]> > >> > >>> I have a small test grammar: > >>> > >>> grammar test_grammar; > >>> > >>> testrule : t*; > >>> t: RULE_EQUALS | RULE_ABSTRACT_LITERAL | RULE_WS ; > >>> RULE_EQUALS : ':='; > >>> RULE_ABSTRACT_LITERAL : ('0'..'9')+ (':' ('0'..'9')+ ':')?; > >>> RULE_WS : (' '|'\t')+; > >>> > >>> > >>> When I debug this grammar (with ANTLRWorks 1.4.2 using ANLTR 3.3) I > feed > >>> it > >>> the input (no spaces) > >>> > >>> > >>> 15:=0 > >>> > >>> > >>> and it doesn't parse my input correctly. When I change the input to > >>> (adding > >>> space before ':=') > >>> > >>> 15 :=0 > >>> > >>> it parses successfully. Any ideas what I'm missing here? > >>> > >>> Mark > >>> -- > >>> <http://www.sigasi.com> > >>> > >>> Mark Christiaens, PhD > >>> Expert Research Engineer > >>> www.sigasi.com > >>> > >>> List: http://www.antlr.org/mailman/listinfo/antlr-interest > >>> Unsubscribe: > >>> http://www.antlr.org/mailman/options/antlr-interest/your-email-address > >>> > >> > >> > > > > > > -- > > <http://www.sigasi.com> > > Mark Christiaens, PhD > > Expert Research Engineer > > www.sigasi.com > > > > > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > -- <http://www.sigasi.com> Mark Christiaens, PhD Expert Research Engineer www.sigasi.com 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
