packages feed

ruler-0.4.0.0: src/Expr/AbsSynAG.cag

%%[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


%%]