`BLC.grm`

    // FILE. . . . . /home/hak/ilt/src/ilog/rif/BLC.grm
    // EDIT BY . . . Hassan Ait-Kaci
    // ON MACHINE. . 4j4zn71
    // STARTED ON. . Wed Apr 02 14:08:56 2008

    // Last modified on Wed Oct 01 09:13:28 2008 by hak

    ////////////////////////////////////////////////////////////////////////
    // The BLD Condition Language:
    ////////////////////////////////////////////////////////////////////////

    Formula
      : Atomic
      | AND OPENPAR Formulas_opt CLOSEPAR
      [ L:"And" C:(formula*3)]
      | OR OPENPAR Formulas_opt CLOSEPAR
      [ L:"Or" C:(formula*3)]
      | EXISTS Vars OPENPAR Formula CLOSEPAR
      [ L:"Exists" C:(declare*2 formula.4) ]
      | EXTERNAL OPENPAR Atom CLOSEPAR
      [ L:"External" C:(content.3) ]
      ;

    Atomic
      : Atom
      | Equal
      | Member
      | Subclass
      | Frame
      ;

    Atom
      : Const OPENPAR UniTermBody CLOSEPAR // UniTerm
        [ L:"Atom" C:(op.1 arg*3) ]
      ;

    // UniTerm
    //   : Const OPENPAR UniTermBody CLOSEPAR
    //   ;

    Equal
      : Term EQUAL Term
      [ L:"Equal" C:(left.1 right.3) ]
      ;

    Member
      : Term MEMBER Term
      [ L:"Member" C:(lower.1 upper.3) ]
      ;

    Subclass
      : Term SUBCLASS Term
      [ L:"Subclass" C:(lower.1 upper.3) ]
      ;

    Frame
      : Term OPENBRA FrameAttributes_opt CLOSEBRA
      [ L:"Frame" C:(object.1 slot*3)]
      ;

    Term
      : Const
      | Var
      | Expr
      | EXTERNAL OPENPAR Expr CLOSEPAR
      [ L:"External" C:(content.3) ]
      ;

    Expr
      : Const OPENPAR UniTermBody CLOSEPAR // UniTerm
      [ L:"Expr" C:(op.1 arg*3) ]
      ;

    Const
      : STRING LEXSPACE SymSpace
      [ L:"Const" A:{type=$TEXT("&" 3/typespace ";" 3/typename)} C:(1[1]) ]
      ;

    SymSpace
      : IDENTIFIER COLON IDENTIFIER
      [ L:"Symspace" A:{typespace=1 typename=3} ]
      ;

    Var
      : VARIABLE
      ;

    ////////////////////////////////////////////////////////////////////////

    // UniTermBody
    //   : Terms_opt
    //   | TermAttributes_opt
    //   ;

    // Terms_opt
    //   : /* empty */
    //   | Terms_opt Term
    //   ;

    // TermAttributes_opt
    //   : /* empty */
    //   | TermAttributes
    //   ;

    // TermAttributes
    //   : TermAttribute
    //   | TermAttributes TermAttribute
    //   ;

    UniTermBody
      : SubTerms_opt
      ;

    SubTerms_opt
      : /* empty */
      | SubTerms
      ;

    SubTerms
      : SubTerm
      | SubTerms SubTerm
      ;

    SubTerm
      : Term
      | TermAttribute
      ;

    ////////////////////////////////////////////////////////////////////////

    TermAttribute
      : Const ARROW Term
      ;

    FrameAttributes_opt
      : /* empty */
      | FrameAttributes
      ;

    FrameAttributes
      : FrameAttribute
      | FrameAttributes FrameAttribute
      ;

    FrameAttribute
      : Term ARROW Term
      [ L:Prop C:(key.1 val.3)]
      ;

    Formulas_opt
      : /* empty */
      | Formulas
      ;

    Formulas
      : Formula
      | Formulas Formula
      ;

    Vars
      : Var
      | Vars Var
      ;

    ////////////////////////////////////////////////////////////////////////

This file was generated on Tue Oct 07 11:25:20 CEST 2008 from file `BLC.grm`
by the `ilog.language.tools.Hilite` Java tool written by Hassan Aït-Kaci