X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=AST.dcl;h=1592143f5acc8d2fc7ae199f08ab4730c407bcd1;hb=f081c2c5e248331eb6e2f090f4afe818fd8259eb;hp=45eab9e8cb8b3a74cf1934da6801c2f2bc5c94e0;hpb=13a108705dbabbc75711ce9b3b29fe508262919f;p=cc1516.git diff --git a/AST.dcl b/AST.dcl index 45eab9e..1592143 100644 --- a/AST.dcl +++ b/AST.dcl @@ -1,15 +1,16 @@ definition module AST from Data.Maybe import :: Maybe -from StdOverloaded import class toString, class == +from StdOverloaded import class toString, class ==, class zero, class < :: Pos = {line :: Int, col :: Int} :: AST = AST [FunDecl] :: VarDecl = VarDecl Pos (Maybe Type) String Expr +:: TVar :== String :: Type = TupleType (Type, Type) | ListType Type - | IdType String + | IdType TVar | IntType | BoolType | CharType @@ -41,3 +42,14 @@ from StdOverloaded import class toString, class == instance toString Pos instance toString Type instance toString AST +instance toString FieldSelector +instance toString Op2 +instance toString Expr +instance toString VarDecl + +instance zero Pos +instance == Op1 +instance == Op2 +instance < Op1 +instance < Op2 +instance == Type