aos/tools/fof/Expressions.lhs-boot
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

41 lines
1.1 KiB
Plaintext

%if false
Copyright (c) 2009, ETH Zurich.
All rights reserved.
This file is distributed under the terms in the attached LICENSE file.
If you do not find this file, copies can be found by writing to:
ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
%endif
%include polycode.fmt
> module Expressions where
> import Semantics
> import Constructs
> import PureExpressions
> import IL.FoF.FoF
> data Heap = Hp { freshLoc :: Int ,
> refMap :: [(VarName, Data)],
> freshSLoc :: Int,
> strMap :: [(VarName, [(String, Data)])],
> freshALoc :: Int,
> arrayMap :: [(VarName, [Data])]}
> runAlgebra :: FoFConst (Heap -> (PureExpr, Heap)) ->
> (Heap -> (PureExpr, Heap))
> data Binding = Binding { freshVar :: Int ,
> defStructs :: [(String,TypeExpr)],
> defUnions :: [(String,TypeExpr)],
> defEnums :: [(String, [(String, Int)])] }
> compileAlgebra :: FoFConst (Binding -> (ILFoF, Binding)) ->
> (Binding -> (ILFoF, Binding))