aboutsummaryrefslogtreecommitdiff
path: root/core/metaprogramming.nom
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-07-13 14:30:32 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-07-13 14:30:39 -0700
commit01a4f36398bfe66a7286a83fdd797c8b20541681 (patch)
treeb2ef8fc3ff0459295d6165832f62f06d0dca3055 /core/metaprogramming.nom
parent84c0058e69a18d5aec0ca4641725e87eddf4362f (diff)
Minor changes.
Diffstat (limited to 'core/metaprogramming.nom')
-rw-r--r--core/metaprogramming.nom25
1 files changed, 4 insertions, 21 deletions
diff --git a/core/metaprogramming.nom b/core/metaprogramming.nom
index 5a80c64..631a869 100644
--- a/core/metaprogramming.nom
+++ b/core/metaprogramming.nom
@@ -85,8 +85,6 @@ compile [local action %actions %body] to
end
return lua
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
compile [action %actions %body] to
lua> ".."
local lua = \(compile as: local action %actions %body)
@@ -96,8 +94,6 @@ compile [action %actions %body] to
compile [action %action] to
Lua value "A\(%action.stub as lua id)"
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
compile [parse %actions as %body] to
lua> ".."
local replacements = {}
@@ -123,14 +119,8 @@ compile [parse %actions as %body] to
local ret = \(compile as: compile %actions to %new_body)
return ret
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-lua> ".."
- COMPILE_ACTIONS["% as lua expr"] = function(nomsu, tree, _t)
- return LuaCode.Value(tree.source, "nomsu:compile(", nomsu:compile(_t):as_expr(), "):as_expr()")
- end
-#
- compile [%tree as lua expr] to
- Lua value "nomsu:compile(\(=lua "nomsu:compile(\%tree):as_expr()")):as_expr()"
+compile [%tree as lua expr] to
+ Lua value "nomsu:compile(\(=lua "nomsu:compile(\%tree):as_expr()")):as_expr()"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compile [%tree as lua] to
@@ -159,8 +149,6 @@ action [%var as lua identifier, %var as lua id]
elseif \%var.type == 'Action' then return "A"..string.as_lua_id(\%var.stub)
end
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
compile [% is syntax tree] to
Lua value "AST.is_syntax_tree(\(% as lua expr))"
@@ -201,8 +189,6 @@ compile [quote %s] to
repr(\(%s as lua expr))
compile [type of %obj] to: Lua value "type(\(%obj as lua expr))"
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
compile [parse %text] to
Lua value ".."
nomsu:parse(NomsuCode("\("\(%text.source)")", \(%text as lua expr)))
@@ -212,7 +198,7 @@ compile [parse %text from %filename] to
nomsu:parse(NomsuCode(Source(\(%filename as lua expr), 1, #\(%text as lua expr)), \(%text as lua expr)))
compile [run %nomsu_code] to
- Lua value "nomsu:run(NomsuCode(\(quote "\(%nomsu_code.source)"), \(%nomsu_code as lua expr)))"
+ Lua value "nomsu:run(\(%nomsu_code as lua expr), \(=lua "repr(tostring(\(%nomsu_code.source)))"))"
action [run tree %tree, %tree as value]
lua> ".."
@@ -236,8 +222,7 @@ compile [core version] to: Lua value "NOMSU_CORE_VERSION"
compile [lib version] to: Lua value "NOMSU_LIB_VERSION"
compile [command line args] to: Lua value "arg"
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
+~~~~
compile [with local compile actions %body] to
Lua ".."
do
@@ -245,8 +230,6 @@ compile [with local compile actions %body] to
\(%body as lua statements)
end
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
action [Nomsu version]
use "lib/version.nom"
return "\(Nomsu syntax version).\(core version).\(Nomsu compiler version).\(lib version)"