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 Thu Feb 17 16:55:59 PST 2011 from file BLC.grm
by the ilog.language.tools.Hilite Java tool written by Hassan Aït-Kaci