[antlr-interest] v3: failed predicate?

Mark Mandel mark.mandel at gmail.com
Wed Jan 31 19:48:54 PST 2007


You can ignore my whinging.. i worked it out... there was nowhere for
my grammar to go, as I hadn't set the correct gate for it go down.

My bad.

Mark

On 2/1/07, Mark Mandel <mark.mandel at gmail.com> wrote:
> 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
>


-- 
E: mark.mandel at gmail.com
W: www.compoundtheory.com


More information about the antlr-interest mailing list