16 lines
480 B
Plaintext
16 lines
480 B
Plaintext
IMPLEMENTATION Environment
|
|
|
|
IMPORT Denotation COMPLETELY
|
|
IMPORT SafeNat COMPLETELY
|
|
IMPORT Seq COMPLETELY
|
|
|
|
DATA binding == binding(key: denotation, value: safeNat)
|
|
DATA environment == environment(bindings: seq[binding])
|
|
|
|
DEF emptyenv == environment(<>)
|
|
|
|
DEF lookup(environment(<>),_) == error("Nicht gefunden")
|
|
DEF lookup(environment(binding(k,v)::S),x) == IF k=x THEN v ELSE lookup(environment(S),x) FI
|
|
|
|
DEF bind(environment(S),x,v) == environment(binding(x,v)::S)
|