From a387fd86a870bd1a34f206ec89c32d9d5c4d1c77 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 31 Jan 2018 15:31:06 -0800 Subject: Added colons for aesthetics. --- lib/operators.nom | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'lib/operators.nom') diff --git a/lib/operators.nom b/lib/operators.nom index 670e7b7..5d5a7a8 100644 --- a/lib/operators.nom +++ b/lib/operators.nom @@ -4,7 +4,7 @@ use "lib/metaprogramming.nom" # Indexing: -immediately +immediately: #.. NOTE!!! It's critical that there are spaces around %key if it's a string, otherwise, Lua will get confused and interpret %obj[[[foo]]] as %obj("[foo]") instead of %obj[ "foo" ]. @@ -14,7 +14,7 @@ immediately compile [..] %obj' %key, %obj's %key, %key in %obj, %key'th in %obj, %key of %obj, %key st in %obj, %key nd in %obj, %key rd in %obj, %key th in %obj, - ..to + ..to: lua> ".." local obj_lua = \(%obj as lua expr); if not obj_lua:sub(-1,-1):match("[a-zA-Z)]") then @@ -31,13 +31,13 @@ immediately return {expr=obj_lua.."["..key_lua.."]"}; # Comparison Operators -immediately +immediately: compile [%x < %y] to {expr:"(\(%x as lua expr) < \(%y as lua expr))"} compile [%x > %y] to {expr:"(\(%x as lua expr) > \(%y as lua expr))"} compile [%x <= %y] to {expr:"(\(%x as lua expr) <= \(%y as lua expr))"} compile [%x >= %y] to {expr:"(\(%x as lua expr) >= \(%y as lua expr))"} # TODO: optimize case of [%x,%y] = [1,2] - compile [%a is %b, %a = %b, %a == %b] to + compile [%a is %b, %a = %b, %a == %b] to: lua> ".." local safe = {Text=true, Number=true}; local a_lua, b_lua = nomsu:tree_to_lua(\%a).expr, nomsu:tree_to_lua(\%b).expr; @@ -46,7 +46,7 @@ immediately else return {expr="utils.equivalent("..a_lua..", "..b_lua..")"}; end - compile [%a isn't %b, %a is not %b, %a not= %b, %a != %b] to + compile [%a isn't %b, %a is not %b, %a not= %b, %a != %b] to: lua> ".." local safe = {Text=true, Number=true}; local a_lua, b_lua = nomsu:tree_to_lua(\%a).expr, nomsu:tree_to_lua(\%b).expr; @@ -59,8 +59,8 @@ immediately compile [%'s id, id of %] to {expr:"nomsu.ids[\(% as lua expr)]"} # Variable assignment operator -immediately - compile [%var <- %value] to +immediately: + compile [%var <- %value] to: lua> "local \%var_lua = nomsu:tree_to_lua(\%var);" assume (%var_lua's "expr") or barf "Invalid target for assignment: \(%var's source code)" lua> "local \%value_lua = nomsu:tree_to_lua(\%value);" @@ -69,9 +69,9 @@ immediately statements:"\(%var_lua's "expr") = \(%value_lua's "expr");" locals: =lua "(\%var.type == 'Var' and {\%var_lua.expr} or nil)" -immediately +immediately: # Simultaneous mutli-assignments like: x,y,z = 1,x,3; - compile [<- %assignments] to + compile [<- %assignments] to: %locals <- [] %targets <- [] %values <- [] @@ -93,15 +93,15 @@ immediately utils.deduplicate(\%locals); return {locals=\%locals, statements=(table.concat(\%targets, ", ").." = "..table.concat(\%values, ", ")..";")}; -immediately - compile [export %var <- %value] to +immediately: + compile [export %var <- %value] to: %var_lua <- (%var as lua) assume (%var_lua's "expr") or barf "Invalid target for assignment: \(%var's source code)" %value_lua <- (%value as lua) assume (%value_lua's "expr") or barf "Invalid value for assignment: \(%value's source code)" return {statements:"\(%var_lua's "expr") = \(%value_lua's "expr");"} - compile [exporting %exported %body] to + compile [exporting %exported %body] to: %body_lua <- (%body as lua) %leftover_locals <- (=lua "{unpack(\%body_lua.locals or {})}") assume ((%exported's "type") = "List") or barf ".." @@ -116,7 +116,7 @@ immediately end return {locals:%leftover_locals, statements:=lua "\%body_lua.statements or (\%body_lua.expr..';')"} - compile [with %assignments %body] to + compile [with %assignments %body] to: %body_lua <- (%body as lua) %locals <- [] %declarations <- [] @@ -158,7 +158,7 @@ immediately %s end]]):format(locals_code, declaration_code, \%body_lua.statements or (\%body_lua.expr..";"))}; -immediately +immediately: # Math Operators compile [%x + %y] to {expr:"(\(%x as lua expr) + \(%y as lua expr))"} compile [%x - %y] to {expr:"(\(%x as lua expr) - \(%y as lua expr))"} @@ -198,7 +198,7 @@ immediately compile [not %] to {expr:"(not \(% as lua expr))"} # Update operators -immediately +immediately: parse [%var + <- %, %var +<- %] as: %var <- (%var + %) parse [%var - <- %, %var -<- %] as: %var <- (%var - %) parse [%var * <- %, %var *<- %] as: %var <- (%var * %) -- cgit v1.2.3