gdritter repos virgil / master Language / Virgil / Types.hs
master

Tree @master (Download .tar.gz)

Types.hs @masterraw · history · blame

module Language.Virgil.Types where

import Language.Cherenkov.AST

type TEnv = HashMap Ident Typ

inferType :: TEnv -> Expr -> ()
inferType _ (ELit (LInt _)) = TNamed "Int"
inferType _ (ELit (LDouble _)) = TNamed "Double"
inferType _ (ELit (LString _)) = TNamed "String"
inferType _ (ELit (LBool _)) = TNamed "Bool"
inferType e (ETup ts) = VTup (map (inferType e ts))
inferType e (EList ls) = undefined
inferType e (EVar v) = undefined