diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2018-10-29 13:00:08 -0700 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2018-10-29 13:00:30 -0700 |
| commit | 23abab4f809e8d4b825746580082292db700036b (patch) | |
| tree | 8eb95a3b781547abedadd08705a6e6291662737c /core | |
| parent | be1df7ccd3fb5352ca666129aee93c56b5b27b40 (diff) | |
Some cleanups and fixes, made the parser more permissive of prematurely
terminated files.
Diffstat (limited to 'core')
| -rw-r--r-- | core/control_flow.nom | 4 | ||||
| -rw-r--r-- | core/metaprogramming.nom | 2 | ||||
| -rw-r--r-- | core/operators.nom | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/core/control_flow.nom b/core/control_flow.nom index 48b9c85..37b2b9c 100644 --- a/core/control_flow.nom +++ b/core/control_flow.nom @@ -53,7 +53,7 @@ compile [..] %when_true_expr if %condition otherwise %when_false_expr %when_false_expr unless %condition else %when_true_expr %when_false_expr unless %condition then %when_true_expr -..to (..) +..to: # If %when_true_expr is guaranteed to be truthy, we can use Lua's idiomatic equivalent of a conditional expression: (cond and if_true or if_false) if {Text:yes, List:yes, Dict:yes, Number:yes}.(%when_true_expr.type): @@ -541,7 +541,7 @@ test: assume (sorted %flat) == [1, 2, 3, 4, 5, 6] # Recurion control flow -compile [for %var in recursive %structure %body] to (..) +compile [for %var in recursive %structure %body] to: with local compile actions: define mangler compile [recurse %v on %x] to (..) diff --git a/core/metaprogramming.nom b/core/metaprogramming.nom index 6a457d9..d85c1ad 100644 --- a/core/metaprogramming.nom +++ b/core/metaprogramming.nom @@ -231,7 +231,7 @@ compile [%tree as nomsu] to (..) Lua value "nomsu:tree_to_nomsu(\(%tree as lua expr))" compile [%tree as inline nomsu] to (..) - Lua value "nomsu:tree_to_nomsu(\(%tree as lua expr), true)" + Lua value "nomsu:tree_to_inline_nomsu(\(%tree as lua expr), true)" action [%var as lua identifier, %var as lua id] (..) lua> "\ diff --git a/core/operators.nom b/core/operators.nom index 960440e..55756bb 100644 --- a/core/operators.nom +++ b/core/operators.nom @@ -157,7 +157,7 @@ compile [with %assignments %body] to: test: assume ((5 wrapped around 2) == 1) or barf "mod not working" compile [%x wrapped around %y, %x mod %y] to (..) - Lua value "(\(%x as lua expr) % \(%y as lua expr))" + Lua value "((\(%x as lua expr)) % (\(%y as lua expr)))" # 3-part chained comparisons # (uses a lambda to avoid re-evaluating middle value, while still being an expression) |
