diff options
Diffstat (limited to 'core/scopes.nom')
| -rw-r--r-- | core/scopes.nom | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/core/scopes.nom b/core/scopes.nom index 19b9e49..256ddd5 100644 --- a/core/scopes.nom +++ b/core/scopes.nom @@ -1,4 +1,4 @@ -#!/usr/bin/env nomsu -V1 +#!/usr/bin/env nomsu -V2.2.4.3 # This file contains definitions pertaining to variable scoping @@ -6,28 +6,21 @@ use "core/metaprogramming.nom" use "core/operators.nom" use "core/collections.nom" use "core/control_flow.nom" - -compile [with local %locals %body, with local %locals do %body] to +compile [with local %locals %body, with local %locals do %body] to: %body_lua <- (%body as lua statements) - when %locals.type = ? - * "Dict" - %body_lua <- - Lua ".." - \(compile as: <- %locals) - \%body_lua - declare locals - "\(%.1 as lua)" for % in %locals - .. in %body_lua - * "List" - declare locals - "\(% as lua)" for % in %locals - .. in %body_lua + when %locals.type = ?: + * "Dict": + %body_lua <- (Lua "\(compile as (<- %locals))\n\%body_lua") + declare locals ("\(%.1 as lua)" for % in %locals) in %body_lua + + * "List": + declare locals ("\(% as lua)" for % in %locals) in %body_lua * "Var" - * "Action" + * "Action": declare locals ["\(%locals as lua)"] in %body_lua - * else - barf "Unexpected local: \(%locals as nomsu)" - return + *else (barf "Unexpected local: \(%locals as nomsu)") + + return (..) Lua ".." do \%body_lua |
