Skip to content

Commit 79d0d30

Browse files
committed
if a variable does not exist in an assignment, it will be created automatically
1 parent 2fdff20 commit 79d0d30

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

environment.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ func (env *Environment) Get(name string, exp *Expr) interface{} {
3636

3737
func (env *Environment) Set(name string, value interface{}, exp *Expr) interface{} {
3838
scope := env.Lookup(name)
39-
if scope == nil && env.parent != nil {
40-
Error(exp, "Undefined variable '%s'", name)
41-
}
39+
// if scope == nil && env.parent != nil {
40+
// Error(exp, "Undefined variable '%s'", name)
41+
// }
4242
if scope != nil {
4343
scope.vars[name] = value
4444
} else {

example/test.rune

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
foo = "bar"
2+
exit()
3+
4+
testFun = fun() {
5+
foo = "bar"
6+
println(foo)
7+
}
8+
9+
testFun()
10+
11+
exit()
112
fibonacci = fun(n) {
213
if n <= 0 then return = 0
314
elif n == 1 then return = 1

0 commit comments

Comments
 (0)