Support basic class parsing.

This commit is contained in:
2011-02-04 13:16:47 -05:00
parent 56ec6e074a
commit 5a5902af6b
2 changed files with 64 additions and 4 deletions

View File

@@ -36,7 +36,7 @@ data Show a => Decl a =
DeclData a [Type] QualifiedName [QualifiedName] [DataClause a]
| DeclType a [Type]
| DeclNewtype a [Type]
| DeclClass a [Type]
| DeclClass a [Type] QualifiedName [QualifiedName] [ClassClause a]
| DeclInstance a [Type]
| DeclValue a [Type] Type QualifiedName (Expr a)
| DeclExport a (Decl a)
@@ -46,7 +46,7 @@ addTypeRestrictions :: Show a => [Type] -> Decl a -> Decl a
addTypeRestrictions rs (DeclData s _ a b c) = DeclData s rs a b c
addTypeRestrictions rs (DeclType s _) = DeclType s rs
addTypeRestrictions rs (DeclNewtype s _) = DeclNewtype s rs
addTypeRestrictions rs (DeclClass s _) = DeclClass s rs
addTypeRestrictions rs (DeclClass s _ a b c) = DeclClass s rs a b c
addTypeRestrictions rs (DeclInstance s _) = DeclInstance s rs
addTypeRestrictions rs (DeclValue s _ n a b) = DeclValue s rs n a b
addTypeRestrictions rs (DeclExport s d) =
@@ -55,6 +55,9 @@ addTypeRestrictions rs (DeclExport s d) =
data DataClause a = DataClause a QualifiedName [Maybe QualifiedName] [Type]
deriving (Show)
data ClassClause a = ClassClause a QualifiedName Type (Maybe (Expr a))
deriving (Show)
data Show a => Expr a =
Const a ConstVal
| VarRef a QualifiedName