aboutsummaryrefslogtreecommitdiff
path: root/core/scopes.nom
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2018-11-11 15:50:46 -0800
committerBruce Hill <bruce@bruce-hill.com>2018-11-11 15:50:46 -0800
commit4efe44ed271aeed8e25e909344788d92a0d9f82b (patch)
tree73766440b53031d4fc8210dbe3b0aece47e6b852 /core/scopes.nom
parentba03cb67c3c8ba53451eba25dd2186f095cd1db2 (diff)
Fully upgraded to 4.10.12.7, including deprecating the old list/dict
comprehension methods, in favor of the new native support.
Diffstat (limited to 'core/scopes.nom')
-rw-r--r--core/scopes.nom26
1 files changed, 9 insertions, 17 deletions
diff --git a/core/scopes.nom b/core/scopes.nom
index bd8b8a6..009728b 100644
--- a/core/scopes.nom
+++ b/core/scopes.nom
@@ -1,7 +1,7 @@
-#!/usr/bin/env nomsu -V4.8.10
+#!/usr/bin/env nomsu -V4.10.12.7
#
This file contains definitions pertaining to variable scoping
-
+
use "core/metaprogramming.nom"
use "core/operators.nom"
use "core/collections.nom"
@@ -14,34 +14,26 @@ test:
with local %x:
%x = "inner"
assume (%x == "inner")
-
assume (%x == "outer")
externally (foo) means "outer foo"
with local [(foo)'s meaning]:
externally (foo) means "inner foo"
assume ((foo) == "inner foo")
-
assume ((foo) == "outer foo")
+
[with local %locals %body, with local %locals do %body] all compile to:
%body_lua = (%body as lua)
if %locals.type is:
"Dict":
- %body_lua = (..)
- Lua "\
- ..\(what (<- %locals) compiles to)
- \%body_lua"
-
- %body_lua::declare locals ("\(%.1 as lua)" for % in %locals)
+ %body_lua = (Lua "\(what (<- %locals) compiles to)\n\%body_lua")
+ %body_lua::declare locals [: for % in %locals: add "\(%.1 as lua)"]
"List":
- %body_lua::declare locals ("\(% as lua)" for % in %locals)
+ %body_lua::declare locals [: for % in %locals: add "\(% as lua)"]
+
"Var" "Action":
%body_lua::declare locals ["\(%locals as lua)"]
+
else:
compile error at %locals "Unexpected local value"
-
- return (..)
- Lua "\
- ..do
- \%body_lua
- end"
+ return (Lua "do\n \%body_lua\nend")