Skip to content

Commit 78a4857

Browse files
committed
feat: update syntax dump tests for new shell & error handling syntax
We're redoing Rad's shell and error handling syntax. Right now, we have a 'prefix catch' syntax like this, for non-shell cases: a = catch parse_int("two") if type_of(a) == "error": // handle error ... This isn't great. On top of that, error handling for shell commands looks different (and unique): $`curl {url}` recover: // handle error & recover or you can use the 'unsafe' keyword, or 'fail', or '$!', etc. It all adds to Rad's learning curve. We want syntax that unifies error handling for shell and non-shell cases alike, and make it quicker to handle them in general. We move to a 'catch suffix' approach instead: a = parse_int("two") catch: // handle error case... $`curl {url}` catch: // handle error case... We also add a 'fallback' operator for the common pattern of falling back to some other value if an operation errors:   port = parse_int(input_port) ?? 8080 This commit simply updates our tree-sitter-rad dependency and updates our dump tests with the new grammar, updating the tests as appropriate.
1 parent a4a6040 commit 78a4857

File tree

88 files changed

+7391
-6389
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+7391
-6389
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/amterp/go-tbl v0.12.0
1010
github.com/amterp/jsoncolor v0.4.0
1111
github.com/amterp/ra v0.4.1
12-
github.com/amterp/tree-sitter-rad v0.1.11
12+
github.com/amterp/tree-sitter-rad v0.1.12
1313
github.com/charmbracelet/huh v0.7.0
1414
github.com/dustin/go-humanize v1.0.1
1515
github.com/google/uuid v1.6.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ github.com/amterp/jsoncolor v0.4.0 h1:X8QegRunhKC0HZ4PBQbUsSa5mfMqMIai9a3ipQbi+u
1212
github.com/amterp/jsoncolor v0.4.0/go.mod h1:/tXCJaCsrNNd8QpW/hqc0uz1yT2VzzaTbk9svkczlDM=
1313
github.com/amterp/ra v0.4.1 h1:ujk4z8Kar/ePm/SEWP4Yqj3iLzHqCB65zk2BblVotUA=
1414
github.com/amterp/ra v0.4.1/go.mod h1:qJArkWMZ8kLiC1a4uavxpWlqvuUSopSmY8GZBLhwdP8=
15-
github.com/amterp/tree-sitter-rad v0.1.11 h1:f4qtBqxbTRkAxQda1k76FL1SlddpaVmFoSZIqSBymyM=
16-
github.com/amterp/tree-sitter-rad v0.1.11/go.mod h1:fR5N3qdLIGrvgyu037DuBYHgVdQM+PtvK0X9JWDAkgw=
15+
github.com/amterp/tree-sitter-rad v0.1.12 h1:cL/5lsKDi6RPIEUE0aSgJ/n6hMHU9F6NYsGlqgI43EE=
16+
github.com/amterp/tree-sitter-rad v0.1.12/go.mod h1:fR5N3qdLIGrvgyu037DuBYHgVdQM+PtvK0X9JWDAkgw=
1717
github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
1818
github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
1919
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=

rts/test/dumps/cases/args_constraints.dump

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,8 @@ B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: compare_expr
8484
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: add_expr
8585
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: mult_expr
8686
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: unary_expr
87-
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: indexed_expr
88-
B: [180, 181] PS: [8, 4] PE: [8, 5] root: primary_expr
89-
B: [180, 181] PS: [8, 4] PE: [8, 5] literal
90-
B: [180, 181] PS: [8, 4] PE: [8, 5] int `2`
87+
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: fallback_expr
88+
B: [180, 181] PS: [8, 4] PE: [8, 5] delegate: indexed_expr
89+
B: [180, 181] PS: [8, 4] PE: [8, 5] root: primary_expr
90+
B: [180, 181] PS: [8, 4] PE: [8, 5] literal
91+
B: [180, 181] PS: [8, 4] PE: [8, 5] int `2`

rts/test/dumps/cases/args_decl.dump

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: compare_expr
3232
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: add_expr
3333
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: mult_expr
3434
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: unary_expr
35-
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: indexed_expr
36-
B: [50, 51] PS: [3, 4] PE: [3, 5] root: primary_expr
37-
B: [50, 51] PS: [3, 4] PE: [3, 5] literal
38-
B: [50, 51] PS: [3, 4] PE: [3, 5] int `2`
35+
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: fallback_expr
36+
B: [50, 51] PS: [3, 4] PE: [3, 5] delegate: indexed_expr
37+
B: [50, 51] PS: [3, 4] PE: [3, 5] root: primary_expr
38+
B: [50, 51] PS: [3, 4] PE: [3, 5] literal
39+
B: [50, 51] PS: [3, 4] PE: [3, 5] int `2`

