AA
Size: a a a
AA
к
к
AA
к
Y
type VarInfo = Type --пока только тип переменной
type Memory = M.Map Name VarInfo
data Builtin = Builtin
{ bGlobalVar :: Memory
, bGlobalConst :: Memory
}
data Context = Context
{ cLocal :: [Memory] --стек
, cObjects :: M.Map Name Memory --поля объектов
}
type Checker = RWS Builtin Log Context
getVar :: Variable -> Checker (Maybe VarInfo)
setVar :: Variable -> VarInfo -> Checker ()
AA
AA
ЖК
TZ
MonadFail (Either String)
?ㅤ
A