%%[1 ag ------------------------------------------------------------------------- -- Expr AST ------------------------------------------------------------------------- ------------------------------------------------------------------------- -- Interfacing ------------------------------------------------------------------------- DATA AGExprItf | AGItf expr : Expr ------------------------------------------------------------------------- -- Expr ------------------------------------------------------------------------- DATA Expr | AppTop expr : Expr | App lExpr : Expr rExpr : Expr | Op nm : {Nm} nmExpr : Expr lExpr : Expr rExpr : Expr | LF lExpr : Expr rExpr : Expr | SP lExpr : Expr rExpr : Expr | Var nm : {Nm} | AVar anm : ANm | Int int : {String} | StrText str : {String} | StrAsIs str : {String} | Named nm : {Nm} expr : Expr | Wrap wrKind : {WrKind} expr : Expr | Cnstr expr : Expr cnstr : ECnstr | WrapCnstr cnstr : ECnstr | Paren expr : Expr | Retain expr : Expr | Expr expr : Expr | SelTop expr : Expr | Sel expr : Expr selMbExpr : MbExpr | ChildOrder seqNr : {Int} expr : Expr | Uniq | Empty | Undefined TYPE MbExpr = MAYBE Expr ------------------------------------------------------------------------- -- ANm ------------------------------------------------------------------------- DATA ANm | Wild | Loc nm : {Nm} props : {[AtProp]} | Lhs nm : {Nm} props : {[AtProp]} | Fld nm : {Nm} | Node ndNm : {Nm} nm : {Nm} ------------------------------------------------------------------------- -- Expr constraint ------------------------------------------------------------------------- DATA ECnstr | Ty nms : {[Nm]} | Var nm : {Nm} | Empty ------------------------------------------------------------------------- -- Sets ------------------------------------------------------------------------- SET AllExprButANm = Expr MbExpr ECnstr SET AllExpr = AllExprButANm ANm %%]