# Yacc Form of grammar HRL.grm

Copyright © 2006 ILOG, Inc.; All Rights Reserved.

This yacc grammar was generated on Thu Oct 05 10:28:30 CEST 2006 from the annotated Jacc grammar file `HRL.grm`.

    ROOT
    	: HRL
    	;

    HRL
    	: RuleSet
    	;

    RuleSet
    	: Rule
    	| RuleSet Rule
    	;

    Rule
    	: HornRule
    	;

    HornRule
    	: Implication
    	;

    Implication
    	: HEAD ':-' BODY
    	;

    HEAD
    	: LITFORM
    	;

    BODY
    	: CONDIT
    	;

    CONDIT
    	: LITFORM
    	| QUANTIF
    	| CONJ
    	| DISJ
    	;

    CONJ
    	: 'And' '(' CONDIT_star ')'
    	;

    DISJ
    	: 'Or' '(' CONDIT_star ')'
    	;

    QUANTIF
    	: 'Exists' Var_plus '(' CONDIT ')'
    	| 'Forall' Var_plus '(' CONDIT ')'
    	;

    LITFORM
    	: Atom
    	| 'Neg' Atom
    	| 'Naf' Atom
    	| 'Naf' 'Neg' Atom
    	;

    Atom
    	: 'Rel' '(' TERM_star ')'
    	| TERM '=' TERM
    	;

    TERM
    	: 'Var'
    	| Con
    	| Expr
    	;

    Expr
    	: 'Fun' '(' TERM_star ')'
    	;

    CONDIT_star
    	: /* empty */
    	| CONDIT_plus
    	;

    CONDIT_plus
    	: CONDIT
    	| CONDIT_plus CONDIT
    	;

    TERM_star
    	: /* empty */
    	| TERM_plus
    	;

    TERM_plus
    	: TERM
    	| TERM_plus TERM
    	;

    Var_plus
    	: 'Var'
    	| Var_plus 'Var'
    	;

    Con
    	: Data
    	| Ind
    	;

    Data
    	: 'Value'
    	;

    Ind
    	: 'Object'
    	;

Copyright © 2006 ILOG, Inc.; All Rights Reserved.