[antlr-interest] v3: failed predicate?
Mark Mandel
mark.mandel at gmail.com
Wed Jan 31 13:59:20 PST 2007
Anyone? Even a pointer in the right direction?
I can't seem to even find out exactly what the error means?
I'm guessing it means that the parser expects there to a token of Type
ALIAS at this point, but the gateway condition is false? would that be
correct?
Any help would be greatly appreciated.
Mark
On 1/31/07, Mark Mandel <mark.mandel at gmail.com> wrote:
> All,
>
> I'm running the latest version of ANTLR v3
>
> I get this error when I run the following input against my grammar:
> 'from onetomany.Basic join onetomany.Child'
>
> rule ALIAS failed predicate: { currentMode == ALIAS_MODE }?
>
> and I don't know what it means.
>
> I believe these are the relevant portions of my grammar:
>
> I've attached the full grammar in case this doesn't explain enough.
>
> I'm totally stumped.. so any help would be appreciated.
>
> fromStatement
> :
> FROM^ classClause (joinClause classClause ON joinCondition)*
> ;
>
> classClause
> :
> CLASS_IDENTIFIER^ (AS ALIAS)?
> ;
>
> joinClause
> :
> ((LEFT | RIGHT)? OUTER)? JOIN^
> ;
>
> joinCondition
> :
> (
> PROPERTY_IDENTIFIER (BOOLEAN_LOGIC PROPERTY_IDENTIFIER)*
> |
> conditionStatement
> )
> ;
>
> FROM :
> { currentMode == STRING_MODE }?=>
> 'from'
> { setMode(CLASS_IDENTIFIER_MODE); }
> ;
> AS : //special case, not worrying about past mode
> { currentMode == STRING_MODE }?=>
> 'as'
> { currentMode = ALIAS_MODE; }
> ;
> ALIAS :
> { currentMode == ALIAS_MODE }?=>
> LETTER(LETTER|DIGIT|'_')*
> { currentMode = STRING_MODE; }
> ;
> JOIN :
> { currentMode == STRING_MODE }?=>
> 'join'
> ;
> ON :
> { currentMode == STRING_MODE }?=>
> 'join'
> { setMode(PROPERTY_IDENTIFIER_MODE); }
> ;
> CLASS_IDENTIFIER
> :
> { currentMode == CLASS_IDENTIFIER_MODE }?=>
> IDENTIFIER
> { setMode(STRING_MODE); }
> ;
> PROPERTY_IDENTIFIER
> :
> { currentMode == PROPERTY_IDENTIFIER_MODE }?=>
> IDENTIFIER
> { setMode(STRING_MODE); }
> ;
> fragment IDENTIFIER
> :
> LETTER(LETTER|DIGIT|'.'|'_')+
> ;
> TIA
>
> Mark
>
>
> --
> E: mark.mandel at gmail.com
> W: www.compoundtheory.com
>
>
>
--
E: mark.mandel at gmail.com
W: www.compoundtheory.com
More information about the antlr-interest
mailing list