You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
396 B
Go
23 lines
396 B
Go
package interpreter
|
|
|
|
type environment struct {
|
|
values map[string]any
|
|
}
|
|
|
|
func newEnvironment() *environment {
|
|
return &environment{values: make(map[string]any)}
|
|
}
|
|
|
|
func (e *environment) define(name string, value any) {
|
|
e.values[name] = value
|
|
}
|
|
|
|
func (e *environment) get(name string) any {
|
|
value, ok := e.values[name]
|
|
if !ok {
|
|
panic("Undefined variable '" + name + "'.")
|
|
}
|
|
|
|
return value
|
|
}
|