From 63ed265157de8ff91dee606b0e61e52214a4083b Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 2 Oct 2017 19:00:58 -0700 Subject: More progress towards making everything work. --- lib/collections.nom | 2 +- lib/metaprogramming.nom | 3 ++- lib/permissions.nom | 2 +- lib/secrets.nom | 7 ++++--- lib/utils.nom | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/collections.nom b/lib/collections.nom index 61ae71d..43dfb08 100644 --- a/lib/collections.nom +++ b/lib/collections.nom @@ -67,7 +67,7 @@ compile [..] %index rd in %list = %new_value, %index th in %list = %new_value, %index in %list = %new_value %list -> %index = %new_value ..to code: - "(\(%list as lua))[\(%index as lua)] = \(%new_value as lua)" + "(\(%list as lua))[\(%index as lua)] = \(%new_value as lua);" compile [append %item to %list, add %item to %list] to: "table.insert(\(%list as lua), \(%item as lua))" diff --git a/lib/metaprogramming.nom b/lib/metaprogramming.nom index 12144b4..4924e78 100644 --- a/lib/metaprogramming.nom +++ b/lib/metaprogramming.nom @@ -44,7 +44,8 @@ rule [escaped compile %macro_def to code %body] =: parse [compile %macro_def to %body] as: escaped compile \%macro_def to \%body parse [compile %macro_def to code %body] as: escaped compile \%macro_def to code \%body -rule [do %] =: % +rule [do %] =: + lua expr "\(%)(nomsu, vars)" rule [%tree as lua] =: lua expr "nomsu:tree_to_lua(\(%tree))" diff --git a/lib/permissions.nom b/lib/permissions.nom index a2fffff..bb39ac9 100644 --- a/lib/permissions.nom +++ b/lib/permissions.nom @@ -17,7 +17,7 @@ rule [restrict %rules to within %elite-rules] =: assert (nomsu "check_permission" [%]) ".." |You do not have permission to restrict permissions for function: \(%) ((nomsu) ->* ["defs",%rule,"whiteset"]) = (..) - dict: [%, yes] for all %elite-rules + dict ([%, yes] for all %elite-rules) rule [allow %elite-rules to use %rules] =: %rules = (standardize rules %rules) diff --git a/lib/secrets.nom b/lib/secrets.nom index 4c3dca6..76bf6b3 100644 --- a/lib/secrets.nom +++ b/lib/secrets.nom @@ -2,14 +2,14 @@ require "lib/core.nom" compile [with secrets %block] to code: ".." |do; - | local secrets = {} + | local secrets = {}; | \(%block as lua statements) |end; # Access the lua variable that should be within scope compile [secrets] to: "secrets" -compile [secret %key; secret value of %key; secret value for %key] to: +compile [secret %key, secret value of %key, secret value for %key] to: assert ((%key's "type") == "Var") ".." |Wrong type, expected Var, but got: \(%key's "type") "secrets[\(repr (%key's "value"))]" @@ -17,6 +17,7 @@ compile [secret %key; secret value of %key; secret value for %key] to: compile [secret %key = %new_value] to code: assert ((%key's "type") == "Var") ".." |Wrong type, expected Var, but got: \(%key's "type") - "secrets[\(repr (%key's "value"))] = \(%new_value as lua)" + "secrets[\(repr (%key's "value"))] = \(%new_value as lua);" rule [rules about secrecy] =: ["with secrets %"] + diff --git a/lib/utils.nom b/lib/utils.nom index 02d3732..608e72f 100644 --- a/lib/utils.nom +++ b/lib/utils.nom @@ -23,7 +23,7 @@ compile [capitalize %str, %str capitalized] to: "(\(%str as lua)):gsub('%l', string.upper, 1)" compile [say %str] to: ".." - |nomsu:writeln(\(%str as lua)) + |nomsu:writeln(nomsu.utils.repr_if_not_string(\(%str as lua))) # Number ranges compile [%start to %stop by %step, %start to %stop via %step] to: ".." -- cgit v1.2.3