From 65bc1948d4ebb432836996bee5dba246905c154a Mon Sep 17 00:00:00 2001 From: bringert Date: Wed, 25 May 2005 09:41:59 +0000 Subject: Added support for list categories. --- src/GF/Source/AbsGF.hs | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'src/GF/Source/AbsGF.hs') diff --git a/src/GF/Source/AbsGF.hs b/src/GF/Source/AbsGF.hs index 575cff48b..143957102 100644 --- a/src/GF/Source/AbsGF.hs +++ b/src/GF/Source/AbsGF.hs @@ -79,10 +79,10 @@ data Included = deriving (Eq,Ord,Show) data Def = - DDecl [Ident] Exp - | DDef [Ident] Exp - | DPatt Ident [Patt] Exp - | DFull [Ident] Exp Exp + DDecl [Name] Exp + | DDef [Name] Exp + | DPatt Name [Patt] Exp + | DFull [Name] Exp Exp deriving (Eq,Ord,Show) data TopDef = @@ -109,7 +109,9 @@ data TopDef = deriving (Eq,Ord,Show) data CatDef = - CatDef Ident [DDecl] + SimpleCatDef Ident [DDecl] + | ListCatDef Ident [DDecl] + | ListSizeCatDef Ident [DDecl] Integer deriving (Eq,Ord,Show) data FunDef = @@ -136,13 +138,18 @@ data ParConstr = deriving (Eq,Ord,Show) data PrintDef = - PrintDef [Ident] Exp + PrintDef [Name] Exp deriving (Eq,Ord,Show) data FlagDef = FlagDef Ident Ident deriving (Eq,Ord,Show) +data Name = + IdentName Ident + | ListName Ident + deriving (Eq,Ord,Show) + data LocDef = LDDecl [Ident] Exp | LDDef [Ident] Exp @@ -159,6 +166,7 @@ data Exp = | EMeta | EEmpty | EData + | EList Ident Exps | EStrings String | ERecord [LocDef] | ETuple [TupleComp] @@ -169,8 +177,8 @@ data Exp = | EQCons Ident Ident | EApp Exp Exp | ETable [Case] - | EVTable Exp [Exp] | ETTable Exp [Case] + | EVTable Exp [Exp] | ECase Exp [Case] | EVariants [Exp] | EPre Exp [Altern] @@ -193,6 +201,11 @@ data Exp = | ELin Ident deriving (Eq,Ord,Show) +data Exps = + NilExp + | ConsExp Exp Exps + deriving (Eq,Ord,Show) + data Patt = PW | PV Ident -- cgit v1.2.3