created dummy monomorphizer
This commit is contained in:
parent
42c8ebc7b6
commit
e3df4192bb
6 changed files with 279 additions and 393 deletions
|
|
@ -1,14 +1,19 @@
|
|||
module Monomorphizer.MonomorphizerIr where
|
||||
import Grammar.Abs (Ident)
|
||||
|
||||
newtype Program = Program [Bind]
|
||||
import Grammar.Abs (Data, Ident, Init)
|
||||
import TypeChecker.TypeCheckerIr (ExpT, Id, Indexed)
|
||||
|
||||
newtype Program = Program [Def]
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
data Bind = Bind Id [Id] ExpT | DataType Ident [Constructor]
|
||||
data Def = DBind Bind | DData Data
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
data Bind = Bind Id [Id] ExpT
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
data Exp
|
||||
= EId Id
|
||||
= EId Id
|
||||
| ELit Lit
|
||||
| ELet Id ExpT ExpT
|
||||
| EApp Type ExpT ExpT
|
||||
|
|
@ -16,20 +21,15 @@ data Exp
|
|||
| ECase Type ExpT [Injection]
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
data Injection = Injection Case ExpT
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
data Case = CLit Lit | CCons Id [Case] | CIdent Ident | CatchAll
|
||||
deriving (Show, Ord, Eq)
|
||||
data Injection = Injection (Init, Type) ExpT
|
||||
deriving (Eq, Ord, Show)
|
||||
|
||||
data Constructor = Constructor Ident [Type]
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
type Id = (Ident, Type)
|
||||
type ExpT = (Exp, Type)
|
||||
|
||||
data Lit = LInt Integer
|
||||
| LChar Char
|
||||
data Lit
|
||||
= LInt Integer
|
||||
| LChar Char
|
||||
deriving (Show, Ord, Eq)
|
||||
|
||||
newtype Type = Type Ident
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue