diff options
Diffstat (limited to 'lib/metaprogramming.nom')
| -rw-r--r-- | lib/metaprogramming.nom | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/metaprogramming.nom b/lib/metaprogramming.nom index a12cfc6..4aa10e3 100644 --- a/lib/metaprogramming.nom +++ b/lib/metaprogramming.nom @@ -13,7 +13,7 @@ lua code ".." |nomsu:def(%s, %s, %s) |]]):format(nomsu:repr(canonical.src), thunk, nomsu:repr(body.src)) | if #aliases > 1 then - | lua = lua .. ([[ + | lua = lua .. "\n" .. ([[ |do | local aliased = %s | local src = %s @@ -27,8 +27,7 @@ lua code ".." |]]):format(nomsu:repr(aliases[i].src), nomsu:repr(canonical.src)) | end | lua = lua .. [[ - |end - |]] + |end]] | end | return nil, lua |end, "<source can be found in lib/metaprogramming.nom>") @@ -72,6 +71,8 @@ parse (compile %macro_def to block %body) as: escaped compile \%macro_def to cod | \(%body) |end +rule (do %) =: % + rule (%tree as lua) =: lua expr "nomsu:tree_to_lua(\(%tree))" rule (%tree as value) =: |
