Петров Александр schrieb:
> Hello,
>
> I'm using semantic predicates in tree grammar:
>
> //deviceID is a rule
> deviceFuncID
> : ^(NODE1 ^(NODE2 ^(NODE3 deviceID)))
> (
> {
> //IsID function has signature: bool IsID(string id)
> IsID(
> $deviceID.text,
> )
> }?
> -> oneTemplate(...)
> |-> otherTemplate(...)
> );
>
> deviceID : 'this'->{%{"this"}}
>
> But when I try to compile generated C# code (antlr 3.1.1)I have many
> errors like that:
>
> ---- The name 'deviceID25' does not exist in the current context
>
> In antlr 3.0.1 such grammar produce compilable code.
> If I rewrite that code as (remove brackets)
>
> deviceFuncID
> : ^(CCALL ^(CSYNCCALL ^(OBJECTNAME deviceID)))
>
> {
> IsID(
> $deviceID.text,
> )
> }?
> -> oneTemplate(...)
> // |-> otherTemplate(...)
>
> Then all right, but I want to have alternative clause for semantic predicate.
> If I uncomment alternative clause, then I have:
>
> ---- error(201): The following alternatives can never be matched: 2
>
> What should I do ? What is the cause of such errors ?
>
> Thank you
Without the full tree grammar I can't check for the source of the
problems. Can you send it to me along with the combined grammar (or at
least the tokens file of the combined grammar)?
Johannes
>
> List: http://www.antlr.org:8080/mailman/listinfo/antlr-interest
> Unsubscribe:
> http://www.antlr.org:8080/mailman/options/antlr-interest/your-email-address
>
List: http://www.antlr.org:8080/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org:8080/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
-~----------~----~----~----~------~----~------~--~---