(
( infix "*" "+" "-" "/" ",")
( infix "=" "#" "<" ">" le ge )
( infix and or impl iff )
( infix ";" ":=" "||" "=>" st para cong perp)
( infix "==" ":" )
( prefix "~" all some "-")
( prefix pre ) ( infix proc post ) ( infix inv )
( comment postfix not yet implemented "--" postfix "()" )
( openfix "(" ")" "[" "]" if fi do od )
( rightfix "(" ")" )


(S (1 ProcDef) (2 PredDef) (3 FunDef))

(ProcDef (4 ProcDef1 "==" Command))

(ProcDef1 (5 VarList ":" ProcDef2))

(ProcDef2 (6 ProcID "(" VarList ")"))


(PredDef (7 PredDef1 "==" Formula))

(PredDef1 (8 PredID "(" VarList ")"))

(FunDef (9 FunDef1 "==" Formula))

(FunDef1 (10 FunDef2 "=" VarID))

(FunDef2 (11 FunID "(" VarList ")"))

(VarList (12 VarID) (13 VarID "," VarList))

(SimpleCommand (14 if GCList fi) (15 do GCList od) (16 Skip) (17 Abort)
(18 VarList ":=" TermList) (19 VarList st Formula)
    (20 VarList ":" Command2) )
    
(Command (21 SimpleCommand) (22 SimpleCommand ";" Command))
   
(Command2 (24 ProcID "(" TermList ")" ))

(GCList (25 GC) (26 GC "||" GCList))

(GC (27 Formula "=>" Command) (28 GC1 "=>" Command))

(GC1 (29 VarList ":" Formula))

(SimpleFormula (30 AtomicFormula) (32 "(" Formula3 ")") (33 "(" Formula ")"))

(Formula4 (23 SimpleFormula) (31 SimpleFormula and Formula4))

(Formula (102 Formula4) (103 Formula4 or Formula))

(Formula2 (34 VarList ":" Formula))

(Formula3 (100 some Formula2))

(AtomicFormula
(35 Term "<" Term)
(36 Term ">" Term)
(37 Term le Term)
(38 Term ge Term)
(39 Term "=" Term)
(40 Term "#" Term)
(41 Term para Term)
(42 Term cong Term)
(43 Term perp Term)
(101 PredID "(" TermList ")"))

(TermList (44 Term) (45 Term "," TermList))

(Term (46 Term5) (47 Term6) (48 "-" TermY))

(Term2 (49 Term "," Term))

(TermX (50 VarID)
(51 FunID "(" TermList ")")
(52 Constant)
(53 "(" Term ")")
(54 "(" Term2 ")")
(55 "[" TermList "]"))

(Term3 (56 TermX) (57 TermX "*" Term3))

(Term4 (58 TermX) (59 TermX "/" TermX))

(TermY (60 Term3) (61 Term4))

(Term5 (62 TermY) (63 TermY "+" Term5))

(Term6 (64 TermY) (65 TermY "-" TermY))

(VarID (66 id))

(ProcID (67 id))

(FunID (68 id))

(PredID (69 id))

(Constant (70 nbr))

(Skip (71 id))

(Abort (72 id))


)