home
/
code
/
tiger.ml.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rough frame allocations
[tiger.ml.git]
/
compiler
/
src
/
lib
/
tiger
/
tiger_env_value.ml
diff --git
a/compiler/src/lib/tiger/tiger_env_value.ml
b/compiler/src/lib/tiger/tiger_env_value.ml
index
80f145e
..
ad27463
100644
(file)
--- a/
compiler/src/lib/tiger/tiger_env_value.ml
+++ b/
compiler/src/lib/tiger/tiger_env_value.ml
@@
-2,14
+2,20
@@
module List = ListLabels
module Map = Tiger_map
module Symbol = Tiger_symbol
module Map = Tiger_map
module Symbol = Tiger_symbol
+module Temp = Tiger_temp
+module Translate = Tiger_translate
module Type = Tiger_env_type
type t =
| Var of
module Type = Tiger_env_type
type t =
| Var of
- {ty : Type.t}
+ { access : Tiger_translate.access
+ ; ty : Tiger_env_type.t
+ }
| Fun of
| Fun of
- { formals : Type.t list
- ; result : Type.t
+ { formals : Tiger_env_type.t list
+ ; result : Tiger_env_type.t
+ ; level : Tiger_translate.Level.t
+ ; label : Tiger_temp.Label.t
}
type env =
}
type env =
@@
-29,7
+35,9
@@
let built_in =
]
|> List.map ~f:(fun (name, formals, result) ->
let key = Symbol.of_string name in
]
|> List.map ~f:(fun (name, formals, result) ->
let key = Symbol.of_string name in
- let value = Fun {formals; result} in
+ let level = Translate.Level.init in
+ let label = Temp.Label.gen () in
+ let value = Fun {formals; result; level; label} in
(key, value)
)
|> Map.of_list
(key, value)
)
|> Map.of_list
This page took
0.025362 seconds
and
4
git commands to generate.