ruler-0.4.0.0: src/AbsSyn/AbsSyn1AG.cag
%%[1 ag
-------------------------------------------------------------------------
-- Ruler AST, pass 1
-------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Declarations
-------------------------------------------------------------------------
DATA Decl
| Preamble fmKind : {FmKind}
preamble : {String}
| Extern nms : {[Nm]}
| Include pos : {SPos}
nm : {Nm}
| Scheme pos : {SPos}
scKind : {ScKind}
nm : {Nm}
mbAGNm : {Maybe String}
decls : Decls
| SchemeDeriv pos : {SPos}
scKind : {ScKind}
nm : {Nm}
scDeriv : {ScDeriv}
mbAGNm : {Maybe String}
decls : Decls
| Fmt fmKind : {FmKind}
atIO : {AtDir}
matchExpr : Expr
expr : Expr
| Rules pos : {SPos}
nm : {Nm}
schemeNm : {Nm}
viewSel : ViewSel
info : {String}
decls : Decls
| RulesGroup pos : {SPos}
nm : {Nm}
schemeNm : {Nm}
viewSel : ViewSel
info : {String}
rlNms : {[(Nm,Nm)]}
| Rule pos : {SPos}
nm : {Nm}
mbBasedOnNm : {Maybe Nm}
viewSel : {Maybe ViewSel}
mbAGNm : {Maybe String}
decls : Decls
| RulView pos : {SPos}
nm : {Nm}
jdIntros : RuleJudgeIntros
group : {[[Nm]]}
| ShpJudge pos : {SPos}
fmKind : {FmKind}
expr : Expr
| ShpDel pos : {SPos}
fmKinds : {[FmKind]}
| ScmView nm : {Nm}
decls : Decls
| ViewHierarchy nmOrder : {[[Nm]]}
| Attr intros : AttrIntroDecls
| Explain mbNm : {Maybe Nm}
expr : Expr
| DataAST pos : {SPos}
nm : Nm
schemeNms : {[Nm]}
decls : Decls
| DataASTView pos : {SPos}
nm : Nm
decls : Decls
| DataASTAlt pos : {SPos}
nm : Nm
ruleNm : Nm
mbBasedOnNm : {Maybe Nm}
fldIntros : FldIntros
TYPE Decls = [Decl]
SET AllDecl = Decl Decls
-------------------------------------------------------------------------
-- Data/AST decl
-------------------------------------------------------------------------
DATA FldIntro
| Intro nm : {Nm}
ty : Ty
TYPE FldIntros = [FldIntro]
SET AllFldIntro = FldIntros FldIntro
-------------------------------------------------------------------------
-- Attr intro decl
-------------------------------------------------------------------------
DATA AttrIntroDecl
| Attrs inhs : AttrIntros
inhsyns : AttrIntros
syns : AttrIntros
| AttrsProp intros : AttrIntros
| Scheme pos : {SPos}
nm : {Nm}
renames : AttrRenames
TYPE AttrIntroDecls = [AttrIntroDecl]
DATA AttrRename
| Rename pos : {SPos}
nmNew : {Nm}
nmOld : {Nm}
| EqualTo pos : {SPos}
nmLeft : {Nm}
nmRight : {Nm}
TYPE AttrRenames = [AttrRename]
DATA AttrIntro
| Intro props : {[AtProp]}
nm : {Nm}
ty : {Nm}
TYPE AttrIntros = [AttrIntro]
SET AllAttrIntro = AttrIntro AttrIntros
SET AllAttrRename = AttrRename AttrRenames
SET AllAttrIntroDecl = AllAttrIntro AllAttrRename AttrIntroDecl AttrIntroDecls
-------------------------------------------------------------------------
-- Rule judgement intro
-------------------------------------------------------------------------
DATA RuleJudgeIntro
| PrePost extNms : {[Nm]}
pre : RExprs
post : RExprs
| RulesetRule pos : {SPos}
rsNm : {Nm}
rlNm : {Nm}
schemeRnmL : {[BldRename]}
TYPE RuleJudgeIntros = [RuleJudgeIntro]
SET AllRuleJudgeIntro = RuleJudgeIntros RuleJudgeIntro
SET AllRuleJudgeIntroDecl = AllRuleJudgeIntro
-------------------------------------------------------------------------
-- Rule expr's
-------------------------------------------------------------------------
DATA RExpr
| Judge pos : {SPos}
mbRNm : {Maybe Nm}
schemeNm : {Nm}
eqns : RExprEqn
isSmallExpr : {Bool}
| Del pos : {SPos}
nms : {[Nm]}
DATA RExprEqn
| Attrs eqns : AttrEqns
| Expr expr : Expr
TYPE RExprs = [RExpr]
SET AllRExpr = RExpr RExprs
DATA AttrEqn
| Eqn nm : {Nm}
expr : Expr
| Del nm : {Nm}
TYPE AttrEqns = [AttrEqn]
SET AllAttrEqn = RExprEqn AttrEqn AttrEqns
-------------------------------------------------------------------------
-- Sets of AST data's
-------------------------------------------------------------------------
SET AllAS1 = AllRExpr AllAttrEqn AllAttrIntroDecl AllRuleJudgeIntroDecl AllFldIntro AllDecl
%%]