aboutsummaryrefslogtreecommitdiff
path: root/nomnom/code_obj.nom
diff options
context:
space:
mode:
Diffstat (limited to 'nomnom/code_obj.nom')
-rw-r--r--nomnom/code_obj.nom28
1 files changed, 15 insertions, 13 deletions
diff --git a/nomnom/code_obj.nom b/nomnom/code_obj.nom
index 4df312e..057748f 100644
--- a/nomnom/code_obj.nom
+++ b/nomnom/code_obj.nom
@@ -163,18 +163,20 @@ object (Lua Code) extends (Code):
%statements::add %suffix
return %statements
- action [Lua Code from %tree] (..)
- Lua Code {source:%tree.source, bits:[], is_value:(no), free_vars:[]}
- action [Lua Code from %tree %bits] (..)
- Lua Code {source:%tree.source, bits:%bits, is_value:(no), free_vars:[]}
-
- action [Lua Value from %tree] (..)
- Lua Code {source:%tree.source, bits:[], is_value:(yes), free_vars:[]}
- action [Lua Value from %tree %bits] (..)
- Lua Code {source:%tree.source, bits:%bits, is_value:(yes), free_vars:[]}
+ action [Lua Code from %source {%bits:[]}]:
+ if (%bits is text): %bits = [%bits]
+ if (%source is a "Syntax Tree"): %source = %source.source
+ return (..)
+ Lua Code {source:%source, bits:%bits, is_value:(no), free_vars:[]}
+ action [Lua Value from %tree {%bits:[]}]:
+ if (%bits is text): %bits = [%bits]
+ if (%source is a "Syntax Tree"): %source = %source.source
+ return (..)
+ Lua Code {source:%source, bits:%bits, is_value:(yes), free_vars:[]}
object (Nomsu Code) extends (Code):
- action [Nomsu Code from %tree] (..)
- Nomsu Code {source:%tree.source, bits:[]}
- action [Nomsu Code from %tree %bits] (..)
- Nomsu Code {source:%tree.source, bits:%bits}
+ action [Nomsu Code from %source {%bits:[]}]:
+ if (%bits is text): %bits = [%bits]
+ if (%source is a "Syntax Tree"): %source = %source.source
+ return (..)
+ Nomsu Code {source:%source, bits:%bits}