From d951a11b1141b9f4c1ee50c7f89b68c552883c16 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Fri, 24 Jul 2020 22:24:44 +0200 Subject: Move CC.{Source,Typed} to CC.AST.* --- ast/CC/Typed.hs | 67 --------------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 ast/CC/Typed.hs (limited to 'ast/CC/Typed.hs') diff --git a/ast/CC/Typed.hs b/ast/CC/Typed.hs deleted file mode 100644 index 53caa29..0000000 --- a/ast/CC/Typed.hs +++ /dev/null @@ -1,67 +0,0 @@ -module CC.Typed( - module CC.Typed, - module CC.Types -) where - -import Data.List - -import CC.Pretty -import CC.Types - - -data ProgramT = ProgramT [DefT] - deriving (Show, Read) - -data DefT = DefT Name ExprT - deriving (Show, Read) - -data TypeT = TFunT TypeT TypeT - | TIntT - | TTupT [TypeT] - | TyVar Int - deriving (Show, Read) - -data ExprT = LamT TypeT Occ ExprT - | CallT TypeT ExprT ExprT - | IntT Int - | TupT [ExprT] - | VarT Occ - deriving (Show, Read) - -data Occ = Occ Name TypeT - deriving (Show, Read) - -exprType :: ExprT -> TypeT -exprType (LamT typ _ _) = typ -exprType (CallT typ _ _) = typ -exprType (IntT _) = TIntT -exprType (TupT es) = TTupT (map exprType es) -exprType (VarT (Occ _ typ)) = typ - -instance Pretty TypeT where - prettyPrec _ TIntT = "Int" - prettyPrec p (TFunT a b) = - precParens p 2 (prettyPrec 3 a ++ " -> " ++ prettyPrec 2 b) - prettyPrec _ (TTupT ts) = - "(" ++ intercalate ", " (map pretty ts) ++ ")" - prettyPrec _ (TyVar i) = 't' : show i - -instance Pretty ExprT where - prettyPrec p (LamT ty (Occ n t) e) = - precParens p 2 $ - "(\\(" ++ n ++ " :: " ++ pretty t ++ ") -> " - ++ prettyPrec 2 e ++ ") :: " ++ pretty ty - prettyPrec p (CallT ty e1 e2) = - precParens p 2 $ - prettyPrec 3 e1 ++ " " ++ prettyPrec 3 e2 ++ " :: " ++ pretty ty - prettyPrec _ (IntT i) = show i - prettyPrec _ (TupT es) = "(" ++ intercalate ", " (map pretty es) ++ ")" - prettyPrec p (VarT (Occ n t)) = - precParens p 2 $ - show n ++ " :: " ++ pretty t - -instance Pretty DefT where - pretty (DefT n e) = n ++ " = " ++ pretty e - -instance Pretty ProgramT where - pretty (ProgramT defs) = concatMap ((++ "\n") . pretty) defs -- cgit v1.2.3-70-g09d2