aboutsummaryrefslogtreecommitdiff
path: root/compatibility/4.11.nom
blob: 38751d94340a5fc9d4ecc6fff526febfd7a8eb24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env nomsu -V5.12.12.8
#
    This file defines upgrades from Nomsu <4.11 to Nomsu 4.11
    (overhaul of function literals, deleting (if all of ...), etc. shorthand)
    
use "compatibility/compatibility.nom"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Overhaul of function literals:
upgrade action "call 1 with" to "4.11" via (..)
    for ($tree $end_version):
        $tree2 = {type: "Action", source: $tree.source, 1: $tree.2}
        for $arg in $tree.4 at $i:
            $tree2.($i + 1) = $arg
        return (SyntaxTree $tree2)
upgrade action (-> $yield_value) to "4.11" as (yield $yield_value)

# Replace set {%x:1, %y:2} with [%x, %y] = [1, 2]
upgrade action "set" to "4.11" via (..)
    for ($tree $end_version):
        [$lhs, $rhs] = [\[], \[]]
        $lhs.source = $tree.2.source
        $rhs.source = $tree.2.source
        for $entry in $tree.2 at $i:
            $lhs.$i = $entry.1
            $rhs.$i = $entry.2
        return (SyntaxTree {type: "Action", source: $tree.source, 1: $lhs, 2: "=", 3: $rhs})

upgrade action "1 with 2 ~>" to "4.11" via (..)
    for $tree:
        compile error at $tree "This method has been deprecated." \
        .."Perhaps this could be use %tree::map instead."

# Changing filesystem API:
upgrade action (for file $f in $path $body) to "4.11" as (..)
    for $f in (files for $path) $body

upgrade action ($expr for file $f in $path) to "4.11" as [..]
    : for $f in (files for $path): add $expr

upgrade action (line $n in $text) to "4.11" as ($text|line $n)
upgrade action (line number of $pos in $text) to "4.11" as (..)
    $text|line number at $pos

# Deduplicating goto labels:
upgrade action [=== $label ===, *** $label ***] to "4.11" as (--- $label ---)
upgrade action [===stop $label ===, ***stop $label ***] to "4.11" as (..)
    ---stop $label ---

upgrade action [===next $label ===, ***next $label ***] to "4.11" as (..)
    ---next $label ---

# Deprecating shorthand functions:
upgrade action [if all of $items $body, if all of $items then $body] to "4.11" as (..)
    if (all of $items) $body

upgrade action [unless all of $items $body, unless all of $items then $body] to \
.."4.11" as (if (not (all of $items)) $body)

upgrade action [if any of $items $body, if any of $items then $body] to "4.11" as (..)
    if (any of $items) $body

upgrade action [unless any of $items $body, unless any of $items then $body] to \
.."4.11" as (if (not (any of $items)) $body)

upgrade action [if none of $items $body, if none of $items then $body] to "4.11" \
..as (if (not (any of $items)) $body)

upgrade action [unless none of $items $body, unless none of $items then $body] to \
.."4.11" as (if (any of $items) $body)

upgrade action [..]
    if all of $items $body else $else, if all of $items then $body else $else
..to "4.11" as (if (all of $items) $body else $else)

upgrade action [..]
    unless all of $items $body else $else, unless all of $items then $body else $else
..to "4.11" as (if (not (all of $items)) $body else $else)

upgrade action [..]
    if any of $items $body else $else, if any of $items then $body else $else
..to "4.11" as (if (any of $items) $body else $else)

upgrade action [..]
    unless any of $items $body else $else, unless any of $items then $body else $else
..to "4.11" as (if (not (any of $items)) $body else $else)

upgrade action [..]
    if none of $items $body else $else, if none of $items then $body else $else
..to "4.11" as (if (not (any of $items)) $body else $else)

upgrade action [..]
    unless none of $items $body else $else, unless none of $items then $body else $else
..to "4.11" as (if (any of $items) $body else $else)