aboutsummaryrefslogtreecommitdiff
path: root/compatibility/2.4.nom
diff options
context:
space:
mode:
Diffstat (limited to 'compatibility/2.4.nom')
-rw-r--r--compatibility/2.4.nom34
1 files changed, 17 insertions, 17 deletions
diff --git a/compatibility/2.4.nom b/compatibility/2.4.nom
index f26bf0d..1f87a98 100644
--- a/compatibility/2.4.nom
+++ b/compatibility/2.4.nom
@@ -9,23 +9,22 @@ use "compatibility/compatibility.nom"
upgrade %tree to "2.4" as:
unless (%tree is "Action" syntax tree): return
if %tree.stub is:
- "when %":
+ "when":
%conditions = []
%new_lines = []
%body = (..)
(%tree.2 upgraded) if (%tree.2 is "Block" syntax tree) else [%tree.2 upgraded]
for %line in %body:
- if:
- (not (%line is syntax tree)):
- compile error at %tree.source "WUT: %s"
+ when:
(not (%line is "Action" syntax tree)):
%new_lines::add %line
- (%line.stub is "* %"):
- %conditions::add %line.2
- (%line.stub == "* else %"):
+ (%line.stub is "*"):
+ if ((size of %line) == 2):
+ %conditions::add %line.2
+ ..else:
+ %new_lines::add %line
+ (%line.stub == "* else"):
%new_lines::add (\(else %block) with vars {block:%line.3})
- (%line.stub != "* % %"):
- %new_lines::add %line
else:
%conditions::add %line.2
%action = %line.3
@@ -36,23 +35,24 @@ upgrade %tree to "2.4" as:
%conditions = []
return (..)
- \(if %body) with vars {body:=lua "Block(\%tree[2].source, unpack(\%new_lines))"}
+ \(when %body) with vars {body:=lua "Block(\%tree[2].source, unpack(\%new_lines))"}
- "when % is ? %" "when % = ? %":
+ "when 1 is ?" "when 1 = ?":
%values = []
%new_lines = []
%body = (..)
(%tree.5 upgraded) if (%tree.5 is "Block" syntax tree) else [%tree.5 upgraded]
for %line in %body:
- if:
+ when:
(not (%line is "Action" syntax tree)):
%new_lines::add %line
- (%line.stub is "* %"):
- %values::add %line.2
- (%line.stub == "* else %"):
+ (%line.stub is "*"):
+ if ((size of %line) == 2):
+ %values::add %line.2
+ ..else:
+ %new_lines::add %line
+ (%line.stub == "* else"):
%new_lines::add (\(else %block) with vars {block:%line.3})
- (%line.stub != "* % %"):
- %new_lines::add %line
else:
%values::add %line.2
%action = %line.3