packages feed

shuffle-0.1.0.0: src/UHC/Shuffle/ChunkAbsSyn.ag

-------------------------------------------------------------------------
-- Chunk files AST
-------------------------------------------------------------------------

-- Outside itf
DATA AGItf
  | AGItf               dumLines    	: Lines
                        chunks      	: Chunks

-- Chunk
DATA Chunk
  | Ver                 variantOffer	: {VariantOffer}
                        subNm       	: {Nm}
                        minusL      	: {[ChunkRef]}
                        chOptions		: ChunkOptions
                        compRestrict 	: {CompilerRestriction}
                        mbModNm     	: MbStrExpr -- {Maybe String}
                        imports     	: StrExprs
                        exports     	: StrExprs
                        lines       	: Lines
                        dumLines    	: Lines
  | Named               cref        	: {CRef}
                        chKind          : {ChKind}
                        lines       	: Lines
                        dumLines    	: Lines

TYPE Chunks     = [Chunk]

SET AllChunk    = Chunk Chunks

-- Expr (describing a string)
DATA StrExpr
  | Str					str			: {String}
  | Var					nm			: {String}
  | Concat				e1			: StrExpr
  						e2			: StrExpr
  | White				e1			: StrExpr
  						e2			: StrExpr
  | Group				e 			: StrExpr
  | Seq				    es			: StrExprs

TYPE StrExprs = [StrExpr]
TYPE MbStrExpr = MAYBE StrExpr

SET AllStrExpr = StrExpr MbStrExpr StrExprs

-- ChunkOption
DATA ChunkOption
  | Kind				chKind      : {ChKind}
  | Dest				chDest      : {ChDest}
  | Wrap				chWrap      : {ChWrap}

TYPE ChunkOptions     	= [ChunkOption]

SET AllChunkOption		= ChunkOption ChunkOptions

-- Single line
DATA Line
  | AsIs                words       	: Words
  | Named               cref        	: {CRef}
                        mbVariantReqm   : {Maybe VariantReqm}
  | Groups              extraLine   	: Int
                        groups      	: Groups

TYPE Lines      = [Line]

SET AllLine     = Line Lines

-- Single group of lines
DATA Group
  | Group               variantOffer    : {VariantOffer}
                        chOptions		: ChunkOptions
                        userRef     	: {Maybe (Nm,Maybe String)}
                        lines       	: Lines

TYPE Groups     = [Group]

SET AllGroup    = Group Groups

-- Single word
DATA Word
  | White               chars       : {String}
  | Black               chars       : {String}
  | Inline              inl         : Inline
  | Expand              exp         : StrExpr

DATA Inline
  | URI                 str         : {String}

TYPE Words      = [Word]

SET AllWord     = Word Words Inline

-- Sets
SET AllNT       = AllWord AllLine AllGroup AllChunk AllStrExpr