rts/test/dumps/cases/args_decl_complete.dump

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: compare_expr
6666
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: add_expr
6767
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: mult_expr
6868
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: unary_expr
69-
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: indexed_expr
70-
B: [125, 126] PS: [5, 4] PE: [5, 5] root: primary_expr
71-
B: [125, 126] PS: [5, 4] PE: [5, 5] literal
72-
B: [125, 126] PS: [5, 4] PE: [5, 5] int `2`
69+
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: fallback_expr
70+
B: [125, 126] PS: [5, 4] PE: [5, 5] delegate: indexed_expr
71+
B: [125, 126] PS: [5, 4] PE: [5, 5] root: primary_expr
72+
B: [125, 126] PS: [5, 4] PE: [5, 5] literal
73+
B: [125, 126] PS: [5, 4] PE: [5, 5] int `2`

rts/test/dumps/cases/assign.dump

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: compare_expr
1919
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: add_expr
2020
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: mult_expr
2121
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: unary_expr
22-
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: indexed_expr
23-
B: [ 4, 5] PS: [0, 4] PE: [0, 5] root: primary_expr
24-
B: [ 4, 5] PS: [0, 4] PE: [0, 5] literal
25-
B: [ 4, 5] PS: [0, 4] PE: [0, 5] int `1`
22+
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: fallback_expr
23+
B: [ 4, 5] PS: [0, 4] PE: [0, 5] delegate: indexed_expr
24+
B: [ 4, 5] PS: [0, 4] PE: [0, 5] root: primary_expr
25+
B: [ 4, 5] PS: [0, 4] PE: [0, 5] literal
26+
B: [ 4, 5] PS: [0, 4] PE: [0, 5] int `1`
2627
B: [ 6, 14] PS: [1, 0] PE: [1, 8] assign
2728
B: [ 6, 10] PS: [1, 0] PE: [1, 4] left: var_path
2829
B: [ 6, 7] PS: [1, 0] PE: [1, 1] root: identifier `a`
@@ -35,10 +36,11 @@ B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: compare_expr
3536
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: add_expr
3637
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: mult_expr
3738
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: unary_expr
38-
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: indexed_expr
39-
B: [ 8, 9] PS: [1, 2] PE: [1, 3] root: primary_expr
40-
B: [ 8, 9] PS: [1, 2] PE: [1, 3] literal
41-
B: [ 8, 9] PS: [1, 2] PE: [1, 3] int `0`
39+
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: fallback_expr
40+
B: [ 8, 9] PS: [1, 2] PE: [1, 3] delegate: indexed_expr
41+
B: [ 8, 9] PS: [1, 2] PE: [1, 3] root: primary_expr
42+
B: [ 8, 9] PS: [1, 2] PE: [1, 3] literal
43+
B: [ 8, 9] PS: [1, 2] PE: [1, 3] int `0`
4244
B: [ 9, 10] PS: [1, 3] PE: [1, 4] ] `]`
4345
B: [11, 12] PS: [1, 5] PE: [1, 6] = `=`
4446
B: [13, 14] PS: [1, 7] PE: [1, 8] right: expr
@@ -49,10 +51,11 @@ B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: compare_expr
4951
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: add_expr
5052
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: mult_expr
5153
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: unary_expr
52-
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: indexed_expr
53-
B: [13, 14] PS: [1, 7] PE: [1, 8] root: primary_expr
54-
B: [13, 14] PS: [1, 7] PE: [1, 8] literal
55-
B: [13, 14] PS: [1, 7] PE: [1, 8] int `2`
54+
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: fallback_expr
55+
B: [13, 14] PS: [1, 7] PE: [1, 8] delegate: indexed_expr
56+
B: [13, 14] PS: [1, 7] PE: [1, 8] root: primary_expr
57+
B: [13, 14] PS: [1, 7] PE: [1, 8] literal
58+
B: [13, 14] PS: [1, 7] PE: [1, 8] int `2`
5659
B: [15, 24] PS: [2, 0] PE: [2, 9] assign
5760
B: [15, 20] PS: [2, 0] PE: [2, 5] left: var_path
5861
B: [15, 16] PS: [2, 0] PE: [2, 1] root: identifier `a`
@@ -69,10 +72,11 @@ B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: compare_expr
6972
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: add_expr
7073
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: mult_expr
7174
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: unary_expr
72-
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: indexed_expr
73-
B: [23, 24] PS: [2, 8] PE: [2, 9] root: primary_expr
74-
B: [23, 24] PS: [2, 8] PE: [2, 9] literal
75-
B: [23, 24] PS: [2, 8] PE: [2, 9] int `3`
75+
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: fallback_expr
76+
B: [23, 24] PS: [2, 8] PE: [2, 9] delegate: indexed_expr
77+
B: [23, 24] PS: [2, 8] PE: [2, 9] root: primary_expr
78+
B: [23, 24] PS: [2, 8] PE: [2, 9] literal
79+
B: [23, 24] PS: [2, 8] PE: [2, 9] int `3`
7680
B: [25, 40] PS: [3, 0] PE: [3, 15] assign
7781
B: [25, 36] PS: [3, 0] PE: [3, 11] left: var_path
7882
B: [25, 26] PS: [3, 0] PE: [3, 1] root: identifier `a`
@@ -85,10 +89,11 @@ B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: compare_expr
8589
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: add_expr
8690
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: mult_expr
8791
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: unary_expr
88-
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: indexed_expr
89-
B: [27, 28] PS: [3, 2] PE: [3, 3] root: primary_expr
90-
B: [27, 28] PS: [3, 2] PE: [3, 3] literal
91-
B: [27, 28] PS: [3, 2] PE: [3, 3] int `0`
92+
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: fallback_expr
93+
B: [27, 28] PS: [3, 2] PE: [3, 3] delegate: indexed_expr
94+
B: [27, 28] PS: [3, 2] PE: [3, 3] root: primary_expr
95+
B: [27, 28] PS: [3, 2] PE: [3, 3] literal
96+
B: [27, 28] PS: [3, 2] PE: [3, 3] int `0`
9297
B: [28, 29] PS: [3, 3] PE: [3, 4] ] `]`
9398
B: [29, 30] PS: [3, 4] PE: [3, 5] . `.`
9499
B: [30, 31] PS: [3, 5] PE: [3, 6] indexing: identifier `b`
@@ -101,14 +106,15 @@ B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: compare_expr
101106
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: add_expr
102107
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: mult_expr
103108
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: unary_expr
104-
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: indexed_expr
105-
B: [32, 35] PS: [3, 7] PE: [3, 10] root: primary_expr
106-
B: [32, 35] PS: [3, 7] PE: [3, 10] literal
107-
B: [32, 35] PS: [3, 7] PE: [3, 10] string
108-
B: [32, 33] PS: [3, 7] PE: [3, 8] start: string_start `"`
109-
B: [33, 34] PS: [3, 8] PE: [3, 9] contents: string_contents
110-
B: [33, 34] PS: [3, 8] PE: [3, 9] content: string_content `c`
111-
B: [34, 35] PS: [3, 9] PE: [3, 10] end: string_end `"`
109+
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: fallback_expr
110+
B: [32, 35] PS: [3, 7] PE: [3, 10] delegate: indexed_expr
111+
B: [32, 35] PS: [3, 7] PE: [3, 10] root: primary_expr
112+
B: [32, 35] PS: [3, 7] PE: [3, 10] literal
113+
B: [32, 35] PS: [3, 7] PE: [3, 10] string
114+
B: [32, 33] PS: [3, 7] PE: [3, 8] start: string_start `"`
115+
B: [33, 34] PS: [3, 8] PE: [3, 9] contents: string_contents
116+
B: [33, 34] PS: [3, 8] PE: [3, 9] content: string_content `c`
117+
B: [34, 35] PS: [3, 9] PE: [3, 10] end: string_end `"`
112118
B: [35, 36] PS: [3, 10] PE: [3, 11] ] `]`
113119
B: [37, 38] PS: [3, 12] PE: [3, 13] = `=`
114120
B: [39, 40] PS: [3, 14] PE: [3, 15] right: expr
@@ -119,7 +125,8 @@ B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: compare_expr
119125
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: add_expr
120126
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: mult_expr
121127
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: unary_expr
122-
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: indexed_expr
123-
B: [39, 40] PS: [3, 14] PE: [3, 15] root: primary_expr
124-
B: [39, 40] PS: [3, 14] PE: [3, 15] literal
125-
B: [39, 40] PS: [3, 14] PE: [3, 15] int `4`
128+
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: fallback_expr
129+
B: [39, 40] PS: [3, 14] PE: [3, 15] delegate: indexed_expr
130+
B: [39, 40] PS: [3, 14] PE: [3, 15] root: primary_expr
131+
B: [39, 40] PS: [3, 14] PE: [3, 15] literal
132+
B: [39, 40] PS: [3, 14] PE: [3, 15] int `4`

rts/test/dumps/cases/assign_multi.dump

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: compare_expr
2222
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: add_expr
2323
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: mult_expr
2424
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: unary_expr
25-
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: indexed_expr
26-
B: [10, 18] PS: [0, 10] PE: [0, 18] root: primary_expr
27-
B: [10, 18] PS: [0, 10] PE: [0, 18] call
28-
B: [10, 16] PS: [0, 10] PE: [0, 16] func: identifier `myFunc`
29-
B: [16, 17] PS: [0, 16] PE: [0, 17] ( `(`
30-
B: [17, 18] PS: [0, 17] PE: [0, 18] ) `)`
25+
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: fallback_expr
26+
B: [10, 18] PS: [0, 10] PE: [0, 18] delegate: indexed_expr
27+
B: [10, 18] PS: [0, 10] PE: [0, 18] root: primary_expr
28+
B: [10, 18] PS: [0, 10] PE: [0, 18] call
29+
B: [10, 16] PS: [0, 10] PE: [0, 16] func: identifier `myFunc`
30+
B: [16, 17] PS: [0, 16] PE: [0, 17] ( `(`
31+
B: [17, 18] PS: [0, 17] PE: [0, 18] ) `)`

0 commit comments

Comments
 (0)