ruler-0.4.0.0: src/AS1/ViewDpd.cag
-------------------------------------------------------------------------
-- All used views
-------------------------------------------------------------------------
%%[1 ag
ATTR AllDecl [ | | allVwNmS USE {`Set.union`} {Set.empty}: {Set.Set Nm} ]
SEM Decl
| RulView ScmView DataASTView
lhs . allVwNmS = Set.singleton @nm
-------------------------------------------------------------------------
-- View order
-------------------------------------------------------------------------
ATTR AllDecl [ | | gathVwOrder USE {++} {[]}: {[[[Nm]]]} ]
SEM Decl
| ViewHierarchy lhs . gathVwOrder = [@nmOrder]
-------------------------------------------------------------------------
-- View dpd graph
-------------------------------------------------------------------------
ATTR AllDecl [ vwDpdGr: {DpdGr Nm} | | ]
SEM AGItf
| AGItf loc . vwDpdGr = let vwOrderL = concat @decls.gathVwOrder
missing = @decls.allVwNmS `Set.difference` Set.fromList (concat vwOrderL)
in mkDpdGrFromOrderWithMissing (Set.toList missing) vwOrderL
SEM Decl
| SchemeDeriv loc . firstVwNm = last (dgTopSort @lhs.vwDpdGr)
%%]