PARSER_BEGIN(OwlPathParser)
package Grammar;
public class OwlPathParser{}
PARSER_END(OwlPathParser)
SKIP :
{
" "
| "\t"
| "
"
| "
"
| < "//" (~[ "
", "
" ])*
(
"
"
| "
"
| "
"
) >
| < "/*" (~[ "*" ])* "*"
(
~[ "/" ] (~[ "*" ])* "*"
)*
"/" >
} /* ROOT */
SimpleNode Start() : {} { Sentence() EndOfSentence() < EOF > { return jjtThis; } }
void Sentence() : {} { Phrase() ( ( "," Conjunction() ) Phrase() )* }
void Phrase() : {} { NounPhrase() VerbPhrase() ( Conjunction() VerbPhrase())* }
void NounPhrase() : {} { Subject() ( RelativePronoun() (VerbPhrase() | TypePredicate() Class()))? }
void VerbPhrase() : {} { Predicate() ObjectPhrase() }
void ObjectPhrase() : {} { Object() ( RelativePronoun() (VerbPhrase() | TypePredicate() Class()))? }
void Subject(): {} { Individual() | Pronoun() | DefiniteIndividual() | Identifier() }
void Predicate(): {} { Property() }
void Object(): {} { Individual() | Pronoun() | DefiniteIndividual() }
void DefiniteIndividual (): {} { Article() Individual() }