(75 lines)
1 #!/usr/bin/env nomsu -V7.0.02 ###3 This file defines upgrades from Nomsu <2.4 to Nomsu 2.45 use "compatibility/compatibility"7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~9 upgrade $tree to "2.4" as:10 unless ($tree is "Action" syntax tree): return11 if $tree.stub is:12 "when" "if":13 if (#$tree == 3):14 return $tree15 $conditions = []16 $new_lines = []17 $body = ($tree.2 if ($tree.2 is "Block" syntax tree) else [$tree.2])18 for $line in $body:19 when:20 (not ($line is "Action" syntax tree)):21 $new_lines, add $line23 ($line.stub == "*"):24 if (#$line == 2):25 $conditions, add $line.226 ..else:27 $new_lines, add $line29 ($line.stub == "* else"):30 $new_lines, add \(else \$line.3)32 else:33 $conditions, add $line.234 $action = $line.335 unless ($action is "Block" syntax tree):36 $action = (=lua "SyntaxTree{type='Block', source=\$action.source, \$action}")37 $conditions, add $action38 $new_lines, add39 =lua ("40 SyntaxTree{type='Action', source=\$conditions[1].source, unpack(\$conditions)}41 ")42 $conditions = []44 return \(when \("Block" tree from $tree.2.source with (unpack $new_lines)))46 "if 1 is ?" "if 1 = ?":47 $values = []48 $new_lines = []49 $body = ($tree.5 if ($tree.5 is "Block" syntax tree) else [$tree.5])50 for $line in $body:51 when:52 (not ($line is "Action" syntax tree)):53 $new_lines, add $line55 ($line.stub == "*"):56 if (#$line == 2):57 $values, add $line.258 ..else:59 $new_lines, add $line61 ($line.stub == "* else"):62 $new_lines, add \(else \$line.3)64 else:65 $values, add $line.266 $action = $line.367 unless ($action is "Block" syntax tree):68 $action = ("Block" tree with $action)69 $values, add $action70 $new_lines, add71 =lua "SyntaxTree{type='Action', source=\$values[1].source, unpack(\$values)}"72 $values = []74 return75 \(if \$tree.2 is \("Block" tree from $tree.5.source with (unpack $new_lines)))