From 0ee5b5888208dff29881869d9dc3595025b515c0 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Tue, 19 Sep 2017 00:29:31 -0700 Subject: Buncha updates to the sample code and core lib. --- core.nom | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'core.nom') diff --git a/core.nom b/core.nom index 0b0193b..54f728d 100644 --- a/core.nom +++ b/core.nom @@ -502,6 +502,19 @@ macro block: | \%list as lua expr\[\%index as lua expr\] = ret |end +macro: + append %item to %list + add %item to %list +..=: + ".."|table.insert(\%list as lua expr\, \%item as lua expr\) + +rule: flatten %lists ..=: + %flat =: [] + for %list in %lists: + for %item in %list: + add %item to %flat + %flat + macro: %item is in %list %list contains %item @@ -521,6 +534,14 @@ rule: dict %items ..=: lua block "vars.dict[vars.pair[1]] = vars.pair[2]" return: %dict +rule: entries in %dict ..=: + lua block ".." + |local items = {} + |for k,v in pairs(vars.dict) do + | table.insert(items, {key=k,value=v}) + |end + |return items + # Permission functions rule: restrict %fn to within %whitelist ..=: lua block ".." -- cgit v1.2.3