Try the following options. 1. locationStep: edge condition? (repeat | shortestPath)? ('>' locationStep)? -> ^(LOCATIONSTEP condition? repeat? shortestPath? locationStep?);
condition: ( filter | subquery ) condition? -> ^(CONDITION filter? subquery? condition?); or 2. locationStep : edge condition? repeat? ('>' locationStep)? -> ^(LOCATIONSTEP condition? shortestPath? locationStep?) | edge condition? shortestPath? ('>' locationStep)? -> ^(LOCATIONSTEP condition? shortestPath? locationStep?) ; condition : filter condition? -> ^(CONDITION filter condition?) | subquery condition? -> ^(CONDITION subquery condition?) ; Regards Gary On Thu, Jul 21, 2011 at 9:16 PM, Claudio Martella <claudio.marte...@tis.bz.it> wrote: > Hello, > > I've this grammar: http://pastebin.com/dNzdGx8R but i get this error > when I test it with AntlrWorks: > > [11:23:59] /Users/hammer/output/RDFPathParser.java:383: incompatible types > [11:23:59] found : RDFPathParser.repeat_return > [11:23:59] required: RDFPathParser.shortestPath_return > [11:23:59] v=repeat(); > [11:23:59] ^ > [11:23:59] /Users/hammer/output/RDFPathParser.java:586: incompatible types > [11:23:59] found : RDFPathParser.filter_return > [11:23:59] required: RDFPathParser.subquery_return > [11:23:59] v=filter(); > [11:23:59] ^ > [11:23:59] 2 errors > > > Basically I think the problem is the assignment in the subrules with ORs > in two statements: > > locationStep: edge condition? (v=repeat | v=shortestPath)? ('>' > locationStep)? > -> ^(LOCATIONSTEP condition $v locationStep); > > condition: ( v=filter | v=subquery ) condition? > -> ^(CONDITION $v condition); > > How do I handle these situations where I have the two or more options in > a subrule? > > > Thanks > Claudio > > -- > Claudio Martella > Free Software & Open Technologies > Analyst > > TIS innovation park > Via Siemens 19 | Siemensstr. 19 > 39100 Bolzano | 39100 Bozen > Tel. +39 0471 068 123 > Fax +39 0471 068 129 > claudio.marte...@tis.bz.it http://www.tis.bz.it > > Short information regarding use of personal data. According to Section 13 of > Italian Legislative Decree no. 196 of 30 June 2003, we inform you that we > process your personal data in order to fulfil contractual and fiscal > obligations and also to send you information regarding our services and > events. Your personal data are processed with and without electronic means > and by respecting data subjects' rights, fundamental freedoms and dignity, > particularly with regard to confidentiality, personal identity and the right > to personal data protection. At any time and without formalities you can > write an e-mail to priv...@tis.bz.it in order to object the processing of > your personal data for the purpose of sending advertising materials and also > to exercise the right to access personal data and other rights referred to in > Section 7 of Decree 196/2003. The data controller is TIS Techno Innovation > Alto Adige, Siemens Street n. 19, Bolzano. You can find the complete > information on the web si > te www.tis.bz.it. > > > > > > 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.