diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/metaprogramming.nom | 25 |
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)" |
