HCoop
/
jackhill
/
mal.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
crystal: implement step3 basic functionality
[jackhill/mal.git]
/
crystal
/
env.cr
1
require "./types"
2
3
module Mal
4
5
class Env
6
property data
7
8
def initialize(@outer)
9
@data = {} of String => Mal::Type
10
end
11
12
def set(key, value)
13
@data[key] = value
14
end
15
16
def find(key)
17
return self if @data.has_key? key
18
19
o = @outer
20
if o
21
o.find key
22
else
23
nil
24
end
25
end
26
27
def get(key)
28
e = find(key)
29
raise EvalException.new "#{key} not found" unless e
30
e.data[key]
31
end
32
end
33
34
end