~repos /plum

#treesitter#compiler#wasm

git clone https://pyrossh.dev/repos/plum.git

A statically typed, imperative programming language inspired by rust, python


46223cca Peter John

2 years ago
new spec
Files changed (10) hide show
  1. grammar.js +52 -48
  2. package.json +2 -6
  3. queries/tags.scm +5 -5
  4. sample.palm +168 -0
  5. spec.gleam +193 -0
  6. src/grammar.json +390 -240
  7. src/node-types.json +222 -171
  8. src/parser.c +2630 -2942
  9. test/corpus/type.txt +0 -115
  10. test/corpus/types.txt +85 -0
grammar.js CHANGED
@@ -9,7 +9,7 @@ module.exports = grammar({
9
9
  externals: ($) => [$.quoted_content],
10
10
  rules: {
11
11
  source_file: ($) =>
12
- seq($.module, repeat($.import), repeat(choice($.type, $.function))),
12
+ seq($.module, repeat($.import), repeat(choice($.struct, $.enum, $.function))),
13
13
 
14
14
  module: ($) => seq("module", field("module", $.module_name)),
15
15
 
@@ -41,34 +41,47 @@ module.exports = grammar({
41
41
 
42
42
  /* Declarations */
43
43
 
44
- type: ($) =>
44
+ struct: ($) =>
45
45
  seq(
46
46
  "type",
47
47
  field("name", $.type_identifier),
48
- field("generics", optional($.generic_list)),
48
+ field("generics", optional($.generics)),
49
+ field("fields", seq("(", repeat($.field), ")")),
50
+ ),
51
+
52
+ enum: ($) =>
53
+ seq(
54
+ "type",
55
+ field("name", $.type_identifier),
56
+ field("generics", optional($.generics)),
57
+ field("fields", seq(
58
+ "{",
59
+ repeat(
60
+ seq(
61
+ field("name", $.type_identifier),
62
+ optional(seq(
63
+ "(",
49
- choice(
64
+ choice(
65
+ series_of($.identifier, ","),
50
- field("record", $.record),
66
+ series_of($.field, ","),
51
- field("union", seq("=", optional("|"), sep1($.union, "|")))
52
- )
67
+ ),
68
+ ")"),
69
+ ),
70
+ ),
71
+ ),
72
+ "}"
73
+ ))
53
74
  ),
54
75
 
55
76
  function: ($) =>
56
77
  seq(
57
78
  "fn",
58
79
  field("name", $.identifier),
59
- field("params", seq("(", optional(commaSep1($.type_field)), ")")),
80
+ field("params", seq("(", optional(series_of($.field, ",")), ")")),
60
- optional(seq("->", field("return_type", optional($.return_type)))),
81
+ field("return", $.return_type),
61
82
  field("body", seq("{", $._statement_seq, "}"))
62
83
  ),
63
84
 
64
- /* Shared AST nodes */
65
-
66
- // param: $ => seq(
67
- // field('name', $.variable_name),
68
- // ':',
69
- // field('type', $.type)
70
- // ),
71
-
72
85
  /* Expressions */
73
86
 
74
87
  _statement_seq: ($) => repeat1($._statement),
@@ -98,8 +111,6 @@ module.exports = grammar({
98
111
  $.integer,
99
112
  $.float,
100
113
  $.identifier,
101
- $.todo,
102
- $.panic,
103
114
  // $.anonymous_function,
104
115
  $.expression_group,
105
116
  // $.case,
@@ -136,29 +147,32 @@ module.exports = grammar({
136
147
  _pattern_binary_expression: ($) =>
137
148
  binaryExpr(prec.left, 1, "<>", $._pattern_expression),
138
149
 
139
- todo: ($) =>
140
- seq("todo", optional(seq("(", field("message", $.string), ")"))),
141
- panic: (_$) => seq("panic"),
142
-
143
150
  /* Types */
151
+ field: ($) =>
152
+ seq(field("name", $.identifier), ":", field("type", $._type)),
153
+
144
- return_type: ($) =>
154
+ function_type: ($) =>
145
155
  seq(
156
+ "fn",
146
- field("name", $.type_identifier),
157
+ optional(field("parameter_types", $.function_parameter_types)),
147
- field("generics", optional(seq("(", commaSep1($.identifier), ")")))
158
+ optional($.return_type),
148
159
  ),
160
+ function_parameter_types: ($) =>
161
+ seq("(", optional(series_of($._type, ",")), ")"),
149
162
 
150
- record: ($) => seq(seq("(", commaSep1($.type_field), ")")),
151
-
152
- union: ($) =>
163
+ type: ($) =>
153
164
  seq(
154
165
  field("name", $.type_identifier),
155
- optional(seq("(", choice($.identifier, commaSep1($.type_field)), ")"))
166
+ optional(field("arguments", $.type_arguments))
156
167
  ),
168
+ type_arguments: ($) =>
169
+ seq("(", optional(series_of($.type_argument, ",")), ")"),
170
+ type_argument: ($) => $._type,
157
171
 
158
- type_field: ($) =>
159
- seq(field("name", $.identifier), ":", field("type", $.identifier)),
172
+ return_type: ($) => seq("->", field("return_type", $._type)),
160
173
 
161
- generic_list: ($) => seq("(", commaSep1($.identifier), ")"),
174
+ generics: ($) => seq("(", series_of($.generic, ","), ")"),
175
+ generic: ($) => /[a-z][a-z]*/,
162
176
 
163
177
  /* Literals */
164
178
  float: ($) => /-?[0-9_]+\.[0-9_]*(e-?[0-9_]+)?/,
@@ -179,31 +193,21 @@ module.exports = grammar({
179
193
  // identifier: ($) => $._name,
180
194
  identifier: ($) => /[a-zA-Z_][a-zA-Z_0-9]*/,
181
195
  type_identifier: ($) => $._upname,
196
+ remote_type_identifier: ($) =>
197
+ seq(field("module", $.identifier), ".", field("name", $.type_identifier)),
182
- _type_annotation: ($) => seq(":", field("type", $.identifier)),
198
+ _type_annotation: ($) => seq(":", field("type", $._type)),
199
+ _type: ($) =>
200
+ choice($.type, $.generic, $.function_type),
183
201
  _discard_name: ($) => /_[_0-9a-z]*/,
184
202
  _name: ($) => /[_a-z][_0-9a-z]*/,
185
203
  _upname: ($) => /[A-Z][0-9a-zA-Z]*/,
186
204
  },
187
205
  });
188
206
 
189
- function commaSep1(rule) {
190
- return sep1(rule, ",");
191
- }
192
-
193
- function pipeSep1(rule) {
194
- return sep1(rule, "|");
195
- }
196
-
197
- function sep1(rule, separator) {
198
- return seq(rule, repeat(seq(separator, rule)));
199
- }
200
-
201
207
  function series_of(rule, separator) {
202
208
  return seq(rule, repeat(seq(separator, rule)), optional(separator));
203
209
  }
204
210
 
205
- // A binary expression with a left-hand side, infix operator, and then right-hand-side
206
- // https://github.com/elixir-lang/tree-sitter-elixir/blob/de20391afe5cb03ef1e8a8e43167e7b58cc52869/grammar.js#L850-L859
207
211
  function binaryExpr(assoc, precedence, operator, expr) {
208
212
  return assoc(
209
213
  precedence,
package.json CHANGED
@@ -4,13 +4,9 @@
4
4
  "description": "A tree-sitter grammar for the Palm programming language",
5
5
  "main": "bindings/node",
6
6
  "scripts": {
7
- "test": "tree-sitter test",
8
7
  "install": "node-gyp rebuild",
9
- "generate": "tree-sitter generate",
10
- "parse": "tree-sitter parse",
11
- "build-wasm": "tree-sitter build-wasm",
12
- "playground": "tree-sitter playground",
13
- "format": "prettier --write grammar.js"
8
+ "format": "prettier --write grammar.js",
9
+ "test": "tree-sitter generate && tree-sitter test"
14
10
  },
15
11
  "author": "pyrossh",
16
12
  "license": "MIT",
queries/tags.scm CHANGED
@@ -1,11 +1,11 @@
1
1
  ; Modules
2
2
  (module) @name @reference.module
3
3
  (import alias: (identifier) @name) @reference.module
4
- (remote_type_identifier
4
+ ; (remote_type_identifier
5
- module: (identifier) @name) @reference.module
5
+ ; module: (identifier) @name) @reference.module
6
- ((field_access
6
+ ; ((field_access
7
- record: (identifier) @name)
7
+ ; record: (identifier) @name)
8
- (#is-not? local)) @reference.module
8
+ ; (#is-not? local)) @reference.module
9
9
 
10
10
  ; Functions
11
11
  (function
sample.palm ADDED
@@ -0,0 +1,168 @@
1
+ module palm
2
+
3
+ pub type Cat = struct(
4
+ firstName: String,
5
+ middleName: String,
6
+ lastName: String,
7
+ age: Int
8
+ cb: |Int| -> Int
9
+ )
10
+
11
+ pub decrement = |c: Cat| -> Cat {
12
+ println("decrementing")
13
+ Cat(...c, age: c.age + 1)
14
+ }
15
+
16
+ pub fn have_birthday(person: Person) -> Person {
17
+ Person(..person, age: person.age + 1, is_happy: True)
18
+ }
19
+
20
+ pub have_birthday = |person: Person| -> Person {
21
+ Person(..person, age: person.age + 1, is_happy: True)
22
+ }
23
+
24
+ pub fn main {
25
+ const cat = Cat(name: "Felix", cuteness: 9001, age: 5)
26
+ cat
27
+ |> increment()
28
+ |> increment()
29
+ |> increment()
30
+ }
31
+
32
+
33
+ isSingleton(b : Bool) -> Type =
34
+ | True = Int
35
+ | False = List(Int)
36
+
37
+ -- module palm/list
38
+
39
+ type List(a)(
40
+ items: []a
41
+ )
42
+
43
+ pub fn new(l: ...a) -> List(a) {
44
+ List(items: l, size: l.size)
45
+ }
46
+
47
+ pub fn head(l: List(a)) -> a {
48
+ when {
49
+ l.size == 0 -> panic("accessing head of empty list")
50
+ _ -> l[0]
51
+ }
52
+ }
53
+
54
+ pub fn tail(l: List(a)) -> a {
55
+ when {
56
+ l.size == 0 -> []
57
+ l.size == 1 -> []
58
+ _ -> new(l[1:l.size])
59
+ }
60
+ }
61
+
62
+ pub fn is_empty(l: List(a)) -> Bool {
63
+ l.size == 0
64
+ }
65
+
66
+ pub fn contains(l: List(a), elem: a) -> Bool {
67
+ when l {
68
+ is_empty(l) -> False
69
+ head(l) == elem -> True
70
+ _ -> contains(tail(l), elem)
71
+ }
72
+ }
73
+
74
+ pub fn each(l: List(a), f: fn (a)) {
75
+ if !is_empty(l) {
76
+ head(l) |> f()
77
+ tail(l) |> each(f)
78
+ }
79
+ }
80
+
81
+ pub type Iterator(element)(
82
+ continuation: fn() -> Action(element)
83
+ )
84
+
85
+ type Action(element) {
86
+ Stop
87
+ Continue(element, fn() -> Action(element))
88
+ }
89
+
90
+ pub type Step(element, accumulator) {
91
+ Next(element: element, accumulator: accumulator)
92
+ Done
93
+ }
94
+
95
+ InfiniteIteror = Iterator(Bool)(
96
+ continuation: fn () -> Action(Bool) {
97
+ True
98
+ }
99
+ )
100
+
101
+
102
+ pub fn while(cond: Iterator, cb: fn()) {
103
+ when cond().next() {
104
+ cb()
105
+ while(cond, cb)
106
+ }
107
+ }
108
+
109
+
110
+ items
111
+ |> list.each(|| println(item.name) })
112
+ |> list.map(|| Person(...item, name: "123") })
113
+
114
+ filter(l: List(a), f: (a) -> Bool, acc: List(a) = new()) -> List(a) =
115
+ | is_empty(l) -> acc
116
+ | f(head(l)) ->
117
+ acc |> add(head(l))
118
+ filter(tail(l), f, acc)
119
+ | _ ->
120
+ filter(tail(l), f, acc)
121
+
122
+ fn map_res(res: Response) -> Result(String, String) {
123
+ case (x = res.status()) {
124
+ x >= 500 -> Error("failed")
125
+ _ -> Ok("success")
126
+ }
127
+ }
128
+
129
+ handler(request: Request(t)) -> Response(String) =
130
+ body = bit_builder.from_string("Hello, world!")
131
+ response.new(200)
132
+ |> response.prepend_header("made-with", "Gleam")
133
+ |> response.set_body(body)
134
+
135
+ fn main(args: List(String)) -> Result(Int, String) {
136
+ println "Sum of x + y = "
137
+ println addMe(10 25)
138
+
139
+ list.new(1, 2, 3, 4, 5)
140
+ |> list.filter(|x| -> x > 5)
141
+ |> list.map(|x| -> x * 2)
142
+ |> list.each(|x| -> prinln(x))
143
+ |> list.is_empty()
144
+
145
+ let res = request.new()
146
+ |> request.set_method(Get)
147
+ |> request.set_host("test-api.service.hmrc.gov.uk")
148
+ |> request.set_path("/hello/world")
149
+ |> request.prepend_header("accept", "application/vnd.hmrc.1.0+json")
150
+ |> request.fetch()
151
+
152
+ res
153
+ |> map_res
154
+ }
155
+
156
+
157
+ fn add(x: Int, y: Int) -> Int {
158
+ x + y
159
+ }
160
+
161
+ multiply(x: Int, y: Int) -> Int =
162
+ x * y
163
+
164
+ twice(f: (t) -> t, x: t) -> t =
165
+ f(f(x))
166
+
167
+ add_one(x: Int) -> Int =
168
+ x + 1
spec.gleam ADDED
@@ -0,0 +1,193 @@
1
+ import gleam/io
2
+ import gleam/bool
3
+ import gleam/string
4
+ import gleam/list
5
+ import gleam/http/response.{Request, Response}
6
+ import gleam/bit_builder.{BitBuilder}
7
+
8
+ pub fn main() {
9
+ io.print("hi")
10
+ False
11
+ |> bool.nand(False)
12
+ }
13
+
14
+ pub type Result(value, reason) {
15
+ Ok(value)
16
+ Error(reason)
17
+ }
18
+
19
+ pub fn fib(x: Int) -> Int {
20
+ when x {
21
+ 0..1 -> 1
22
+ _ -> fib(x - 1) + fib(x - 2)
23
+ }
24
+
25
+ when x > 5 {
26
+ }
27
+ }
28
+
29
+ pub fn handler(request: Request) -> Response {
30
+ let body = bit_builder.from_string("Hello, world!")
31
+
32
+ response.new(200)
33
+ |> response.prepend_header("made-with", "Gleam")
34
+ |> response.set_body(body)
35
+ }
36
+
37
+ pub fn main() {
38
+ let res =
39
+ request.new()
40
+ |> request.set_method(Get)
41
+ |> request.set_host("test-api.service.hmrc.gov.uk")
42
+ |> request.set_path("/hello/world")
43
+ |> request.prepend_header("accept", "application/vnd.hmrc.1.0+json")
44
+ |> request.fetch()
45
+
46
+ case res {
47
+ Ok(b) -> {
48
+ let data = json.parse(b)
49
+ response.new(200)
50
+ |> response.set_body(json.stringify(data))
51
+ }
52
+ Error(_) -> {
53
+ response.new(500)
54
+ |> response.set_body("Could not find data")
55
+ }
56
+ }
57
+ }
58
+
59
+ pub fn all(results: List(Result(a, e))) -> Result(List(a), e) {
60
+ list.try_map(results, fn(x) { x })
61
+ }
62
+
63
+ pub fn add(x: Int, y: Int) -> Int {
64
+ x + y
65
+ }
66
+
67
+ pub fn multiply(x: Int, y: Int) -> Int {
68
+ x * y
69
+ }
70
+
71
+ /// This function takes a function as an argument
72
+ pub fn twice(f: fn(t) -> t, x: t) -> t {
73
+ f(f(x))
74
+ }
75
+
76
+ pub fn add_one(x: Int) -> Int {
77
+ x + 1
78
+ }
79
+
80
+ pub fn add_two(x: Int) -> Int {
81
+ twice(add_one, x)
82
+ }
83
+
84
+ pub const start_year = 2101
85
+
86
+ pub const end_year = 2111
87
+
88
+ pub fn is_before(year: Int) -> Bool {
89
+ year < start_year
90
+ }
91
+
92
+ pub fn is_during(year: Int) -> Bool {
93
+ start_year <= year && year <= end_year
94
+ }
95
+
96
+ pub fn describe(year: Int) -> String {
97
+ case year {
98
+ year if year < start_year -> "Before"
99
+ year if year > end_year -> "After"
100
+ _ -> "During"
101
+ }
102
+ }
103
+
104
+ pub const name: String = "Gleam"
105
+
106
+ pub const size: Int = 100
107
+
108
+ pub type Headers =
109
+ List(#(String, String))
110
+
111
+ pub fn main() {
112
+ let string = "123"
113
+ string
114
+ |> string_builder.from_string
115
+ |> string_builder.reverse
116
+ |> string_builder.to_string
117
+ }
118
+
119
+ pub external fn random_float() -> Float =
120
+ "rand" "uniform"
121
+
122
+ // Elixir modules start with `Elixir.`
123
+ pub external fn inspect(a) -> a =
124
+ "Elixir.IO" "inspect"
125
+
126
+ pub external type Queue(a)
127
+
128
+ pub external fn new() -> Queue(a) =
129
+ "queue" "new"
130
+
131
+ pub external fn length(Queue(a)) -> Int =
132
+ "queue" "len"
133
+
134
+ pub external fn push(Queue(a), a) -> Queue(a) =
135
+ "queue" "in"
136
+
137
+ fn favourite_number() -> Int {
138
+ // The type annotations says this returns an Int, but we don't need
139
+ // to implement it yet.
140
+ todo
141
+ }
142
+
143
+ pub fn main() {
144
+ favourite_number() * 2
145
+ }
146
+
147
+ fn more_usage() {
148
+ list.new(1, 2, 3)
149
+ |> list.contains(any: 2)
150
+ }
151
+
152
+ pub fn get_name(user: User) {
153
+ case user {
154
+ LoggedIn(name) -> {
155
+ let a = 1.2
156
+ let b = 4.5
157
+ let c = n * factorial(n - 1)
158
+ name
159
+ }
160
+ Guest -> "Guest user"
161
+ }
162
+ }
163
+
164
+ pub type Result(p, q) {
165
+ Ok(p)
166
+ Error(q)
167
+ }
168
+
169
+ // pub type Cat(
170
+ // name: String,
171
+ // cuteness: Int,
172
+ // age: Int
173
+ // )
174
+
175
+ pub fn make_api_call(r: String) -> Result(String, String) {
176
+ make_request(r) |> response.map()
177
+ }
178
+
179
+ pub fn map(res: Response) -> Result(String, String) {
180
+ | res.status() >= 500 -> Error("failed")
181
+ | _ -> Ok("success")
182
+ }
183
+
184
+ pub fn getColorHex(c: String) -> Int {
185
+ when c {
186
+ "red" -> 0xff0000
187
+ "blue" -> 0xff0123
188
+ "green" -> 0xff0123
189
+ "black" -> 0x000000
190
+ "white" -> 0xffffff
191
+ "violet" -> 0x0f0f23
192
+ }
193
+ }
src/grammar.json CHANGED
@@ -22,7 +22,11 @@
22
22
  "members": [
23
23
  {
24
24
  "type": "SYMBOL",
25
+ "name": "struct"
26
+ },
27
+ {
28
+ "type": "SYMBOL",
25
- "name": "type"
29
+ "name": "enum"
26
30
  },
27
31
  {
28
32
  "type": "SYMBOL",
@@ -281,7 +285,7 @@
281
285
  }
282
286
  ]
283
287
  },
284
- "type": {
288
+ "struct": {
285
289
  "type": "SEQ",
286
290
  "members": [
287
291
  {
@@ -304,7 +308,7 @@
304
308
  "members": [
305
309
  {
306
310
  "type": "SYMBOL",
307
- "name": "generic_list"
311
+ "name": "generics"
308
312
  },
309
313
  {
310
314
  "type": "BLANK"
@@ -313,67 +317,194 @@
313
317
  }
314
318
  },
315
319
  {
320
+ "type": "FIELD",
321
+ "name": "fields",
322
+ "content": {
323
+ "type": "SEQ",
324
+ "members": [
325
+ {
326
+ "type": "STRING",
327
+ "value": "("
328
+ },
329
+ {
330
+ "type": "REPEAT",
331
+ "content": {
332
+ "type": "SYMBOL",
333
+ "name": "field"
334
+ }
335
+ },
336
+ {
337
+ "type": "STRING",
338
+ "value": ")"
339
+ }
340
+ ]
341
+ }
342
+ }
343
+ ]
344
+ },
345
+ "enum": {
346
+ "type": "SEQ",
347
+ "members": [
348
+ {
349
+ "type": "STRING",
350
+ "value": "type"
351
+ },
352
+ {
353
+ "type": "FIELD",
354
+ "name": "name",
355
+ "content": {
356
+ "type": "SYMBOL",
357
+ "name": "type_identifier"
358
+ }
359
+ },
360
+ {
361
+ "type": "FIELD",
362
+ "name": "generics",
363
+ "content": {
316
- "type": "CHOICE",
364
+ "type": "CHOICE",
317
- "members": [
365
+ "members": [
318
- {
366
+ {
319
- "type": "FIELD",
320
- "name": "record",
321
- "content": {
322
367
  "type": "SYMBOL",
323
- "name": "record"
368
+ "name": "generics"
369
+ },
370
+ {
371
+ "type": "BLANK"
324
372
  }
373
+ ]
374
+ }
325
- },
375
+ },
326
- {
376
+ {
327
- "type": "FIELD",
377
+ "type": "FIELD",
328
- "name": "union",
378
+ "name": "fields",
329
- "content": {
379
+ "content": {
330
- "type": "SEQ",
380
+ "type": "SEQ",
331
- "members": [
381
+ "members": [
332
- {
382
+ {
333
- "type": "STRING",
383
+ "type": "STRING",
334
- "value": "="
384
+ "value": "{"
335
- },
385
+ },
336
- {
386
+ {
337
- "type": "CHOICE",
387
+ "type": "REPEAT",
388
+ "content": {
389
+ "type": "SEQ",
338
- "members": [
390
+ "members": [
339
- {
391
+ {
340
- "type": "STRING",
341
- "value": "|"
342
- },
343
- {
344
- "type": "BLANK"
345
- }
346
- ]
347
- },
348
- {
349
- "type": "SEQ",
392
+ "type": "FIELD",
393
+ "name": "name",
350
- "members": [
394
+ "content": {
351
- {
352
395
  "type": "SYMBOL",
353
- "name": "union"
396
+ "name": "type_identifier"
397
+ }
354
- },
398
+ },
355
- {
399
+ {
356
- "type": "REPEAT",
400
+ "type": "CHOICE",
357
- "content": {
401
+ "members": [
402
+ {
358
403
  "type": "SEQ",
359
404
  "members": [
360
405
  {
361
406
  "type": "STRING",
362
- "value": "|"
407
+ "value": "("
363
408
  },
364
409
  {
410
+ "type": "CHOICE",
411
+ "members": [
412
+ {
413
+ "type": "SEQ",
414
+ "members": [
415
+ {
365
- "type": "SYMBOL",
416
+ "type": "SYMBOL",
417
+ "name": "identifier"
418
+ },
419
+ {
420
+ "type": "REPEAT",
421
+ "content": {
422
+ "type": "SEQ",
423
+ "members": [
424
+ {
425
+ "type": "STRING",
426
+ "value": ","
427
+ },
428
+ {
429
+ "type": "SYMBOL",
430
+ "name": "identifier"
431
+ }
432
+ ]
433
+ }
434
+ },
435
+ {
436
+ "type": "CHOICE",
437
+ "members": [
438
+ {
439
+ "type": "STRING",
440
+ "value": ","
441
+ },
442
+ {
443
+ "type": "BLANK"
444
+ }
445
+ ]
446
+ }
447
+ ]
448
+ },
449
+ {
450
+ "type": "SEQ",
451
+ "members": [
452
+ {
453
+ "type": "SYMBOL",
366
- "name": "union"
454
+ "name": "field"
455
+ },
456
+ {
457
+ "type": "REPEAT",
458
+ "content": {
459
+ "type": "SEQ",
460
+ "members": [
461
+ {
462
+ "type": "STRING",
463
+ "value": ","
464
+ },
465
+ {
466
+ "type": "SYMBOL",
467
+ "name": "field"
468
+ }
469
+ ]
470
+ }
471
+ },
472
+ {
473
+ "type": "CHOICE",
474
+ "members": [
475
+ {
476
+ "type": "STRING",
477
+ "value": ","
478
+ },
479
+ {
480
+ "type": "BLANK"
481
+ }
482
+ ]
483
+ }
484
+ ]
485
+ }
486
+ ]
487
+ },
488
+ {
489
+ "type": "STRING",
490
+ "value": ")"
367
491
  }
368
492
  ]
493
+ },
494
+ {
495
+ "type": "BLANK"
369
496
  }
497
+ ]
370
- }
498
+ }
371
- ]
499
+ ]
372
- }
500
+ }
501
+ },
373
- ]
502
+ {
503
+ "type": "STRING",
504
+ "value": "}"
374
505
  }
506
+ ]
375
- }
507
+ }
376
- ]
377
508
  }
378
509
  ]
379
510
  },
@@ -410,7 +541,7 @@
410
541
  "members": [
411
542
  {
412
543
  "type": "SYMBOL",
413
- "name": "type_field"
544
+ "name": "field"
414
545
  },
415
546
  {
416
547
  "type": "REPEAT",
@@ -423,10 +554,22 @@
423
554
  },
424
555
  {
425
556
  "type": "SYMBOL",
426
- "name": "type_field"
557
+ "name": "field"
427
558
  }
428
559
  ]
429
560
  }
561
+ },
562
+ {
563
+ "type": "CHOICE",
564
+ "members": [
565
+ {
566
+ "type": "STRING",
567
+ "value": ","
568
+ },
569
+ {
570
+ "type": "BLANK"
571
+ }
572
+ ]
430
573
  }
431
574
  ]
432
575
  },
@@ -443,37 +586,12 @@
443
586
  }
444
587
  },
445
588
  {
446
- "type": "CHOICE",
447
- "members": [
448
- {
449
- "type": "SEQ",
450
- "members": [
451
- {
452
- "type": "STRING",
453
- "value": "->"
454
- },
455
- {
456
- "type": "FIELD",
589
+ "type": "FIELD",
457
- "name": "return_type",
590
+ "name": "return",
458
- "content": {
591
+ "content": {
459
- "type": "CHOICE",
460
- "members": [
461
- {
462
- "type": "SYMBOL",
592
+ "type": "SYMBOL",
463
- "name": "return_type"
593
+ "name": "return_type"
464
- },
465
- {
466
- "type": "BLANK"
467
- }
594
+ }
468
- ]
469
- }
470
- }
471
- ]
472
- },
473
- {
474
- "type": "BLANK"
475
- }
476
- ]
477
595
  },
478
596
  {
479
597
  "type": "FIELD",
@@ -1050,14 +1168,6 @@
1050
1168
  "type": "SYMBOL",
1051
1169
  "name": "identifier"
1052
1170
  },
1053
- {
1054
- "type": "SYMBOL",
1055
- "name": "todo"
1056
- },
1057
- {
1058
- "type": "SYMBOL",
1059
- "name": "panic"
1060
- },
1061
1171
  {
1062
1172
  "type": "SYMBOL",
1063
1173
  "name": "expression_group"
@@ -1241,132 +1351,84 @@
1241
1351
  ]
1242
1352
  }
1243
1353
  },
1244
- "todo": {
1354
+ "field": {
1355
+ "type": "SEQ",
1356
+ "members": [
1357
+ {
1358
+ "type": "FIELD",
1359
+ "name": "name",
1360
+ "content": {
1361
+ "type": "SYMBOL",
1362
+ "name": "identifier"
1363
+ }
1364
+ },
1365
+ {
1366
+ "type": "STRING",
1367
+ "value": ":"
1368
+ },
1369
+ {
1370
+ "type": "FIELD",
1371
+ "name": "type",
1372
+ "content": {
1373
+ "type": "SYMBOL",
1374
+ "name": "_type"
1375
+ }
1376
+ }
1377
+ ]
1378
+ },
1379
+ "function_type": {
1245
1380
  "type": "SEQ",
1246
1381
  "members": [
1247
1382
  {
1248
1383
  "type": "STRING",
1249
- "value": "todo"
1384
+ "value": "fn"
1250
1385
  },
1251
1386
  {
1252
1387
  "type": "CHOICE",
1253
1388
  "members": [
1254
1389
  {
1255
- "type": "SEQ",
1256
- "members": [
1257
- {
1258
- "type": "STRING",
1259
- "value": "("
1260
- },
1261
- {
1262
- "type": "FIELD",
1390
+ "type": "FIELD",
1263
- "name": "message",
1391
+ "name": "parameter_types",
1264
- "content": {
1392
+ "content": {
1265
- "type": "SYMBOL",
1393
+ "type": "SYMBOL",
1266
- "name": "string"
1394
+ "name": "function_parameter_types"
1267
- }
1395
+ }
1268
- },
1269
- {
1270
- "type": "STRING",
1271
- "value": ")"
1272
- }
1273
- ]
1274
1396
  },
1275
1397
  {
1276
1398
  "type": "BLANK"
1277
1399
  }
1278
1400
  ]
1279
- }
1280
- ]
1281
- },
1401
+ },
1282
- "panic": {
1283
- "type": "SEQ",
1284
- "members": [
1285
1402
  {
1286
- "type": "STRING",
1403
+ "type": "CHOICE",
1404
+ "members": [
1405
+ {
1406
+ "type": "SYMBOL",
1407
+ "name": "return_type"
1408
+ },
1409
+ {
1287
- "value": "panic"
1410
+ "type": "BLANK"
1411
+ }
1412
+ ]
1288
1413
  }
1289
1414
  ]
1290
1415
  },
1291
- "return_type": {
1416
+ "function_parameter_types": {
1292
1417
  "type": "SEQ",
1293
1418
  "members": [
1294
1419
  {
1295
- "type": "FIELD",
1296
- "name": "name",
1297
- "content": {
1298
- "type": "SYMBOL",
1420
+ "type": "STRING",
1299
- "name": "type_identifier"
1421
+ "value": "("
1300
- }
1301
1422
  },
1302
1423
  {
1303
- "type": "FIELD",
1304
- "name": "generics",
1305
- "content": {
1306
- "type": "CHOICE",
1424
+ "type": "CHOICE",
1307
- "members": [
1308
- {
1309
- "type": "SEQ",
1310
- "members": [
1311
- {
1312
- "type": "STRING",
1313
- "value": "("
1314
- },
1315
- {
1316
- "type": "SEQ",
1317
- "members": [
1318
- {
1319
- "type": "SYMBOL",
1320
- "name": "identifier"
1321
- },
1322
- {
1323
- "type": "REPEAT",
1324
- "content": {
1325
- "type": "SEQ",
1326
- "members": [
1327
- {
1328
- "type": "STRING",
1329
- "value": ","
1330
- },
1331
- {
1332
- "type": "SYMBOL",
1333
- "name": "identifier"
1334
- }
1335
- ]
1336
- }
1337
- }
1338
- ]
1339
- },
1340
- {
1341
- "type": "STRING",
1342
- "value": ")"
1343
- }
1344
- ]
1345
- },
1346
- {
1347
- "type": "BLANK"
1348
- }
1349
- ]
1350
- }
1351
- }
1352
- ]
1353
- },
1354
- "record": {
1355
- "type": "SEQ",
1356
- "members": [
1357
- {
1358
- "type": "SEQ",
1359
1425
  "members": [
1360
- {
1361
- "type": "STRING",
1362
- "value": "("
1363
- },
1364
1426
  {
1365
1427
  "type": "SEQ",
1366
1428
  "members": [
1367
1429
  {
1368
1430
  "type": "SYMBOL",
1369
- "name": "type_field"
1431
+ "name": "_type"
1370
1432
  },
1371
1433
  {
1372
1434
  "type": "REPEAT",
@@ -1379,22 +1441,37 @@
1379
1441
  },
1380
1442
  {
1381
1443
  "type": "SYMBOL",
1382
- "name": "type_field"
1444
+ "name": "_type"
1383
1445
  }
1384
1446
  ]
1385
1447
  }
1448
+ },
1449
+ {
1450
+ "type": "CHOICE",
1451
+ "members": [
1452
+ {
1453
+ "type": "STRING",
1454
+ "value": ","
1455
+ },
1456
+ {
1457
+ "type": "BLANK"
1458
+ }
1459
+ ]
1386
1460
  }
1387
1461
  ]
1388
1462
  },
1389
1463
  {
1390
- "type": "STRING",
1464
+ "type": "BLANK"
1391
- "value": ")"
1392
1465
  }
1393
1466
  ]
1467
+ },
1468
+ {
1469
+ "type": "STRING",
1470
+ "value": ")"
1394
1471
  }
1395
1472
  ]
1396
1473
  },
1397
- "union": {
1474
+ "type": {
1398
1475
  "type": "SEQ",
1399
1476
  "members": [
1400
1477
  {
@@ -1405,6 +1482,31 @@
1405
1482
  "name": "type_identifier"
1406
1483
  }
1407
1484
  },
1485
+ {
1486
+ "type": "CHOICE",
1487
+ "members": [
1488
+ {
1489
+ "type": "FIELD",
1490
+ "name": "arguments",
1491
+ "content": {
1492
+ "type": "SYMBOL",
1493
+ "name": "type_arguments"
1494
+ }
1495
+ },
1496
+ {
1497
+ "type": "BLANK"
1498
+ }
1499
+ ]
1500
+ }
1501
+ ]
1502
+ },
1503
+ "type_arguments": {
1504
+ "type": "SEQ",
1505
+ "members": [
1506
+ {
1507
+ "type": "STRING",
1508
+ "value": "("
1509
+ },
1408
1510
  {
1409
1511
  "type": "CHOICE",
1410
1512
  "members": [
@@ -1412,46 +1514,36 @@
1412
1514
  "type": "SEQ",
1413
1515
  "members": [
1414
1516
  {
1517
+ "type": "SYMBOL",
1518
+ "name": "type_argument"
1519
+ },
1520
+ {
1521
+ "type": "REPEAT",
1522
+ "content": {
1523
+ "type": "SEQ",
1524
+ "members": [
1525
+ {
1415
- "type": "STRING",
1526
+ "type": "STRING",
1416
- "value": "("
1527
+ "value": ","
1528
+ },
1529
+ {
1530
+ "type": "SYMBOL",
1531
+ "name": "type_argument"
1532
+ }
1533
+ ]
1534
+ }
1417
1535
  },
1418
1536
  {
1419
1537
  "type": "CHOICE",
1420
1538
  "members": [
1421
1539
  {
1422
- "type": "SYMBOL",
1540
+ "type": "STRING",
1423
- "name": "identifier"
1541
+ "value": ","
1424
1542
  },
1425
1543
  {
1426
- "type": "SEQ",
1427
- "members": [
1428
- {
1429
- "type": "SYMBOL",
1430
- "name": "type_field"
1431
- },
1432
- {
1433
- "type": "REPEAT",
1434
- "content": {
1435
- "type": "SEQ",
1436
- "members": [
1437
- {
1438
- "type": "STRING",
1544
+ "type": "BLANK"
1439
- "value": ","
1440
- },
1441
- {
1442
- "type": "SYMBOL",
1443
- "name": "type_field"
1444
- }
1445
- ]
1446
- }
1447
- }
1448
- ]
1449
1545
  }
1450
1546
  ]
1451
- },
1452
- {
1453
- "type": "STRING",
1454
- "value": ")"
1455
1547
  }
1456
1548
  ]
1457
1549
  },
@@ -1459,35 +1551,35 @@
1459
1551
  "type": "BLANK"
1460
1552
  }
1461
1553
  ]
1554
+ },
1555
+ {
1556
+ "type": "STRING",
1557
+ "value": ")"
1462
1558
  }
1463
1559
  ]
1464
1560
  },
1465
- "type_field": {
1561
+ "type_argument": {
1562
+ "type": "SYMBOL",
1563
+ "name": "_type"
1564
+ },
1565
+ "return_type": {
1466
1566
  "type": "SEQ",
1467
1567
  "members": [
1468
- {
1469
- "type": "FIELD",
1470
- "name": "name",
1471
- "content": {
1472
- "type": "SYMBOL",
1473
- "name": "identifier"
1474
- }
1475
- },
1476
1568
  {
1477
1569
  "type": "STRING",
1478
- "value": ":"
1570
+ "value": "->"
1479
1571
  },
1480
1572
  {
1481
1573
  "type": "FIELD",
1482
- "name": "type",
1574
+ "name": "return_type",
1483
1575
  "content": {
1484
1576
  "type": "SYMBOL",
1485
- "name": "identifier"
1577
+ "name": "_type"
1486
1578
  }
1487
1579
  }
1488
1580
  ]
1489
1581
  },
1490
- "generic_list": {
1582
+ "generics": {
1491
1583
  "type": "SEQ",
1492
1584
  "members": [
1493
1585
  {
@@ -1499,7 +1591,7 @@
1499
1591
  "members": [
1500
1592
  {
1501
1593
  "type": "SYMBOL",
1502
- "name": "identifier"
1594
+ "name": "generic"
1503
1595
  },
1504
1596
  {
1505
1597
  "type": "REPEAT",
@@ -1512,10 +1604,22 @@
1512
1604
  },
1513
1605
  {
1514
1606
  "type": "SYMBOL",
1515
- "name": "identifier"
1607
+ "name": "generic"
1516
1608
  }
1517
1609
  ]
1518
1610
  }
1611
+ },
1612
+ {
1613
+ "type": "CHOICE",
1614
+ "members": [
1615
+ {
1616
+ "type": "STRING",
1617
+ "value": ","
1618
+ },
1619
+ {
1620
+ "type": "BLANK"
1621
+ }
1622
+ ]
1519
1623
  }
1520
1624
  ]
1521
1625
  },
@@ -1525,6 +1629,10 @@
1525
1629
  }
1526
1630
  ]
1527
1631
  },
1632
+ "generic": {
1633
+ "type": "PATTERN",
1634
+ "value": "[a-z][a-z]*"
1635
+ },
1528
1636
  "float": {
1529
1637
  "type": "PATTERN",
1530
1638
  "value": "-?[0-9_]+\\.[0-9_]*(e-?[0-9_]+)?"
@@ -1652,6 +1760,31 @@
1652
1760
  "type": "SYMBOL",
1653
1761
  "name": "_upname"
1654
1762
  },
1763
+ "remote_type_identifier": {
1764
+ "type": "SEQ",
1765
+ "members": [
1766
+ {
1767
+ "type": "FIELD",
1768
+ "name": "module",
1769
+ "content": {
1770
+ "type": "SYMBOL",
1771
+ "name": "identifier"
1772
+ }
1773
+ },
1774
+ {
1775
+ "type": "STRING",
1776
+ "value": "."
1777
+ },
1778
+ {
1779
+ "type": "FIELD",
1780
+ "name": "name",
1781
+ "content": {
1782
+ "type": "SYMBOL",
1783
+ "name": "type_identifier"
1784
+ }
1785
+ }
1786
+ ]
1787
+ },
1655
1788
  "_type_annotation": {
1656
1789
  "type": "SEQ",
1657
1790
  "members": [
@@ -1664,11 +1797,28 @@
1664
1797
  "name": "type",
1665
1798
  "content": {
1666
1799
  "type": "SYMBOL",
1667
- "name": "identifier"
1800
+ "name": "_type"
1668
1801
  }
1669
1802
  }
1670
1803
  ]
1671
1804
  },
1805
+ "_type": {
1806
+ "type": "CHOICE",
1807
+ "members": [
1808
+ {
1809
+ "type": "SYMBOL",
1810
+ "name": "type"
1811
+ },
1812
+ {
1813
+ "type": "SYMBOL",
1814
+ "name": "generic"
1815
+ },
1816
+ {
1817
+ "type": "SYMBOL",
1818
+ "name": "function_type"
1819
+ }
1820
+ ]
1821
+ },
1672
1822
  "_discard_name": {
1673
1823
  "type": "PATTERN",
1674
1824
  "value": "_[_0-9a-z]*"
src/node-types.json CHANGED
@@ -31,17 +31,9 @@
31
31
  "type": "negation",
32
32
  "named": true
33
33
  },
34
- {
35
- "type": "panic",
36
- "named": true
37
- },
38
34
  {
39
35
  "type": "string",
40
36
  "named": true
41
- },
42
- {
43
- "type": "todo",
44
- "named": true
45
37
  }
46
38
  ]
47
39
  },
@@ -140,15 +132,71 @@
140
132
  "named": true
141
133
  },
142
134
  {
143
- "type": "panic",
135
+ "type": "string",
144
136
  "named": true
137
+ }
138
+ ]
139
+ }
140
+ }
141
+ },
142
+ {
143
+ "type": "enum",
144
+ "named": true,
145
+ "fields": {
146
+ "fields": {
147
+ "multiple": true,
148
+ "required": true,
149
+ "types": [
150
+ {
151
+ "type": "(",
152
+ "named": false
145
153
  },
146
154
  {
155
+ "type": ")",
156
+ "named": false
157
+ },
158
+ {
159
+ "type": ",",
160
+ "named": false
161
+ },
162
+ {
147
- "type": "string",
163
+ "type": "field",
164
+ "named": true
165
+ },
166
+ {
167
+ "type": "identifier",
148
168
  "named": true
149
169
  },
150
170
  {
171
+ "type": "type_identifier",
172
+ "named": true
173
+ },
174
+ {
151
- "type": "todo",
175
+ "type": "{",
176
+ "named": false
177
+ },
178
+ {
179
+ "type": "}",
180
+ "named": false
181
+ }
182
+ ]
183
+ },
184
+ "generics": {
185
+ "multiple": false,
186
+ "required": false,
187
+ "types": [
188
+ {
189
+ "type": "generics",
190
+ "named": true
191
+ }
192
+ ]
193
+ },
194
+ "name": {
195
+ "multiple": true,
196
+ "required": true,
197
+ "types": [
198
+ {
199
+ "type": "type_identifier",
152
200
  "named": true
153
201
  }
154
202
  ]
@@ -191,21 +239,47 @@
191
239
  "type": "negation",
192
240
  "named": true
193
241
  },
194
- {
195
- "type": "panic",
196
- "named": true
197
- },
198
242
  {
199
243
  "type": "string",
200
244
  "named": true
201
- },
202
- {
203
- "type": "todo",
204
- "named": true
205
245
  }
206
246
  ]
207
247
  }
208
248
  },
249
+ {
250
+ "type": "field",
251
+ "named": true,
252
+ "fields": {
253
+ "name": {
254
+ "multiple": false,
255
+ "required": true,
256
+ "types": [
257
+ {
258
+ "type": "identifier",
259
+ "named": true
260
+ }
261
+ ]
262
+ },
263
+ "type": {
264
+ "multiple": false,
265
+ "required": true,
266
+ "types": [
267
+ {
268
+ "type": "function_type",
269
+ "named": true
270
+ },
271
+ {
272
+ "type": "generic",
273
+ "named": true
274
+ },
275
+ {
276
+ "type": "type",
277
+ "named": true
278
+ }
279
+ ]
280
+ }
281
+ }
282
+ },
209
283
  {
210
284
  "type": "function",
211
285
  "named": true,
@@ -242,18 +316,10 @@
242
316
  "type": "negation",
243
317
  "named": true
244
318
  },
245
- {
246
- "type": "panic",
247
- "named": true
248
- },
249
319
  {
250
320
  "type": "string",
251
321
  "named": true
252
322
  },
253
- {
254
- "type": "todo",
255
- "named": true
256
- },
257
323
  {
258
324
  "type": "{",
259
325
  "named": false
@@ -291,14 +357,14 @@
291
357
  "named": false
292
358
  },
293
359
  {
294
- "type": "type_field",
360
+ "type": "field",
295
361
  "named": true
296
362
  }
297
363
  ]
298
364
  },
299
- "return_type": {
365
+ "return": {
300
366
  "multiple": false,
301
- "required": false,
367
+ "required": true,
302
368
  "types": [
303
369
  {
304
370
  "type": "return_type",
@@ -309,7 +375,56 @@
309
375
  }
310
376
  },
311
377
  {
378
+ "type": "function_parameter_types",
379
+ "named": true,
380
+ "fields": {},
381
+ "children": {
382
+ "multiple": true,
383
+ "required": false,
384
+ "types": [
385
+ {
386
+ "type": "function_type",
387
+ "named": true
388
+ },
389
+ {
390
+ "type": "generic",
391
+ "named": true
392
+ },
393
+ {
394
+ "type": "type",
395
+ "named": true
396
+ }
397
+ ]
398
+ }
399
+ },
400
+ {
401
+ "type": "function_type",
402
+ "named": true,
403
+ "fields": {
404
+ "parameter_types": {
405
+ "multiple": false,
406
+ "required": false,
407
+ "types": [
408
+ {
409
+ "type": "function_parameter_types",
410
+ "named": true
411
+ }
412
+ ]
413
+ }
414
+ },
415
+ "children": {
416
+ "multiple": false,
417
+ "required": false,
418
+ "types": [
419
+ {
420
+ "type": "return_type",
421
+ "named": true
422
+ }
423
+ ]
424
+ }
425
+ },
426
+ {
312
- "type": "generic_list",
427
+ "type": "generics",
313
428
  "named": true,
314
429
  "fields": {},
315
430
  "children": {
@@ -317,7 +432,7 @@
317
432
  "required": true,
318
433
  "types": [
319
434
  {
320
- "type": "identifier",
435
+ "type": "generic",
321
436
  "named": true
322
437
  }
323
438
  ]
@@ -413,7 +528,15 @@
413
528
  "required": false,
414
529
  "types": [
415
530
  {
531
+ "type": "function_type",
532
+ "named": true
533
+ },
534
+ {
416
- "type": "identifier",
535
+ "type": "generic",
536
+ "named": true
537
+ },
538
+ {
539
+ "type": "type",
417
540
  "named": true
418
541
  }
419
542
  ]
@@ -446,17 +569,9 @@
446
569
  "type": "negation",
447
570
  "named": true
448
571
  },
449
- {
450
- "type": "panic",
451
- "named": true
452
- },
453
572
  {
454
573
  "type": "string",
455
574
  "named": true
456
- },
457
- {
458
- "type": "todo",
459
- "named": true
460
575
  }
461
576
  ]
462
577
  }
@@ -511,37 +626,9 @@
511
626
  "type": "negation",
512
627
  "named": true
513
628
  },
514
- {
515
- "type": "panic",
516
- "named": true
517
- },
518
629
  {
519
630
  "type": "string",
520
631
  "named": true
521
- },
522
- {
523
- "type": "todo",
524
- "named": true
525
- }
526
- ]
527
- }
528
- },
529
- {
530
- "type": "panic",
531
- "named": true,
532
- "fields": {}
533
- },
534
- {
535
- "type": "record",
536
- "named": true,
537
- "fields": {},
538
- "children": {
539
- "multiple": true,
540
- "required": true,
541
- "types": [
542
- {
543
- "type": "type_field",
544
- "named": true
545
632
  }
546
633
  ]
547
634
  }
@@ -550,34 +637,20 @@
550
637
  "type": "return_type",
551
638
  "named": true,
552
639
  "fields": {
553
- "generics": {
640
+ "return_type": {
554
- "multiple": true,
641
+ "multiple": false,
555
- "required": false,
642
+ "required": true,
556
643
  "types": [
557
644
  {
558
- "type": "(",
645
+ "type": "function_type",
559
- "named": false
646
+ "named": true
560
- },
561
- {
562
- "type": ")",
563
- "named": false
564
- },
565
- {
566
- "type": ",",
567
- "named": false
568
647
  },
569
648
  {
570
- "type": "identifier",
649
+ "type": "generic",
571
650
  "named": true
572
- }
573
- ]
574
- },
651
+ },
575
- "name": {
576
- "multiple": false,
577
- "required": true,
578
- "types": [
579
652
  {
580
- "type": "type_identifier",
653
+ "type": "type",
581
654
  "named": true
582
655
  }
583
656
  ]
@@ -592,6 +665,10 @@
592
665
  "multiple": true,
593
666
  "required": true,
594
667
  "types": [
668
+ {
669
+ "type": "enum",
670
+ "named": true
671
+ },
595
672
  {
596
673
  "type": "function",
597
674
  "named": true
@@ -605,7 +682,7 @@
605
682
  "named": true
606
683
  },
607
684
  {
608
- "type": "type",
685
+ "type": "struct",
609
686
  "named": true
610
687
  }
611
688
  ]
@@ -631,31 +708,33 @@
631
708
  }
632
709
  },
633
710
  {
634
- "type": "todo",
711
+ "type": "struct",
635
712
  "named": true,
636
713
  "fields": {
637
- "message": {
714
+ "fields": {
638
- "multiple": false,
715
+ "multiple": true,
639
- "required": false,
716
+ "required": true,
640
717
  "types": [
641
718
  {
719
+ "type": "(",
720
+ "named": false
721
+ },
722
+ {
723
+ "type": ")",
724
+ "named": false
725
+ },
726
+ {
642
- "type": "string",
727
+ "type": "field",
643
728
  "named": true
644
729
  }
645
730
  ]
646
- }
647
- }
648
- },
731
+ },
649
- {
650
- "type": "type",
651
- "named": true,
652
- "fields": {
653
732
  "generics": {
654
733
  "multiple": false,
655
734
  "required": false,
656
735
  "types": [
657
736
  {
658
- "type": "generic_list",
737
+ "type": "generics",
659
738
  "named": true
660
739
  }
661
740
  ]
@@ -669,57 +748,29 @@
669
748
  "named": true
670
749
  }
671
750
  ]
672
- },
673
- "record": {
674
- "multiple": false,
675
- "required": false,
676
- "types": [
677
- {
678
- "type": "record",
679
- "named": true
680
- }
681
- ]
682
- },
683
- "union": {
684
- "multiple": true,
685
- "required": false,
686
- "types": [
687
- {
688
- "type": "=",
689
- "named": false
690
- },
691
- {
692
- "type": "union",
693
- "named": true
694
- },
695
- {
696
- "type": "|",
697
- "named": false
698
- }
699
- ]
700
751
  }
701
752
  }
702
753
  },
703
754
  {
704
- "type": "type_field",
755
+ "type": "type",
705
756
  "named": true,
706
757
  "fields": {
707
- "name": {
758
+ "arguments": {
708
759
  "multiple": false,
709
- "required": true,
760
+ "required": false,
710
761
  "types": [
711
762
  {
712
- "type": "identifier",
763
+ "type": "type_arguments",
713
764
  "named": true
714
765
  }
715
766
  ]
716
767
  },
717
- "type": {
768
+ "name": {
718
769
  "multiple": false,
719
770
  "required": true,
720
771
  "types": [
721
772
  {
722
- "type": "identifier",
773
+ "type": "type_identifier",
723
774
  "named": true
724
775
  }
725
776
  ]
@@ -727,40 +778,48 @@
727
778
  }
728
779
  },
729
780
  {
730
- "type": "type_identifier",
781
+ "type": "type_argument",
731
782
  "named": true,
732
- "fields": {}
783
+ "fields": {},
784
+ "children": {
785
+ "multiple": false,
786
+ "required": true,
787
+ "types": [
788
+ {
789
+ "type": "function_type",
790
+ "named": true
791
+ },
792
+ {
793
+ "type": "generic",
794
+ "named": true
795
+ },
796
+ {
797
+ "type": "type",
798
+ "named": true
799
+ }
800
+ ]
801
+ }
733
802
  },
734
803
  {
735
- "type": "union",
804
+ "type": "type_arguments",
736
805
  "named": true,
737
- "fields": {
806
+ "fields": {},
738
- "name": {
739
- "multiple": false,
740
- "required": true,
741
- "types": [
742
- {
743
- "type": "type_identifier",
744
- "named": true
745
- }
746
- ]
747
- }
748
- },
749
807
  "children": {
750
808
  "multiple": true,
751
809
  "required": false,
752
810
  "types": [
753
811
  {
754
- "type": "identifier",
755
- "named": true
756
- },
757
- {
758
- "type": "type_field",
812
+ "type": "type_argument",
759
813
  "named": true
760
814
  }
761
815
  ]
762
816
  }
763
817
  },
818
+ {
819
+ "type": "type_identifier",
820
+ "named": true,
821
+ "fields": {}
822
+ },
764
823
  {
765
824
  "type": "unqualified_import",
766
825
  "named": true,
@@ -914,6 +973,10 @@
914
973
  "type": "fn",
915
974
  "named": false
916
975
  },
976
+ {
977
+ "type": "generic",
978
+ "named": true
979
+ },
917
980
  {
918
981
  "type": "identifier",
919
982
  "named": true
@@ -930,18 +993,10 @@
930
993
  "type": "module",
931
994
  "named": false
932
995
  },
933
- {
934
- "type": "panic",
935
- "named": false
936
- },
937
996
  {
938
997
  "type": "quoted_content",
939
998
  "named": true
940
999
  },
941
- {
942
- "type": "todo",
943
- "named": false
944
- },
945
1000
  {
946
1001
  "type": "type",
947
1002
  "named": false
@@ -950,10 +1005,6 @@
950
1005
  "type": "{",
951
1006
  "named": false
952
1007
  },
953
- {
954
- "type": "|",
955
- "named": false
956
- },
957
1008
  {
958
1009
  "type": "|>",
959
1010
  "named": false
src/parser.c CHANGED
@@ -6,15 +6,15 @@
6
6
  #endif
7
7
 
8
8
  #define LANGUAGE_VERSION 14
9
- #define STATE_COUNT 188
9
+ #define STATE_COUNT 209
10
10
  #define LARGE_STATE_COUNT 2
11
- #define SYMBOL_COUNT 87
11
+ #define SYMBOL_COUNT 92
12
12
  #define ALIAS_COUNT 0
13
- #define TOKEN_COUNT 48
13
+ #define TOKEN_COUNT 46
14
14
  #define EXTERNAL_TOKEN_COUNT 1
15
- #define FIELD_COUNT 18
15
+ #define FIELD_COUNT 19
16
16
  #define MAX_ALIAS_SEQUENCE_LENGTH 11
17
- #define PRODUCTION_ID_COUNT 35
17
+ #define PRODUCTION_ID_COUNT 29
18
18
 
19
19
  enum {
20
20
  anon_sym_module = 1,
@@ -26,83 +26,88 @@ enum {
26
26
  anon_sym_COMMA = 7,
27
27
  anon_sym_RBRACE = 8,
28
28
  anon_sym_type = 9,
29
- anon_sym_EQ = 10,
29
+ anon_sym_LPAREN = 10,
30
- anon_sym_PIPE = 11,
30
+ anon_sym_RPAREN = 11,
31
31
  anon_sym_fn = 12,
32
- anon_sym_LPAREN = 13,
33
- anon_sym_RPAREN = 14,
34
- anon_sym_DASH_GT = 15,
35
- anon_sym_PIPE_PIPE = 16,
36
- anon_sym_AMP_AMP = 17,
37
- anon_sym_EQ_EQ = 18,
38
- anon_sym_BANG_EQ = 19,
39
- anon_sym_LT = 20,
40
- anon_sym_LT_EQ = 21,
41
- anon_sym_GT = 22,
42
- anon_sym_GT_EQ = 23,
43
- anon_sym_PIPE_GT = 24,
44
- anon_sym_PLUS = 25,
45
- anon_sym_DASH = 26,
46
- anon_sym_STAR = 27,
47
- anon_sym_PERCENT = 28,
48
- anon_sym_LT_GT = 29,
49
- anon_sym_BANG = 30,
50
- anon_sym_let = 31,
51
- anon_sym_todo = 32,
52
- anon_sym_panic = 33,
53
- anon_sym_COLON = 34,
54
- sym_float = 35,
55
- anon_sym_DQUOTE = 36,
56
- anon_sym_DQUOTE2 = 37,
57
- sym__hex = 38,
58
- sym__decimal = 39,
59
- sym__octal = 40,
60
- sym__binary = 41,
61
- sym_escape_sequence = 42,
62
- sym_identifier = 43,
63
- sym__discard_name = 44,
64
- sym__name = 45,
65
- sym__upname = 46,
66
- sym_quoted_content = 47,
67
- sym_source_file = 48,
68
- sym_module = 49,
69
- sym_import = 50,
70
- sym_module_name = 51,
71
- sym_unqualified_imports = 52,
72
- sym_unqualified_import = 53,
73
- sym_type = 54,
74
- sym_function = 55,
75
- aux_sym__statement_seq = 56,
76
- sym__statement = 57,
77
- sym__expression = 58,
78
- sym_binary_expression = 59,
79
- sym__expression_unit = 60,
80
- sym_expression_group = 61,
81
- sym_negation = 62,
82
- sym_let = 63,
83
- sym__assignment = 64,
84
- sym__pattern = 65,
85
- sym__pattern_expression = 66,
86
- sym__pattern_binary_expression = 67,
87
- sym_todo = 68,
88
- sym_panic = 69,
89
- sym_return_type = 70,
90
- sym_record = 71,
91
- sym_union = 72,
92
- sym_type_field = 73,
93
- sym_generic_list = 74,
32
+ anon_sym_PIPE_PIPE = 13,
33
+ anon_sym_AMP_AMP = 14,
34
+ anon_sym_EQ_EQ = 15,
35
+ anon_sym_BANG_EQ = 16,
36
+ anon_sym_LT = 17,
37
+ anon_sym_LT_EQ = 18,
38
+ anon_sym_GT = 19,
39
+ anon_sym_GT_EQ = 20,
40
+ anon_sym_PIPE_GT = 21,
41
+ anon_sym_PLUS = 22,
42
+ anon_sym_DASH = 23,
43
+ anon_sym_STAR = 24,
44
+ anon_sym_PERCENT = 25,
45
+ anon_sym_LT_GT = 26,
46
+ anon_sym_BANG = 27,
47
+ anon_sym_let = 28,
48
+ anon_sym_EQ = 29,
49
+ anon_sym_COLON = 30,
50
+ anon_sym_DASH_GT = 31,
51
+ sym_generic = 32,
52
+ sym_float = 33,
53
+ anon_sym_DQUOTE = 34,
54
+ anon_sym_DQUOTE2 = 35,
55
+ sym__hex = 36,
56
+ sym__decimal = 37,
57
+ sym__octal = 38,
58
+ sym__binary = 39,
59
+ sym_escape_sequence = 40,
60
+ sym_identifier = 41,
61
+ sym__discard_name = 42,
62
+ sym__name = 43,
63
+ sym__upname = 44,
64
+ sym_quoted_content = 45,
65
+ sym_source_file = 46,
66
+ sym_module = 47,
67
+ sym_import = 48,
68
+ sym_module_name = 49,
69
+ sym_unqualified_imports = 50,
70
+ sym_unqualified_import = 51,
71
+ sym_struct = 52,
72
+ sym_enum = 53,
73
+ sym_function = 54,
74
+ aux_sym__statement_seq = 55,
75
+ sym__statement = 56,
76
+ sym__expression = 57,
77
+ sym_binary_expression = 58,
78
+ sym__expression_unit = 59,
79
+ sym_expression_group = 60,
80
+ sym_negation = 61,
81
+ sym_let = 62,
82
+ sym__assignment = 63,
83
+ sym__pattern = 64,
84
+ sym__pattern_expression = 65,
85
+ sym__pattern_binary_expression = 66,
86
+ sym_field = 67,
87
+ sym_function_type = 68,
88
+ sym_function_parameter_types = 69,
89
+ sym_type = 70,
90
+ sym_type_arguments = 71,
91
+ sym_type_argument = 72,
92
+ sym_return_type = 73,
93
+ sym_generics = 74,
94
94
  sym_integer = 75,
95
95
  sym_string = 76,
96
96
  sym_type_identifier = 77,
97
97
  sym__type_annotation = 78,
98
- aux_sym_source_file_repeat1 = 79,
98
+ sym__type = 79,
99
- aux_sym_source_file_repeat2 = 80,
99
+ aux_sym_source_file_repeat1 = 80,
100
+ aux_sym_source_file_repeat2 = 81,
100
- aux_sym_module_name_repeat1 = 81,
101
+ aux_sym_module_name_repeat1 = 82,
101
- aux_sym_unqualified_imports_repeat1 = 82,
102
+ aux_sym_unqualified_imports_repeat1 = 83,
103
+ aux_sym_struct_repeat1 = 84,
102
- aux_sym_type_repeat1 = 83,
104
+ aux_sym_enum_repeat1 = 85,
105
+ aux_sym_enum_repeat2 = 86,
106
+ aux_sym_enum_repeat3 = 87,
107
+ aux_sym_function_parameter_types_repeat1 = 88,
108
+ aux_sym_type_arguments_repeat1 = 89,
103
- aux_sym_function_repeat1 = 84,
109
+ aux_sym_generics_repeat1 = 90,
104
- aux_sym_return_type_repeat1 = 85,
105
- aux_sym_string_repeat1 = 86,
110
+ aux_sym_string_repeat1 = 91,
106
111
  };
107
112
 
108
113
  static const char * const ts_symbol_names[] = {
@@ -116,12 +121,9 @@ static const char * const ts_symbol_names[] = {
116
121
  [anon_sym_COMMA] = ",",
117
122
  [anon_sym_RBRACE] = "}",
118
123
  [anon_sym_type] = "type",
119
- [anon_sym_EQ] = "=",
120
- [anon_sym_PIPE] = "|",
121
- [anon_sym_fn] = "fn",
122
124
  [anon_sym_LPAREN] = "(",
123
125
  [anon_sym_RPAREN] = ")",
124
- [anon_sym_DASH_GT] = "->",
126
+ [anon_sym_fn] = "fn",
125
127
  [anon_sym_PIPE_PIPE] = "||",
126
128
  [anon_sym_AMP_AMP] = "&&",
127
129
  [anon_sym_EQ_EQ] = "==",
@@ -138,9 +140,10 @@ static const char * const ts_symbol_names[] = {
138
140
  [anon_sym_LT_GT] = "<>",
139
141
  [anon_sym_BANG] = "!",
140
142
  [anon_sym_let] = "let",
141
- [anon_sym_todo] = "todo",
143
+ [anon_sym_EQ] = "=",
142
- [anon_sym_panic] = "panic",
143
144
  [anon_sym_COLON] = ":",
145
+ [anon_sym_DASH_GT] = "->",
146
+ [sym_generic] = "generic",
144
147
  [sym_float] = "float",
145
148
  [anon_sym_DQUOTE] = "\"",
146
149
  [anon_sym_DQUOTE2] = "\"",
@@ -160,7 +163,8 @@ static const char * const ts_symbol_names[] = {
160
163
  [sym_module_name] = "module_name",
161
164
  [sym_unqualified_imports] = "unqualified_imports",
162
165
  [sym_unqualified_import] = "unqualified_import",
166
+ [sym_struct] = "struct",
163
- [sym_type] = "type",
167
+ [sym_enum] = "enum",
164
168
  [sym_function] = "function",
165
169
  [aux_sym__statement_seq] = "_statement_seq",
166
170
  [sym__statement] = "_statement",
@@ -174,24 +178,30 @@ static const char * const ts_symbol_names[] = {
174
178
  [sym__pattern] = "_pattern",
175
179
  [sym__pattern_expression] = "_pattern_expression",
176
180
  [sym__pattern_binary_expression] = "binary_expression",
181
+ [sym_field] = "field",
182
+ [sym_function_type] = "function_type",
183
+ [sym_function_parameter_types] = "function_parameter_types",
177
- [sym_todo] = "todo",
184
+ [sym_type] = "type",
178
- [sym_panic] = "panic",
185
+ [sym_type_arguments] = "type_arguments",
186
+ [sym_type_argument] = "type_argument",
179
187
  [sym_return_type] = "return_type",
180
- [sym_record] = "record",
181
- [sym_union] = "union",
182
- [sym_type_field] = "type_field",
183
- [sym_generic_list] = "generic_list",
188
+ [sym_generics] = "generics",
184
189
  [sym_integer] = "integer",
185
190
  [sym_string] = "string",
186
191
  [sym_type_identifier] = "type_identifier",
187
192
  [sym__type_annotation] = "_type_annotation",
193
+ [sym__type] = "_type",
188
194
  [aux_sym_source_file_repeat1] = "source_file_repeat1",
189
195
  [aux_sym_source_file_repeat2] = "source_file_repeat2",
190
196
  [aux_sym_module_name_repeat1] = "module_name_repeat1",
191
197
  [aux_sym_unqualified_imports_repeat1] = "unqualified_imports_repeat1",
198
+ [aux_sym_struct_repeat1] = "struct_repeat1",
192
- [aux_sym_type_repeat1] = "type_repeat1",
199
+ [aux_sym_enum_repeat1] = "enum_repeat1",
200
+ [aux_sym_enum_repeat2] = "enum_repeat2",
201
+ [aux_sym_enum_repeat3] = "enum_repeat3",
202
+ [aux_sym_function_parameter_types_repeat1] = "function_parameter_types_repeat1",
203
+ [aux_sym_type_arguments_repeat1] = "type_arguments_repeat1",
193
- [aux_sym_function_repeat1] = "function_repeat1",
204
+ [aux_sym_generics_repeat1] = "generics_repeat1",
194
- [aux_sym_return_type_repeat1] = "return_type_repeat1",
195
205
  [aux_sym_string_repeat1] = "string_repeat1",
196
206
  };
197
207
 
@@ -206,12 +216,9 @@ static const TSSymbol ts_symbol_map[] = {
206
216
  [anon_sym_COMMA] = anon_sym_COMMA,
207
217
  [anon_sym_RBRACE] = anon_sym_RBRACE,
208
218
  [anon_sym_type] = anon_sym_type,
209
- [anon_sym_EQ] = anon_sym_EQ,
210
- [anon_sym_PIPE] = anon_sym_PIPE,
211
- [anon_sym_fn] = anon_sym_fn,
212
219
  [anon_sym_LPAREN] = anon_sym_LPAREN,
213
220
  [anon_sym_RPAREN] = anon_sym_RPAREN,
214
- [anon_sym_DASH_GT] = anon_sym_DASH_GT,
221
+ [anon_sym_fn] = anon_sym_fn,
215
222
  [anon_sym_PIPE_PIPE] = anon_sym_PIPE_PIPE,
216
223
  [anon_sym_AMP_AMP] = anon_sym_AMP_AMP,
217
224
  [anon_sym_EQ_EQ] = anon_sym_EQ_EQ,
@@ -228,9 +235,10 @@ static const TSSymbol ts_symbol_map[] = {
228
235
  [anon_sym_LT_GT] = anon_sym_LT_GT,
229
236
  [anon_sym_BANG] = anon_sym_BANG,
230
237
  [anon_sym_let] = anon_sym_let,
231
- [anon_sym_todo] = anon_sym_todo,
238
+ [anon_sym_EQ] = anon_sym_EQ,
232
- [anon_sym_panic] = anon_sym_panic,
233
239
  [anon_sym_COLON] = anon_sym_COLON,
240
+ [anon_sym_DASH_GT] = anon_sym_DASH_GT,
241
+ [sym_generic] = sym_generic,
234
242
  [sym_float] = sym_float,
235
243
  [anon_sym_DQUOTE] = anon_sym_DQUOTE,
236
244
  [anon_sym_DQUOTE2] = anon_sym_DQUOTE,
@@ -250,7 +258,8 @@ static const TSSymbol ts_symbol_map[] = {
250
258
  [sym_module_name] = sym_module_name,
251
259
  [sym_unqualified_imports] = sym_unqualified_imports,
252
260
  [sym_unqualified_import] = sym_unqualified_import,
261
+ [sym_struct] = sym_struct,
253
- [sym_type] = sym_type,
262
+ [sym_enum] = sym_enum,
254
263
  [sym_function] = sym_function,
255
264
  [aux_sym__statement_seq] = aux_sym__statement_seq,
256
265
  [sym__statement] = sym__statement,
@@ -264,24 +273,30 @@ static const TSSymbol ts_symbol_map[] = {
264
273
  [sym__pattern] = sym__pattern,
265
274
  [sym__pattern_expression] = sym__pattern_expression,
266
275
  [sym__pattern_binary_expression] = sym_binary_expression,
276
+ [sym_field] = sym_field,
277
+ [sym_function_type] = sym_function_type,
278
+ [sym_function_parameter_types] = sym_function_parameter_types,
267
- [sym_todo] = sym_todo,
279
+ [sym_type] = sym_type,
268
- [sym_panic] = sym_panic,
280
+ [sym_type_arguments] = sym_type_arguments,
281
+ [sym_type_argument] = sym_type_argument,
269
282
  [sym_return_type] = sym_return_type,
270
- [sym_record] = sym_record,
271
- [sym_union] = sym_union,
272
- [sym_type_field] = sym_type_field,
273
- [sym_generic_list] = sym_generic_list,
283
+ [sym_generics] = sym_generics,
274
284
  [sym_integer] = sym_integer,
275
285
  [sym_string] = sym_string,
276
286
  [sym_type_identifier] = sym_type_identifier,
277
287
  [sym__type_annotation] = sym__type_annotation,
288
+ [sym__type] = sym__type,
278
289
  [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
279
290
  [aux_sym_source_file_repeat2] = aux_sym_source_file_repeat2,
280
291
  [aux_sym_module_name_repeat1] = aux_sym_module_name_repeat1,
281
292
  [aux_sym_unqualified_imports_repeat1] = aux_sym_unqualified_imports_repeat1,
293
+ [aux_sym_struct_repeat1] = aux_sym_struct_repeat1,
282
- [aux_sym_type_repeat1] = aux_sym_type_repeat1,
294
+ [aux_sym_enum_repeat1] = aux_sym_enum_repeat1,
295
+ [aux_sym_enum_repeat2] = aux_sym_enum_repeat2,
296
+ [aux_sym_enum_repeat3] = aux_sym_enum_repeat3,
297
+ [aux_sym_function_parameter_types_repeat1] = aux_sym_function_parameter_types_repeat1,
298
+ [aux_sym_type_arguments_repeat1] = aux_sym_type_arguments_repeat1,
283
- [aux_sym_function_repeat1] = aux_sym_function_repeat1,
299
+ [aux_sym_generics_repeat1] = aux_sym_generics_repeat1,
284
- [aux_sym_return_type_repeat1] = aux_sym_return_type_repeat1,
285
300
  [aux_sym_string_repeat1] = aux_sym_string_repeat1,
286
301
  };
287
302
 
@@ -326,18 +341,6 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
326
341
  .visible = true,
327
342
  .named = false,
328
343
  },
329
- [anon_sym_EQ] = {
330
- .visible = true,
331
- .named = false,
332
- },
333
- [anon_sym_PIPE] = {
334
- .visible = true,
335
- .named = false,
336
- },
337
- [anon_sym_fn] = {
338
- .visible = true,
339
- .named = false,
340
- },
341
344
  [anon_sym_LPAREN] = {
342
345
  .visible = true,
343
346
  .named = false,
@@ -346,7 +349,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
346
349
  .visible = true,
347
350
  .named = false,
348
351
  },
349
- [anon_sym_DASH_GT] = {
352
+ [anon_sym_fn] = {
350
353
  .visible = true,
351
354
  .named = false,
352
355
  },
@@ -414,18 +417,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
414
417
  .visible = true,
415
418
  .named = false,
416
419
  },
417
- [anon_sym_todo] = {
420
+ [anon_sym_EQ] = {
418
421
  .visible = true,
419
422
  .named = false,
420
423
  },
421
- [anon_sym_panic] = {
424
+ [anon_sym_COLON] = {
422
425
  .visible = true,
423
426
  .named = false,
424
427
  },
425
- [anon_sym_COLON] = {
428
+ [anon_sym_DASH_GT] = {
426
429
  .visible = true,
427
430
  .named = false,
428
431
  },
432
+ [sym_generic] = {
433
+ .visible = true,
434
+ .named = true,
435
+ },
429
436
  [sym_float] = {
430
437
  .visible = true,
431
438
  .named = true,
@@ -502,7 +509,11 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
502
509
  .visible = true,
503
510
  .named = true,
504
511
  },
512
+ [sym_struct] = {
513
+ .visible = true,
514
+ .named = true,
515
+ },
505
- [sym_type] = {
516
+ [sym_enum] = {
506
517
  .visible = true,
507
518
  .named = true,
508
519
  },
@@ -558,31 +569,35 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
558
569
  .visible = true,
559
570
  .named = true,
560
571
  },
561
- [sym_todo] = {
572
+ [sym_field] = {
562
573
  .visible = true,
563
574
  .named = true,
564
575
  },
565
- [sym_panic] = {
576
+ [sym_function_type] = {
566
577
  .visible = true,
567
578
  .named = true,
568
579
  },
580
+ [sym_function_parameter_types] = {
581
+ .visible = true,
582
+ .named = true,
583
+ },
569
- [sym_return_type] = {
584
+ [sym_type] = {
570
585
  .visible = true,
571
586
  .named = true,
572
587
  },
573
- [sym_record] = {
588
+ [sym_type_arguments] = {
574
589
  .visible = true,
575
590
  .named = true,
576
591
  },
577
- [sym_union] = {
592
+ [sym_type_argument] = {
578
593
  .visible = true,
579
594
  .named = true,
580
595
  },
581
- [sym_type_field] = {
596
+ [sym_return_type] = {
582
597
  .visible = true,
583
598
  .named = true,
584
599
  },
585
- [sym_generic_list] = {
600
+ [sym_generics] = {
586
601
  .visible = true,
587
602
  .named = true,
588
603
  },
@@ -602,6 +617,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
602
617
  .visible = false,
603
618
  .named = true,
604
619
  },
620
+ [sym__type] = {
621
+ .visible = false,
622
+ .named = true,
623
+ },
605
624
  [aux_sym_source_file_repeat1] = {
606
625
  .visible = false,
607
626
  .named = false,
@@ -618,15 +637,31 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
618
637
  .visible = false,
619
638
  .named = false,
620
639
  },
640
+ [aux_sym_struct_repeat1] = {
641
+ .visible = false,
642
+ .named = false,
643
+ },
621
- [aux_sym_type_repeat1] = {
644
+ [aux_sym_enum_repeat1] = {
645
+ .visible = false,
646
+ .named = false,
647
+ },
648
+ [aux_sym_enum_repeat2] = {
649
+ .visible = false,
650
+ .named = false,
651
+ },
652
+ [aux_sym_enum_repeat3] = {
653
+ .visible = false,
654
+ .named = false,
655
+ },
656
+ [aux_sym_function_parameter_types_repeat1] = {
622
657
  .visible = false,
623
658
  .named = false,
624
659
  },
625
- [aux_sym_function_repeat1] = {
660
+ [aux_sym_type_arguments_repeat1] = {
626
661
  .visible = false,
627
662
  .named = false,
628
663
  },
629
- [aux_sym_return_type_repeat1] = {
664
+ [aux_sym_generics_repeat1] = {
630
665
  .visible = false,
631
666
  .named = false,
632
667
  },
@@ -638,44 +673,46 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
638
673
 
639
674
  enum {
640
675
  field_alias = 1,
676
+ field_arguments = 2,
641
- field_assign = 2,
677
+ field_assign = 3,
642
- field_body = 3,
678
+ field_body = 4,
679
+ field_fields = 5,
643
- field_generics = 4,
680
+ field_generics = 6,
644
- field_imports = 5,
681
+ field_imports = 7,
645
- field_left = 6,
682
+ field_left = 8,
646
- field_message = 7,
647
- field_module = 8,
683
+ field_module = 9,
648
- field_name = 9,
684
+ field_name = 10,
649
- field_operator = 10,
685
+ field_operator = 11,
686
+ field_parameter_types = 12,
650
- field_params = 11,
687
+ field_params = 13,
651
- field_pattern = 12,
688
+ field_pattern = 14,
652
- field_record = 13,
689
+ field_return = 15,
653
- field_return_type = 14,
690
+ field_return_type = 16,
654
- field_right = 15,
691
+ field_right = 17,
655
- field_type = 16,
692
+ field_type = 18,
656
- field_union = 17,
657
- field_value = 18,
693
+ field_value = 19,
658
694
  };
659
695
 
660
696
  static const char * const ts_field_names[] = {
661
697
  [0] = NULL,
662
698
  [field_alias] = "alias",
699
+ [field_arguments] = "arguments",
663
700
  [field_assign] = "assign",
664
701
  [field_body] = "body",
702
+ [field_fields] = "fields",
665
703
  [field_generics] = "generics",
666
704
  [field_imports] = "imports",
667
705
  [field_left] = "left",
668
- [field_message] = "message",
669
706
  [field_module] = "module",
670
707
  [field_name] = "name",
671
708
  [field_operator] = "operator",
709
+ [field_parameter_types] = "parameter_types",
672
710
  [field_params] = "params",
673
711
  [field_pattern] = "pattern",
674
- [field_record] = "record",
712
+ [field_return] = "return",
675
713
  [field_return_type] = "return_type",
676
714
  [field_right] = "right",
677
715
  [field_type] = "type",
678
- [field_union] = "union",
679
716
  [field_value] = "value",
680
717
  };
681
718
 
@@ -683,206 +720,152 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
683
720
  [1] = {.index = 0, .length = 1},
684
721
  [2] = {.index = 1, .length = 2},
685
722
  [3] = {.index = 3, .length = 2},
686
- [4] = {.index = 5, .length = 2},
723
+ [4] = {.index = 5, .length = 3},
687
- [5] = {.index = 7, .length = 3},
724
+ [5] = {.index = 8, .length = 1},
688
- [6] = {.index = 10, .length = 1},
725
+ [6] = {.index = 9, .length = 5},
689
- [7] = {.index = 11, .length = 3},
726
+ [7] = {.index = 14, .length = 2},
690
- [8] = {.index = 14, .length = 4},
727
+ [8] = {.index = 16, .length = 4},
691
- [9] = {.index = 18, .length = 4},
728
+ [9] = {.index = 20, .length = 4},
692
- [10] = {.index = 22, .length = 3},
729
+ [10] = {.index = 24, .length = 3},
693
- [11] = {.index = 25, .length = 5},
730
+ [11] = {.index = 27, .length = 2},
694
- [12] = {.index = 30, .length = 2},
731
+ [12] = {.index = 29, .length = 6},
695
- [13] = {.index = 32, .length = 5},
732
+ [13] = {.index = 35, .length = 5},
696
- [14] = {.index = 37, .length = 2},
733
+ [14] = {.index = 40, .length = 1},
697
- [15] = {.index = 39, .length = 6},
734
+ [15] = {.index = 41, .length = 2},
698
- [16] = {.index = 45, .length = 4},
735
+ [16] = {.index = 43, .length = 1},
699
- [17] = {.index = 49, .length = 3},
736
+ [17] = {.index = 44, .length = 2},
700
- [18] = {.index = 52, .length = 6},
737
+ [18] = {.index = 46, .length = 4},
701
- [19] = {.index = 58, .length = 3},
738
+ [19] = {.index = 50, .length = 3},
702
- [20] = {.index = 61, .length = 6},
739
+ [20] = {.index = 53, .length = 7},
703
- [21] = {.index = 67, .length = 7},
740
+ [21] = {.index = 60, .length = 3},
741
+ [22] = {.index = 63, .length = 8},
704
- [22] = {.index = 74, .length = 3},
742
+ [23] = {.index = 71, .length = 3},
705
- [23] = {.index = 77, .length = 1},
743
+ [24] = {.index = 74, .length = 1},
706
- [24] = {.index = 78, .length = 2},
744
+ [25] = {.index = 75, .length = 2},
707
- [25] = {.index = 80, .length = 1},
708
- [26] = {.index = 81, .length = 7},
745
+ [26] = {.index = 77, .length = 9},
709
- [27] = {.index = 88, .length = 4},
746
+ [27] = {.index = 86, .length = 4},
710
- [28] = {.index = 92, .length = 7},
747
+ [28] = {.index = 90, .length = 10},
711
- [29] = {.index = 99, .length = 8},
712
- [30] = {.index = 107, .length = 4},
713
- [31] = {.index = 111, .length = 5},
714
- [32] = {.index = 116, .length = 8},
715
- [33] = {.index = 124, .length = 8},
716
- [34] = {.index = 132, .length = 9},
717
748
  };
718
749
 
719
750
  static const TSFieldMapEntry ts_field_map_entries[] = {
720
751
  [0] =
721
752
  {field_module, 1},
722
753
  [1] =
723
- {field_name, 1},
724
- {field_record, 2},
725
- [3] =
726
754
  {field_imports, 3},
727
755
  {field_module, 1},
728
- [5] =
756
+ [3] =
729
757
  {field_alias, 3},
730
758
  {field_module, 1},
731
- [7] =
759
+ [5] =
760
+ {field_fields, 2},
761
+ {field_fields, 3},
732
762
  {field_name, 1},
733
- {field_union, 2},
734
- {field_union, 3},
735
- [10] =
763
+ [8] =
736
764
  {field_name, 0},
737
- [11] =
765
+ [9] =
738
- {field_generics, 2},
766
+ {field_fields, 2},
767
+ {field_fields, 3},
768
+ {field_fields, 4},
739
769
  {field_name, 1},
740
- {field_record, 3},
770
+ {field_name, 3, .inherited = true},
741
771
  [14] =
772
+ {field_name, 0, .inherited = true},
773
+ {field_name, 1, .inherited = true},
774
+ [16] =
775
+ {field_fields, 2},
776
+ {field_fields, 3},
777
+ {field_fields, 4},
742
778
  {field_name, 1},
743
- {field_union, 2},
744
- {field_union, 3},
745
- {field_union, 4},
746
- [18] =
779
+ [20] =
780
+ {field_fields, 3},
781
+ {field_fields, 4},
747
782
  {field_generics, 2},
748
783
  {field_name, 1},
749
- {field_union, 3},
750
- {field_union, 4},
751
- [22] =
784
+ [24] =
752
785
  {field_alias, 5},
753
786
  {field_imports, 3},
754
787
  {field_module, 1},
755
- [25] =
788
+ [27] =
756
- {field_name, 1},
757
- {field_union, 2},
758
- {field_union, 3},
759
- {field_union, 4},
760
- {field_union, 5},
761
- [30] =
762
789
  {field_name, 0},
763
790
  {field_type, 2},
764
- [32] =
791
+ [29] =
792
+ {field_fields, 3},
793
+ {field_fields, 4},
794
+ {field_fields, 5},
765
795
  {field_generics, 2},
766
796
  {field_name, 1},
767
- {field_union, 3},
797
+ {field_name, 4, .inherited = true},
768
- {field_union, 4},
769
- {field_union, 5},
770
- [37] =
798
+ [35] =
771
- {field_alias, 2},
799
+ {field_fields, 3},
772
- {field_name, 0},
800
+ {field_fields, 4},
773
- [39] =
801
+ {field_fields, 5},
774
802
  {field_generics, 2},
775
803
  {field_name, 1},
776
- {field_union, 3},
777
- {field_union, 4},
778
- {field_union, 5},
779
- {field_union, 6},
780
- [45] =
804
+ [40] =
805
+ {field_return_type, 1},
806
+ [41] =
807
+ {field_alias, 2},
808
+ {field_name, 0},
809
+ [43] =
810
+ {field_parameter_types, 1},
811
+ [44] =
812
+ {field_arguments, 1},
813
+ {field_name, 0},
814
+ [46] =
781
815
  {field_assign, 1, .inherited = true},
782
816
  {field_pattern, 1, .inherited = true},
783
817
  {field_type, 1, .inherited = true},
784
818
  {field_value, 1, .inherited = true},
785
- [49] =
819
+ [50] =
786
820
  {field_left, 0, .inherited = true},
787
821
  {field_operator, 0, .inherited = true},
788
822
  {field_right, 0, .inherited = true},
789
- [52] =
823
+ [53] =
790
- {field_body, 4},
791
824
  {field_body, 5},
792
825
  {field_body, 6},
826
+ {field_body, 7},
793
827
  {field_name, 1},
794
828
  {field_params, 2},
795
829
  {field_params, 3},
830
+ {field_return, 4},
796
- [58] =
831
+ [60] =
797
832
  {field_left, 0},
798
833
  {field_operator, 1},
799
834
  {field_right, 2},
800
- [61] =
835
+ [63] =
801
- {field_body, 5},
802
- {field_body, 6},
803
- {field_body, 7},
804
- {field_name, 1},
805
- {field_params, 2},
806
- {field_params, 3},
807
- [67] =
808
- {field_body, 5},
809
836
  {field_body, 6},
810
837
  {field_body, 7},
838
+ {field_body, 8},
811
839
  {field_name, 1},
812
840
  {field_params, 2},
813
841
  {field_params, 3},
814
842
  {field_params, 4},
843
+ {field_return, 5},
815
- [74] =
844
+ [71] =
816
845
  {field_assign, 0, .inherited = true},
817
846
  {field_pattern, 0},
818
847
  {field_value, 2},
819
- [77] =
848
+ [74] =
820
849
  {field_type, 1},
821
- [78] =
850
+ [75] =
822
851
  {field_assign, 1},
823
852
  {field_assign, 2},
824
- [80] =
853
+ [77] =
825
- {field_message, 2},
826
- [81] =
827
- {field_body, 6},
828
- {field_body, 7},
829
- {field_body, 8},
830
- {field_name, 1},
831
- {field_params, 2},
832
- {field_params, 3},
833
- {field_return_type, 5},
834
- [88] =
835
- {field_generics, 1},
836
- {field_generics, 2},
837
- {field_generics, 3},
838
- {field_name, 0},
839
- [92] =
840
- {field_body, 6},
841
- {field_body, 7},
842
- {field_body, 8},
843
- {field_name, 1},
844
- {field_params, 2},
845
- {field_params, 3},
846
- {field_params, 4},
847
- [99] =
848
- {field_body, 6},
849
854
  {field_body, 7},
850
855
  {field_body, 8},
856
+ {field_body, 9},
851
857
  {field_name, 1},
852
858
  {field_params, 2},
853
859
  {field_params, 3},
854
860
  {field_params, 4},
855
861
  {field_params, 5},
862
+ {field_return, 6},
856
- [107] =
863
+ [86] =
857
864
  {field_assign, 0, .inherited = true},
858
865
  {field_pattern, 0},
859
866
  {field_type, 1, .inherited = true},
860
867
  {field_value, 3},
861
- [111] =
868
+ [90] =
862
- {field_generics, 1},
863
- {field_generics, 2},
864
- {field_generics, 3},
865
- {field_generics, 4},
866
- {field_name, 0},
867
- [116] =
868
- {field_body, 7},
869
- {field_body, 8},
870
- {field_body, 9},
871
- {field_name, 1},
872
- {field_params, 2},
873
- {field_params, 3},
874
- {field_params, 4},
875
- {field_return_type, 6},
876
- [124] =
877
- {field_body, 7},
878
- {field_body, 8},
879
- {field_body, 9},
880
- {field_name, 1},
881
- {field_params, 2},
882
- {field_params, 3},
883
- {field_params, 4},
884
- {field_params, 5},
885
- [132] =
886
869
  {field_body, 8},
887
870
  {field_body, 9},
888
871
  {field_body, 10},
@@ -891,7 +874,8 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
891
874
  {field_params, 3},
892
875
  {field_params, 4},
893
876
  {field_params, 5},
877
+ {field_params, 6},
894
- {field_return_type, 7},
878
+ {field_return, 7},
895
879
  };
896
880
 
897
881
  static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
@@ -966,8 +950,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
966
950
  [60] = 60,
967
951
  [61] = 61,
968
952
  [62] = 62,
969
- [63] = 63,
953
+ [63] = 62,
970
- [64] = 64,
954
+ [64] = 60,
971
955
  [65] = 65,
972
956
  [66] = 66,
973
957
  [67] = 67,
@@ -977,7 +961,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
977
961
  [71] = 71,
978
962
  [72] = 72,
979
963
  [73] = 73,
980
- [74] = 74,
964
+ [74] = 49,
981
965
  [75] = 75,
982
966
  [76] = 76,
983
967
  [77] = 77,
@@ -991,15 +975,15 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
991
975
  [85] = 85,
992
976
  [86] = 86,
993
977
  [87] = 87,
994
- [88] = 13,
978
+ [88] = 88,
995
- [89] = 11,
979
+ [89] = 89,
996
980
  [90] = 90,
997
981
  [91] = 91,
998
982
  [92] = 92,
999
983
  [93] = 93,
1000
984
  [94] = 94,
1001
- [95] = 95,
985
+ [95] = 11,
1002
- [96] = 87,
986
+ [96] = 5,
1003
987
  [97] = 97,
1004
988
  [98] = 98,
1005
989
  [99] = 99,
@@ -1012,11 +996,11 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
1012
996
  [106] = 106,
1013
997
  [107] = 107,
1014
998
  [108] = 108,
1015
- [109] = 109,
999
+ [109] = 70,
1016
1000
  [110] = 110,
1017
1001
  [111] = 111,
1018
1002
  [112] = 112,
1019
- [113] = 113,
1003
+ [113] = 94,
1020
1004
  [114] = 114,
1021
1005
  [115] = 115,
1022
1006
  [116] = 116,
@@ -1052,7 +1036,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
1052
1036
  [146] = 146,
1053
1037
  [147] = 147,
1054
1038
  [148] = 148,
1055
- [149] = 149,
1039
+ [149] = 55,
1056
1040
  [150] = 150,
1057
1041
  [151] = 151,
1058
1042
  [152] = 152,
@@ -1091,6 +1075,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
1091
1075
  [185] = 185,
1092
1076
  [186] = 186,
1093
1077
  [187] = 187,
1078
+ [188] = 188,
1079
+ [189] = 189,
1080
+ [190] = 190,
1081
+ [191] = 191,
1082
+ [192] = 192,
1083
+ [193] = 193,
1084
+ [194] = 194,
1085
+ [195] = 195,
1086
+ [196] = 196,
1087
+ [197] = 197,
1088
+ [198] = 198,
1089
+ [199] = 199,
1090
+ [200] = 200,
1091
+ [201] = 201,
1092
+ [202] = 202,
1093
+ [203] = 203,
1094
+ [204] = 204,
1095
+ [205] = 205,
1096
+ [206] = 206,
1097
+ [207] = 202,
1098
+ [208] = 208,
1094
1099
  };
1095
1100
 
1096
1101
  static bool ts_lex(TSLexer *lexer, TSStateId state) {
@@ -1098,639 +1103,576 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1098
1103
  eof = lexer->eof(lexer);
1099
1104
  switch (state) {
1100
1105
  case 0:
1101
- if (eof) ADVANCE(44);
1106
+ if (eof) ADVANCE(40);
1102
- if (lookahead == '!') ADVANCE(78);
1107
+ if (lookahead == '!') ADVANCE(70);
1103
- if (lookahead == '"') ADVANCE(89);
1108
+ if (lookahead == '"') ADVANCE(83);
1104
- if (lookahead == '%') ADVANCE(75);
1109
+ if (lookahead == '%') ADVANCE(67);
1105
1110
  if (lookahead == '&') ADVANCE(4);
1106
- if (lookahead == '(') ADVANCE(59);
1111
+ if (lookahead == '(') ADVANCE(50);
1107
- if (lookahead == ')') ADVANCE(60);
1108
- if (lookahead == '*') ADVANCE(74);
1109
- if (lookahead == '+') ADVANCE(71);
1110
- if (lookahead == ',') ADVANCE(51);
1112
+ if (lookahead == ')') ADVANCE(51);
1111
- if (lookahead == '-') ADVANCE(72);
1113
+ if (lookahead == '*') ADVANCE(66);
1114
+ if (lookahead == '+') ADVANCE(63);
1112
- if (lookahead == '.') ADVANCE(47);
1115
+ if (lookahead == ',') ADVANCE(47);
1116
+ if (lookahead == '-') ADVANCE(64);
1117
+ if (lookahead == '.') ADVANCE(43);
1113
- if (lookahead == '/') ADVANCE(49);
1118
+ if (lookahead == '/') ADVANCE(45);
1114
- if (lookahead == '0') ADVANCE(91);
1115
- if (lookahead == ':') ADVANCE(85);
1119
+ if (lookahead == '0') ADVANCE(85);
1120
+ if (lookahead == ':') ADVANCE(75);
1116
- if (lookahead == '<') ADVANCE(66);
1121
+ if (lookahead == '<') ADVANCE(58);
1117
- if (lookahead == '=') ADVANCE(55);
1122
+ if (lookahead == '=') ADVANCE(74);
1118
- if (lookahead == '>') ADVANCE(68);
1123
+ if (lookahead == '>') ADVANCE(60);
1119
- if (lookahead == '\\') ADVANCE(38);
1124
+ if (lookahead == '\\') ADVANCE(35);
1120
- if (lookahead == '_') ADVANCE(108);
1125
+ if (lookahead == '_') ADVANCE(95);
1121
- if (lookahead == 'a') ADVANCE(31);
1126
+ if (lookahead == 'a') ADVANCE(28);
1122
1127
  if (lookahead == 'f') ADVANCE(22);
1123
1128
  if (lookahead == 'i') ADVANCE(21);
1124
- if (lookahead == 'l') ADVANCE(16);
1129
+ if (lookahead == 'l') ADVANCE(17);
1125
- if (lookahead == 'm') ADVANCE(24);
1130
+ if (lookahead == 'm') ADVANCE(23);
1126
- if (lookahead == 'p') ADVANCE(12);
1131
+ if (lookahead == 't') ADVANCE(32);
1127
- if (lookahead == 't') ADVANCE(27);
1128
- if (lookahead == '{') ADVANCE(50);
1132
+ if (lookahead == '{') ADVANCE(46);
1129
- if (lookahead == '|') ADVANCE(57);
1133
+ if (lookahead == '|') ADVANCE(15);
1130
- if (lookahead == '}') ADVANCE(52);
1134
+ if (lookahead == '}') ADVANCE(48);
1131
1135
  if (lookahead == '\t' ||
1132
1136
  lookahead == '\n' ||
1133
1137
  lookahead == '\r' ||
1134
- lookahead == ' ') SKIP(42)
1138
+ lookahead == ' ') SKIP(39)
1135
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1139
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86);
1136
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(111);
1140
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(98);
1137
1141
  END_STATE();
1138
1142
  case 1:
1139
- if (lookahead == '!') ADVANCE(78);
1143
+ if (lookahead == '!') ADVANCE(70);
1140
- if (lookahead == '"') ADVANCE(88);
1144
+ if (lookahead == '"') ADVANCE(82);
1141
- if (lookahead == '%') ADVANCE(75);
1145
+ if (lookahead == '%') ADVANCE(67);
1142
1146
  if (lookahead == '&') ADVANCE(4);
1143
- if (lookahead == '(') ADVANCE(59);
1144
- if (lookahead == ')') ADVANCE(60);
1147
+ if (lookahead == '*') ADVANCE(66);
1145
- if (lookahead == '*') ADVANCE(74);
1146
- if (lookahead == '+') ADVANCE(71);
1148
+ if (lookahead == '+') ADVANCE(63);
1147
- if (lookahead == '-') ADVANCE(73);
1149
+ if (lookahead == '-') ADVANCE(65);
1148
- if (lookahead == '/') ADVANCE(49);
1150
+ if (lookahead == '/') ADVANCE(45);
1149
- if (lookahead == '0') ADVANCE(91);
1151
+ if (lookahead == '0') ADVANCE(85);
1150
- if (lookahead == '<') ADVANCE(66);
1152
+ if (lookahead == '<') ADVANCE(58);
1151
- if (lookahead == '=') ADVANCE(8);
1153
+ if (lookahead == '=') ADVANCE(12);
1152
- if (lookahead == '>') ADVANCE(68);
1154
+ if (lookahead == '>') ADVANCE(60);
1153
- if (lookahead == '_') ADVANCE(96);
1155
+ if (lookahead == '_') ADVANCE(90);
1154
- if (lookahead == 'l') ADVANCE(101);
1155
- if (lookahead == 'p') ADVANCE(98);
1156
+ if (lookahead == 'l') ADVANCE(92);
1156
- if (lookahead == 't') ADVANCE(104);
1157
- if (lookahead == '{') ADVANCE(50);
1157
+ if (lookahead == '{') ADVANCE(46);
1158
- if (lookahead == '|') ADVANCE(11);
1158
+ if (lookahead == '|') ADVANCE(15);
1159
- if (lookahead == '}') ADVANCE(52);
1159
+ if (lookahead == '}') ADVANCE(48);
1160
1160
  if (lookahead == '\t' ||
1161
1161
  lookahead == '\n' ||
1162
1162
  lookahead == '\r' ||
1163
1163
  lookahead == ' ') SKIP(1)
1164
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1164
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86);
1165
1165
  if (('A' <= lookahead && lookahead <= 'Z') ||
1166
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1166
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1167
1167
  END_STATE();
1168
1168
  case 2:
1169
- if (lookahead == '!') ADVANCE(77);
1169
+ if (lookahead == '!') ADVANCE(69);
1170
- if (lookahead == '"') ADVANCE(88);
1170
+ if (lookahead == '"') ADVANCE(82);
1171
- if (lookahead == '(') ADVANCE(59);
1171
+ if (lookahead == '-') ADVANCE(65);
1172
+ if (lookahead == '0') ADVANCE(85);
1173
+ if (lookahead == ':') ADVANCE(75);
1172
- if (lookahead == '-') ADVANCE(73);
1174
+ if (lookahead == '=') ADVANCE(73);
1173
- if (lookahead == '0') ADVANCE(91);
1174
- if (lookahead == ':') ADVANCE(85);
1175
- if (lookahead == '=') ADVANCE(54);
1176
- if (lookahead == '_') ADVANCE(96);
1175
+ if (lookahead == '_') ADVANCE(90);
1177
- if (lookahead == 'p') ADVANCE(98);
1178
- if (lookahead == 't') ADVANCE(104);
1179
- if (lookahead == '{') ADVANCE(50);
1176
+ if (lookahead == '{') ADVANCE(46);
1180
1177
  if (lookahead == '\t' ||
1181
1178
  lookahead == '\n' ||
1182
1179
  lookahead == '\r' ||
1183
1180
  lookahead == ' ') SKIP(2)
1184
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1181
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86);
1185
1182
  if (('A' <= lookahead && lookahead <= 'Z') ||
1186
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1183
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1187
1184
  END_STATE();
1188
1185
  case 3:
1189
- if (lookahead == '"') ADVANCE(89);
1186
+ if (lookahead == '"') ADVANCE(83);
1190
- if (lookahead == ')') ADVANCE(60);
1187
+ if (lookahead == '(') ADVANCE(50);
1188
+ if (lookahead == ')') ADVANCE(51);
1189
+ if (lookahead == ',') ADVANCE(47);
1191
- if (lookahead == '-') ADVANCE(73);
1190
+ if (lookahead == '-') ADVANCE(13);
1192
- if (lookahead == '0') ADVANCE(91);
1191
+ if (lookahead == '=') ADVANCE(73);
1193
- if (lookahead == '\\') ADVANCE(38);
1192
+ if (lookahead == '\\') ADVANCE(35);
1193
+ if (lookahead == 'f') ADVANCE(77);
1194
- if (lookahead == '_') ADVANCE(96);
1194
+ if (lookahead == '{') ADVANCE(46);
1195
- if (lookahead == '}') ADVANCE(52);
1196
1195
  if (lookahead == '\t' ||
1197
1196
  lookahead == '\n' ||
1198
1197
  lookahead == '\r' ||
1199
1198
  lookahead == ' ') SKIP(5)
1200
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1199
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1201
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(97);
1200
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(98);
1202
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1203
1201
  END_STATE();
1204
1202
  case 4:
1205
- if (lookahead == '&') ADVANCE(63);
1203
+ if (lookahead == '&') ADVANCE(55);
1206
1204
  END_STATE();
1207
1205
  case 5:
1208
- if (lookahead == ')') ADVANCE(60);
1206
+ if (lookahead == '(') ADVANCE(50);
1207
+ if (lookahead == ')') ADVANCE(51);
1208
+ if (lookahead == ',') ADVANCE(47);
1209
- if (lookahead == '-') ADVANCE(73);
1209
+ if (lookahead == '-') ADVANCE(13);
1210
- if (lookahead == '0') ADVANCE(91);
1210
+ if (lookahead == '=') ADVANCE(73);
1211
+ if (lookahead == 'f') ADVANCE(77);
1211
- if (lookahead == '_') ADVANCE(96);
1212
+ if (lookahead == '{') ADVANCE(46);
1212
- if (lookahead == '}') ADVANCE(52);
1213
1213
  if (lookahead == '\t' ||
1214
1214
  lookahead == '\n' ||
1215
1215
  lookahead == '\r' ||
1216
1216
  lookahead == ' ') SKIP(5)
1217
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1217
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1218
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(97);
1218
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(98);
1219
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1220
1219
  END_STATE();
1221
1220
  case 6:
1222
- if (lookahead == '-') ADVANCE(40);
1221
+ if (lookahead == '(') ADVANCE(50);
1223
- if (('0' <= lookahead && lookahead <= '9') ||
1222
+ if (lookahead == ')') ADVANCE(51);
1224
- lookahead == '_') ADVANCE(87);
1223
+ if (lookahead == ',') ADVANCE(47);
1224
+ if (lookahead == '-') ADVANCE(13);
1225
+ if (lookahead == '=') ADVANCE(73);
1226
+ if (lookahead == '{') ADVANCE(46);
1227
+ if (lookahead == '}') ADVANCE(48);
1228
+ if (lookahead == '\t' ||
1229
+ lookahead == '\n' ||
1230
+ lookahead == '\r' ||
1231
+ lookahead == ' ') SKIP(6)
1232
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(91);
1233
+ if (lookahead == '_' ||
1234
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1225
1235
  END_STATE();
1226
1236
  case 7:
1237
+ if (lookahead == '(') ADVANCE(50);
1238
+ if (lookahead == ')') ADVANCE(51);
1239
+ if (lookahead == ',') ADVANCE(47);
1240
+ if (lookahead == ':') ADVANCE(75);
1241
+ if (lookahead == '<') ADVANCE(14);
1242
+ if (lookahead == '=') ADVANCE(73);
1243
+ if (lookahead == 'a') ADVANCE(28);
1227
- if (lookahead == '.') ADVANCE(86);
1244
+ if (lookahead == '{') ADVANCE(46);
1228
- if (('0' <= lookahead && lookahead <= '9') ||
1229
- lookahead == '_') ADVANCE(7);
1245
+ if (lookahead == '}') ADVANCE(48);
1246
+ if (lookahead == '\t' ||
1247
+ lookahead == '\n' ||
1248
+ lookahead == '\r' ||
1249
+ lookahead == ' ') SKIP(7)
1250
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(98);
1230
1251
  END_STATE();
1231
1252
  case 8:
1232
- if (lookahead == '=') ADVANCE(64);
1253
+ if (lookahead == ')') ADVANCE(51);
1254
+ if (lookahead == '\t' ||
1255
+ lookahead == '\n' ||
1256
+ lookahead == '\r' ||
1257
+ lookahead == ' ') SKIP(8)
1258
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(79);
1259
+ if (('A' <= lookahead && lookahead <= 'Z') ||
1260
+ lookahead == '_') ADVANCE(94);
1233
1261
  END_STATE();
1234
1262
  case 9:
1235
- if (lookahead == '>') ADVANCE(61);
1263
+ if (lookahead == ')') ADVANCE(51);
1264
+ if (lookahead == '\t' ||
1265
+ lookahead == '\n' ||
1266
+ lookahead == '\r' ||
1267
+ lookahead == ' ') SKIP(9)
1268
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1236
1269
  END_STATE();
1237
1270
  case 10:
1238
- if (lookahead == '>') ADVANCE(76);
1271
+ if (lookahead == '-') ADVANCE(37);
1272
+ if (('0' <= lookahead && lookahead <= '9') ||
1273
+ lookahead == '_') ADVANCE(81);
1239
1274
  END_STATE();
1240
1275
  case 11:
1241
- if (lookahead == '>') ADVANCE(70);
1242
- if (lookahead == '|') ADVANCE(62);
1276
+ if (lookahead == '.') ADVANCE(80);
1277
+ if (('0' <= lookahead && lookahead <= '9') ||
1278
+ lookahead == '_') ADVANCE(11);
1243
1279
  END_STATE();
1244
1280
  case 12:
1245
- if (lookahead == 'a') ADVANCE(23);
1281
+ if (lookahead == '=') ADVANCE(56);
1246
1282
  END_STATE();
1247
1283
  case 13:
1248
- if (lookahead == 'c') ADVANCE(83);
1284
+ if (lookahead == '>') ADVANCE(76);
1249
1285
  END_STATE();
1250
1286
  case 14:
1251
- if (lookahead == 'd') ADVANCE(34);
1287
+ if (lookahead == '>') ADVANCE(68);
1252
1288
  END_STATE();
1253
1289
  case 15:
1290
+ if (lookahead == '>') ADVANCE(62);
1254
- if (lookahead == 'd') ADVANCE(26);
1291
+ if (lookahead == '|') ADVANCE(54);
1255
1292
  END_STATE();
1256
1293
  case 16:
1257
- if (lookahead == 'e') ADVANCE(32);
1294
+ if (lookahead == 'd') ADVANCE(31);
1258
1295
  END_STATE();
1259
1296
  case 17:
1260
- if (lookahead == 'e') ADVANCE(53);
1297
+ if (lookahead == 'e') ADVANCE(29);
1261
1298
  END_STATE();
1262
1299
  case 18:
1263
- if (lookahead == 'e') ADVANCE(45);
1300
+ if (lookahead == 'e') ADVANCE(49);
1264
1301
  END_STATE();
1265
1302
  case 19:
1266
- if (lookahead == 'i') ADVANCE(13);
1303
+ if (lookahead == 'e') ADVANCE(41);
1267
1304
  END_STATE();
1268
1305
  case 20:
1269
- if (lookahead == 'l') ADVANCE(18);
1306
+ if (lookahead == 'l') ADVANCE(19);
1270
1307
  END_STATE();
1271
1308
  case 21:
1272
- if (lookahead == 'm') ADVANCE(29);
1309
+ if (lookahead == 'm') ADVANCE(26);
1273
1310
  END_STATE();
1274
1311
  case 22:
1275
- if (lookahead == 'n') ADVANCE(58);
1312
+ if (lookahead == 'n') ADVANCE(52);
1276
1313
  END_STATE();
1277
1314
  case 23:
1278
- if (lookahead == 'n') ADVANCE(19);
1315
+ if (lookahead == 'o') ADVANCE(16);
1279
1316
  END_STATE();
1280
1317
  case 24:
1281
- if (lookahead == 'o') ADVANCE(14);
1318
+ if (lookahead == 'o') ADVANCE(27);
1282
1319
  END_STATE();
1283
1320
  case 25:
1284
- if (lookahead == 'o') ADVANCE(30);
1321
+ if (lookahead == 'p') ADVANCE(18);
1285
1322
  END_STATE();
1286
1323
  case 26:
1287
- if (lookahead == 'o') ADVANCE(81);
1324
+ if (lookahead == 'p') ADVANCE(24);
1288
1325
  END_STATE();
1289
1326
  case 27:
1290
- if (lookahead == 'o') ADVANCE(15);
1327
+ if (lookahead == 'r') ADVANCE(30);
1291
- if (lookahead == 'y') ADVANCE(28);
1292
1328
  END_STATE();
1293
1329
  case 28:
1294
- if (lookahead == 'p') ADVANCE(17);
1330
+ if (lookahead == 's') ADVANCE(44);
1295
1331
  END_STATE();
1296
1332
  case 29:
1297
- if (lookahead == 'p') ADVANCE(25);
1333
+ if (lookahead == 't') ADVANCE(71);
1298
1334
  END_STATE();
1299
1335
  case 30:
1300
- if (lookahead == 'r') ADVANCE(33);
1336
+ if (lookahead == 't') ADVANCE(42);
1301
1337
  END_STATE();
1302
1338
  case 31:
1303
- if (lookahead == 's') ADVANCE(48);
1339
+ if (lookahead == 'u') ADVANCE(20);
1304
1340
  END_STATE();
1305
1341
  case 32:
1306
- if (lookahead == 't') ADVANCE(79);
1342
+ if (lookahead == 'y') ADVANCE(25);
1307
1343
  END_STATE();
1308
1344
  case 33:
1309
- if (lookahead == 't') ADVANCE(46);
1310
- END_STATE();
1311
- case 34:
1312
- if (lookahead == 'u') ADVANCE(20);
1313
- END_STATE();
1314
- case 35:
1315
- if (lookahead == 'y') ADVANCE(28);
1316
- END_STATE();
1317
- case 36:
1318
1345
  if (lookahead == '0' ||
1319
1346
  lookahead == '1' ||
1320
- lookahead == '_') ADVANCE(94);
1347
+ lookahead == '_') ADVANCE(88);
1321
1348
  END_STATE();
1322
- case 37:
1349
+ case 34:
1323
1350
  if (lookahead == '\t' ||
1324
1351
  lookahead == '\n' ||
1325
1352
  lookahead == '\r' ||
1326
- lookahead == ' ') SKIP(37)
1353
+ lookahead == ' ') SKIP(34)
1327
1354
  if (lookahead == '_' ||
1328
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(110);
1355
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(97);
1329
1356
  END_STATE();
1330
- case 38:
1357
+ case 35:
1331
1358
  if (lookahead == '"' ||
1332
1359
  lookahead == '\\' ||
1333
1360
  lookahead == 'e' ||
1334
1361
  lookahead == 'f' ||
1335
1362
  lookahead == 'n' ||
1336
1363
  lookahead == 'r' ||
1337
- lookahead == 't') ADVANCE(95);
1364
+ lookahead == 't') ADVANCE(89);
1338
1365
  END_STATE();
1339
- case 39:
1366
+ case 36:
1340
1367
  if (('0' <= lookahead && lookahead <= '7') ||
1341
- lookahead == '_') ADVANCE(93);
1368
+ lookahead == '_') ADVANCE(87);
1342
1369
  END_STATE();
1343
- case 40:
1370
+ case 37:
1344
1371
  if (('0' <= lookahead && lookahead <= '9') ||
1345
- lookahead == '_') ADVANCE(87);
1372
+ lookahead == '_') ADVANCE(81);
1346
1373
  END_STATE();
1347
- case 41:
1374
+ case 38:
1348
1375
  if (('0' <= lookahead && lookahead <= '9') ||
1349
1376
  ('A' <= lookahead && lookahead <= 'F') ||
1350
1377
  lookahead == '_' ||
1351
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(90);
1378
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
1352
1379
  END_STATE();
1353
- case 42:
1380
+ case 39:
1354
- if (eof) ADVANCE(44);
1381
+ if (eof) ADVANCE(40);
1355
- if (lookahead == '!') ADVANCE(78);
1382
+ if (lookahead == '!') ADVANCE(70);
1356
- if (lookahead == '"') ADVANCE(88);
1383
+ if (lookahead == '"') ADVANCE(82);
1357
- if (lookahead == '%') ADVANCE(75);
1384
+ if (lookahead == '%') ADVANCE(67);
1358
1385
  if (lookahead == '&') ADVANCE(4);
1359
- if (lookahead == '(') ADVANCE(59);
1386
+ if (lookahead == '(') ADVANCE(50);
1360
- if (lookahead == ')') ADVANCE(60);
1361
- if (lookahead == '*') ADVANCE(74);
1362
- if (lookahead == '+') ADVANCE(71);
1363
- if (lookahead == ',') ADVANCE(51);
1387
+ if (lookahead == ')') ADVANCE(51);
1364
- if (lookahead == '-') ADVANCE(72);
1388
+ if (lookahead == '*') ADVANCE(66);
1389
+ if (lookahead == '+') ADVANCE(63);
1365
- if (lookahead == '.') ADVANCE(47);
1390
+ if (lookahead == ',') ADVANCE(47);
1391
+ if (lookahead == '-') ADVANCE(64);
1392
+ if (lookahead == '.') ADVANCE(43);
1366
- if (lookahead == '/') ADVANCE(49);
1393
+ if (lookahead == '/') ADVANCE(45);
1367
- if (lookahead == '0') ADVANCE(91);
1368
- if (lookahead == ':') ADVANCE(85);
1394
+ if (lookahead == '0') ADVANCE(85);
1395
+ if (lookahead == ':') ADVANCE(75);
1369
- if (lookahead == '<') ADVANCE(66);
1396
+ if (lookahead == '<') ADVANCE(58);
1370
- if (lookahead == '=') ADVANCE(55);
1397
+ if (lookahead == '=') ADVANCE(74);
1371
- if (lookahead == '>') ADVANCE(68);
1398
+ if (lookahead == '>') ADVANCE(60);
1372
- if (lookahead == '_') ADVANCE(108);
1399
+ if (lookahead == '_') ADVANCE(95);
1373
- if (lookahead == 'a') ADVANCE(31);
1400
+ if (lookahead == 'a') ADVANCE(28);
1374
1401
  if (lookahead == 'f') ADVANCE(22);
1375
1402
  if (lookahead == 'i') ADVANCE(21);
1376
- if (lookahead == 'l') ADVANCE(16);
1403
+ if (lookahead == 'l') ADVANCE(17);
1377
- if (lookahead == 'm') ADVANCE(24);
1404
+ if (lookahead == 'm') ADVANCE(23);
1378
- if (lookahead == 'p') ADVANCE(12);
1405
+ if (lookahead == 't') ADVANCE(32);
1379
- if (lookahead == 't') ADVANCE(27);
1380
- if (lookahead == '{') ADVANCE(50);
1406
+ if (lookahead == '{') ADVANCE(46);
1381
- if (lookahead == '|') ADVANCE(57);
1407
+ if (lookahead == '|') ADVANCE(15);
1382
- if (lookahead == '}') ADVANCE(52);
1408
+ if (lookahead == '}') ADVANCE(48);
1383
1409
  if (lookahead == '\t' ||
1384
1410
  lookahead == '\n' ||
1385
1411
  lookahead == '\r' ||
1386
- lookahead == ' ') SKIP(42)
1412
+ lookahead == ' ') SKIP(39)
1387
- if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92);
1413
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86);
1388
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(111);
1414
+ if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(98);
1415
+ END_STATE();
1416
+ case 40:
1417
+ ACCEPT_TOKEN(ts_builtin_sym_end);
1418
+ END_STATE();
1419
+ case 41:
1420
+ ACCEPT_TOKEN(anon_sym_module);
1421
+ END_STATE();
1422
+ case 42:
1423
+ ACCEPT_TOKEN(anon_sym_import);
1389
1424
  END_STATE();
1390
1425
  case 43:
1391
- if (eof) ADVANCE(44);
1392
- if (lookahead == '(') ADVANCE(59);
1393
- if (lookahead == ',') ADVANCE(51);
1394
- if (lookahead == '-') ADVANCE(9);
1395
- if (lookahead == ':') ADVANCE(85);
1396
- if (lookahead == '<') ADVANCE(10);
1397
- if (lookahead == '=') ADVANCE(54);
1398
- if (lookahead == 'a') ADVANCE(31);
1399
- if (lookahead == 'f') ADVANCE(22);
1400
- if (lookahead == 't') ADVANCE(35);
1401
- if (lookahead == '{') ADVANCE(50);
1402
- if (lookahead == '|') ADVANCE(56);
1403
- if (lookahead == '}') ADVANCE(52);
1404
- if (lookahead == '\t' ||
1405
- lookahead == '\n' ||
1426
+ ACCEPT_TOKEN(anon_sym_DOT);
1406
- lookahead == '\r' ||
1407
- lookahead == ' ') SKIP(43)
1408
- if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(111);
1409
1427
  END_STATE();
1410
1428
  case 44:
1411
- ACCEPT_TOKEN(ts_builtin_sym_end);
1429
+ ACCEPT_TOKEN(anon_sym_as);
1412
1430
  END_STATE();
1413
1431
  case 45:
1414
- ACCEPT_TOKEN(anon_sym_module);
1432
+ ACCEPT_TOKEN(anon_sym_SLASH);
1415
1433
  END_STATE();
1416
1434
  case 46:
1417
- ACCEPT_TOKEN(anon_sym_import);
1435
+ ACCEPT_TOKEN(anon_sym_LBRACE);
1418
1436
  END_STATE();
1419
1437
  case 47:
1420
- ACCEPT_TOKEN(anon_sym_DOT);
1438
+ ACCEPT_TOKEN(anon_sym_COMMA);
1421
1439
  END_STATE();
1422
1440
  case 48:
1423
- ACCEPT_TOKEN(anon_sym_as);
1441
+ ACCEPT_TOKEN(anon_sym_RBRACE);
1424
1442
  END_STATE();
1425
1443
  case 49:
1426
- ACCEPT_TOKEN(anon_sym_SLASH);
1444
+ ACCEPT_TOKEN(anon_sym_type);
1427
1445
  END_STATE();
1428
1446
  case 50:
1429
- ACCEPT_TOKEN(anon_sym_LBRACE);
1447
+ ACCEPT_TOKEN(anon_sym_LPAREN);
1430
1448
  END_STATE();
1431
1449
  case 51:
1432
- ACCEPT_TOKEN(anon_sym_COMMA);
1450
+ ACCEPT_TOKEN(anon_sym_RPAREN);
1433
1451
  END_STATE();
1434
1452
  case 52:
1435
- ACCEPT_TOKEN(anon_sym_RBRACE);
1453
+ ACCEPT_TOKEN(anon_sym_fn);
1436
1454
  END_STATE();
1437
1455
  case 53:
1438
- ACCEPT_TOKEN(anon_sym_type);
1456
+ ACCEPT_TOKEN(anon_sym_fn);
1457
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1439
1458
  END_STATE();
1440
1459
  case 54:
1441
- ACCEPT_TOKEN(anon_sym_EQ);
1460
+ ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
1442
1461
  END_STATE();
1443
1462
  case 55:
1444
- ACCEPT_TOKEN(anon_sym_EQ);
1463
+ ACCEPT_TOKEN(anon_sym_AMP_AMP);
1445
- if (lookahead == '=') ADVANCE(64);
1446
1464
  END_STATE();
1447
1465
  case 56:
1448
- ACCEPT_TOKEN(anon_sym_PIPE);
1466
+ ACCEPT_TOKEN(anon_sym_EQ_EQ);
1449
1467
  END_STATE();
1450
1468
  case 57:
1451
- ACCEPT_TOKEN(anon_sym_PIPE);
1469
+ ACCEPT_TOKEN(anon_sym_BANG_EQ);
1452
- if (lookahead == '>') ADVANCE(70);
1453
- if (lookahead == '|') ADVANCE(62);
1454
1470
  END_STATE();
1455
1471
  case 58:
1456
- ACCEPT_TOKEN(anon_sym_fn);
1472
+ ACCEPT_TOKEN(anon_sym_LT);
1473
+ if (lookahead == '=') ADVANCE(59);
1474
+ if (lookahead == '>') ADVANCE(68);
1457
1475
  END_STATE();
1458
1476
  case 59:
1459
- ACCEPT_TOKEN(anon_sym_LPAREN);
1477
+ ACCEPT_TOKEN(anon_sym_LT_EQ);
1460
1478
  END_STATE();
1461
1479
  case 60:
1462
- ACCEPT_TOKEN(anon_sym_RPAREN);
1480
+ ACCEPT_TOKEN(anon_sym_GT);
1481
+ if (lookahead == '=') ADVANCE(61);
1463
1482
  END_STATE();
1464
1483
  case 61:
1465
- ACCEPT_TOKEN(anon_sym_DASH_GT);
1484
+ ACCEPT_TOKEN(anon_sym_GT_EQ);
1466
1485
  END_STATE();
1467
1486
  case 62:
1468
- ACCEPT_TOKEN(anon_sym_PIPE_PIPE);
1487
+ ACCEPT_TOKEN(anon_sym_PIPE_GT);
1469
1488
  END_STATE();
1470
1489
  case 63:
1471
- ACCEPT_TOKEN(anon_sym_AMP_AMP);
1490
+ ACCEPT_TOKEN(anon_sym_PLUS);
1472
1491
  END_STATE();
1473
1492
  case 64:
1474
- ACCEPT_TOKEN(anon_sym_EQ_EQ);
1493
+ ACCEPT_TOKEN(anon_sym_DASH);
1494
+ if (lookahead == '>') ADVANCE(76);
1495
+ if (('0' <= lookahead && lookahead <= '9') ||
1496
+ lookahead == '_') ADVANCE(11);
1475
1497
  END_STATE();
1476
1498
  case 65:
1477
- ACCEPT_TOKEN(anon_sym_BANG_EQ);
1499
+ ACCEPT_TOKEN(anon_sym_DASH);
1500
+ if (('0' <= lookahead && lookahead <= '9') ||
1501
+ lookahead == '_') ADVANCE(11);
1478
1502
  END_STATE();
1479
1503
  case 66:
1480
- ACCEPT_TOKEN(anon_sym_LT);
1504
+ ACCEPT_TOKEN(anon_sym_STAR);
1481
- if (lookahead == '=') ADVANCE(67);
1482
- if (lookahead == '>') ADVANCE(76);
1483
1505
  END_STATE();
1484
1506
  case 67:
1485
- ACCEPT_TOKEN(anon_sym_LT_EQ);
1507
+ ACCEPT_TOKEN(anon_sym_PERCENT);
1486
1508
  END_STATE();
1487
1509
  case 68:
1488
- ACCEPT_TOKEN(anon_sym_GT);
1510
+ ACCEPT_TOKEN(anon_sym_LT_GT);
1489
- if (lookahead == '=') ADVANCE(69);
1490
1511
  END_STATE();
1491
1512
  case 69:
1492
- ACCEPT_TOKEN(anon_sym_GT_EQ);
1513
+ ACCEPT_TOKEN(anon_sym_BANG);
1493
1514
  END_STATE();
1494
1515
  case 70:
1495
- ACCEPT_TOKEN(anon_sym_PIPE_GT);
1516
+ ACCEPT_TOKEN(anon_sym_BANG);
1517
+ if (lookahead == '=') ADVANCE(57);
1496
1518
  END_STATE();
1497
1519
  case 71:
1498
- ACCEPT_TOKEN(anon_sym_PLUS);
1520
+ ACCEPT_TOKEN(anon_sym_let);
1499
1521
  END_STATE();
1500
1522
  case 72:
1501
- ACCEPT_TOKEN(anon_sym_DASH);
1523
+ ACCEPT_TOKEN(anon_sym_let);
1502
- if (lookahead == '>') ADVANCE(61);
1503
1524
  if (('0' <= lookahead && lookahead <= '9') ||
1525
+ ('A' <= lookahead && lookahead <= 'Z') ||
1504
- lookahead == '_') ADVANCE(7);
1526
+ lookahead == '_' ||
1527
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1505
1528
  END_STATE();
1506
1529
  case 73:
1507
- ACCEPT_TOKEN(anon_sym_DASH);
1530
+ ACCEPT_TOKEN(anon_sym_EQ);
1508
- if (('0' <= lookahead && lookahead <= '9') ||
1509
- lookahead == '_') ADVANCE(7);
1510
1531
  END_STATE();
1511
1532
  case 74:
1512
- ACCEPT_TOKEN(anon_sym_STAR);
1533
+ ACCEPT_TOKEN(anon_sym_EQ);
1534
+ if (lookahead == '=') ADVANCE(56);
1513
1535
  END_STATE();
1514
1536
  case 75:
1515
- ACCEPT_TOKEN(anon_sym_PERCENT);
1537
+ ACCEPT_TOKEN(anon_sym_COLON);
1516
1538
  END_STATE();
1517
1539
  case 76:
1518
- ACCEPT_TOKEN(anon_sym_LT_GT);
1540
+ ACCEPT_TOKEN(anon_sym_DASH_GT);
1519
1541
  END_STATE();
1520
1542
  case 77:
1521
- ACCEPT_TOKEN(anon_sym_BANG);
1543
+ ACCEPT_TOKEN(sym_generic);
1544
+ if (lookahead == 'n') ADVANCE(53);
1545
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1522
1546
  END_STATE();
1523
1547
  case 78:
1524
- ACCEPT_TOKEN(anon_sym_BANG);
1548
+ ACCEPT_TOKEN(sym_generic);
1525
- if (lookahead == '=') ADVANCE(65);
1549
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(78);
1526
1550
  END_STATE();
1527
1551
  case 79:
1528
- ACCEPT_TOKEN(anon_sym_let);
1552
+ ACCEPT_TOKEN(sym_generic);
1529
- END_STATE();
1530
- case 80:
1531
- ACCEPT_TOKEN(anon_sym_let);
1532
- if (('0' <= lookahead && lookahead <= '9') ||
1533
- ('A' <= lookahead && lookahead <= 'Z') ||
1534
- lookahead == '_' ||
1535
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1553
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(79);
1536
- END_STATE();
1537
- case 81:
1538
- ACCEPT_TOKEN(anon_sym_todo);
1539
- END_STATE();
1540
- case 82:
1541
- ACCEPT_TOKEN(anon_sym_todo);
1542
- if (('0' <= lookahead && lookahead <= '9') ||
1543
- ('A' <= lookahead && lookahead <= 'Z') ||
1544
- lookahead == '_' ||
1545
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1546
- END_STATE();
1547
- case 83:
1548
- ACCEPT_TOKEN(anon_sym_panic);
1549
- END_STATE();
1550
- case 84:
1551
- ACCEPT_TOKEN(anon_sym_panic);
1552
1554
  if (('0' <= lookahead && lookahead <= '9') ||
1553
1555
  ('A' <= lookahead && lookahead <= 'Z') ||
1554
- lookahead == '_' ||
1556
+ lookahead == '_') ADVANCE(94);
1555
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1556
- END_STATE();
1557
- case 85:
1558
- ACCEPT_TOKEN(anon_sym_COLON);
1559
1557
  END_STATE();
1560
- case 86:
1558
+ case 80:
1561
1559
  ACCEPT_TOKEN(sym_float);
1562
- if (lookahead == 'e') ADVANCE(6);
1560
+ if (lookahead == 'e') ADVANCE(10);
1563
1561
  if (('0' <= lookahead && lookahead <= '9') ||
1564
- lookahead == '_') ADVANCE(86);
1562
+ lookahead == '_') ADVANCE(80);
1565
1563
  END_STATE();
1566
- case 87:
1564
+ case 81:
1567
1565
  ACCEPT_TOKEN(sym_float);
1568
1566
  if (('0' <= lookahead && lookahead <= '9') ||
1569
- lookahead == '_') ADVANCE(87);
1567
+ lookahead == '_') ADVANCE(81);
1570
1568
  END_STATE();
1571
- case 88:
1569
+ case 82:
1572
1570
  ACCEPT_TOKEN(anon_sym_DQUOTE);
1573
1571
  END_STATE();
1574
- case 89:
1572
+ case 83:
1575
1573
  ACCEPT_TOKEN(anon_sym_DQUOTE2);
1576
1574
  END_STATE();
1577
- case 90:
1575
+ case 84:
1578
1576
  ACCEPT_TOKEN(sym__hex);
1579
1577
  if (('0' <= lookahead && lookahead <= '9') ||
1580
1578
  ('A' <= lookahead && lookahead <= 'F') ||
1581
1579
  lookahead == '_' ||
1582
- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(90);
1580
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
1583
1581
  END_STATE();
1584
- case 91:
1582
+ case 85:
1585
1583
  ACCEPT_TOKEN(sym__decimal);
1586
- if (lookahead == '.') ADVANCE(86);
1584
+ if (lookahead == '.') ADVANCE(80);
1587
1585
  if (lookahead == 'B' ||
1588
- lookahead == 'b') ADVANCE(36);
1586
+ lookahead == 'b') ADVANCE(33);
1589
1587
  if (lookahead == 'O' ||
1590
- lookahead == 'o') ADVANCE(39);
1588
+ lookahead == 'o') ADVANCE(36);
1591
1589
  if (lookahead == 'X' ||
1592
- lookahead == 'x') ADVANCE(41);
1590
+ lookahead == 'x') ADVANCE(38);
1593
1591
  if (('0' <= lookahead && lookahead <= '9') ||
1594
- lookahead == '_') ADVANCE(92);
1592
+ lookahead == '_') ADVANCE(86);
1595
1593
  END_STATE();
1596
- case 92:
1594
+ case 86:
1597
1595
  ACCEPT_TOKEN(sym__decimal);
1598
- if (lookahead == '.') ADVANCE(86);
1596
+ if (lookahead == '.') ADVANCE(80);
1599
1597
  if (('0' <= lookahead && lookahead <= '9') ||
1600
- lookahead == '_') ADVANCE(92);
1598
+ lookahead == '_') ADVANCE(86);
1601
1599
  END_STATE();
1602
- case 93:
1600
+ case 87:
1603
1601
  ACCEPT_TOKEN(sym__octal);
1604
1602
  if (('0' <= lookahead && lookahead <= '7') ||
1605
- lookahead == '_') ADVANCE(93);
1603
+ lookahead == '_') ADVANCE(87);
1606
1604
  END_STATE();
1607
- case 94:
1605
+ case 88:
1608
1606
  ACCEPT_TOKEN(sym__binary);
1609
1607
  if (lookahead == '0' ||
1610
1608
  lookahead == '1' ||
1611
- lookahead == '_') ADVANCE(94);
1609
+ lookahead == '_') ADVANCE(88);
1612
1610
  END_STATE();
1613
- case 95:
1611
+ case 89:
1614
1612
  ACCEPT_TOKEN(sym_escape_sequence);
1615
1613
  END_STATE();
1616
- case 96:
1614
+ case 90:
1617
1615
  ACCEPT_TOKEN(sym_identifier);
1618
- if (lookahead == '.') ADVANCE(86);
1616
+ if (lookahead == '.') ADVANCE(80);
1619
1617
  if (('0' <= lookahead && lookahead <= '9') ||
1620
- lookahead == '_') ADVANCE(96);
1618
+ lookahead == '_') ADVANCE(90);
1621
1619
  if (('A' <= lookahead && lookahead <= 'Z') ||
1622
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1623
- END_STATE();
1624
- case 97:
1625
- ACCEPT_TOKEN(sym_identifier);
1626
- if (lookahead == '_') ADVANCE(107);
1627
- if (('0' <= lookahead && lookahead <= '9') ||
1628
- ('A' <= lookahead && lookahead <= 'Z') ||
1629
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(97);
1620
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1630
- END_STATE();
1631
- case 98:
1632
- ACCEPT_TOKEN(sym_identifier);
1633
- if (lookahead == 'a') ADVANCE(103);
1634
- if (('0' <= lookahead && lookahead <= '9') ||
1635
- ('A' <= lookahead && lookahead <= 'Z') ||
1636
- lookahead == '_' ||
1637
- ('b' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1638
- END_STATE();
1639
- case 99:
1640
- ACCEPT_TOKEN(sym_identifier);
1641
- if (lookahead == 'c') ADVANCE(84);
1642
- if (('0' <= lookahead && lookahead <= '9') ||
1643
- ('A' <= lookahead && lookahead <= 'Z') ||
1644
- lookahead == '_' ||
1645
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1646
- END_STATE();
1647
- case 100:
1648
- ACCEPT_TOKEN(sym_identifier);
1649
- if (lookahead == 'd') ADVANCE(105);
1650
- if (('0' <= lookahead && lookahead <= '9') ||
1651
- ('A' <= lookahead && lookahead <= 'Z') ||
1652
- lookahead == '_' ||
1653
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1654
- END_STATE();
1655
- case 101:
1656
- ACCEPT_TOKEN(sym_identifier);
1657
- if (lookahead == 'e') ADVANCE(106);
1658
- if (('0' <= lookahead && lookahead <= '9') ||
1659
- ('A' <= lookahead && lookahead <= 'Z') ||
1660
- lookahead == '_' ||
1661
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1662
1621
  END_STATE();
1663
- case 102:
1622
+ case 91:
1664
- ACCEPT_TOKEN(sym_identifier);
1665
- if (lookahead == 'i') ADVANCE(99);
1666
- if (('0' <= lookahead && lookahead <= '9') ||
1667
- ('A' <= lookahead && lookahead <= 'Z') ||
1668
- lookahead == '_' ||
1669
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1670
- END_STATE();
1671
- case 103:
1672
- ACCEPT_TOKEN(sym_identifier);
1673
- if (lookahead == 'n') ADVANCE(102);
1674
- if (('0' <= lookahead && lookahead <= '9') ||
1675
- ('A' <= lookahead && lookahead <= 'Z') ||
1676
- lookahead == '_' ||
1677
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1678
- END_STATE();
1679
- case 104:
1680
1623
  ACCEPT_TOKEN(sym_identifier);
1681
- if (lookahead == 'o') ADVANCE(100);
1624
+ if (lookahead == '_') ADVANCE(94);
1682
1625
  if (('0' <= lookahead && lookahead <= '9') ||
1683
1626
  ('A' <= lookahead && lookahead <= 'Z') ||
1684
- lookahead == '_' ||
1685
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1627
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(91);
1686
1628
  END_STATE();
1687
- case 105:
1629
+ case 92:
1688
1630
  ACCEPT_TOKEN(sym_identifier);
1689
- if (lookahead == 'o') ADVANCE(82);
1631
+ if (lookahead == 'e') ADVANCE(93);
1690
1632
  if (('0' <= lookahead && lookahead <= '9') ||
1691
1633
  ('A' <= lookahead && lookahead <= 'Z') ||
1692
1634
  lookahead == '_' ||
1693
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1635
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1694
1636
  END_STATE();
1695
- case 106:
1637
+ case 93:
1696
1638
  ACCEPT_TOKEN(sym_identifier);
1697
- if (lookahead == 't') ADVANCE(80);
1639
+ if (lookahead == 't') ADVANCE(72);
1698
1640
  if (('0' <= lookahead && lookahead <= '9') ||
1699
1641
  ('A' <= lookahead && lookahead <= 'Z') ||
1700
1642
  lookahead == '_' ||
1701
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1643
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1702
1644
  END_STATE();
1703
- case 107:
1645
+ case 94:
1704
1646
  ACCEPT_TOKEN(sym_identifier);
1705
1647
  if (('0' <= lookahead && lookahead <= '9') ||
1706
1648
  ('A' <= lookahead && lookahead <= 'Z') ||
1707
1649
  lookahead == '_' ||
1708
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(107);
1650
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(94);
1709
1651
  END_STATE();
1710
- case 108:
1652
+ case 95:
1711
1653
  ACCEPT_TOKEN(sym__discard_name);
1712
- if (lookahead == '.') ADVANCE(86);
1654
+ if (lookahead == '.') ADVANCE(80);
1713
1655
  if (('0' <= lookahead && lookahead <= '9') ||
1714
- lookahead == '_') ADVANCE(108);
1656
+ lookahead == '_') ADVANCE(95);
1715
- if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(109);
1657
+ if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(96);
1716
1658
  END_STATE();
1717
- case 109:
1659
+ case 96:
1718
1660
  ACCEPT_TOKEN(sym__discard_name);
1719
1661
  if (('0' <= lookahead && lookahead <= '9') ||
1720
1662
  lookahead == '_' ||
1721
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(109);
1663
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(96);
1722
1664
  END_STATE();
1723
- case 110:
1665
+ case 97:
1724
1666
  ACCEPT_TOKEN(sym__name);
1725
1667
  if (('0' <= lookahead && lookahead <= '9') ||
1726
1668
  lookahead == '_' ||
1727
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(110);
1669
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(97);
1728
1670
  END_STATE();
1729
- case 111:
1671
+ case 98:
1730
1672
  ACCEPT_TOKEN(sym__upname);
1731
1673
  if (('0' <= lookahead && lookahead <= '9') ||
1732
1674
  ('A' <= lookahead && lookahead <= 'Z') ||
1733
- ('a' <= lookahead && lookahead <= 'z')) ADVANCE(111);
1675
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(98);
1734
1676
  END_STATE();
1735
1677
  default:
1736
1678
  return false;
@@ -1767,114 +1709,114 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1767
1709
  [26] = {.lex_state = 1},
1768
1710
  [27] = {.lex_state = 1},
1769
1711
  [28] = {.lex_state = 1},
1770
- [29] = {.lex_state = 1},
1712
+ [29] = {.lex_state = 2},
1771
- [30] = {.lex_state = 1},
1713
+ [30] = {.lex_state = 2},
1772
- [31] = {.lex_state = 1},
1714
+ [31] = {.lex_state = 2},
1773
- [32] = {.lex_state = 1},
1715
+ [32] = {.lex_state = 2},
1774
- [33] = {.lex_state = 1},
1716
+ [33] = {.lex_state = 2},
1775
- [34] = {.lex_state = 1},
1717
+ [34] = {.lex_state = 2},
1776
- [35] = {.lex_state = 1},
1718
+ [35] = {.lex_state = 2},
1777
- [36] = {.lex_state = 1},
1719
+ [36] = {.lex_state = 2},
1778
- [37] = {.lex_state = 1},
1720
+ [37] = {.lex_state = 2},
1779
- [38] = {.lex_state = 1},
1721
+ [38] = {.lex_state = 2},
1780
- [39] = {.lex_state = 1},
1722
+ [39] = {.lex_state = 2},
1781
1723
  [40] = {.lex_state = 1},
1782
- [41] = {.lex_state = 1},
1724
+ [41] = {.lex_state = 0},
1783
- [42] = {.lex_state = 2},
1725
+ [42] = {.lex_state = 0},
1784
1726
  [43] = {.lex_state = 2},
1785
- [44] = {.lex_state = 2},
1727
+ [44] = {.lex_state = 3},
1786
- [45] = {.lex_state = 2},
1728
+ [45] = {.lex_state = 3},
1787
- [46] = {.lex_state = 2},
1729
+ [46] = {.lex_state = 3},
1788
- [47] = {.lex_state = 2},
1730
+ [47] = {.lex_state = 3},
1789
- [48] = {.lex_state = 2},
1731
+ [48] = {.lex_state = 3},
1790
- [49] = {.lex_state = 2},
1732
+ [49] = {.lex_state = 3},
1791
- [50] = {.lex_state = 2},
1733
+ [50] = {.lex_state = 3},
1792
- [51] = {.lex_state = 2},
1734
+ [51] = {.lex_state = 0},
1793
- [52] = {.lex_state = 1},
1735
+ [52] = {.lex_state = 0},
1794
1736
  [53] = {.lex_state = 3},
1795
- [54] = {.lex_state = 43},
1737
+ [54] = {.lex_state = 0},
1796
- [55] = {.lex_state = 3},
1738
+ [55] = {.lex_state = 7},
1797
1739
  [56] = {.lex_state = 0},
1798
- [57] = {.lex_state = 0},
1740
+ [57] = {.lex_state = 3},
1799
- [58] = {.lex_state = 0},
1741
+ [58] = {.lex_state = 3},
1800
1742
  [59] = {.lex_state = 0},
1801
- [60] = {.lex_state = 0},
1743
+ [60] = {.lex_state = 3},
1802
1744
  [61] = {.lex_state = 0},
1803
- [62] = {.lex_state = 0},
1745
+ [62] = {.lex_state = 3},
1804
- [63] = {.lex_state = 0},
1746
+ [63] = {.lex_state = 3},
1805
- [64] = {.lex_state = 0},
1747
+ [64] = {.lex_state = 3},
1806
- [65] = {.lex_state = 0},
1748
+ [65] = {.lex_state = 6},
1807
1749
  [66] = {.lex_state = 0},
1808
- [67] = {.lex_state = 43},
1809
- [68] = {.lex_state = 43},
1810
- [69] = {.lex_state = 0},
1750
+ [67] = {.lex_state = 0},
1751
+ [68] = {.lex_state = 6},
1752
+ [69] = {.lex_state = 6},
1811
1753
  [70] = {.lex_state = 3},
1812
- [71] = {.lex_state = 0},
1754
+ [71] = {.lex_state = 6},
1813
- [72] = {.lex_state = 3},
1755
+ [72] = {.lex_state = 0},
1814
- [73] = {.lex_state = 0},
1756
+ [73] = {.lex_state = 6},
1815
- [74] = {.lex_state = 0},
1757
+ [74] = {.lex_state = 6},
1816
- [75] = {.lex_state = 43},
1758
+ [75] = {.lex_state = 6},
1817
- [76] = {.lex_state = 43},
1759
+ [76] = {.lex_state = 0},
1818
- [77] = {.lex_state = 43},
1760
+ [77] = {.lex_state = 6},
1819
- [78] = {.lex_state = 43},
1761
+ [78] = {.lex_state = 8},
1820
- [79] = {.lex_state = 43},
1762
+ [79] = {.lex_state = 6},
1821
- [80] = {.lex_state = 3},
1763
+ [80] = {.lex_state = 6},
1822
- [81] = {.lex_state = 43},
1823
- [82] = {.lex_state = 43},
1824
- [83] = {.lex_state = 43},
1825
- [84] = {.lex_state = 0},
1764
+ [81] = {.lex_state = 0},
1826
- [85] = {.lex_state = 43},
1765
+ [82] = {.lex_state = 6},
1827
- [86] = {.lex_state = 43},
1828
- [87] = {.lex_state = 0},
1766
+ [83] = {.lex_state = 0},
1767
+ [84] = {.lex_state = 6},
1768
+ [85] = {.lex_state = 6},
1769
+ [86] = {.lex_state = 6},
1770
+ [87] = {.lex_state = 6},
1829
- [88] = {.lex_state = 43},
1771
+ [88] = {.lex_state = 0},
1830
- [89] = {.lex_state = 43},
1772
+ [89] = {.lex_state = 6},
1831
1773
  [90] = {.lex_state = 0},
1832
- [91] = {.lex_state = 43},
1774
+ [91] = {.lex_state = 6},
1833
- [92] = {.lex_state = 2},
1775
+ [92] = {.lex_state = 0},
1834
- [93] = {.lex_state = 3, .external_lex_state = 1},
1776
+ [93] = {.lex_state = 6},
1835
- [94] = {.lex_state = 43},
1777
+ [94] = {.lex_state = 0},
1836
- [95] = {.lex_state = 3},
1778
+ [95] = {.lex_state = 7},
1837
- [96] = {.lex_state = 0},
1779
+ [96] = {.lex_state = 7},
1780
+ [97] = {.lex_state = 6},
1781
+ [98] = {.lex_state = 6},
1782
+ [99] = {.lex_state = 0},
1838
- [97] = {.lex_state = 3, .external_lex_state = 1},
1783
+ [100] = {.lex_state = 3, .external_lex_state = 1},
1839
- [98] = {.lex_state = 43},
1840
- [99] = {.lex_state = 43},
1841
- [100] = {.lex_state = 0},
1842
1784
  [101] = {.lex_state = 0},
1843
1785
  [102] = {.lex_state = 0},
1844
1786
  [103] = {.lex_state = 3, .external_lex_state = 1},
1845
- [104] = {.lex_state = 0},
1787
+ [104] = {.lex_state = 7},
1846
- [105] = {.lex_state = 0},
1788
+ [105] = {.lex_state = 7},
1847
- [106] = {.lex_state = 43},
1848
- [107] = {.lex_state = 43},
1849
- [108] = {.lex_state = 0},
1789
+ [106] = {.lex_state = 0},
1790
+ [107] = {.lex_state = 6},
1791
+ [108] = {.lex_state = 7},
1850
- [109] = {.lex_state = 0},
1792
+ [109] = {.lex_state = 6},
1851
1793
  [110] = {.lex_state = 0},
1852
1794
  [111] = {.lex_state = 0},
1853
1795
  [112] = {.lex_state = 0},
1854
1796
  [113] = {.lex_state = 0},
1855
1797
  [114] = {.lex_state = 0},
1856
- [115] = {.lex_state = 0},
1798
+ [115] = {.lex_state = 3, .external_lex_state = 1},
1857
- [116] = {.lex_state = 0},
1799
+ [116] = {.lex_state = 6},
1858
- [117] = {.lex_state = 0},
1800
+ [117] = {.lex_state = 6},
1859
1801
  [118] = {.lex_state = 0},
1860
- [119] = {.lex_state = 0},
1802
+ [119] = {.lex_state = 6},
1861
- [120] = {.lex_state = 2},
1803
+ [120] = {.lex_state = 0},
1862
1804
  [121] = {.lex_state = 0},
1863
1805
  [122] = {.lex_state = 0},
1864
- [123] = {.lex_state = 0},
1806
+ [123] = {.lex_state = 6},
1865
1807
  [124] = {.lex_state = 0},
1866
1808
  [125] = {.lex_state = 0},
1867
1809
  [126] = {.lex_state = 0},
1868
- [127] = {.lex_state = 0},
1810
+ [127] = {.lex_state = 6},
1869
- [128] = {.lex_state = 0},
1811
+ [128] = {.lex_state = 6},
1870
1812
  [129] = {.lex_state = 0},
1871
1813
  [130] = {.lex_state = 0},
1872
- [131] = {.lex_state = 3},
1814
+ [131] = {.lex_state = 0},
1873
- [132] = {.lex_state = 2},
1815
+ [132] = {.lex_state = 0},
1874
1816
  [133] = {.lex_state = 0},
1875
1817
  [134] = {.lex_state = 0},
1876
1818
  [135] = {.lex_state = 0},
1877
- [136] = {.lex_state = 0},
1819
+ [136] = {.lex_state = 2},
1878
1820
  [137] = {.lex_state = 0},
1879
1821
  [138] = {.lex_state = 0},
1880
1822
  [139] = {.lex_state = 0},
@@ -1883,49 +1825,70 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1883
1825
  [142] = {.lex_state = 0},
1884
1826
  [143] = {.lex_state = 0},
1885
1827
  [144] = {.lex_state = 0},
1886
- [145] = {.lex_state = 3},
1828
+ [145] = {.lex_state = 0},
1887
1829
  [146] = {.lex_state = 0},
1888
1830
  [147] = {.lex_state = 0},
1889
- [148] = {.lex_state = 37},
1890
- [149] = {.lex_state = 0},
1831
+ [148] = {.lex_state = 0},
1832
+ [149] = {.lex_state = 6},
1891
- [150] = {.lex_state = 2},
1833
+ [150] = {.lex_state = 0},
1892
- [151] = {.lex_state = 43},
1834
+ [151] = {.lex_state = 0},
1893
- [152] = {.lex_state = 3},
1835
+ [152] = {.lex_state = 0},
1894
1836
  [153] = {.lex_state = 0},
1895
- [154] = {.lex_state = 43},
1837
+ [154] = {.lex_state = 0},
1896
1838
  [155] = {.lex_state = 0},
1897
- [156] = {.lex_state = 3},
1839
+ [156] = {.lex_state = 0},
1898
- [157] = {.lex_state = 2},
1840
+ [157] = {.lex_state = 0},
1899
1841
  [158] = {.lex_state = 0},
1900
- [159] = {.lex_state = 0},
1842
+ [159] = {.lex_state = 6},
1901
- [160] = {.lex_state = 37},
1843
+ [160] = {.lex_state = 0},
1902
- [161] = {.lex_state = 43},
1844
+ [161] = {.lex_state = 6},
1903
1845
  [162] = {.lex_state = 3},
1904
- [163] = {.lex_state = 1},
1846
+ [163] = {.lex_state = 0},
1905
1847
  [164] = {.lex_state = 0},
1906
1848
  [165] = {.lex_state = 0},
1907
- [166] = {.lex_state = 2},
1849
+ [166] = {.lex_state = 0},
1908
1850
  [167] = {.lex_state = 3},
1909
- [168] = {.lex_state = 2},
1851
+ [168] = {.lex_state = 34},
1910
- [169] = {.lex_state = 3},
1852
+ [169] = {.lex_state = 0},
1911
- [170] = {.lex_state = 0},
1853
+ [170] = {.lex_state = 6},
1912
- [171] = {.lex_state = 3},
1854
+ [171] = {.lex_state = 9},
1913
1855
  [172] = {.lex_state = 0},
1914
- [173] = {.lex_state = 0},
1856
+ [173] = {.lex_state = 6},
1915
- [174] = {.lex_state = 3},
1857
+ [174] = {.lex_state = 0},
1916
- [175] = {.lex_state = 37},
1858
+ [175] = {.lex_state = 0},
1917
1859
  [176] = {.lex_state = 0},
1918
- [177] = {.lex_state = 3},
1860
+ [177] = {.lex_state = 0},
1919
- [178] = {.lex_state = 0},
1861
+ [178] = {.lex_state = 6},
1920
1862
  [179] = {.lex_state = 3},
1921
- [180] = {.lex_state = 0},
1863
+ [180] = {.lex_state = 3},
1922
- [181] = {.lex_state = 3},
1864
+ [181] = {.lex_state = 0},
1923
1865
  [182] = {.lex_state = 0},
1924
- [183] = {.lex_state = 0},
1866
+ [183] = {.lex_state = 9},
1925
- [184] = {.lex_state = 3},
1867
+ [184] = {.lex_state = 0},
1926
- [185] = {.lex_state = 3},
1868
+ [185] = {.lex_state = 0},
1927
- [186] = {.lex_state = 2},
1869
+ [186] = {.lex_state = 0},
1928
- [187] = {.lex_state = 0},
1870
+ [187] = {.lex_state = 2},
1871
+ [188] = {.lex_state = 34},
1872
+ [189] = {.lex_state = 0},
1873
+ [190] = {.lex_state = 0},
1874
+ [191] = {.lex_state = 0},
1875
+ [192] = {.lex_state = 9},
1876
+ [193] = {.lex_state = 6},
1877
+ [194] = {.lex_state = 0},
1878
+ [195] = {.lex_state = 6},
1879
+ [196] = {.lex_state = 2},
1880
+ [197] = {.lex_state = 34},
1881
+ [198] = {.lex_state = 6},
1882
+ [199] = {.lex_state = 2},
1883
+ [200] = {.lex_state = 0},
1884
+ [201] = {.lex_state = 0},
1885
+ [202] = {.lex_state = 0},
1886
+ [203] = {.lex_state = 6},
1887
+ [204] = {.lex_state = 0},
1888
+ [205] = {.lex_state = 6},
1889
+ [206] = {.lex_state = 0},
1890
+ [207] = {.lex_state = 0},
1891
+ [208] = {.lex_state = 6},
1929
1892
  };
1930
1893
 
1931
1894
  enum {
@@ -1954,12 +1917,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1954
1917
  [anon_sym_COMMA] = ACTIONS(1),
1955
1918
  [anon_sym_RBRACE] = ACTIONS(1),
1956
1919
  [anon_sym_type] = ACTIONS(1),
1957
- [anon_sym_EQ] = ACTIONS(1),
1958
- [anon_sym_PIPE] = ACTIONS(1),
1959
- [anon_sym_fn] = ACTIONS(1),
1960
1920
  [anon_sym_LPAREN] = ACTIONS(1),
1961
1921
  [anon_sym_RPAREN] = ACTIONS(1),
1962
- [anon_sym_DASH_GT] = ACTIONS(1),
1922
+ [anon_sym_fn] = ACTIONS(1),
1963
1923
  [anon_sym_PIPE_PIPE] = ACTIONS(1),
1964
1924
  [anon_sym_AMP_AMP] = ACTIONS(1),
1965
1925
  [anon_sym_EQ_EQ] = ACTIONS(1),
@@ -1976,9 +1936,9 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1976
1936
  [anon_sym_LT_GT] = ACTIONS(1),
1977
1937
  [anon_sym_BANG] = ACTIONS(1),
1978
1938
  [anon_sym_let] = ACTIONS(1),
1979
- [anon_sym_todo] = ACTIONS(1),
1939
+ [anon_sym_EQ] = ACTIONS(1),
1980
- [anon_sym_panic] = ACTIONS(1),
1981
1940
  [anon_sym_COLON] = ACTIONS(1),
1941
+ [anon_sym_DASH_GT] = ACTIONS(1),
1982
1942
  [sym_float] = ACTIONS(1),
1983
1943
  [anon_sym_DQUOTE] = ACTIONS(1),
1984
1944
  [anon_sym_DQUOTE2] = ACTIONS(1),
@@ -1992,29 +1952,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1992
1952
  [sym_quoted_content] = ACTIONS(1),
1993
1953
  },
1994
1954
  [1] = {
1995
- [sym_source_file] = STATE(183),
1955
+ [sym_source_file] = STATE(204),
1996
- [sym_module] = STATE(56),
1956
+ [sym_module] = STATE(42),
1997
1957
  [anon_sym_module] = ACTIONS(3),
1998
1958
  },
1999
1959
  };
2000
1960
 
2001
1961
  static const uint16_t ts_small_parse_table[] = {
2002
- [0] = 2,
1962
+ [0] = 5,
1963
+ ACTIONS(11), 1,
1964
+ anon_sym_PLUS,
1965
+ ACTIONS(13), 1,
1966
+ anon_sym_DASH,
2003
- ACTIONS(7), 9,
1967
+ ACTIONS(5), 4,
1968
+ anon_sym_SLASH,
1969
+ anon_sym_STAR,
1970
+ anon_sym_PERCENT,
1971
+ anon_sym_LT_GT,
1972
+ ACTIONS(9), 6,
2004
1973
  anon_sym_LT,
2005
1974
  anon_sym_GT,
2006
- anon_sym_DASH,
2007
1975
  anon_sym_BANG,
2008
1976
  anon_sym_let,
2009
- anon_sym_todo,
2010
- anon_sym_panic,
2011
1977
  sym__decimal,
2012
1978
  sym_identifier,
2013
- ACTIONS(5), 20,
1979
+ ACTIONS(7), 14,
2014
- anon_sym_SLASH,
2015
1980
  anon_sym_LBRACE,
2016
1981
  anon_sym_RBRACE,
2017
- anon_sym_RPAREN,
2018
1982
  anon_sym_PIPE_PIPE,
2019
1983
  anon_sym_AMP_AMP,
2020
1984
  anon_sym_EQ_EQ,
@@ -2022,29 +1986,21 @@ static const uint16_t ts_small_parse_table[] = {
2022
1986
  anon_sym_LT_EQ,
2023
1987
  anon_sym_GT_EQ,
2024
1988
  anon_sym_PIPE_GT,
2025
- anon_sym_PLUS,
2026
- anon_sym_STAR,
2027
- anon_sym_PERCENT,
2028
- anon_sym_LT_GT,
2029
1989
  sym_float,
2030
1990
  anon_sym_DQUOTE,
2031
1991
  sym__hex,
2032
1992
  sym__octal,
2033
1993
  sym__binary,
2034
- [34] = 3,
1994
+ [37] = 2,
2035
- ACTIONS(11), 1,
1995
+ ACTIONS(17), 7,
2036
- anon_sym_LPAREN,
2037
- ACTIONS(13), 9,
2038
1996
  anon_sym_LT,
2039
1997
  anon_sym_GT,
2040
1998
  anon_sym_DASH,
2041
1999
  anon_sym_BANG,
2042
2000
  anon_sym_let,
2043
- anon_sym_todo,
2044
- anon_sym_panic,
2045
2001
  sym__decimal,
2046
2002
  sym_identifier,
2047
- ACTIONS(9), 19,
2003
+ ACTIONS(15), 19,
2048
2004
  anon_sym_SLASH,
2049
2005
  anon_sym_LBRACE,
2050
2006
  anon_sym_RBRACE,
@@ -2064,81 +2020,54 @@ static const uint16_t ts_small_parse_table[] = {
2064
2020
  sym__hex,
2065
2021
  sym__octal,
2066
2022
  sym__binary,
2067
- [70] = 2,
2023
+ [68] = 11,
2068
- ACTIONS(17), 9,
2024
+ ACTIONS(11), 1,
2069
- anon_sym_LT,
2025
+ anon_sym_PLUS,
2070
- anon_sym_GT,
2026
+ ACTIONS(13), 1,
2071
2027
  anon_sym_DASH,
2072
- anon_sym_BANG,
2073
- anon_sym_let,
2074
- anon_sym_todo,
2075
- anon_sym_panic,
2076
- sym__decimal,
2077
- sym_identifier,
2078
- ACTIONS(15), 20,
2028
+ ACTIONS(21), 1,
2079
- anon_sym_SLASH,
2080
- anon_sym_LBRACE,
2081
- anon_sym_RBRACE,
2082
- anon_sym_RPAREN,
2083
2029
  anon_sym_PIPE_PIPE,
2030
+ ACTIONS(23), 1,
2084
2031
  anon_sym_AMP_AMP,
2032
+ ACTIONS(31), 1,
2033
+ anon_sym_PIPE_GT,
2034
+ ACTIONS(25), 2,
2085
2035
  anon_sym_EQ_EQ,
2086
2036
  anon_sym_BANG_EQ,
2037
+ ACTIONS(27), 2,
2038
+ anon_sym_LT,
2039
+ anon_sym_GT,
2040
+ ACTIONS(29), 2,
2087
2041
  anon_sym_LT_EQ,
2088
2042
  anon_sym_GT_EQ,
2089
- anon_sym_PIPE_GT,
2043
+ ACTIONS(5), 4,
2090
- anon_sym_PLUS,
2044
+ anon_sym_SLASH,
2091
2045
  anon_sym_STAR,
2092
2046
  anon_sym_PERCENT,
2093
2047
  anon_sym_LT_GT,
2094
- sym_float,
2095
- anon_sym_DQUOTE,
2096
- sym__hex,
2097
- sym__octal,
2098
- sym__binary,
2099
- [104] = 2,
2100
- ACTIONS(21), 9,
2048
+ ACTIONS(33), 4,
2101
- anon_sym_LT,
2102
- anon_sym_GT,
2103
- anon_sym_DASH,
2104
2049
  anon_sym_BANG,
2105
2050
  anon_sym_let,
2106
- anon_sym_todo,
2107
- anon_sym_panic,
2108
2051
  sym__decimal,
2109
2052
  sym_identifier,
2110
- ACTIONS(19), 19,
2053
+ ACTIONS(19), 7,
2111
- anon_sym_SLASH,
2112
2054
  anon_sym_LBRACE,
2113
2055
  anon_sym_RBRACE,
2114
- anon_sym_PIPE_PIPE,
2115
- anon_sym_AMP_AMP,
2116
- anon_sym_EQ_EQ,
2117
- anon_sym_BANG_EQ,
2118
- anon_sym_LT_EQ,
2119
- anon_sym_GT_EQ,
2120
- anon_sym_PIPE_GT,
2121
- anon_sym_PLUS,
2122
- anon_sym_STAR,
2123
- anon_sym_PERCENT,
2124
- anon_sym_LT_GT,
2125
2056
  sym_float,
2126
2057
  anon_sym_DQUOTE,
2127
2058
  sym__hex,
2128
2059
  sym__octal,
2129
2060
  sym__binary,
2130
- [137] = 2,
2061
+ [117] = 2,
2131
- ACTIONS(25), 9,
2062
+ ACTIONS(37), 7,
2132
2063
  anon_sym_LT,
2133
2064
  anon_sym_GT,
2134
2065
  anon_sym_DASH,
2135
2066
  anon_sym_BANG,
2136
2067
  anon_sym_let,
2137
- anon_sym_todo,
2138
- anon_sym_panic,
2139
2068
  sym__decimal,
2140
2069
  sym_identifier,
2141
- ACTIONS(23), 19,
2070
+ ACTIONS(35), 19,
2142
2071
  anon_sym_SLASH,
2143
2072
  anon_sym_LBRACE,
2144
2073
  anon_sym_RBRACE,
@@ -2158,70 +2087,72 @@ static const uint16_t ts_small_parse_table[] = {
2158
2087
  sym__hex,
2159
2088
  sym__octal,
2160
2089
  sym__binary,
2161
- [170] = 2,
2090
+ [148] = 8,
2091
+ ACTIONS(11), 1,
2092
+ anon_sym_PLUS,
2093
+ ACTIONS(13), 1,
2094
+ anon_sym_DASH,
2095
+ ACTIONS(31), 1,
2096
+ anon_sym_PIPE_GT,
2162
- ACTIONS(29), 9,
2097
+ ACTIONS(27), 2,
2163
2098
  anon_sym_LT,
2164
2099
  anon_sym_GT,
2100
+ ACTIONS(29), 2,
2101
+ anon_sym_LT_EQ,
2102
+ anon_sym_GT_EQ,
2103
+ ACTIONS(5), 4,
2165
- anon_sym_DASH,
2104
+ anon_sym_SLASH,
2105
+ anon_sym_STAR,
2106
+ anon_sym_PERCENT,
2107
+ anon_sym_LT_GT,
2108
+ ACTIONS(9), 4,
2166
2109
  anon_sym_BANG,
2167
2110
  anon_sym_let,
2168
- anon_sym_todo,
2169
- anon_sym_panic,
2170
2111
  sym__decimal,
2171
2112
  sym_identifier,
2172
- ACTIONS(27), 19,
2113
+ ACTIONS(7), 11,
2173
- anon_sym_SLASH,
2174
2114
  anon_sym_LBRACE,
2175
2115
  anon_sym_RBRACE,
2176
2116
  anon_sym_PIPE_PIPE,
2177
2117
  anon_sym_AMP_AMP,
2178
2118
  anon_sym_EQ_EQ,
2179
2119
  anon_sym_BANG_EQ,
2180
- anon_sym_LT_EQ,
2181
- anon_sym_GT_EQ,
2182
- anon_sym_PIPE_GT,
2183
- anon_sym_PLUS,
2184
- anon_sym_STAR,
2185
- anon_sym_PERCENT,
2186
- anon_sym_LT_GT,
2187
2120
  sym_float,
2188
2121
  anon_sym_DQUOTE,
2189
2122
  sym__hex,
2190
2123
  sym__octal,
2191
2124
  sym__binary,
2192
- [203] = 11,
2125
+ [191] = 11,
2193
- ACTIONS(35), 1,
2126
+ ACTIONS(11), 1,
2127
+ anon_sym_PLUS,
2128
+ ACTIONS(13), 1,
2129
+ anon_sym_DASH,
2130
+ ACTIONS(21), 1,
2194
2131
  anon_sym_PIPE_PIPE,
2195
- ACTIONS(37), 1,
2132
+ ACTIONS(23), 1,
2196
2133
  anon_sym_AMP_AMP,
2197
- ACTIONS(45), 1,
2134
+ ACTIONS(31), 1,
2198
2135
  anon_sym_PIPE_GT,
2199
- ACTIONS(47), 1,
2200
- anon_sym_PLUS,
2201
- ACTIONS(49), 1,
2202
- anon_sym_DASH,
2203
- ACTIONS(39), 2,
2136
+ ACTIONS(25), 2,
2204
2137
  anon_sym_EQ_EQ,
2205
2138
  anon_sym_BANG_EQ,
2206
- ACTIONS(41), 2,
2139
+ ACTIONS(27), 2,
2207
2140
  anon_sym_LT,
2208
2141
  anon_sym_GT,
2209
- ACTIONS(43), 2,
2142
+ ACTIONS(29), 2,
2210
2143
  anon_sym_LT_EQ,
2211
2144
  anon_sym_GT_EQ,
2212
- ACTIONS(31), 4,
2145
+ ACTIONS(5), 4,
2213
2146
  anon_sym_SLASH,
2214
2147
  anon_sym_STAR,
2215
2148
  anon_sym_PERCENT,
2216
2149
  anon_sym_LT_GT,
2217
- ACTIONS(51), 6,
2150
+ ACTIONS(41), 4,
2218
2151
  anon_sym_BANG,
2219
2152
  anon_sym_let,
2220
- anon_sym_todo,
2221
- anon_sym_panic,
2222
2153
  sym__decimal,
2223
2154
  sym_identifier,
2224
- ACTIONS(33), 7,
2155
+ ACTIONS(39), 7,
2225
2156
  anon_sym_LBRACE,
2226
2157
  anon_sym_RBRACE,
2227
2158
  sym_float,
@@ -2229,39 +2160,37 @@ static const uint16_t ts_small_parse_table[] = {
2229
2160
  sym__hex,
2230
2161
  sym__octal,
2231
2162
  sym__binary,
2232
- [254] = 11,
2163
+ [240] = 11,
2233
- ACTIONS(35), 1,
2164
+ ACTIONS(11), 1,
2165
+ anon_sym_PLUS,
2166
+ ACTIONS(13), 1,
2167
+ anon_sym_DASH,
2168
+ ACTIONS(21), 1,
2234
2169
  anon_sym_PIPE_PIPE,
2235
- ACTIONS(37), 1,
2170
+ ACTIONS(23), 1,
2236
2171
  anon_sym_AMP_AMP,
2237
- ACTIONS(45), 1,
2172
+ ACTIONS(31), 1,
2238
2173
  anon_sym_PIPE_GT,
2239
- ACTIONS(47), 1,
2240
- anon_sym_PLUS,
2241
- ACTIONS(49), 1,
2242
- anon_sym_DASH,
2243
- ACTIONS(39), 2,
2174
+ ACTIONS(25), 2,
2244
2175
  anon_sym_EQ_EQ,
2245
2176
  anon_sym_BANG_EQ,
2246
- ACTIONS(41), 2,
2177
+ ACTIONS(27), 2,
2247
2178
  anon_sym_LT,
2248
2179
  anon_sym_GT,
2249
- ACTIONS(43), 2,
2180
+ ACTIONS(29), 2,
2250
2181
  anon_sym_LT_EQ,
2251
2182
  anon_sym_GT_EQ,
2252
- ACTIONS(31), 4,
2183
+ ACTIONS(5), 4,
2253
2184
  anon_sym_SLASH,
2254
2185
  anon_sym_STAR,
2255
2186
  anon_sym_PERCENT,
2256
2187
  anon_sym_LT_GT,
2257
- ACTIONS(55), 6,
2188
+ ACTIONS(45), 4,
2258
2189
  anon_sym_BANG,
2259
2190
  anon_sym_let,
2260
- anon_sym_todo,
2261
- anon_sym_panic,
2262
2191
  sym__decimal,
2263
2192
  sym_identifier,
2264
- ACTIONS(53), 7,
2193
+ ACTIONS(43), 7,
2265
2194
  anon_sym_LBRACE,
2266
2195
  anon_sym_RBRACE,
2267
2196
  sym_float,
@@ -2269,18 +2198,16 @@ static const uint16_t ts_small_parse_table[] = {
2269
2198
  sym__hex,
2270
2199
  sym__octal,
2271
2200
  sym__binary,
2272
- [305] = 2,
2201
+ [289] = 2,
2273
- ACTIONS(59), 9,
2202
+ ACTIONS(9), 7,
2274
2203
  anon_sym_LT,
2275
2204
  anon_sym_GT,
2276
2205
  anon_sym_DASH,
2277
2206
  anon_sym_BANG,
2278
2207
  anon_sym_let,
2279
- anon_sym_todo,
2280
- anon_sym_panic,
2281
2208
  sym__decimal,
2282
2209
  sym_identifier,
2283
- ACTIONS(57), 19,
2210
+ ACTIONS(7), 19,
2284
2211
  anon_sym_SLASH,
2285
2212
  anon_sym_LBRACE,
2286
2213
  anon_sym_RBRACE,
@@ -2300,19 +2227,26 @@ static const uint16_t ts_small_parse_table[] = {
2300
2227
  sym__hex,
2301
2228
  sym__octal,
2302
2229
  sym__binary,
2303
- [338] = 2,
2230
+ [320] = 6,
2231
+ ACTIONS(11), 1,
2232
+ anon_sym_PLUS,
2304
- ACTIONS(63), 9,
2233
+ ACTIONS(13), 1,
2234
+ anon_sym_DASH,
2235
+ ACTIONS(31), 1,
2236
+ anon_sym_PIPE_GT,
2237
+ ACTIONS(5), 4,
2238
+ anon_sym_SLASH,
2239
+ anon_sym_STAR,
2240
+ anon_sym_PERCENT,
2241
+ anon_sym_LT_GT,
2242
+ ACTIONS(9), 6,
2305
2243
  anon_sym_LT,
2306
2244
  anon_sym_GT,
2307
- anon_sym_DASH,
2308
2245
  anon_sym_BANG,
2309
2246
  anon_sym_let,
2310
- anon_sym_todo,
2311
- anon_sym_panic,
2312
2247
  sym__decimal,
2313
2248
  sym_identifier,
2314
- ACTIONS(61), 19,
2249
+ ACTIONS(7), 13,
2315
- anon_sym_SLASH,
2316
2250
  anon_sym_LBRACE,
2317
2251
  anon_sym_RBRACE,
2318
2252
  anon_sym_PIPE_PIPE,
@@ -2321,68 +2255,50 @@ static const uint16_t ts_small_parse_table[] = {
2321
2255
  anon_sym_BANG_EQ,
2322
2256
  anon_sym_LT_EQ,
2323
2257
  anon_sym_GT_EQ,
2324
- anon_sym_PIPE_GT,
2325
- anon_sym_PLUS,
2326
- anon_sym_STAR,
2327
- anon_sym_PERCENT,
2328
- anon_sym_LT_GT,
2329
2258
  sym_float,
2330
2259
  anon_sym_DQUOTE,
2331
2260
  sym__hex,
2332
2261
  sym__octal,
2333
2262
  sym__binary,
2334
- [371] = 11,
2263
+ [359] = 2,
2264
+ ACTIONS(49), 7,
2265
+ anon_sym_LT,
2266
+ anon_sym_GT,
2267
+ anon_sym_DASH,
2268
+ anon_sym_BANG,
2269
+ anon_sym_let,
2270
+ sym__decimal,
2271
+ sym_identifier,
2335
- ACTIONS(35), 1,
2272
+ ACTIONS(47), 19,
2273
+ anon_sym_SLASH,
2274
+ anon_sym_LBRACE,
2275
+ anon_sym_RBRACE,
2336
2276
  anon_sym_PIPE_PIPE,
2337
- ACTIONS(37), 1,
2338
2277
  anon_sym_AMP_AMP,
2339
- ACTIONS(45), 1,
2340
- anon_sym_PIPE_GT,
2341
- ACTIONS(47), 1,
2342
- anon_sym_PLUS,
2343
- ACTIONS(49), 1,
2344
- anon_sym_DASH,
2345
- ACTIONS(39), 2,
2346
2278
  anon_sym_EQ_EQ,
2347
2279
  anon_sym_BANG_EQ,
2348
- ACTIONS(41), 2,
2349
- anon_sym_LT,
2350
- anon_sym_GT,
2351
- ACTIONS(43), 2,
2352
2280
  anon_sym_LT_EQ,
2353
2281
  anon_sym_GT_EQ,
2354
- ACTIONS(31), 4,
2282
+ anon_sym_PIPE_GT,
2355
- anon_sym_SLASH,
2283
+ anon_sym_PLUS,
2356
2284
  anon_sym_STAR,
2357
2285
  anon_sym_PERCENT,
2358
2286
  anon_sym_LT_GT,
2359
- ACTIONS(67), 6,
2360
- anon_sym_BANG,
2361
- anon_sym_let,
2362
- anon_sym_todo,
2363
- anon_sym_panic,
2364
- sym__decimal,
2365
- sym_identifier,
2366
- ACTIONS(65), 7,
2367
- anon_sym_LBRACE,
2368
- anon_sym_RBRACE,
2369
2287
  sym_float,
2370
2288
  anon_sym_DQUOTE,
2371
2289
  sym__hex,
2372
2290
  sym__octal,
2373
2291
  sym__binary,
2374
- [422] = 2,
2292
+ [390] = 2,
2375
- ACTIONS(71), 9,
2293
+ ACTIONS(53), 7,
2376
2294
  anon_sym_LT,
2377
2295
  anon_sym_GT,
2378
2296
  anon_sym_DASH,
2379
2297
  anon_sym_BANG,
2380
2298
  anon_sym_let,
2381
- anon_sym_todo,
2382
- anon_sym_panic,
2383
2299
  sym__decimal,
2384
2300
  sym_identifier,
2385
- ACTIONS(69), 19,
2301
+ ACTIONS(51), 19,
2386
2302
  anon_sym_SLASH,
2387
2303
  anon_sym_LBRACE,
2388
2304
  anon_sym_RBRACE,
@@ -2402,58 +2318,57 @@ static const uint16_t ts_small_parse_table[] = {
2402
2318
  sym__hex,
2403
2319
  sym__octal,
2404
2320
  sym__binary,
2405
- [455] = 3,
2321
+ [421] = 9,
2322
+ ACTIONS(11), 1,
2323
+ anon_sym_PLUS,
2324
+ ACTIONS(13), 1,
2325
+ anon_sym_DASH,
2406
- ACTIONS(31), 4,
2326
+ ACTIONS(31), 1,
2327
+ anon_sym_PIPE_GT,
2328
+ ACTIONS(25), 2,
2329
+ anon_sym_EQ_EQ,
2330
+ anon_sym_BANG_EQ,
2331
+ ACTIONS(27), 2,
2332
+ anon_sym_LT,
2333
+ anon_sym_GT,
2334
+ ACTIONS(29), 2,
2335
+ anon_sym_LT_EQ,
2336
+ anon_sym_GT_EQ,
2337
+ ACTIONS(5), 4,
2407
2338
  anon_sym_SLASH,
2408
2339
  anon_sym_STAR,
2409
2340
  anon_sym_PERCENT,
2410
2341
  anon_sym_LT_GT,
2411
- ACTIONS(21), 9,
2342
+ ACTIONS(9), 4,
2412
- anon_sym_LT,
2413
- anon_sym_GT,
2414
- anon_sym_DASH,
2415
2343
  anon_sym_BANG,
2416
2344
  anon_sym_let,
2417
- anon_sym_todo,
2418
- anon_sym_panic,
2419
2345
  sym__decimal,
2420
2346
  sym_identifier,
2421
- ACTIONS(19), 15,
2347
+ ACTIONS(7), 9,
2422
2348
  anon_sym_LBRACE,
2423
2349
  anon_sym_RBRACE,
2424
2350
  anon_sym_PIPE_PIPE,
2425
2351
  anon_sym_AMP_AMP,
2426
- anon_sym_EQ_EQ,
2427
- anon_sym_BANG_EQ,
2428
- anon_sym_LT_EQ,
2429
- anon_sym_GT_EQ,
2430
- anon_sym_PIPE_GT,
2431
- anon_sym_PLUS,
2432
2352
  sym_float,
2433
2353
  anon_sym_DQUOTE,
2434
2354
  sym__hex,
2435
2355
  sym__octal,
2436
2356
  sym__binary,
2437
- [490] = 5,
2357
+ [466] = 3,
2438
- ACTIONS(47), 1,
2439
- anon_sym_PLUS,
2440
- ACTIONS(49), 1,
2441
- anon_sym_DASH,
2442
- ACTIONS(31), 4,
2358
+ ACTIONS(5), 4,
2443
2359
  anon_sym_SLASH,
2444
2360
  anon_sym_STAR,
2445
2361
  anon_sym_PERCENT,
2446
2362
  anon_sym_LT_GT,
2447
- ACTIONS(21), 8,
2363
+ ACTIONS(9), 7,
2448
2364
  anon_sym_LT,
2449
2365
  anon_sym_GT,
2366
+ anon_sym_DASH,
2450
2367
  anon_sym_BANG,
2451
2368
  anon_sym_let,
2452
- anon_sym_todo,
2453
- anon_sym_panic,
2454
2369
  sym__decimal,
2455
2370
  sym_identifier,
2456
- ACTIONS(19), 14,
2371
+ ACTIONS(7), 15,
2457
2372
  anon_sym_LBRACE,
2458
2373
  anon_sym_RBRACE,
2459
2374
  anon_sym_PIPE_PIPE,
@@ -2463,172 +2378,88 @@ static const uint16_t ts_small_parse_table[] = {
2463
2378
  anon_sym_LT_EQ,
2464
2379
  anon_sym_GT_EQ,
2465
2380
  anon_sym_PIPE_GT,
2381
+ anon_sym_PLUS,
2466
2382
  sym_float,
2467
2383
  anon_sym_DQUOTE,
2468
2384
  sym__hex,
2469
2385
  sym__octal,
2470
2386
  sym__binary,
2471
- [529] = 6,
2387
+ [499] = 10,
2472
- ACTIONS(45), 1,
2388
+ ACTIONS(11), 1,
2473
- anon_sym_PIPE_GT,
2474
- ACTIONS(47), 1,
2475
2389
  anon_sym_PLUS,
2476
- ACTIONS(49), 1,
2390
+ ACTIONS(13), 1,
2477
2391
  anon_sym_DASH,
2478
- ACTIONS(31), 4,
2479
- anon_sym_SLASH,
2480
- anon_sym_STAR,
2481
- anon_sym_PERCENT,
2482
- anon_sym_LT_GT,
2483
- ACTIONS(21), 8,
2392
+ ACTIONS(23), 1,
2484
- anon_sym_LT,
2485
- anon_sym_GT,
2486
- anon_sym_BANG,
2487
- anon_sym_let,
2488
- anon_sym_todo,
2489
- anon_sym_panic,
2490
- sym__decimal,
2491
- sym_identifier,
2492
- ACTIONS(19), 13,
2493
- anon_sym_LBRACE,
2494
- anon_sym_RBRACE,
2495
- anon_sym_PIPE_PIPE,
2496
2393
  anon_sym_AMP_AMP,
2394
+ ACTIONS(31), 1,
2395
+ anon_sym_PIPE_GT,
2396
+ ACTIONS(25), 2,
2497
2397
  anon_sym_EQ_EQ,
2498
2398
  anon_sym_BANG_EQ,
2499
- anon_sym_LT_EQ,
2500
- anon_sym_GT_EQ,
2501
- sym_float,
2502
- anon_sym_DQUOTE,
2503
- sym__hex,
2504
- sym__octal,
2505
- sym__binary,
2506
- [570] = 8,
2507
- ACTIONS(45), 1,
2508
- anon_sym_PIPE_GT,
2509
- ACTIONS(47), 1,
2399
+ ACTIONS(27), 2,
2510
- anon_sym_PLUS,
2511
- ACTIONS(49), 1,
2512
- anon_sym_DASH,
2513
- ACTIONS(41), 2,
2514
2400
  anon_sym_LT,
2515
2401
  anon_sym_GT,
2516
- ACTIONS(43), 2,
2402
+ ACTIONS(29), 2,
2517
2403
  anon_sym_LT_EQ,
2518
2404
  anon_sym_GT_EQ,
2519
- ACTIONS(31), 4,
2405
+ ACTIONS(5), 4,
2520
2406
  anon_sym_SLASH,
2521
2407
  anon_sym_STAR,
2522
2408
  anon_sym_PERCENT,
2523
2409
  anon_sym_LT_GT,
2524
- ACTIONS(21), 6,
2410
+ ACTIONS(9), 4,
2525
2411
  anon_sym_BANG,
2526
2412
  anon_sym_let,
2527
- anon_sym_todo,
2528
- anon_sym_panic,
2529
2413
  sym__decimal,
2530
2414
  sym_identifier,
2531
- ACTIONS(19), 11,
2415
+ ACTIONS(7), 8,
2532
2416
  anon_sym_LBRACE,
2533
2417
  anon_sym_RBRACE,
2534
2418
  anon_sym_PIPE_PIPE,
2535
- anon_sym_AMP_AMP,
2536
- anon_sym_EQ_EQ,
2537
- anon_sym_BANG_EQ,
2538
2419
  sym_float,
2539
2420
  anon_sym_DQUOTE,
2540
2421
  sym__hex,
2541
2422
  sym__octal,
2542
2423
  sym__binary,
2543
- [615] = 9,
2424
+ [546] = 2,
2544
- ACTIONS(45), 1,
2545
- anon_sym_PIPE_GT,
2546
- ACTIONS(47), 1,
2425
+ ACTIONS(57), 7,
2547
- anon_sym_PLUS,
2548
- ACTIONS(49), 1,
2549
- anon_sym_DASH,
2550
- ACTIONS(39), 2,
2551
- anon_sym_EQ_EQ,
2552
- anon_sym_BANG_EQ,
2553
- ACTIONS(41), 2,
2554
2426
  anon_sym_LT,
2555
2427
  anon_sym_GT,
2556
- ACTIONS(43), 2,
2557
- anon_sym_LT_EQ,
2558
- anon_sym_GT_EQ,
2559
- ACTIONS(31), 4,
2560
- anon_sym_SLASH,
2428
+ anon_sym_DASH,
2561
- anon_sym_STAR,
2562
- anon_sym_PERCENT,
2563
- anon_sym_LT_GT,
2564
- ACTIONS(21), 6,
2565
2429
  anon_sym_BANG,
2566
2430
  anon_sym_let,
2567
- anon_sym_todo,
2568
- anon_sym_panic,
2569
2431
  sym__decimal,
2570
2432
  sym_identifier,
2571
- ACTIONS(19), 9,
2433
+ ACTIONS(55), 19,
2434
+ anon_sym_SLASH,
2572
2435
  anon_sym_LBRACE,
2573
2436
  anon_sym_RBRACE,
2574
2437
  anon_sym_PIPE_PIPE,
2575
2438
  anon_sym_AMP_AMP,
2576
- sym_float,
2577
- anon_sym_DQUOTE,
2578
- sym__hex,
2579
- sym__octal,
2580
- sym__binary,
2581
- [662] = 10,
2582
- ACTIONS(37), 1,
2583
- anon_sym_AMP_AMP,
2584
- ACTIONS(45), 1,
2585
- anon_sym_PIPE_GT,
2586
- ACTIONS(47), 1,
2587
- anon_sym_PLUS,
2588
- ACTIONS(49), 1,
2589
- anon_sym_DASH,
2590
- ACTIONS(39), 2,
2591
2439
  anon_sym_EQ_EQ,
2592
2440
  anon_sym_BANG_EQ,
2593
- ACTIONS(41), 2,
2594
- anon_sym_LT,
2595
- anon_sym_GT,
2596
- ACTIONS(43), 2,
2597
2441
  anon_sym_LT_EQ,
2598
2442
  anon_sym_GT_EQ,
2599
- ACTIONS(31), 4,
2443
+ anon_sym_PIPE_GT,
2600
- anon_sym_SLASH,
2444
+ anon_sym_PLUS,
2601
2445
  anon_sym_STAR,
2602
2446
  anon_sym_PERCENT,
2603
2447
  anon_sym_LT_GT,
2604
- ACTIONS(21), 6,
2605
- anon_sym_BANG,
2606
- anon_sym_let,
2607
- anon_sym_todo,
2608
- anon_sym_panic,
2609
- sym__decimal,
2610
- sym_identifier,
2611
- ACTIONS(19), 8,
2612
- anon_sym_LBRACE,
2613
- anon_sym_RBRACE,
2614
- anon_sym_PIPE_PIPE,
2615
2448
  sym_float,
2616
2449
  anon_sym_DQUOTE,
2617
2450
  sym__hex,
2618
2451
  sym__octal,
2619
2452
  sym__binary,
2620
- [711] = 2,
2453
+ [577] = 2,
2621
- ACTIONS(75), 9,
2454
+ ACTIONS(61), 7,
2622
2455
  anon_sym_LT,
2623
2456
  anon_sym_GT,
2624
2457
  anon_sym_DASH,
2625
2458
  anon_sym_BANG,
2626
2459
  anon_sym_let,
2627
- anon_sym_todo,
2628
- anon_sym_panic,
2629
2460
  sym__decimal,
2630
2461
  sym_identifier,
2631
- ACTIONS(73), 19,
2462
+ ACTIONS(59), 19,
2632
2463
  anon_sym_SLASH,
2633
2464
  anon_sym_LBRACE,
2634
2465
  anon_sym_RBRACE,
@@ -2648,1314 +2479,911 @@ static const uint16_t ts_small_parse_table[] = {
2648
2479
  sym__hex,
2649
2480
  sym__octal,
2650
2481
  sym__binary,
2651
- [744] = 14,
2482
+ [608] = 12,
2652
- ACTIONS(77), 1,
2483
+ ACTIONS(63), 1,
2653
2484
  anon_sym_LBRACE,
2654
- ACTIONS(79), 1,
2485
+ ACTIONS(65), 1,
2655
2486
  anon_sym_RBRACE,
2656
- ACTIONS(81), 1,
2487
+ ACTIONS(67), 1,
2657
2488
  anon_sym_DASH,
2658
- ACTIONS(83), 1,
2489
+ ACTIONS(69), 1,
2659
2490
  anon_sym_BANG,
2660
- ACTIONS(85), 1,
2491
+ ACTIONS(71), 1,
2661
2492
  anon_sym_let,
2662
- ACTIONS(87), 1,
2493
+ ACTIONS(73), 1,
2663
- anon_sym_todo,
2664
- ACTIONS(89), 1,
2665
- anon_sym_panic,
2666
- ACTIONS(91), 1,
2667
2494
  sym_float,
2668
- ACTIONS(93), 1,
2495
+ ACTIONS(75), 1,
2669
2496
  anon_sym_DQUOTE,
2670
- ACTIONS(97), 1,
2497
+ ACTIONS(79), 1,
2671
2498
  sym__decimal,
2672
- ACTIONS(99), 1,
2499
+ ACTIONS(81), 1,
2673
2500
  sym_identifier,
2674
- ACTIONS(95), 3,
2501
+ ACTIONS(77), 3,
2675
2502
  sym__hex,
2676
2503
  sym__octal,
2677
2504
  sym__binary,
2678
- STATE(26), 3,
2505
+ STATE(23), 3,
2679
2506
  aux_sym__statement_seq,
2680
2507
  sym__statement,
2681
2508
  sym_let,
2682
- STATE(12), 9,
2509
+ STATE(7), 7,
2683
2510
  sym__expression,
2684
2511
  sym_binary_expression,
2685
2512
  sym__expression_unit,
2686
2513
  sym_expression_group,
2687
2514
  sym_negation,
2688
- sym_todo,
2689
- sym_panic,
2690
2515
  sym_integer,
2691
2516
  sym_string,
2692
- [799] = 14,
2517
+ [655] = 12,
2693
- ACTIONS(77), 1,
2518
+ ACTIONS(63), 1,
2694
2519
  anon_sym_LBRACE,
2695
- ACTIONS(81), 1,
2520
+ ACTIONS(67), 1,
2696
2521
  anon_sym_DASH,
2697
- ACTIONS(83), 1,
2522
+ ACTIONS(69), 1,
2698
2523
  anon_sym_BANG,
2699
- ACTIONS(85), 1,
2524
+ ACTIONS(71), 1,
2700
2525
  anon_sym_let,
2701
- ACTIONS(87), 1,
2526
+ ACTIONS(73), 1,
2702
- anon_sym_todo,
2703
- ACTIONS(89), 1,
2704
- anon_sym_panic,
2705
- ACTIONS(91), 1,
2706
2527
  sym_float,
2707
- ACTIONS(93), 1,
2528
+ ACTIONS(75), 1,
2708
2529
  anon_sym_DQUOTE,
2709
- ACTIONS(97), 1,
2530
+ ACTIONS(79), 1,
2710
2531
  sym__decimal,
2711
- ACTIONS(99), 1,
2532
+ ACTIONS(81), 1,
2712
2533
  sym_identifier,
2713
- ACTIONS(101), 1,
2534
+ ACTIONS(83), 1,
2714
2535
  anon_sym_RBRACE,
2715
- ACTIONS(95), 3,
2536
+ ACTIONS(77), 3,
2716
2537
  sym__hex,
2717
2538
  sym__octal,
2718
2539
  sym__binary,
2719
- STATE(26), 3,
2540
+ STATE(23), 3,
2720
2541
  aux_sym__statement_seq,
2721
2542
  sym__statement,
2722
2543
  sym_let,
2723
- STATE(12), 9,
2544
+ STATE(7), 7,
2724
2545
  sym__expression,
2725
2546
  sym_binary_expression,
2726
2547
  sym__expression_unit,
2727
2548
  sym_expression_group,
2728
2549
  sym_negation,
2729
- sym_todo,
2730
- sym_panic,
2731
2550
  sym_integer,
2732
2551
  sym_string,
2733
- [854] = 14,
2552
+ [702] = 12,
2734
- ACTIONS(77), 1,
2553
+ ACTIONS(63), 1,
2735
2554
  anon_sym_LBRACE,
2736
- ACTIONS(81), 1,
2555
+ ACTIONS(67), 1,
2737
2556
  anon_sym_DASH,
2738
- ACTIONS(83), 1,
2557
+ ACTIONS(69), 1,
2739
2558
  anon_sym_BANG,
2740
- ACTIONS(85), 1,
2559
+ ACTIONS(71), 1,
2741
2560
  anon_sym_let,
2742
- ACTIONS(87), 1,
2561
+ ACTIONS(73), 1,
2743
- anon_sym_todo,
2744
- ACTIONS(89), 1,
2745
- anon_sym_panic,
2746
- ACTIONS(91), 1,
2747
2562
  sym_float,
2748
- ACTIONS(93), 1,
2563
+ ACTIONS(75), 1,
2749
2564
  anon_sym_DQUOTE,
2750
- ACTIONS(97), 1,
2565
+ ACTIONS(79), 1,
2751
2566
  sym__decimal,
2752
- ACTIONS(99), 1,
2567
+ ACTIONS(81), 1,
2753
2568
  sym_identifier,
2754
- ACTIONS(103), 1,
2569
+ ACTIONS(85), 1,
2755
2570
  anon_sym_RBRACE,
2756
- ACTIONS(95), 3,
2571
+ ACTIONS(77), 3,
2757
2572
  sym__hex,
2758
2573
  sym__octal,
2759
2574
  sym__binary,
2760
- STATE(26), 3,
2575
+ STATE(23), 3,
2761
2576
  aux_sym__statement_seq,
2762
2577
  sym__statement,
2763
2578
  sym_let,
2764
- STATE(12), 9,
2579
+ STATE(7), 7,
2765
2580
  sym__expression,
2766
2581
  sym_binary_expression,
2767
2582
  sym__expression_unit,
2768
2583
  sym_expression_group,
2769
2584
  sym_negation,
2770
- sym_todo,
2771
- sym_panic,
2772
2585
  sym_integer,
2773
2586
  sym_string,
2774
- [909] = 14,
2587
+ [749] = 12,
2775
- ACTIONS(77), 1,
2588
+ ACTIONS(63), 1,
2776
2589
  anon_sym_LBRACE,
2777
- ACTIONS(81), 1,
2590
+ ACTIONS(67), 1,
2778
2591
  anon_sym_DASH,
2779
- ACTIONS(83), 1,
2592
+ ACTIONS(69), 1,
2780
2593
  anon_sym_BANG,
2781
- ACTIONS(85), 1,
2594
+ ACTIONS(71), 1,
2782
2595
  anon_sym_let,
2783
- ACTIONS(87), 1,
2596
+ ACTIONS(73), 1,
2784
- anon_sym_todo,
2785
- ACTIONS(89), 1,
2786
- anon_sym_panic,
2787
- ACTIONS(91), 1,
2788
2597
  sym_float,
2789
- ACTIONS(93), 1,
2598
+ ACTIONS(75), 1,
2790
2599
  anon_sym_DQUOTE,
2791
- ACTIONS(97), 1,
2600
+ ACTIONS(79), 1,
2792
2601
  sym__decimal,
2793
- ACTIONS(99), 1,
2602
+ ACTIONS(81), 1,
2794
2603
  sym_identifier,
2795
- ACTIONS(105), 1,
2604
+ ACTIONS(87), 1,
2796
2605
  anon_sym_RBRACE,
2797
- ACTIONS(95), 3,
2606
+ ACTIONS(77), 3,
2798
2607
  sym__hex,
2799
2608
  sym__octal,
2800
2609
  sym__binary,
2801
- STATE(26), 3,
2610
+ STATE(23), 3,
2802
2611
  aux_sym__statement_seq,
2803
2612
  sym__statement,
2804
2613
  sym_let,
2805
- STATE(12), 9,
2614
+ STATE(7), 7,
2806
2615
  sym__expression,
2807
2616
  sym_binary_expression,
2808
2617
  sym__expression_unit,
2809
2618
  sym_expression_group,
2810
2619
  sym_negation,
2811
- sym_todo,
2812
- sym_panic,
2813
2620
  sym_integer,
2814
2621
  sym_string,
2815
- [964] = 14,
2622
+ [796] = 12,
2816
- ACTIONS(77), 1,
2623
+ ACTIONS(63), 1,
2817
2624
  anon_sym_LBRACE,
2818
- ACTIONS(81), 1,
2625
+ ACTIONS(67), 1,
2819
2626
  anon_sym_DASH,
2820
- ACTIONS(83), 1,
2627
+ ACTIONS(69), 1,
2821
2628
  anon_sym_BANG,
2822
- ACTIONS(85), 1,
2629
+ ACTIONS(71), 1,
2823
2630
  anon_sym_let,
2824
- ACTIONS(87), 1,
2631
+ ACTIONS(73), 1,
2825
- anon_sym_todo,
2826
- ACTIONS(89), 1,
2827
- anon_sym_panic,
2828
- ACTIONS(91), 1,
2829
2632
  sym_float,
2830
- ACTIONS(93), 1,
2633
+ ACTIONS(75), 1,
2831
2634
  anon_sym_DQUOTE,
2832
- ACTIONS(97), 1,
2635
+ ACTIONS(79), 1,
2833
2636
  sym__decimal,
2834
- ACTIONS(99), 1,
2637
+ ACTIONS(81), 1,
2835
2638
  sym_identifier,
2836
- ACTIONS(107), 1,
2639
+ ACTIONS(89), 1,
2837
2640
  anon_sym_RBRACE,
2838
- ACTIONS(95), 3,
2641
+ ACTIONS(77), 3,
2839
2642
  sym__hex,
2840
2643
  sym__octal,
2841
2644
  sym__binary,
2842
- STATE(26), 3,
2645
+ STATE(23), 3,
2843
2646
  aux_sym__statement_seq,
2844
2647
  sym__statement,
2845
2648
  sym_let,
2846
- STATE(12), 9,
2649
+ STATE(7), 7,
2847
2650
  sym__expression,
2848
2651
  sym_binary_expression,
2849
2652
  sym__expression_unit,
2850
2653
  sym_expression_group,
2851
2654
  sym_negation,
2852
- sym_todo,
2853
- sym_panic,
2854
2655
  sym_integer,
2855
2656
  sym_string,
2856
- [1019] = 14,
2657
+ [843] = 12,
2857
- ACTIONS(109), 1,
2658
+ ACTIONS(91), 1,
2858
2659
  anon_sym_LBRACE,
2859
- ACTIONS(112), 1,
2660
+ ACTIONS(94), 1,
2860
2661
  anon_sym_RBRACE,
2861
- ACTIONS(114), 1,
2662
+ ACTIONS(96), 1,
2862
2663
  anon_sym_DASH,
2863
- ACTIONS(117), 1,
2664
+ ACTIONS(99), 1,
2864
2665
  anon_sym_BANG,
2865
- ACTIONS(120), 1,
2666
+ ACTIONS(102), 1,
2866
2667
  anon_sym_let,
2867
- ACTIONS(123), 1,
2668
+ ACTIONS(105), 1,
2868
- anon_sym_todo,
2869
- ACTIONS(126), 1,
2870
- anon_sym_panic,
2871
- ACTIONS(129), 1,
2872
2669
  sym_float,
2873
- ACTIONS(132), 1,
2670
+ ACTIONS(108), 1,
2874
2671
  anon_sym_DQUOTE,
2875
- ACTIONS(138), 1,
2672
+ ACTIONS(114), 1,
2876
2673
  sym__decimal,
2877
- ACTIONS(141), 1,
2674
+ ACTIONS(117), 1,
2878
2675
  sym_identifier,
2879
- ACTIONS(135), 3,
2676
+ ACTIONS(111), 3,
2880
2677
  sym__hex,
2881
2678
  sym__octal,
2882
2679
  sym__binary,
2883
- STATE(26), 3,
2680
+ STATE(23), 3,
2884
2681
  aux_sym__statement_seq,
2885
2682
  sym__statement,
2886
2683
  sym_let,
2887
- STATE(12), 9,
2684
+ STATE(7), 7,
2888
2685
  sym__expression,
2889
2686
  sym_binary_expression,
2890
2687
  sym__expression_unit,
2891
2688
  sym_expression_group,
2892
2689
  sym_negation,
2893
- sym_todo,
2894
- sym_panic,
2895
2690
  sym_integer,
2896
2691
  sym_string,
2897
- [1074] = 14,
2692
+ [890] = 11,
2898
- ACTIONS(77), 1,
2693
+ ACTIONS(63), 1,
2899
2694
  anon_sym_LBRACE,
2900
- ACTIONS(81), 1,
2695
+ ACTIONS(67), 1,
2901
2696
  anon_sym_DASH,
2902
- ACTIONS(83), 1,
2697
+ ACTIONS(69), 1,
2903
2698
  anon_sym_BANG,
2904
- ACTIONS(85), 1,
2699
+ ACTIONS(71), 1,
2905
2700
  anon_sym_let,
2906
- ACTIONS(87), 1,
2701
+ ACTIONS(73), 1,
2907
- anon_sym_todo,
2908
- ACTIONS(89), 1,
2909
- anon_sym_panic,
2910
- ACTIONS(91), 1,
2911
2702
  sym_float,
2912
- ACTIONS(93), 1,
2703
+ ACTIONS(75), 1,
2913
2704
  anon_sym_DQUOTE,
2914
- ACTIONS(97), 1,
2705
+ ACTIONS(79), 1,
2915
2706
  sym__decimal,
2916
- ACTIONS(99), 1,
2707
+ ACTIONS(81), 1,
2917
2708
  sym_identifier,
2918
- ACTIONS(144), 1,
2919
- anon_sym_RBRACE,
2920
- ACTIONS(95), 3,
2709
+ ACTIONS(77), 3,
2921
2710
  sym__hex,
2922
2711
  sym__octal,
2923
2712
  sym__binary,
2924
- STATE(26), 3,
2713
+ STATE(20), 3,
2925
2714
  aux_sym__statement_seq,
2926
2715
  sym__statement,
2927
2716
  sym_let,
2928
- STATE(12), 9,
2717
+ STATE(7), 7,
2929
2718
  sym__expression,
2930
2719
  sym_binary_expression,
2931
2720
  sym__expression_unit,
2932
2721
  sym_expression_group,
2933
2722
  sym_negation,
2934
- sym_todo,
2935
- sym_panic,
2936
2723
  sym_integer,
2937
2724
  sym_string,
2938
- [1129] = 14,
2725
+ [934] = 11,
2939
- ACTIONS(77), 1,
2726
+ ACTIONS(63), 1,
2940
2727
  anon_sym_LBRACE,
2941
- ACTIONS(81), 1,
2728
+ ACTIONS(67), 1,
2942
2729
  anon_sym_DASH,
2943
- ACTIONS(83), 1,
2730
+ ACTIONS(69), 1,
2944
2731
  anon_sym_BANG,
2945
- ACTIONS(85), 1,
2732
+ ACTIONS(71), 1,
2946
2733
  anon_sym_let,
2947
- ACTIONS(87), 1,
2734
+ ACTIONS(73), 1,
2948
- anon_sym_todo,
2949
- ACTIONS(89), 1,
2950
- anon_sym_panic,
2951
- ACTIONS(91), 1,
2952
2735
  sym_float,
2953
- ACTIONS(93), 1,
2736
+ ACTIONS(75), 1,
2954
2737
  anon_sym_DQUOTE,
2955
- ACTIONS(97), 1,
2738
+ ACTIONS(79), 1,
2956
2739
  sym__decimal,
2957
- ACTIONS(99), 1,
2740
+ ACTIONS(81), 1,
2958
2741
  sym_identifier,
2959
- ACTIONS(146), 1,
2960
- anon_sym_RBRACE,
2961
- ACTIONS(95), 3,
2742
+ ACTIONS(77), 3,
2962
2743
  sym__hex,
2963
2744
  sym__octal,
2964
2745
  sym__binary,
2965
- STATE(26), 3,
2746
+ STATE(18), 3,
2966
2747
  aux_sym__statement_seq,
2967
2748
  sym__statement,
2968
2749
  sym_let,
2969
- STATE(12), 9,
2750
+ STATE(7), 7,
2970
2751
  sym__expression,
2971
2752
  sym_binary_expression,
2972
2753
  sym__expression_unit,
2973
2754
  sym_expression_group,
2974
2755
  sym_negation,
2975
- sym_todo,
2976
- sym_panic,
2977
2756
  sym_integer,
2978
2757
  sym_string,
2979
- [1184] = 14,
2758
+ [978] = 11,
2980
- ACTIONS(77), 1,
2759
+ ACTIONS(63), 1,
2981
2760
  anon_sym_LBRACE,
2982
- ACTIONS(81), 1,
2761
+ ACTIONS(67), 1,
2983
2762
  anon_sym_DASH,
2984
- ACTIONS(83), 1,
2763
+ ACTIONS(69), 1,
2985
2764
  anon_sym_BANG,
2986
- ACTIONS(85), 1,
2765
+ ACTIONS(71), 1,
2987
2766
  anon_sym_let,
2988
- ACTIONS(87), 1,
2767
+ ACTIONS(73), 1,
2989
- anon_sym_todo,
2990
- ACTIONS(89), 1,
2991
- anon_sym_panic,
2992
- ACTIONS(91), 1,
2993
2768
  sym_float,
2994
- ACTIONS(93), 1,
2769
+ ACTIONS(75), 1,
2995
2770
  anon_sym_DQUOTE,
2996
- ACTIONS(97), 1,
2771
+ ACTIONS(79), 1,
2997
2772
  sym__decimal,
2998
- ACTIONS(99), 1,
2773
+ ACTIONS(81), 1,
2999
2774
  sym_identifier,
3000
- ACTIONS(148), 1,
3001
- anon_sym_RBRACE,
3002
- ACTIONS(95), 3,
2775
+ ACTIONS(77), 3,
3003
2776
  sym__hex,
3004
2777
  sym__octal,
3005
2778
  sym__binary,
3006
- STATE(26), 3,
2779
+ STATE(21), 3,
3007
2780
  aux_sym__statement_seq,
3008
2781
  sym__statement,
3009
2782
  sym_let,
3010
- STATE(12), 9,
2783
+ STATE(7), 7,
3011
2784
  sym__expression,
3012
2785
  sym_binary_expression,
3013
2786
  sym__expression_unit,
3014
2787
  sym_expression_group,
3015
2788
  sym_negation,
3016
- sym_todo,
3017
- sym_panic,
3018
2789
  sym_integer,
3019
2790
  sym_string,
3020
- [1239] = 14,
2791
+ [1022] = 11,
3021
- ACTIONS(77), 1,
2792
+ ACTIONS(63), 1,
3022
2793
  anon_sym_LBRACE,
3023
- ACTIONS(81), 1,
2794
+ ACTIONS(67), 1,
3024
2795
  anon_sym_DASH,
3025
- ACTIONS(83), 1,
2796
+ ACTIONS(69), 1,
3026
2797
  anon_sym_BANG,
3027
- ACTIONS(85), 1,
2798
+ ACTIONS(71), 1,
3028
2799
  anon_sym_let,
3029
- ACTIONS(87), 1,
2800
+ ACTIONS(73), 1,
3030
- anon_sym_todo,
3031
- ACTIONS(89), 1,
3032
- anon_sym_panic,
3033
- ACTIONS(91), 1,
3034
2801
  sym_float,
3035
- ACTIONS(93), 1,
2802
+ ACTIONS(75), 1,
3036
2803
  anon_sym_DQUOTE,
3037
- ACTIONS(97), 1,
2804
+ ACTIONS(79), 1,
3038
2805
  sym__decimal,
3039
- ACTIONS(99), 1,
2806
+ ACTIONS(81), 1,
3040
2807
  sym_identifier,
3041
- ACTIONS(150), 1,
3042
- anon_sym_RBRACE,
3043
- ACTIONS(95), 3,
2808
+ ACTIONS(77), 3,
3044
2809
  sym__hex,
3045
2810
  sym__octal,
3046
2811
  sym__binary,
3047
- STATE(26), 3,
2812
+ STATE(19), 3,
3048
2813
  aux_sym__statement_seq,
3049
2814
  sym__statement,
3050
2815
  sym_let,
3051
- STATE(12), 9,
2816
+ STATE(7), 7,
3052
2817
  sym__expression,
3053
2818
  sym_binary_expression,
3054
2819
  sym__expression_unit,
3055
2820
  sym_expression_group,
3056
2821
  sym_negation,
3057
- sym_todo,
3058
- sym_panic,
3059
2822
  sym_integer,
3060
2823
  sym_string,
3061
- [1294] = 14,
2824
+ [1066] = 11,
3062
- ACTIONS(77), 1,
2825
+ ACTIONS(63), 1,
3063
2826
  anon_sym_LBRACE,
3064
- ACTIONS(81), 1,
2827
+ ACTIONS(67), 1,
3065
2828
  anon_sym_DASH,
3066
- ACTIONS(83), 1,
2829
+ ACTIONS(69), 1,
3067
2830
  anon_sym_BANG,
3068
- ACTIONS(85), 1,
2831
+ ACTIONS(71), 1,
3069
2832
  anon_sym_let,
3070
- ACTIONS(87), 1,
2833
+ ACTIONS(73), 1,
3071
- anon_sym_todo,
3072
- ACTIONS(89), 1,
3073
- anon_sym_panic,
3074
- ACTIONS(91), 1,
3075
2834
  sym_float,
3076
- ACTIONS(93), 1,
2835
+ ACTIONS(75), 1,
3077
2836
  anon_sym_DQUOTE,
3078
- ACTIONS(97), 1,
2837
+ ACTIONS(79), 1,
3079
2838
  sym__decimal,
3080
- ACTIONS(99), 1,
2839
+ ACTIONS(81), 1,
3081
2840
  sym_identifier,
3082
- ACTIONS(152), 1,
3083
- anon_sym_RBRACE,
3084
- ACTIONS(95), 3,
2841
+ ACTIONS(77), 3,
3085
2842
  sym__hex,
3086
2843
  sym__octal,
3087
2844
  sym__binary,
3088
- STATE(26), 3,
2845
+ STATE(22), 3,
3089
2846
  aux_sym__statement_seq,
3090
2847
  sym__statement,
3091
2848
  sym_let,
3092
- STATE(12), 9,
2849
+ STATE(7), 7,
3093
2850
  sym__expression,
3094
2851
  sym_binary_expression,
3095
2852
  sym__expression_unit,
3096
2853
  sym_expression_group,
3097
2854
  sym_negation,
3098
- sym_todo,
3099
- sym_panic,
3100
2855
  sym_integer,
3101
2856
  sym_string,
3102
- [1349] = 13,
2857
+ [1110] = 9,
3103
- ACTIONS(77), 1,
2858
+ ACTIONS(63), 1,
3104
2859
  anon_sym_LBRACE,
3105
- ACTIONS(81), 1,
2860
+ ACTIONS(67), 1,
3106
2861
  anon_sym_DASH,
3107
- ACTIONS(83), 1,
2862
+ ACTIONS(69), 1,
3108
2863
  anon_sym_BANG,
3109
- ACTIONS(85), 1,
2864
+ ACTIONS(75), 1,
3110
- anon_sym_let,
3111
- ACTIONS(87), 1,
3112
- anon_sym_todo,
3113
- ACTIONS(89), 1,
3114
- anon_sym_panic,
3115
- ACTIONS(91), 1,
3116
- sym_float,
3117
- ACTIONS(93), 1,
3118
2865
  anon_sym_DQUOTE,
3119
- ACTIONS(97), 1,
2866
+ ACTIONS(79), 1,
3120
2867
  sym__decimal,
3121
- ACTIONS(99), 1,
2868
+ ACTIONS(120), 1,
2869
+ sym_float,
2870
+ ACTIONS(122), 1,
3122
2871
  sym_identifier,
3123
- ACTIONS(95), 3,
2872
+ ACTIONS(77), 3,
3124
2873
  sym__hex,
3125
2874
  sym__octal,
3126
2875
  sym__binary,
3127
- STATE(31), 3,
2876
+ STATE(9), 7,
3128
- aux_sym__statement_seq,
3129
- sym__statement,
3130
- sym_let,
3131
- STATE(12), 9,
3132
2877
  sym__expression,
3133
2878
  sym_binary_expression,
3134
2879
  sym__expression_unit,
3135
2880
  sym_expression_group,
3136
2881
  sym_negation,
3137
- sym_todo,
3138
- sym_panic,
3139
2882
  sym_integer,
3140
2883
  sym_string,
3141
- [1401] = 13,
2884
+ [1146] = 9,
3142
- ACTIONS(77), 1,
2885
+ ACTIONS(63), 1,
3143
2886
  anon_sym_LBRACE,
3144
- ACTIONS(81), 1,
2887
+ ACTIONS(67), 1,
3145
2888
  anon_sym_DASH,
3146
- ACTIONS(83), 1,
2889
+ ACTIONS(69), 1,
3147
2890
  anon_sym_BANG,
3148
- ACTIONS(85), 1,
2891
+ ACTIONS(75), 1,
3149
- anon_sym_let,
3150
- ACTIONS(87), 1,
3151
- anon_sym_todo,
3152
- ACTIONS(89), 1,
3153
- anon_sym_panic,
3154
- ACTIONS(91), 1,
3155
- sym_float,
3156
- ACTIONS(93), 1,
3157
2892
  anon_sym_DQUOTE,
3158
- ACTIONS(97), 1,
2893
+ ACTIONS(79), 1,
3159
2894
  sym__decimal,
3160
- ACTIONS(99), 1,
2895
+ ACTIONS(124), 1,
2896
+ sym_float,
2897
+ ACTIONS(126), 1,
3161
2898
  sym_identifier,
3162
- ACTIONS(95), 3,
2899
+ ACTIONS(77), 3,
3163
2900
  sym__hex,
3164
2901
  sym__octal,
3165
2902
  sym__binary,
3166
- STATE(30), 3,
3167
- aux_sym__statement_seq,
3168
- sym__statement,
3169
- sym_let,
3170
- STATE(12), 9,
2903
+ STATE(14), 7,
3171
2904
  sym__expression,
3172
2905
  sym_binary_expression,
3173
2906
  sym__expression_unit,
3174
2907
  sym_expression_group,
3175
2908
  sym_negation,
3176
- sym_todo,
3177
- sym_panic,
3178
2909
  sym_integer,
3179
2910
  sym_string,
3180
- [1453] = 13,
2911
+ [1182] = 9,
3181
- ACTIONS(77), 1,
2912
+ ACTIONS(63), 1,
3182
2913
  anon_sym_LBRACE,
3183
- ACTIONS(81), 1,
2914
+ ACTIONS(67), 1,
3184
2915
  anon_sym_DASH,
3185
- ACTIONS(83), 1,
2916
+ ACTIONS(69), 1,
3186
2917
  anon_sym_BANG,
3187
- ACTIONS(85), 1,
2918
+ ACTIONS(75), 1,
3188
- anon_sym_let,
3189
- ACTIONS(87), 1,
3190
- anon_sym_todo,
3191
- ACTIONS(89), 1,
3192
- anon_sym_panic,
3193
- ACTIONS(91), 1,
3194
- sym_float,
3195
- ACTIONS(93), 1,
3196
2919
  anon_sym_DQUOTE,
3197
- ACTIONS(97), 1,
2920
+ ACTIONS(79), 1,
3198
2921
  sym__decimal,
3199
- ACTIONS(99), 1,
2922
+ ACTIONS(128), 1,
2923
+ sym_float,
2924
+ ACTIONS(130), 1,
3200
2925
  sym_identifier,
3201
- ACTIONS(95), 3,
2926
+ ACTIONS(77), 3,
3202
2927
  sym__hex,
3203
2928
  sym__octal,
3204
2929
  sym__binary,
3205
- STATE(28), 3,
2930
+ STATE(8), 7,
3206
- aux_sym__statement_seq,
3207
- sym__statement,
3208
- sym_let,
3209
- STATE(12), 9,
3210
2931
  sym__expression,
3211
2932
  sym_binary_expression,
3212
2933
  sym__expression_unit,
3213
2934
  sym_expression_group,
3214
2935
  sym_negation,
3215
- sym_todo,
3216
- sym_panic,
3217
2936
  sym_integer,
3218
2937
  sym_string,
3219
- [1505] = 13,
2938
+ [1218] = 9,
3220
- ACTIONS(77), 1,
2939
+ ACTIONS(63), 1,
3221
2940
  anon_sym_LBRACE,
3222
- ACTIONS(81), 1,
2941
+ ACTIONS(67), 1,
3223
2942
  anon_sym_DASH,
3224
- ACTIONS(83), 1,
2943
+ ACTIONS(69), 1,
3225
2944
  anon_sym_BANG,
3226
- ACTIONS(85), 1,
2945
+ ACTIONS(75), 1,
3227
- anon_sym_let,
3228
- ACTIONS(87), 1,
3229
- anon_sym_todo,
3230
- ACTIONS(89), 1,
3231
- anon_sym_panic,
3232
- ACTIONS(91), 1,
3233
- sym_float,
3234
- ACTIONS(93), 1,
3235
2946
  anon_sym_DQUOTE,
3236
- ACTIONS(97), 1,
2947
+ ACTIONS(79), 1,
3237
2948
  sym__decimal,
3238
- ACTIONS(99), 1,
2949
+ ACTIONS(132), 1,
2950
+ sym_float,
2951
+ ACTIONS(134), 1,
3239
2952
  sym_identifier,
3240
- ACTIONS(95), 3,
2953
+ ACTIONS(77), 3,
3241
2954
  sym__hex,
3242
2955
  sym__octal,
3243
2956
  sym__binary,
3244
- STATE(22), 3,
3245
- aux_sym__statement_seq,
3246
- sym__statement,
3247
- sym_let,
3248
- STATE(12), 9,
2957
+ STATE(15), 7,
3249
2958
  sym__expression,
3250
2959
  sym_binary_expression,
3251
2960
  sym__expression_unit,
3252
2961
  sym_expression_group,
3253
2962
  sym_negation,
3254
- sym_todo,
3255
- sym_panic,
3256
2963
  sym_integer,
3257
2964
  sym_string,
3258
- [1557] = 13,
2965
+ [1254] = 9,
3259
- ACTIONS(77), 1,
2966
+ ACTIONS(63), 1,
3260
2967
  anon_sym_LBRACE,
3261
- ACTIONS(81), 1,
2968
+ ACTIONS(67), 1,
3262
2969
  anon_sym_DASH,
3263
- ACTIONS(83), 1,
2970
+ ACTIONS(69), 1,
3264
2971
  anon_sym_BANG,
3265
- ACTIONS(85), 1,
2972
+ ACTIONS(75), 1,
3266
- anon_sym_let,
3267
- ACTIONS(87), 1,
3268
- anon_sym_todo,
3269
- ACTIONS(89), 1,
3270
- anon_sym_panic,
3271
- ACTIONS(91), 1,
3272
- sym_float,
3273
- ACTIONS(93), 1,
3274
2973
  anon_sym_DQUOTE,
3275
- ACTIONS(97), 1,
2974
+ ACTIONS(79), 1,
3276
2975
  sym__decimal,
3277
- ACTIONS(99), 1,
3278
- sym_identifier,
3279
- ACTIONS(95), 3,
3280
- sym__hex,
3281
- sym__octal,
3282
- sym__binary,
3283
- STATE(23), 3,
3284
- aux_sym__statement_seq,
3285
- sym__statement,
3286
- sym_let,
3287
- STATE(12), 9,
3288
- sym__expression,
3289
- sym_binary_expression,
3290
- sym__expression_unit,
3291
- sym_expression_group,
3292
- sym_negation,
3293
- sym_todo,
3294
- sym_panic,
3295
- sym_integer,
3296
- sym_string,
3297
- [1609] = 13,
3298
- ACTIONS(77), 1,
3299
- anon_sym_LBRACE,
3300
- ACTIONS(81), 1,
3301
- anon_sym_DASH,
3302
- ACTIONS(83), 1,
2976
+ ACTIONS(136), 1,
3303
- anon_sym_BANG,
3304
- ACTIONS(85), 1,
3305
- anon_sym_let,
3306
- ACTIONS(87), 1,
3307
- anon_sym_todo,
3308
- ACTIONS(89), 1,
3309
- anon_sym_panic,
3310
- ACTIONS(91), 1,
3311
2977
  sym_float,
3312
- ACTIONS(93), 1,
2978
+ ACTIONS(138), 1,
3313
- anon_sym_DQUOTE,
3314
- ACTIONS(97), 1,
3315
- sym__decimal,
3316
- ACTIONS(99), 1,
3317
2979
  sym_identifier,
3318
- ACTIONS(95), 3,
2980
+ ACTIONS(77), 3,
3319
2981
  sym__hex,
3320
2982
  sym__octal,
3321
2983
  sym__binary,
3322
- STATE(29), 3,
3323
- aux_sym__statement_seq,
3324
- sym__statement,
3325
- sym_let,
3326
- STATE(12), 9,
2984
+ STATE(13), 7,
3327
2985
  sym__expression,
3328
2986
  sym_binary_expression,
3329
2987
  sym__expression_unit,
3330
2988
  sym_expression_group,
3331
2989
  sym_negation,
3332
- sym_todo,
3333
- sym_panic,
3334
2990
  sym_integer,
3335
2991
  sym_string,
3336
- [1661] = 13,
2992
+ [1290] = 9,
3337
- ACTIONS(77), 1,
2993
+ ACTIONS(63), 1,
3338
2994
  anon_sym_LBRACE,
3339
- ACTIONS(81), 1,
2995
+ ACTIONS(67), 1,
3340
2996
  anon_sym_DASH,
3341
- ACTIONS(83), 1,
2997
+ ACTIONS(69), 1,
3342
2998
  anon_sym_BANG,
3343
- ACTIONS(85), 1,
2999
+ ACTIONS(75), 1,
3344
- anon_sym_let,
3345
- ACTIONS(87), 1,
3346
- anon_sym_todo,
3347
- ACTIONS(89), 1,
3348
- anon_sym_panic,
3349
- ACTIONS(91), 1,
3350
- sym_float,
3351
- ACTIONS(93), 1,
3352
3000
  anon_sym_DQUOTE,
3353
- ACTIONS(97), 1,
3001
+ ACTIONS(79), 1,
3354
3002
  sym__decimal,
3355
- ACTIONS(99), 1,
3003
+ ACTIONS(140), 1,
3356
- sym_identifier,
3357
- ACTIONS(95), 3,
3358
- sym__hex,
3359
- sym__octal,
3360
- sym__binary,
3361
- STATE(24), 3,
3362
- aux_sym__statement_seq,
3363
- sym__statement,
3364
- sym_let,
3365
- STATE(12), 9,
3366
- sym__expression,
3367
- sym_binary_expression,
3368
- sym__expression_unit,
3369
- sym_expression_group,
3370
- sym_negation,
3371
- sym_todo,
3372
- sym_panic,
3373
- sym_integer,
3374
- sym_string,
3375
- [1713] = 13,
3376
- ACTIONS(77), 1,
3377
- anon_sym_LBRACE,
3378
- ACTIONS(81), 1,
3379
- anon_sym_DASH,
3380
- ACTIONS(83), 1,
3381
- anon_sym_BANG,
3382
- ACTIONS(85), 1,
3383
- anon_sym_let,
3384
- ACTIONS(87), 1,
3385
- anon_sym_todo,
3386
- ACTIONS(89), 1,
3387
- anon_sym_panic,
3388
- ACTIONS(91), 1,
3389
3004
  sym_float,
3390
- ACTIONS(93), 1,
3005
+ ACTIONS(142), 1,
3391
- anon_sym_DQUOTE,
3392
- ACTIONS(97), 1,
3393
- sym__decimal,
3394
- ACTIONS(99), 1,
3395
3006
  sym_identifier,
3396
- ACTIONS(95), 3,
3007
+ ACTIONS(77), 3,
3397
3008
  sym__hex,
3398
3009
  sym__octal,
3399
3010
  sym__binary,
3400
- STATE(25), 3,
3011
+ STATE(6), 7,
3401
- aux_sym__statement_seq,
3402
- sym__statement,
3403
- sym_let,
3404
- STATE(12), 9,
3405
3012
  sym__expression,
3406
3013
  sym_binary_expression,
3407
3014
  sym__expression_unit,
3408
3015
  sym_expression_group,
3409
3016
  sym_negation,
3410
- sym_todo,
3411
- sym_panic,
3412
3017
  sym_integer,
3413
3018
  sym_string,
3414
- [1765] = 13,
3019
+ [1326] = 9,
3415
- ACTIONS(77), 1,
3020
+ ACTIONS(63), 1,
3416
3021
  anon_sym_LBRACE,
3417
- ACTIONS(81), 1,
3022
+ ACTIONS(67), 1,
3418
3023
  anon_sym_DASH,
3419
- ACTIONS(83), 1,
3024
+ ACTIONS(69), 1,
3420
3025
  anon_sym_BANG,
3421
- ACTIONS(85), 1,
3026
+ ACTIONS(75), 1,
3422
- anon_sym_let,
3423
- ACTIONS(87), 1,
3424
- anon_sym_todo,
3425
- ACTIONS(89), 1,
3426
- anon_sym_panic,
3427
- ACTIONS(91), 1,
3428
- sym_float,
3429
- ACTIONS(93), 1,
3430
3027
  anon_sym_DQUOTE,
3431
- ACTIONS(97), 1,
3028
+ ACTIONS(79), 1,
3432
3029
  sym__decimal,
3433
- ACTIONS(99), 1,
3030
+ ACTIONS(144), 1,
3434
- sym_identifier,
3435
- ACTIONS(95), 3,
3436
- sym__hex,
3437
- sym__octal,
3438
- sym__binary,
3439
- STATE(27), 3,
3440
- aux_sym__statement_seq,
3441
- sym__statement,
3442
- sym_let,
3443
- STATE(12), 9,
3444
- sym__expression,
3445
- sym_binary_expression,
3446
- sym__expression_unit,
3447
- sym_expression_group,
3448
- sym_negation,
3449
- sym_todo,
3450
- sym_panic,
3451
- sym_integer,
3452
- sym_string,
3453
- [1817] = 13,
3454
- ACTIONS(77), 1,
3455
- anon_sym_LBRACE,
3456
- ACTIONS(81), 1,
3457
- anon_sym_DASH,
3458
- ACTIONS(83), 1,
3459
- anon_sym_BANG,
3460
- ACTIONS(85), 1,
3461
- anon_sym_let,
3462
- ACTIONS(87), 1,
3463
- anon_sym_todo,
3464
- ACTIONS(89), 1,
3465
- anon_sym_panic,
3466
- ACTIONS(91), 1,
3467
3031
  sym_float,
3468
- ACTIONS(93), 1,
3032
+ ACTIONS(146), 1,
3469
- anon_sym_DQUOTE,
3470
- ACTIONS(97), 1,
3471
- sym__decimal,
3472
- ACTIONS(99), 1,
3473
3033
  sym_identifier,
3474
- ACTIONS(95), 3,
3034
+ ACTIONS(77), 3,
3475
3035
  sym__hex,
3476
3036
  sym__octal,
3477
3037
  sym__binary,
3478
- STATE(21), 3,
3038
+ STATE(2), 7,
3479
- aux_sym__statement_seq,
3480
- sym__statement,
3481
- sym_let,
3482
- STATE(12), 9,
3483
3039
  sym__expression,
3484
3040
  sym_binary_expression,
3485
3041
  sym__expression_unit,
3486
3042
  sym_expression_group,
3487
3043
  sym_negation,
3488
- sym_todo,
3489
- sym_panic,
3490
3044
  sym_integer,
3491
3045
  sym_string,
3492
- [1869] = 11,
3046
+ [1362] = 9,
3493
- ACTIONS(77), 1,
3047
+ ACTIONS(63), 1,
3494
3048
  anon_sym_LBRACE,
3495
- ACTIONS(81), 1,
3049
+ ACTIONS(67), 1,
3496
3050
  anon_sym_DASH,
3497
- ACTIONS(83), 1,
3051
+ ACTIONS(69), 1,
3498
3052
  anon_sym_BANG,
3499
- ACTIONS(87), 1,
3053
+ ACTIONS(75), 1,
3500
- anon_sym_todo,
3501
- ACTIONS(89), 1,
3502
- anon_sym_panic,
3503
- ACTIONS(93), 1,
3504
3054
  anon_sym_DQUOTE,
3505
- ACTIONS(97), 1,
3055
+ ACTIONS(79), 1,
3506
3056
  sym__decimal,
3507
- ACTIONS(154), 1,
3057
+ ACTIONS(148), 1,
3508
3058
  sym_float,
3509
- ACTIONS(156), 1,
3059
+ ACTIONS(150), 1,
3510
3060
  sym_identifier,
3511
- ACTIONS(95), 3,
3061
+ ACTIONS(77), 3,
3512
3062
  sym__hex,
3513
3063
  sym__octal,
3514
3064
  sym__binary,
3515
- STATE(8), 9,
3065
+ STATE(10), 7,
3516
3066
  sym__expression,
3517
3067
  sym_binary_expression,
3518
3068
  sym__expression_unit,
3519
3069
  sym_expression_group,
3520
3070
  sym_negation,
3521
- sym_todo,
3522
- sym_panic,
3523
3071
  sym_integer,
3524
3072
  sym_string,
3525
- [1913] = 11,
3073
+ [1398] = 9,
3526
- ACTIONS(77), 1,
3074
+ ACTIONS(63), 1,
3527
3075
  anon_sym_LBRACE,
3528
- ACTIONS(81), 1,
3076
+ ACTIONS(67), 1,
3529
3077
  anon_sym_DASH,
3530
- ACTIONS(83), 1,
3078
+ ACTIONS(69), 1,
3531
3079
  anon_sym_BANG,
3532
- ACTIONS(87), 1,
3080
+ ACTIONS(75), 1,
3533
- anon_sym_todo,
3534
- ACTIONS(89), 1,
3535
- anon_sym_panic,
3536
- ACTIONS(93), 1,
3537
3081
  anon_sym_DQUOTE,
3538
- ACTIONS(97), 1,
3082
+ ACTIONS(79), 1,
3539
3083
  sym__decimal,
3540
- ACTIONS(158), 1,
3084
+ ACTIONS(152), 1,
3541
3085
  sym_float,
3542
- ACTIONS(160), 1,
3086
+ ACTIONS(154), 1,
3543
3087
  sym_identifier,
3544
- ACTIONS(95), 3,
3088
+ ACTIONS(77), 3,
3545
3089
  sym__hex,
3546
3090
  sym__octal,
3547
3091
  sym__binary,
3548
- STATE(18), 9,
3092
+ STATE(4), 7,
3549
3093
  sym__expression,
3550
3094
  sym_binary_expression,
3551
3095
  sym__expression_unit,
3552
3096
  sym_expression_group,
3553
3097
  sym_negation,
3554
- sym_todo,
3555
- sym_panic,
3556
3098
  sym_integer,
3557
3099
  sym_string,
3558
- [1957] = 11,
3100
+ [1434] = 9,
3559
- ACTIONS(77), 1,
3101
+ ACTIONS(63), 1,
3560
3102
  anon_sym_LBRACE,
3561
- ACTIONS(81), 1,
3103
+ ACTIONS(67), 1,
3562
3104
  anon_sym_DASH,
3563
- ACTIONS(83), 1,
3105
+ ACTIONS(69), 1,
3564
3106
  anon_sym_BANG,
3565
- ACTIONS(87), 1,
3107
+ ACTIONS(75), 1,
3566
- anon_sym_todo,
3567
- ACTIONS(89), 1,
3568
- anon_sym_panic,
3569
- ACTIONS(93), 1,
3570
3108
  anon_sym_DQUOTE,
3571
- ACTIONS(97), 1,
3109
+ ACTIONS(79), 1,
3572
3110
  sym__decimal,
3573
- ACTIONS(162), 1,
3111
+ ACTIONS(156), 1,
3574
3112
  sym_float,
3575
- ACTIONS(164), 1,
3113
+ ACTIONS(158), 1,
3576
3114
  sym_identifier,
3577
- ACTIONS(95), 3,
3115
+ ACTIONS(77), 3,
3578
3116
  sym__hex,
3579
3117
  sym__octal,
3580
3118
  sym__binary,
3581
- STATE(17), 9,
3119
+ STATE(12), 5,
3582
- sym__expression,
3583
- sym_binary_expression,
3584
3120
  sym__expression_unit,
3585
3121
  sym_expression_group,
3586
3122
  sym_negation,
3587
- sym_todo,
3588
- sym_panic,
3589
3123
  sym_integer,
3590
3124
  sym_string,
3591
- [2001] = 11,
3125
+ [1468] = 9,
3592
- ACTIONS(77), 1,
3126
+ ACTIONS(160), 1,
3593
- anon_sym_LBRACE,
3594
- ACTIONS(81), 1,
3595
3127
  anon_sym_DASH,
3596
- ACTIONS(83), 1,
3597
- anon_sym_BANG,
3598
- ACTIONS(87), 1,
3599
- anon_sym_todo,
3600
- ACTIONS(89), 1,
3601
- anon_sym_panic,
3602
- ACTIONS(93), 1,
3603
- anon_sym_DQUOTE,
3604
- ACTIONS(97), 1,
3605
- sym__decimal,
3606
- ACTIONS(166), 1,
3128
+ ACTIONS(162), 1,
3607
3129
  sym_float,
3130
+ ACTIONS(166), 1,
3131
+ sym__decimal,
3608
3132
  ACTIONS(168), 1,
3609
3133
  sym_identifier,
3134
+ STATE(40), 1,
3135
+ sym__assignment,
3136
+ STATE(104), 1,
3137
+ sym__pattern_binary_expression,
3138
+ STATE(136), 1,
3139
+ sym__pattern,
3140
+ STATE(105), 2,
3141
+ sym__pattern_expression,
3142
+ sym_integer,
3610
- ACTIONS(95), 3,
3143
+ ACTIONS(164), 3,
3611
3144
  sym__hex,
3612
3145
  sym__octal,
3613
3146
  sym__binary,
3614
- STATE(9), 9,
3615
- sym__expression,
3616
- sym_binary_expression,
3617
- sym__expression_unit,
3618
- sym_expression_group,
3619
- sym_negation,
3620
- sym_todo,
3621
- sym_panic,
3622
- sym_integer,
3623
- sym_string,
3624
- [2045] = 11,
3147
+ [1499] = 2,
3625
- ACTIONS(77), 1,
3148
+ ACTIONS(172), 4,
3626
- anon_sym_LBRACE,
3627
- ACTIONS(81), 1,
3628
3149
  anon_sym_DASH,
3629
- ACTIONS(83), 1,
3630
- anon_sym_BANG,
3150
+ anon_sym_let,
3631
- ACTIONS(87), 1,
3632
- anon_sym_todo,
3633
- ACTIONS(89), 1,
3634
- anon_sym_panic,
3635
- ACTIONS(93), 1,
3636
- anon_sym_DQUOTE,
3637
- ACTIONS(97), 1,
3638
3151
  sym__decimal,
3639
- ACTIONS(170), 1,
3640
- sym_float,
3641
- ACTIONS(172), 1,
3642
3152
  sym_identifier,
3643
- ACTIONS(95), 3,
3644
- sym__hex,
3645
- sym__octal,
3646
- sym__binary,
3647
- STATE(16), 9,
3648
- sym__expression,
3649
- sym_binary_expression,
3650
- sym__expression_unit,
3651
- sym_expression_group,
3652
- sym_negation,
3653
- sym_todo,
3654
- sym_panic,
3655
- sym_integer,
3656
- sym_string,
3657
- [2089] = 11,
3658
- ACTIONS(77), 1,
3153
+ ACTIONS(170), 8,
3659
3154
  anon_sym_LBRACE,
3660
- ACTIONS(81), 1,
3661
- anon_sym_DASH,
3155
+ anon_sym_RBRACE,
3662
- ACTIONS(83), 1,
3663
3156
  anon_sym_BANG,
3664
- ACTIONS(87), 1,
3665
- anon_sym_todo,
3666
- ACTIONS(89), 1,
3667
- anon_sym_panic,
3668
- ACTIONS(93), 1,
3669
- anon_sym_DQUOTE,
3670
- ACTIONS(97), 1,
3671
- sym__decimal,
3672
- ACTIONS(174), 1,
3673
3157
  sym_float,
3674
- ACTIONS(176), 1,
3675
- sym_identifier,
3158
+ anon_sym_DQUOTE,
3676
- ACTIONS(95), 3,
3677
3159
  sym__hex,
3678
3160
  sym__octal,
3679
3161
  sym__binary,
3680
- STATE(15), 9,
3681
- sym__expression,
3682
- sym_binary_expression,
3683
- sym__expression_unit,
3684
- sym_expression_group,
3685
- sym_negation,
3686
- sym_todo,
3687
- sym_panic,
3688
- sym_integer,
3689
- sym_string,
3690
- [2133] = 11,
3162
+ [1516] = 6,
3691
- ACTIONS(77), 1,
3163
+ ACTIONS(174), 1,
3164
+ ts_builtin_sym_end,
3165
+ ACTIONS(176), 1,
3692
- anon_sym_LBRACE,
3166
+ anon_sym_import,
3167
+ ACTIONS(178), 1,
3168
+ anon_sym_type,
3693
- ACTIONS(81), 1,
3169
+ ACTIONS(180), 1,
3170
+ anon_sym_fn,
3171
+ STATE(72), 2,
3172
+ sym_import,
3173
+ aux_sym_source_file_repeat1,
3174
+ STATE(66), 4,
3175
+ sym_struct,
3176
+ sym_enum,
3177
+ sym_function,
3178
+ aux_sym_source_file_repeat2,
3179
+ [1539] = 6,
3180
+ ACTIONS(176), 1,
3181
+ anon_sym_import,
3182
+ ACTIONS(178), 1,
3183
+ anon_sym_type,
3184
+ ACTIONS(180), 1,
3185
+ anon_sym_fn,
3186
+ ACTIONS(182), 1,
3187
+ ts_builtin_sym_end,
3188
+ STATE(41), 2,
3189
+ sym_import,
3190
+ aux_sym_source_file_repeat1,
3191
+ STATE(59), 4,
3192
+ sym_struct,
3193
+ sym_enum,
3194
+ sym_function,
3195
+ aux_sym_source_file_repeat2,
3196
+ [1562] = 7,
3197
+ ACTIONS(160), 1,
3694
3198
  anon_sym_DASH,
3695
- ACTIONS(83), 1,
3199
+ ACTIONS(166), 1,
3696
- anon_sym_BANG,
3697
- ACTIONS(87), 1,
3698
- anon_sym_todo,
3699
- ACTIONS(89), 1,
3700
- anon_sym_panic,
3701
- ACTIONS(93), 1,
3702
- anon_sym_DQUOTE,
3703
- ACTIONS(97), 1,
3704
3200
  sym__decimal,
3705
- ACTIONS(178), 1,
3201
+ ACTIONS(184), 1,
3706
3202
  sym_float,
3707
- ACTIONS(180), 1,
3203
+ ACTIONS(186), 1,
3708
3204
  sym_identifier,
3205
+ STATE(104), 1,
3206
+ sym__pattern_binary_expression,
3207
+ STATE(108), 2,
3208
+ sym__pattern_expression,
3209
+ sym_integer,
3709
- ACTIONS(95), 3,
3210
+ ACTIONS(164), 3,
3710
3211
  sym__hex,
3711
3212
  sym__octal,
3712
3213
  sym__binary,
3713
- STATE(14), 9,
3714
- sym__expression,
3715
- sym_binary_expression,
3716
- sym__expression_unit,
3717
- sym_expression_group,
3718
- sym_negation,
3719
- sym_todo,
3720
- sym_panic,
3721
- sym_integer,
3722
- sym_string,
3723
- [2177] = 11,
3214
+ [1587] = 7,
3724
- ACTIONS(77), 1,
3725
- anon_sym_LBRACE,
3726
- ACTIONS(81), 1,
3727
- anon_sym_DASH,
3728
- ACTIONS(83), 1,
3729
- anon_sym_BANG,
3730
- ACTIONS(87), 1,
3731
- anon_sym_todo,
3732
- ACTIONS(89), 1,
3733
- anon_sym_panic,
3734
- ACTIONS(93), 1,
3735
- anon_sym_DQUOTE,
3736
- ACTIONS(97), 1,
3737
- sym__decimal,
3738
- ACTIONS(182), 1,
3739
- sym_float,
3740
- ACTIONS(184), 1,
3741
- sym_identifier,
3742
- ACTIONS(95), 3,
3743
- sym__hex,
3744
- sym__octal,
3745
- sym__binary,
3746
- STATE(5), 9,
3747
- sym__expression,
3748
- sym_binary_expression,
3749
- sym__expression_unit,
3750
- sym_expression_group,
3751
- sym_negation,
3752
- sym_todo,
3753
- sym_panic,
3754
- sym_integer,
3755
- sym_string,
3756
- [2221] = 11,
3757
- ACTIONS(77), 1,
3758
- anon_sym_LBRACE,
3759
- ACTIONS(81), 1,
3760
- anon_sym_DASH,
3761
- ACTIONS(83), 1,
3762
- anon_sym_BANG,
3763
- ACTIONS(87), 1,
3764
- anon_sym_todo,
3765
- ACTIONS(89), 1,
3766
- anon_sym_panic,
3767
- ACTIONS(93), 1,
3768
- anon_sym_DQUOTE,
3769
- ACTIONS(97), 1,
3770
- sym__decimal,
3771
- ACTIONS(186), 1,
3772
- sym_float,
3773
3215
  ACTIONS(188), 1,
3774
- sym_identifier,
3775
- ACTIONS(95), 3,
3776
- sym__hex,
3777
- sym__octal,
3778
- sym__binary,
3779
- STATE(19), 9,
3780
- sym__expression,
3781
- sym_binary_expression,
3782
- sym__expression_unit,
3783
- sym_expression_group,
3784
- sym_negation,
3785
- sym_todo,
3786
- sym_panic,
3787
- sym_integer,
3788
- sym_string,
3789
- [2265] = 11,
3790
- ACTIONS(77), 1,
3791
- anon_sym_LBRACE,
3216
+ anon_sym_RPAREN,
3792
- ACTIONS(81), 1,
3793
- anon_sym_DASH,
3794
- ACTIONS(83), 1,
3795
- anon_sym_BANG,
3796
- ACTIONS(87), 1,
3797
- anon_sym_todo,
3798
- ACTIONS(89), 1,
3799
- anon_sym_panic,
3800
- ACTIONS(93), 1,
3801
- anon_sym_DQUOTE,
3802
- ACTIONS(97), 1,
3803
- sym__decimal,
3804
3217
  ACTIONS(190), 1,
3805
- sym_float,
3218
+ anon_sym_fn,
3806
3219
  ACTIONS(192), 1,
3807
- sym_identifier,
3220
+ sym_generic,
3808
- ACTIONS(95), 3,
3221
+ ACTIONS(194), 1,
3809
- sym__hex,
3810
- sym__octal,
3811
- sym__binary,
3222
+ sym__upname,
3812
- STATE(20), 7,
3223
+ STATE(65), 1,
3224
+ sym_type_identifier,
3225
+ STATE(184), 1,
3813
- sym__expression_unit,
3226
+ sym_type_argument,
3814
- sym_expression_group,
3227
+ STATE(174), 3,
3815
- sym_negation,
3228
+ sym_function_type,
3816
- sym_todo,
3229
+ sym_type,
3230
+ sym__type,
3231
+ [1611] = 7,
3232
+ ACTIONS(190), 1,
3233
+ anon_sym_fn,
3234
+ ACTIONS(192), 1,
3817
- sym_panic,
3235
+ sym_generic,
3236
+ ACTIONS(194), 1,
3818
- sym_integer,
3237
+ sym__upname,
3819
- sym_string,
3820
- [2307] = 2,
3821
- ACTIONS(196), 6,
3238
+ ACTIONS(196), 1,
3822
- anon_sym_DASH,
3239
+ anon_sym_RPAREN,
3240
+ STATE(65), 1,
3241
+ sym_type_identifier,
3242
+ STATE(139), 1,
3243
+ sym_type_argument,
3244
+ STATE(174), 3,
3245
+ sym_function_type,
3246
+ sym_type,
3247
+ sym__type,
3248
+ [1635] = 7,
3249
+ ACTIONS(190), 1,
3823
- anon_sym_let,
3250
+ anon_sym_fn,
3824
- anon_sym_todo,
3825
- anon_sym_panic,
3251
+ ACTIONS(192), 1,
3826
- sym__decimal,
3827
- sym_identifier,
3252
+ sym_generic,
3828
- ACTIONS(194), 8,
3253
+ ACTIONS(194), 1,
3829
- anon_sym_LBRACE,
3830
- anon_sym_RBRACE,
3831
- anon_sym_BANG,
3832
- sym_float,
3833
- anon_sym_DQUOTE,
3834
- sym__hex,
3835
- sym__octal,
3836
- sym__binary,
3254
+ sym__upname,
3837
- [2326] = 9,
3838
3255
  ACTIONS(198), 1,
3256
+ anon_sym_RPAREN,
3257
+ STATE(65), 1,
3258
+ sym_type_identifier,
3259
+ STATE(184), 1,
3260
+ sym_type_argument,
3261
+ STATE(174), 3,
3262
+ sym_function_type,
3263
+ sym_type,
3264
+ sym__type,
3265
+ [1659] = 6,
3266
+ ACTIONS(190), 1,
3839
- anon_sym_DASH,
3267
+ anon_sym_fn,
3268
+ ACTIONS(194), 1,
3269
+ sym__upname,
3840
3270
  ACTIONS(200), 1,
3271
+ anon_sym_RPAREN,
3272
+ ACTIONS(202), 1,
3273
+ sym_generic,
3274
+ STATE(65), 1,
3275
+ sym_type_identifier,
3276
+ STATE(160), 3,
3277
+ sym_function_type,
3278
+ sym_type,
3841
- sym_float,
3279
+ sym__type,
3280
+ [1680] = 6,
3281
+ ACTIONS(190), 1,
3282
+ anon_sym_fn,
3283
+ ACTIONS(194), 1,
3284
+ sym__upname,
3842
3285
  ACTIONS(204), 1,
3843
- sym__decimal,
3286
+ anon_sym_RPAREN,
3844
3287
  ACTIONS(206), 1,
3845
- sym_identifier,
3288
+ sym_generic,
3846
- STATE(52), 1,
3847
- sym__assignment,
3848
- STATE(85), 1,
3289
+ STATE(65), 1,
3849
- sym__pattern_binary_expression,
3290
+ sym_type_identifier,
3850
- STATE(120), 1,
3291
+ STATE(129), 3,
3292
+ sym_function_type,
3851
- sym__pattern,
3293
+ sym_type,
3852
- STATE(106), 2,
3853
- sym__pattern_expression,
3854
- sym_integer,
3294
+ sym__type,
3295
+ [1701] = 5,
3296
+ ACTIONS(210), 1,
3297
+ anon_sym_LPAREN,
3855
- ACTIONS(202), 3,
3298
+ ACTIONS(212), 1,
3856
- sym__hex,
3857
- sym__octal,
3299
+ anon_sym_DASH_GT,
3300
+ STATE(70), 1,
3301
+ sym_function_parameter_types,
3302
+ STATE(75), 1,
3858
- sym__binary,
3303
+ sym_return_type,
3859
- [2357] = 1,
3860
- ACTIONS(208), 10,
3304
+ ACTIONS(208), 4,
3861
- ts_builtin_sym_end,
3862
- anon_sym_as,
3863
3305
  anon_sym_LBRACE,
3864
3306
  anon_sym_COMMA,
3865
- anon_sym_RBRACE,
3307
+ anon_sym_RPAREN,
3866
- anon_sym_type,
3867
3308
  anon_sym_EQ,
3309
+ [1720] = 6,
3868
- anon_sym_PIPE,
3310
+ ACTIONS(190), 1,
3869
3311
  anon_sym_fn,
3870
- anon_sym_LPAREN,
3871
- [2370] = 7,
3872
- ACTIONS(198), 1,
3312
+ ACTIONS(194), 1,
3873
- anon_sym_DASH,
3313
+ sym__upname,
3874
- ACTIONS(204), 1,
3314
+ ACTIONS(202), 1,
3875
- sym__decimal,
3876
- ACTIONS(210), 1,
3877
- sym_float,
3878
- ACTIONS(212), 1,
3879
- sym_identifier,
3880
- STATE(85), 1,
3881
- sym__pattern_binary_expression,
3882
- STATE(91), 2,
3883
- sym__pattern_expression,
3884
- sym_integer,
3315
+ sym_generic,
3885
- ACTIONS(202), 3,
3886
- sym__hex,
3887
- sym__octal,
3888
- sym__binary,
3889
- [2395] = 6,
3890
3316
  ACTIONS(214), 1,
3891
- ts_builtin_sym_end,
3892
- ACTIONS(216), 1,
3893
- anon_sym_import,
3317
+ anon_sym_RPAREN,
3894
- ACTIONS(218), 1,
3895
- anon_sym_type,
3896
- ACTIONS(220), 1,
3897
- anon_sym_fn,
3898
- STATE(57), 2,
3318
+ STATE(65), 1,
3899
- sym_import,
3900
- aux_sym_source_file_repeat1,
3319
+ sym_type_identifier,
3901
- STATE(66), 3,
3320
+ STATE(160), 3,
3321
+ sym_function_type,
3902
3322
  sym_type,
3903
- sym_function,
3323
+ sym__type,
3904
- aux_sym_source_file_repeat2,
3905
- [2417] = 6,
3324
+ [1741] = 3,
3906
- ACTIONS(216), 1,
3907
- anon_sym_import,
3908
3325
  ACTIONS(218), 1,
3909
- anon_sym_type,
3910
- ACTIONS(220), 1,
3911
- anon_sym_fn,
3912
- ACTIONS(222), 1,
3913
- ts_builtin_sym_end,
3914
- STATE(62), 2,
3915
- sym_import,
3916
- aux_sym_source_file_repeat1,
3917
- STATE(63), 3,
3918
- sym_type,
3919
- sym_function,
3920
- aux_sym_source_file_repeat2,
3921
- [2439] = 3,
3922
- ACTIONS(226), 1,
3923
3326
  anon_sym_SLASH,
3924
- STATE(58), 1,
3327
+ STATE(54), 1,
3925
3328
  aux_sym_module_name_repeat1,
3926
- ACTIONS(224), 6,
3329
+ ACTIONS(216), 6,
3927
3330
  ts_builtin_sym_end,
3928
3331
  anon_sym_import,
3929
3332
  anon_sym_DOT,
3930
3333
  anon_sym_as,
3931
3334
  anon_sym_type,
3932
3335
  anon_sym_fn,
3933
- [2454] = 3,
3336
+ [1756] = 3,
3934
- ACTIONS(231), 1,
3337
+ ACTIONS(222), 1,
3935
3338
  anon_sym_SLASH,
3936
- STATE(58), 1,
3339
+ STATE(52), 1,
3937
3340
  aux_sym_module_name_repeat1,
3938
- ACTIONS(229), 6,
3341
+ ACTIONS(220), 6,
3939
3342
  ts_builtin_sym_end,
3940
3343
  anon_sym_import,
3941
3344
  anon_sym_DOT,
3942
3345
  anon_sym_as,
3943
3346
  anon_sym_type,
3944
3347
  anon_sym_fn,
3348
+ [1771] = 6,
3349
+ ACTIONS(190), 1,
3350
+ anon_sym_fn,
3351
+ ACTIONS(192), 1,
3352
+ sym_generic,
3353
+ ACTIONS(194), 1,
3354
+ sym__upname,
3355
+ STATE(65), 1,
3356
+ sym_type_identifier,
3357
+ STATE(184), 1,
3358
+ sym_type_argument,
3359
+ STATE(174), 3,
3360
+ sym_function_type,
3361
+ sym_type,
3362
+ sym__type,
3945
- [2469] = 3,
3363
+ [1792] = 3,
3946
- ACTIONS(231), 1,
3364
+ ACTIONS(218), 1,
3947
3365
  anon_sym_SLASH,
3948
- STATE(59), 1,
3366
+ STATE(52), 1,
3949
3367
  aux_sym_module_name_repeat1,
3950
- ACTIONS(233), 6,
3368
+ ACTIONS(225), 6,
3951
3369
  ts_builtin_sym_end,
3952
3370
  anon_sym_import,
3953
3371
  anon_sym_DOT,
3954
3372
  anon_sym_as,
3955
3373
  anon_sym_type,
3956
3374
  anon_sym_fn,
3957
- [2484] = 1,
3375
+ [1807] = 1,
3376
+ ACTIONS(227), 8,
3377
+ anon_sym_as,
3378
+ anon_sym_LBRACE,
3379
+ anon_sym_COMMA,
3380
+ anon_sym_RBRACE,
3381
+ anon_sym_LPAREN,
3382
+ anon_sym_RPAREN,
3383
+ anon_sym_EQ,
3384
+ sym__upname,
3385
+ [1818] = 1,
3958
- ACTIONS(224), 7,
3386
+ ACTIONS(220), 7,
3959
3387
  ts_builtin_sym_end,
3960
3388
  anon_sym_import,
3961
3389
  anon_sym_DOT,
@@ -3963,1226 +3391,1486 @@ static const uint16_t ts_small_parse_table[] = {
3963
3391
  anon_sym_SLASH,
3964
3392
  anon_sym_type,
3965
3393
  anon_sym_fn,
3966
- [2494] = 3,
3394
+ [1828] = 5,
3967
- ACTIONS(237), 1,
3395
+ ACTIONS(190), 1,
3968
- anon_sym_import,
3969
- STATE(62), 2,
3970
- sym_import,
3971
- aux_sym_source_file_repeat1,
3972
- ACTIONS(235), 3,
3973
- ts_builtin_sym_end,
3974
- anon_sym_type,
3975
3396
  anon_sym_fn,
3976
- [2507] = 4,
3977
- ACTIONS(218), 1,
3397
+ ACTIONS(194), 1,
3978
- anon_sym_type,
3398
+ sym__upname,
3979
- ACTIONS(220), 1,
3399
+ ACTIONS(229), 1,
3400
+ sym_generic,
3401
+ STATE(65), 1,
3402
+ sym_type_identifier,
3403
+ STATE(196), 3,
3404
+ sym_function_type,
3405
+ sym_type,
3406
+ sym__type,
3407
+ [1846] = 5,
3408
+ ACTIONS(190), 1,
3980
3409
  anon_sym_fn,
3410
+ ACTIONS(194), 1,
3411
+ sym__upname,
3981
- ACTIONS(240), 1,
3412
+ ACTIONS(202), 1,
3413
+ sym_generic,
3414
+ STATE(65), 1,
3982
- ts_builtin_sym_end,
3415
+ sym_type_identifier,
3983
- STATE(64), 3,
3416
+ STATE(160), 3,
3417
+ sym_function_type,
3984
3418
  sym_type,
3985
- sym_function,
3419
+ sym__type,
3986
- aux_sym_source_file_repeat2,
3987
- [2522] = 4,
3420
+ [1864] = 4,
3988
- ACTIONS(242), 1,
3421
+ ACTIONS(174), 1,
3989
3422
  ts_builtin_sym_end,
3990
- ACTIONS(244), 1,
3423
+ ACTIONS(178), 1,
3991
3424
  anon_sym_type,
3992
- ACTIONS(247), 1,
3425
+ ACTIONS(180), 1,
3993
3426
  anon_sym_fn,
3994
- STATE(64), 3,
3427
+ STATE(61), 4,
3428
+ sym_struct,
3995
- sym_type,
3429
+ sym_enum,
3996
3430
  sym_function,
3997
3431
  aux_sym_source_file_repeat2,
3998
- [2537] = 3,
3432
+ [1880] = 5,
3433
+ ACTIONS(190), 1,
3434
+ anon_sym_fn,
3435
+ ACTIONS(194), 1,
3436
+ sym__upname,
3999
- ACTIONS(252), 1,
3437
+ ACTIONS(231), 1,
3438
+ sym_generic,
3439
+ STATE(65), 1,
3440
+ sym_type_identifier,
3441
+ STATE(85), 3,
3442
+ sym_function_type,
4000
- anon_sym_DOT,
3443
+ sym_type,
3444
+ sym__type,
3445
+ [1898] = 4,
4001
- ACTIONS(254), 1,
3446
+ ACTIONS(233), 1,
4002
- anon_sym_as,
4003
- ACTIONS(250), 4,
4004
3447
  ts_builtin_sym_end,
4005
- anon_sym_import,
3448
+ ACTIONS(235), 1,
4006
3449
  anon_sym_type,
3450
+ ACTIONS(238), 1,
4007
3451
  anon_sym_fn,
3452
+ STATE(61), 4,
3453
+ sym_struct,
3454
+ sym_enum,
3455
+ sym_function,
3456
+ aux_sym_source_file_repeat2,
4008
- [2550] = 4,
3457
+ [1914] = 5,
4009
- ACTIONS(218), 1,
3458
+ ACTIONS(241), 1,
3459
+ anon_sym_fn,
3460
+ ACTIONS(243), 1,
3461
+ sym_generic,
3462
+ ACTIONS(245), 1,
3463
+ sym__upname,
3464
+ STATE(65), 1,
3465
+ sym_type_identifier,
3466
+ STATE(123), 3,
3467
+ sym_function_type,
3468
+ sym_type,
3469
+ sym__type,
3470
+ [1932] = 5,
3471
+ ACTIONS(190), 1,
3472
+ anon_sym_fn,
3473
+ ACTIONS(194), 1,
3474
+ sym__upname,
3475
+ ACTIONS(243), 1,
3476
+ sym_generic,
3477
+ STATE(65), 1,
3478
+ sym_type_identifier,
3479
+ STATE(123), 3,
3480
+ sym_function_type,
3481
+ sym_type,
3482
+ sym__type,
3483
+ [1950] = 5,
3484
+ ACTIONS(231), 1,
3485
+ sym_generic,
3486
+ ACTIONS(241), 1,
3487
+ anon_sym_fn,
3488
+ ACTIONS(245), 1,
3489
+ sym__upname,
3490
+ STATE(65), 1,
3491
+ sym_type_identifier,
3492
+ STATE(85), 3,
3493
+ sym_function_type,
3494
+ sym_type,
3495
+ sym__type,
3496
+ [1968] = 3,
3497
+ ACTIONS(249), 1,
3498
+ anon_sym_LPAREN,
3499
+ STATE(84), 1,
3500
+ sym_type_arguments,
3501
+ ACTIONS(247), 5,
3502
+ anon_sym_LBRACE,
3503
+ anon_sym_COMMA,
3504
+ anon_sym_RPAREN,
3505
+ anon_sym_EQ,
3506
+ sym_identifier,
3507
+ [1982] = 4,
3508
+ ACTIONS(178), 1,
4010
3509
  anon_sym_type,
4011
- ACTIONS(220), 1,
3510
+ ACTIONS(180), 1,
4012
3511
  anon_sym_fn,
4013
- ACTIONS(222), 1,
3512
+ ACTIONS(251), 1,
4014
3513
  ts_builtin_sym_end,
4015
- STATE(64), 3,
3514
+ STATE(61), 4,
3515
+ sym_struct,
4016
- sym_type,
3516
+ sym_enum,
4017
3517
  sym_function,
4018
3518
  aux_sym_source_file_repeat2,
4019
- [2565] = 3,
3519
+ [1998] = 3,
4020
- ACTIONS(258), 1,
3520
+ ACTIONS(255), 1,
4021
- anon_sym_PIPE,
3521
+ anon_sym_DOT,
4022
- STATE(75), 1,
4023
- aux_sym_type_repeat1,
4024
- ACTIONS(256), 3,
3522
+ ACTIONS(257), 1,
3523
+ anon_sym_as,
3524
+ ACTIONS(253), 4,
4025
3525
  ts_builtin_sym_end,
3526
+ anon_sym_import,
4026
3527
  anon_sym_type,
4027
3528
  anon_sym_fn,
4028
- [2577] = 3,
3529
+ [2011] = 1,
4029
- ACTIONS(258), 1,
3530
+ ACTIONS(259), 6,
3531
+ anon_sym_LBRACE,
3532
+ anon_sym_COMMA,
4030
- anon_sym_PIPE,
3533
+ anon_sym_RPAREN,
3534
+ anon_sym_EQ,
3535
+ anon_sym_DASH_GT,
3536
+ sym_identifier,
3537
+ [2020] = 1,
3538
+ ACTIONS(261), 6,
3539
+ anon_sym_LBRACE,
3540
+ anon_sym_COMMA,
3541
+ anon_sym_RPAREN,
3542
+ anon_sym_EQ,
3543
+ anon_sym_DASH_GT,
3544
+ sym_identifier,
3545
+ [2029] = 3,
3546
+ ACTIONS(212), 1,
3547
+ anon_sym_DASH_GT,
4031
- STATE(79), 1,
3548
+ STATE(89), 1,
3549
+ sym_return_type,
3550
+ ACTIONS(263), 4,
3551
+ anon_sym_LBRACE,
3552
+ anon_sym_COMMA,
3553
+ anon_sym_RPAREN,
3554
+ anon_sym_EQ,
3555
+ [2042] = 1,
3556
+ ACTIONS(265), 6,
3557
+ anon_sym_LBRACE,
3558
+ anon_sym_COMMA,
3559
+ anon_sym_RPAREN,
3560
+ anon_sym_EQ,
3561
+ anon_sym_DASH_GT,
3562
+ sym_identifier,
3563
+ [2051] = 3,
3564
+ ACTIONS(269), 1,
3565
+ anon_sym_import,
3566
+ STATE(72), 2,
3567
+ sym_import,
4032
- aux_sym_type_repeat1,
3568
+ aux_sym_source_file_repeat1,
4033
- ACTIONS(260), 3,
3569
+ ACTIONS(267), 3,
4034
3570
  ts_builtin_sym_end,
4035
3571
  anon_sym_type,
4036
3572
  anon_sym_fn,
4037
- [2589] = 1,
3573
+ [2064] = 1,
4038
- ACTIONS(262), 5,
3574
+ ACTIONS(272), 6,
3575
+ anon_sym_LBRACE,
3576
+ anon_sym_COMMA,
3577
+ anon_sym_RPAREN,
3578
+ anon_sym_EQ,
3579
+ anon_sym_DASH_GT,
3580
+ sym_identifier,
3581
+ [2073] = 5,
3582
+ ACTIONS(210), 1,
3583
+ anon_sym_LPAREN,
3584
+ ACTIONS(274), 1,
3585
+ anon_sym_DASH_GT,
3586
+ STATE(75), 1,
3587
+ sym_return_type,
3588
+ STATE(109), 1,
3589
+ sym_function_parameter_types,
3590
+ ACTIONS(208), 2,
3591
+ anon_sym_RPAREN,
3592
+ sym_identifier,
3593
+ [2090] = 1,
3594
+ ACTIONS(276), 5,
3595
+ anon_sym_LBRACE,
3596
+ anon_sym_COMMA,
3597
+ anon_sym_RPAREN,
3598
+ anon_sym_EQ,
3599
+ sym_identifier,
3600
+ [2098] = 1,
3601
+ ACTIONS(278), 5,
4039
3602
  ts_builtin_sym_end,
4040
3603
  anon_sym_import,
4041
3604
  anon_sym_as,
4042
3605
  anon_sym_type,
4043
3606
  anon_sym_fn,
4044
- [2597] = 5,
3607
+ [2106] = 1,
3608
+ ACTIONS(280), 5,
3609
+ anon_sym_LBRACE,
3610
+ anon_sym_COMMA,
3611
+ anon_sym_RPAREN,
3612
+ anon_sym_EQ,
3613
+ sym_identifier,
3614
+ [2114] = 4,
3615
+ ACTIONS(282), 1,
3616
+ anon_sym_RPAREN,
4045
- ACTIONS(264), 1,
3617
+ ACTIONS(284), 1,
3618
+ sym_generic,
3619
+ ACTIONS(286), 1,
3620
+ sym_identifier,
3621
+ STATE(98), 2,
3622
+ sym_field,
3623
+ aux_sym_struct_repeat1,
3624
+ [2128] = 1,
3625
+ ACTIONS(288), 5,
3626
+ anon_sym_LBRACE,
3627
+ anon_sym_COMMA,
3628
+ anon_sym_RPAREN,
3629
+ anon_sym_EQ,
3630
+ sym_identifier,
3631
+ [2136] = 5,
3632
+ ACTIONS(290), 1,
4046
3633
  anon_sym_RBRACE,
4047
- ACTIONS(266), 1,
3634
+ ACTIONS(292), 1,
4048
3635
  sym_identifier,
4049
- ACTIONS(268), 1,
3636
+ ACTIONS(294), 1,
4050
3637
  sym__upname,
4051
- STATE(136), 1,
3638
+ STATE(151), 1,
4052
3639
  sym_type_identifier,
4053
- STATE(158), 1,
3640
+ STATE(152), 1,
4054
3641
  sym_unqualified_import,
4055
- [2613] = 1,
3642
+ [2152] = 2,
4056
- ACTIONS(270), 5,
3643
+ ACTIONS(298), 1,
4057
- ts_builtin_sym_end,
4058
- anon_sym_import,
4059
3644
  anon_sym_as,
4060
- anon_sym_type,
4061
- anon_sym_fn,
4062
- [2621] = 5,
4063
- ACTIONS(266), 1,
3645
+ ACTIONS(296), 4,
4064
- sym_identifier,
4065
- ACTIONS(268), 1,
4066
- sym__upname,
4067
- ACTIONS(272), 1,
4068
- anon_sym_RBRACE,
4069
- STATE(135), 1,
4070
- sym_unqualified_import,
4071
- STATE(136), 1,
4072
- sym_type_identifier,
4073
- [2637] = 2,
4074
- ACTIONS(276), 1,
4075
- anon_sym_as,
4076
- ACTIONS(274), 4,
4077
3646
  ts_builtin_sym_end,
4078
3647
  anon_sym_import,
4079
3648
  anon_sym_type,
4080
3649
  anon_sym_fn,
4081
- [2647] = 1,
3650
+ [2162] = 1,
4082
- ACTIONS(278), 5,
3651
+ ACTIONS(300), 5,
3652
+ anon_sym_LBRACE,
3653
+ anon_sym_COMMA,
3654
+ anon_sym_RPAREN,
3655
+ anon_sym_EQ,
3656
+ sym_identifier,
3657
+ [2170] = 1,
3658
+ ACTIONS(302), 5,
4083
3659
  ts_builtin_sym_end,
4084
3660
  anon_sym_import,
4085
3661
  anon_sym_as,
4086
3662
  anon_sym_type,
4087
3663
  anon_sym_fn,
4088
- [2655] = 3,
3664
+ [2178] = 1,
4089
- ACTIONS(258), 1,
3665
+ ACTIONS(304), 5,
3666
+ anon_sym_LBRACE,
3667
+ anon_sym_COMMA,
4090
- anon_sym_PIPE,
3668
+ anon_sym_RPAREN,
4091
- STATE(77), 1,
4092
- aux_sym_type_repeat1,
4093
- ACTIONS(280), 3,
4094
- ts_builtin_sym_end,
4095
- anon_sym_type,
4096
- anon_sym_fn,
3669
+ anon_sym_EQ,
4097
- [2667] = 3,
4098
- ACTIONS(258), 1,
4099
- anon_sym_PIPE,
4100
- STATE(77), 1,
4101
- aux_sym_type_repeat1,
4102
- ACTIONS(282), 3,
4103
- ts_builtin_sym_end,
4104
- anon_sym_type,
4105
- anon_sym_fn,
4106
- [2679] = 3,
4107
- ACTIONS(286), 1,
4108
- anon_sym_PIPE,
4109
- STATE(77), 1,
4110
- aux_sym_type_repeat1,
4111
- ACTIONS(284), 3,
4112
- ts_builtin_sym_end,
4113
- anon_sym_type,
4114
- anon_sym_fn,
4115
- [2691] = 3,
4116
- ACTIONS(258), 1,
4117
- anon_sym_PIPE,
4118
- STATE(76), 1,
4119
- aux_sym_type_repeat1,
4120
- ACTIONS(289), 3,
4121
- ts_builtin_sym_end,
4122
- anon_sym_type,
4123
- anon_sym_fn,
4124
- [2703] = 3,
4125
- ACTIONS(258), 1,
4126
- anon_sym_PIPE,
4127
- STATE(77), 1,
4128
- aux_sym_type_repeat1,
4129
- ACTIONS(289), 3,
4130
- ts_builtin_sym_end,
4131
- anon_sym_type,
4132
- anon_sym_fn,
4133
- [2715] = 5,
4134
- ACTIONS(266), 1,
4135
3670
  sym_identifier,
3671
+ [2186] = 1,
3672
+ ACTIONS(306), 5,
3673
+ anon_sym_LBRACE,
3674
+ anon_sym_COMMA,
3675
+ anon_sym_RPAREN,
3676
+ anon_sym_EQ,
3677
+ sym_identifier,
3678
+ [2194] = 5,
4136
- ACTIONS(268), 1,
3679
+ ACTIONS(292), 1,
3680
+ sym_identifier,
3681
+ ACTIONS(294), 1,
4137
3682
  sym__upname,
4138
- ACTIONS(291), 1,
3683
+ ACTIONS(308), 1,
4139
3684
  anon_sym_RBRACE,
4140
- STATE(136), 1,
3685
+ STATE(151), 1,
4141
3686
  sym_type_identifier,
4142
- STATE(158), 1,
3687
+ STATE(166), 1,
4143
3688
  sym_unqualified_import,
4144
- [2731] = 3,
3689
+ [2210] = 5,
4145
- ACTIONS(258), 1,
4146
- anon_sym_PIPE,
4147
- STATE(77), 1,
4148
- aux_sym_type_repeat1,
4149
- ACTIONS(256), 3,
4150
- ts_builtin_sym_end,
4151
- anon_sym_type,
4152
- anon_sym_fn,
4153
- [2743] = 2,
4154
- ACTIONS(295), 1,
3690
+ ACTIONS(292), 1,
4155
- anon_sym_LPAREN,
3691
+ sym_identifier,
4156
- ACTIONS(293), 4,
3692
+ ACTIONS(294), 1,
4157
- ts_builtin_sym_end,
4158
- anon_sym_type,
3693
+ sym__upname,
4159
- anon_sym_PIPE,
4160
- anon_sym_fn,
4161
- [2753] = 3,
4162
- ACTIONS(258), 1,
3694
+ ACTIONS(310), 1,
4163
- anon_sym_PIPE,
3695
+ anon_sym_RBRACE,
4164
- STATE(81), 1,
3696
+ STATE(151), 1,
4165
- aux_sym_type_repeat1,
3697
+ sym_type_identifier,
3698
+ STATE(166), 1,
3699
+ sym_unqualified_import,
3700
+ [2226] = 1,
4166
- ACTIONS(297), 3,
3701
+ ACTIONS(312), 5,
4167
3702
  ts_builtin_sym_end,
3703
+ anon_sym_import,
3704
+ anon_sym_as,
4168
3705
  anon_sym_type,
4169
3706
  anon_sym_fn,
4170
- [2765] = 1,
3707
+ [2234] = 1,
4171
- ACTIONS(299), 5,
3708
+ ACTIONS(314), 5,
3709
+ anon_sym_LBRACE,
3710
+ anon_sym_COMMA,
3711
+ anon_sym_RPAREN,
3712
+ anon_sym_EQ,
3713
+ sym_identifier,
3714
+ [2242] = 1,
3715
+ ACTIONS(316), 5,
4172
3716
  ts_builtin_sym_end,
4173
3717
  anon_sym_import,
4174
3718
  anon_sym_as,
4175
3719
  anon_sym_type,
4176
3720
  anon_sym_fn,
4177
- [2773] = 1,
3721
+ [2250] = 1,
4178
- ACTIONS(301), 4,
3722
+ ACTIONS(318), 5,
3723
+ anon_sym_LBRACE,
4179
- anon_sym_as,
3724
+ anon_sym_COMMA,
3725
+ anon_sym_RPAREN,
4180
3726
  anon_sym_EQ,
4181
- anon_sym_LT_GT,
3727
+ sym_identifier,
4182
- anon_sym_COLON,
4183
- [2780] = 1,
3728
+ [2258] = 1,
4184
- ACTIONS(303), 4,
3729
+ ACTIONS(320), 4,
4185
3730
  ts_builtin_sym_end,
3731
+ anon_sym_import,
4186
3732
  anon_sym_type,
4187
- anon_sym_PIPE,
4188
3733
  anon_sym_fn,
4189
- [2787] = 2,
3734
+ [2265] = 3,
4190
- ACTIONS(307), 1,
3735
+ ACTIONS(322), 1,
3736
+ anon_sym_RPAREN,
3737
+ ACTIONS(324), 1,
3738
+ sym_identifier,
3739
+ STATE(93), 2,
3740
+ sym_field,
3741
+ aux_sym_struct_repeat1,
3742
+ [2276] = 2,
3743
+ ACTIONS(329), 1,
4191
3744
  sym__decimal,
4192
- ACTIONS(305), 3,
3745
+ ACTIONS(327), 3,
4193
3746
  sym__hex,
4194
3747
  sym__octal,
4195
3748
  sym__binary,
4196
- [2796] = 1,
3749
+ [2285] = 1,
4197
- ACTIONS(69), 4,
3750
+ ACTIONS(47), 4,
4198
3751
  anon_sym_as,
4199
- anon_sym_EQ,
4200
3752
  anon_sym_LT_GT,
3753
+ anon_sym_EQ,
4201
3754
  anon_sym_COLON,
4202
- [2803] = 1,
3755
+ [2292] = 1,
4203
- ACTIONS(61), 4,
3756
+ ACTIONS(35), 4,
4204
3757
  anon_sym_as,
4205
- anon_sym_EQ,
4206
3758
  anon_sym_LT_GT,
3759
+ anon_sym_EQ,
4207
3760
  anon_sym_COLON,
3761
+ [2299] = 3,
3762
+ ACTIONS(331), 1,
3763
+ anon_sym_RPAREN,
3764
+ ACTIONS(333), 1,
3765
+ sym_identifier,
3766
+ STATE(107), 2,
3767
+ sym_field,
3768
+ aux_sym_struct_repeat1,
4208
- [2810] = 1,
3769
+ [2310] = 3,
3770
+ ACTIONS(333), 1,
3771
+ sym_identifier,
3772
+ ACTIONS(335), 1,
3773
+ anon_sym_RPAREN,
3774
+ STATE(93), 2,
3775
+ sym_field,
3776
+ aux_sym_struct_repeat1,
3777
+ [2321] = 1,
4209
- ACTIONS(309), 4,
3778
+ ACTIONS(337), 4,
4210
3779
  ts_builtin_sym_end,
4211
3780
  anon_sym_import,
4212
3781
  anon_sym_type,
4213
3782
  anon_sym_fn,
4214
- [2817] = 1,
4215
- ACTIONS(311), 4,
4216
- anon_sym_as,
4217
- anon_sym_EQ,
4218
- anon_sym_LT_GT,
4219
- anon_sym_COLON,
4220
- [2824] = 4,
3783
+ [2328] = 3,
4221
- ACTIONS(313), 1,
3784
+ ACTIONS(339), 1,
4222
- anon_sym_EQ,
4223
- ACTIONS(315), 1,
4224
- anon_sym_LPAREN,
4225
- STATE(132), 1,
4226
- sym_generic_list,
4227
- STATE(134), 1,
4228
- sym_record,
4229
- [2837] = 3,
4230
- ACTIONS(317), 1,
4231
3785
  anon_sym_DQUOTE2,
4232
- STATE(93), 1,
3786
+ STATE(100), 1,
4233
3787
  aux_sym_string_repeat1,
4234
- ACTIONS(319), 2,
3788
+ ACTIONS(341), 2,
4235
3789
  sym_quoted_content,
4236
3790
  sym_escape_sequence,
4237
- [2848] = 1,
3791
+ [2339] = 4,
4238
- ACTIONS(322), 4,
3792
+ ACTIONS(344), 1,
4239
- ts_builtin_sym_end,
4240
- anon_sym_type,
4241
- anon_sym_PIPE,
3793
+ anon_sym_RBRACE,
4242
- anon_sym_fn,
4243
- [2855] = 4,
4244
- ACTIONS(266), 1,
3794
+ ACTIONS(346), 1,
4245
- sym_identifier,
4246
- ACTIONS(268), 1,
4247
3795
  sym__upname,
3796
+ STATE(101), 1,
3797
+ aux_sym_enum_repeat3,
4248
- STATE(136), 1,
3798
+ STATE(131), 1,
4249
3799
  sym_type_identifier,
4250
- STATE(158), 1,
4251
- sym_unqualified_import,
4252
- [2868] = 2,
3800
+ [2352] = 4,
3801
+ ACTIONS(194), 1,
3802
+ sym__upname,
4253
- ACTIONS(326), 1,
3803
+ ACTIONS(349), 1,
3804
+ anon_sym_RBRACE,
3805
+ STATE(106), 1,
3806
+ aux_sym_enum_repeat3,
3807
+ STATE(131), 1,
4254
- sym__decimal,
3808
+ sym_type_identifier,
4255
- ACTIONS(324), 3,
4256
- sym__hex,
4257
- sym__octal,
4258
- sym__binary,
4259
- [2877] = 3,
3809
+ [2365] = 3,
4260
- ACTIONS(328), 1,
3810
+ ACTIONS(351), 1,
4261
3811
  anon_sym_DQUOTE2,
4262
- STATE(103), 1,
3812
+ STATE(100), 1,
4263
3813
  aux_sym_string_repeat1,
4264
- ACTIONS(330), 2,
3814
+ ACTIONS(353), 2,
4265
3815
  sym_quoted_content,
4266
3816
  sym_escape_sequence,
4267
- [2888] = 1,
3817
+ [2376] = 1,
4268
- ACTIONS(284), 4,
3818
+ ACTIONS(355), 4,
4269
- ts_builtin_sym_end,
4270
- anon_sym_type,
4271
- anon_sym_PIPE,
4272
- anon_sym_fn,
3819
+ anon_sym_as,
3820
+ anon_sym_LT_GT,
3821
+ anon_sym_EQ,
3822
+ anon_sym_COLON,
4273
- [2895] = 4,
3823
+ [2383] = 3,
4274
- ACTIONS(332), 1,
3824
+ ACTIONS(357), 1,
4275
- anon_sym_PIPE,
3825
+ anon_sym_as,
4276
- ACTIONS(334), 1,
3826
+ ACTIONS(359), 1,
3827
+ anon_sym_LT_GT,
3828
+ ACTIONS(361), 2,
3829
+ anon_sym_EQ,
3830
+ anon_sym_COLON,
3831
+ [2394] = 4,
3832
+ ACTIONS(194), 1,
4277
3833
  sym__upname,
3834
+ ACTIONS(363), 1,
3835
+ anon_sym_RBRACE,
4278
- STATE(68), 1,
3836
+ STATE(101), 1,
4279
- sym_union,
3837
+ aux_sym_enum_repeat3,
4280
- STATE(82), 1,
3838
+ STATE(131), 1,
4281
3839
  sym_type_identifier,
4282
- [2908] = 1,
3840
+ [2407] = 3,
4283
- ACTIONS(336), 4,
3841
+ ACTIONS(333), 1,
3842
+ sym_identifier,
3843
+ ACTIONS(365), 1,
3844
+ anon_sym_RPAREN,
3845
+ STATE(93), 2,
3846
+ sym_field,
3847
+ aux_sym_struct_repeat1,
3848
+ [2418] = 1,
3849
+ ACTIONS(367), 4,
3850
+ anon_sym_as,
3851
+ anon_sym_LT_GT,
3852
+ anon_sym_EQ,
3853
+ anon_sym_COLON,
3854
+ [2425] = 3,
3855
+ ACTIONS(274), 1,
3856
+ anon_sym_DASH_GT,
3857
+ STATE(89), 1,
3858
+ sym_return_type,
3859
+ ACTIONS(263), 2,
3860
+ anon_sym_RPAREN,
3861
+ sym_identifier,
3862
+ [2436] = 4,
3863
+ ACTIONS(194), 1,
3864
+ sym__upname,
3865
+ ACTIONS(369), 1,
3866
+ anon_sym_RBRACE,
3867
+ STATE(112), 1,
3868
+ aux_sym_enum_repeat3,
3869
+ STATE(131), 1,
3870
+ sym_type_identifier,
3871
+ [2449] = 1,
3872
+ ACTIONS(371), 4,
4284
3873
  ts_builtin_sym_end,
4285
3874
  anon_sym_import,
4286
3875
  anon_sym_type,
4287
3876
  anon_sym_fn,
4288
- [2915] = 4,
3877
+ [2456] = 4,
3878
+ ACTIONS(194), 1,
3879
+ sym__upname,
4289
- ACTIONS(338), 1,
3880
+ ACTIONS(373), 1,
3881
+ anon_sym_RBRACE,
3882
+ STATE(101), 1,
3883
+ aux_sym_enum_repeat3,
3884
+ STATE(131), 1,
3885
+ sym_type_identifier,
3886
+ [2469] = 2,
3887
+ ACTIONS(377), 1,
3888
+ sym__decimal,
3889
+ ACTIONS(375), 3,
3890
+ sym__hex,
3891
+ sym__octal,
3892
+ sym__binary,
3893
+ [2478] = 4,
3894
+ ACTIONS(379), 1,
4290
3895
  anon_sym_COMMA,
4291
- ACTIONS(340), 1,
3896
+ ACTIONS(381), 1,
4292
3897
  anon_sym_RPAREN,
4293
- ACTIONS(342), 1,
3898
+ ACTIONS(383), 1,
4294
3899
  anon_sym_COLON,
4295
- STATE(143), 1,
3900
+ STATE(138), 1,
4296
- aux_sym_return_type_repeat1,
3901
+ aux_sym_enum_repeat1,
4297
- [2928] = 1,
4298
- ACTIONS(344), 4,
4299
- ts_builtin_sym_end,
4300
- anon_sym_import,
4301
- anon_sym_type,
4302
- anon_sym_fn,
4303
- [2935] = 3,
3902
+ [2491] = 3,
4304
- ACTIONS(346), 1,
3903
+ ACTIONS(385), 1,
4305
3904
  anon_sym_DQUOTE2,
4306
- STATE(93), 1,
3905
+ STATE(103), 1,
4307
3906
  aux_sym_string_repeat1,
4308
- ACTIONS(348), 2,
3907
+ ACTIONS(387), 2,
4309
3908
  sym_quoted_content,
4310
3909
  sym_escape_sequence,
4311
- [2946] = 4,
3910
+ [2502] = 4,
3911
+ ACTIONS(292), 1,
3912
+ sym_identifier,
4312
- ACTIONS(334), 1,
3913
+ ACTIONS(294), 1,
4313
- sym__upname,
4314
- ACTIONS(350), 1,
4315
- anon_sym_LBRACE,
4316
- STATE(149), 1,
4317
- sym_type_identifier,
4318
- STATE(176), 1,
4319
- sym_return_type,
4320
- [2959] = 4,
4321
- ACTIONS(334), 1,
4322
- sym__upname,
4323
- ACTIONS(352), 1,
4324
- anon_sym_LBRACE,
4325
- STATE(149), 1,
4326
- sym_type_identifier,
4327
- STATE(187), 1,
4328
- sym_return_type,
4329
- [2972] = 3,
4330
- ACTIONS(354), 1,
4331
- anon_sym_as,
4332
- ACTIONS(358), 1,
4333
- anon_sym_LT_GT,
4334
- ACTIONS(356), 2,
4335
- anon_sym_EQ,
4336
- anon_sym_COLON,
4337
- [2983] = 4,
4338
- ACTIONS(334), 1,
4339
3914
  sym__upname,
4340
- ACTIONS(360), 1,
4341
- anon_sym_PIPE,
4342
- STATE(82), 1,
3915
+ STATE(151), 1,
4343
3916
  sym_type_identifier,
4344
- STATE(83), 1,
3917
+ STATE(166), 1,
4345
- sym_union,
3918
+ sym_unqualified_import,
4346
- [2996] = 4,
3919
+ [2515] = 3,
4347
- ACTIONS(334), 1,
3920
+ ACTIONS(389), 1,
4348
- sym__upname,
4349
- ACTIONS(362), 1,
4350
- anon_sym_LBRACE,
4351
- STATE(149), 1,
4352
- sym_type_identifier,
4353
- STATE(173), 1,
4354
- sym_return_type,
4355
- [3009] = 3,
4356
- ACTIONS(364), 1,
4357
- anon_sym_COMMA,
4358
- ACTIONS(366), 1,
4359
3921
  anon_sym_RPAREN,
3922
+ ACTIONS(391), 1,
3923
+ sym_identifier,
4360
- STATE(139), 1,
3924
+ STATE(164), 1,
4361
- aux_sym_function_repeat1,
3925
+ sym_field,
4362
- [3019] = 1,
3926
+ [2525] = 1,
4363
- ACTIONS(368), 3,
3927
+ ACTIONS(393), 3,
4364
3928
  ts_builtin_sym_end,
4365
3929
  anon_sym_type,
4366
3930
  anon_sym_fn,
4367
- [3025] = 3,
3931
+ [2531] = 3,
4368
- ACTIONS(364), 1,
3932
+ ACTIONS(391), 1,
4369
- anon_sym_COMMA,
3933
+ sym_identifier,
4370
- ACTIONS(370), 1,
3934
+ ACTIONS(395), 1,
4371
3935
  anon_sym_RPAREN,
4372
- STATE(130), 1,
3936
+ STATE(158), 1,
4373
- aux_sym_function_repeat1,
3937
+ sym_field,
4374
- [3035] = 3,
3938
+ [2541] = 3,
4375
- ACTIONS(364), 1,
3939
+ ACTIONS(397), 1,
4376
3940
  anon_sym_COMMA,
4377
- ACTIONS(372), 1,
3941
+ ACTIONS(399), 1,
4378
3942
  anon_sym_RPAREN,
4379
- STATE(109), 1,
3943
+ STATE(150), 1,
4380
- aux_sym_function_repeat1,
3944
+ aux_sym_enum_repeat2,
4381
- [3045] = 1,
3945
+ [2551] = 1,
4382
- ACTIONS(374), 3,
3946
+ ACTIONS(401), 3,
4383
3947
  ts_builtin_sym_end,
4384
3948
  anon_sym_type,
4385
3949
  anon_sym_fn,
4386
- [3051] = 1,
3950
+ [2557] = 3,
3951
+ ACTIONS(403), 1,
3952
+ anon_sym_COMMA,
4387
- ACTIONS(376), 3,
3953
+ ACTIONS(406), 1,
3954
+ anon_sym_RPAREN,
3955
+ STATE(122), 1,
3956
+ aux_sym_function_parameter_types_repeat1,
3957
+ [2567] = 1,
3958
+ ACTIONS(408), 3,
3959
+ anon_sym_COMMA,
3960
+ anon_sym_RPAREN,
3961
+ sym_identifier,
3962
+ [2573] = 3,
3963
+ ACTIONS(310), 1,
3964
+ anon_sym_RBRACE,
3965
+ ACTIONS(410), 1,
3966
+ anon_sym_COMMA,
3967
+ STATE(147), 1,
3968
+ aux_sym_unqualified_imports_repeat1,
3969
+ [2583] = 1,
3970
+ ACTIONS(412), 3,
4388
3971
  ts_builtin_sym_end,
4389
3972
  anon_sym_type,
4390
3973
  anon_sym_fn,
4391
- [3057] = 1,
3974
+ [2589] = 3,
3975
+ ACTIONS(414), 1,
3976
+ anon_sym_COMMA,
3977
+ ACTIONS(417), 1,
3978
+ anon_sym_RPAREN,
3979
+ STATE(126), 1,
3980
+ aux_sym_enum_repeat1,
3981
+ [2599] = 3,
4392
- ACTIONS(378), 3,
3982
+ ACTIONS(391), 1,
3983
+ sym_identifier,
3984
+ ACTIONS(419), 1,
3985
+ anon_sym_RPAREN,
3986
+ STATE(164), 1,
3987
+ sym_field,
3988
+ [2609] = 3,
3989
+ ACTIONS(391), 1,
3990
+ sym_identifier,
3991
+ ACTIONS(399), 1,
3992
+ anon_sym_RPAREN,
3993
+ STATE(164), 1,
3994
+ sym_field,
3995
+ [2619] = 3,
3996
+ ACTIONS(421), 1,
3997
+ anon_sym_COMMA,
3998
+ ACTIONS(423), 1,
3999
+ anon_sym_RPAREN,
4000
+ STATE(154), 1,
4001
+ aux_sym_function_parameter_types_repeat1,
4002
+ [2629] = 1,
4003
+ ACTIONS(425), 3,
4393
4004
  ts_builtin_sym_end,
4394
4005
  anon_sym_type,
4395
4006
  anon_sym_fn,
4007
+ [2635] = 2,
4008
+ ACTIONS(429), 1,
4009
+ anon_sym_LPAREN,
4010
+ ACTIONS(427), 2,
4011
+ anon_sym_RBRACE,
4012
+ sym__upname,
4013
+ [2643] = 3,
4014
+ ACTIONS(431), 1,
4015
+ anon_sym_COMMA,
4016
+ ACTIONS(434), 1,
4017
+ anon_sym_RPAREN,
4018
+ STATE(132), 1,
4019
+ aux_sym_type_arguments_repeat1,
4396
- [3063] = 1,
4020
+ [2653] = 1,
4397
- ACTIONS(380), 3,
4021
+ ACTIONS(436), 3,
4398
4022
  ts_builtin_sym_end,
4399
4023
  anon_sym_type,
4400
4024
  anon_sym_fn,
4401
- [3069] = 3,
4402
- ACTIONS(382), 1,
4403
- anon_sym_COMMA,
4404
- ACTIONS(385), 1,
4405
- anon_sym_RBRACE,
4406
- STATE(117), 1,
4407
- aux_sym_unqualified_imports_repeat1,
4408
- [3079] = 3,
4409
- ACTIONS(334), 1,
4410
- sym__upname,
4411
- STATE(67), 1,
4412
- sym_union,
4413
- STATE(82), 1,
4414
- sym_type_identifier,
4415
- [3089] = 1,
4025
+ [2659] = 1,
4416
- ACTIONS(387), 3,
4026
+ ACTIONS(438), 3,
4417
4027
  ts_builtin_sym_end,
4418
4028
  anon_sym_type,
4419
4029
  anon_sym_fn,
4420
- [3095] = 3,
4030
+ [2665] = 3,
4421
4031
  ACTIONS(389), 1,
4032
+ anon_sym_RPAREN,
4033
+ ACTIONS(440), 1,
4034
+ anon_sym_COMMA,
4035
+ STATE(150), 1,
4036
+ aux_sym_enum_repeat2,
4037
+ [2675] = 3,
4038
+ ACTIONS(442), 1,
4422
4039
  anon_sym_EQ,
4423
- ACTIONS(391), 1,
4040
+ ACTIONS(444), 1,
4424
4041
  anon_sym_COLON,
4425
- STATE(186), 1,
4042
+ STATE(199), 1,
4426
4043
  sym__type_annotation,
4427
- [3105] = 1,
4044
+ [2685] = 3,
4428
- ACTIONS(393), 3,
4429
- ts_builtin_sym_end,
4430
- anon_sym_type,
4431
- anon_sym_fn,
4432
- [3111] = 3,
4433
- ACTIONS(338), 1,
4045
+ ACTIONS(446), 1,
4434
4046
  anon_sym_COMMA,
4047
+ ACTIONS(449), 1,
4048
+ anon_sym_RPAREN,
4049
+ STATE(137), 1,
4050
+ aux_sym_generics_repeat1,
4051
+ [2695] = 3,
4435
- ACTIONS(395), 1,
4052
+ ACTIONS(389), 1,
4436
4053
  anon_sym_RPAREN,
4054
+ ACTIONS(451), 1,
4055
+ anon_sym_COMMA,
4437
4056
  STATE(126), 1,
4438
- aux_sym_return_type_repeat1,
4057
+ aux_sym_enum_repeat1,
4439
- [3121] = 1,
4058
+ [2705] = 3,
4059
+ ACTIONS(453), 1,
4060
+ anon_sym_COMMA,
4061
+ ACTIONS(455), 1,
4062
+ anon_sym_RPAREN,
4063
+ STATE(157), 1,
4064
+ aux_sym_type_arguments_repeat1,
4065
+ [2715] = 3,
4440
- ACTIONS(397), 3,
4066
+ ACTIONS(457), 1,
4067
+ anon_sym_LBRACE,
4068
+ ACTIONS(459), 1,
4069
+ anon_sym_LPAREN,
4070
+ STATE(181), 1,
4071
+ sym_generics,
4072
+ [2725] = 1,
4073
+ ACTIONS(461), 3,
4441
4074
  ts_builtin_sym_end,
4442
4075
  anon_sym_type,
4443
4076
  anon_sym_fn,
4444
- [3127] = 1,
4077
+ [2731] = 1,
4445
- ACTIONS(399), 3,
4078
+ ACTIONS(463), 3,
4446
4079
  ts_builtin_sym_end,
4447
4080
  anon_sym_type,
4448
4081
  anon_sym_fn,
4082
+ [2737] = 1,
4083
+ ACTIONS(465), 3,
4084
+ ts_builtin_sym_end,
4085
+ anon_sym_type,
4086
+ anon_sym_fn,
4449
- [3133] = 3,
4087
+ [2743] = 3,
4450
- ACTIONS(264), 1,
4088
+ ACTIONS(467), 1,
4451
- anon_sym_RBRACE,
4452
- ACTIONS(401), 1,
4453
- anon_sym_COMMA,
4454
- STATE(117), 1,
4455
- aux_sym_unqualified_imports_repeat1,
4456
- [3143] = 3,
4457
- ACTIONS(403), 1,
4458
4089
  anon_sym_COMMA,
4459
- ACTIONS(406), 1,
4090
+ ACTIONS(469), 1,
4460
4091
  anon_sym_RPAREN,
4461
- STATE(126), 1,
4092
+ STATE(137), 1,
4462
- aux_sym_return_type_repeat1,
4093
+ aux_sym_generics_repeat1,
4463
- [3153] = 3,
4094
+ [2753] = 1,
4095
+ ACTIONS(471), 3,
4096
+ ts_builtin_sym_end,
4097
+ anon_sym_type,
4098
+ anon_sym_fn,
4099
+ [2759] = 3,
4464
- ACTIONS(364), 1,
4100
+ ACTIONS(473), 1,
4465
4101
  anon_sym_COMMA,
4466
- ACTIONS(408), 1,
4102
+ ACTIONS(475), 1,
4467
4103
  anon_sym_RPAREN,
4468
- STATE(139), 1,
4104
+ STATE(144), 1,
4469
- aux_sym_function_repeat1,
4105
+ aux_sym_generics_repeat1,
4470
- [3163] = 3,
4106
+ [2769] = 3,
4471
- ACTIONS(364), 1,
4107
+ ACTIONS(477), 1,
4472
4108
  anon_sym_COMMA,
4473
- ACTIONS(410), 1,
4109
+ ACTIONS(480), 1,
4110
+ anon_sym_RBRACE,
4111
+ STATE(147), 1,
4112
+ aux_sym_unqualified_imports_repeat1,
4113
+ [2779] = 1,
4114
+ ACTIONS(482), 3,
4115
+ ts_builtin_sym_end,
4116
+ anon_sym_type,
4117
+ anon_sym_fn,
4118
+ [2785] = 1,
4119
+ ACTIONS(227), 3,
4120
+ anon_sym_LPAREN,
4474
4121
  anon_sym_RPAREN,
4475
- STATE(127), 1,
4476
- aux_sym_function_repeat1,
4122
+ sym_identifier,
4477
- [3173] = 3,
4123
+ [2791] = 3,
4478
- ACTIONS(334), 1,
4124
+ ACTIONS(484), 1,
4479
- sym__upname,
4480
- STATE(78), 1,
4481
- sym_union,
4482
- STATE(82), 1,
4483
- sym_type_identifier,
4484
- [3183] = 3,
4485
- ACTIONS(364), 1,
4486
4125
  anon_sym_COMMA,
4487
- ACTIONS(412), 1,
4126
+ ACTIONS(487), 1,
4488
- anon_sym_RPAREN,
4489
- STATE(139), 1,
4490
- aux_sym_function_repeat1,
4491
- [3193] = 3,
4492
- ACTIONS(414), 1,
4493
4127
  anon_sym_RPAREN,
4128
+ STATE(150), 1,
4129
+ aux_sym_enum_repeat2,
4130
+ [2801] = 2,
4494
- ACTIONS(416), 1,
4131
+ ACTIONS(489), 1,
4495
- sym_identifier,
4496
- STATE(128), 1,
4497
- sym_type_field,
4498
- [3203] = 3,
4499
- ACTIONS(418), 1,
4500
- anon_sym_EQ,
4501
- ACTIONS(420), 1,
4502
- anon_sym_LPAREN,
4503
- STATE(119), 1,
4504
- sym_record,
4505
- [3213] = 2,
4506
- ACTIONS(422), 1,
4507
4132
  anon_sym_as,
4508
- ACTIONS(424), 2,
4133
+ ACTIONS(491), 2,
4509
4134
  anon_sym_COMMA,
4510
4135
  anon_sym_RBRACE,
4511
- [3221] = 1,
4512
- ACTIONS(426), 3,
4513
- ts_builtin_sym_end,
4514
- anon_sym_type,
4515
- anon_sym_fn,
4516
- [3227] = 3,
4136
+ [2809] = 3,
4517
- ACTIONS(428), 1,
4137
+ ACTIONS(493), 1,
4518
4138
  anon_sym_COMMA,
4519
- ACTIONS(430), 1,
4139
+ ACTIONS(495), 1,
4520
4140
  anon_sym_RBRACE,
4521
- STATE(125), 1,
4141
+ STATE(124), 1,
4522
4142
  aux_sym_unqualified_imports_repeat1,
4523
- [3237] = 2,
4143
+ [2819] = 2,
4524
- ACTIONS(432), 1,
4144
+ ACTIONS(497), 1,
4525
4145
  anon_sym_as,
4526
- ACTIONS(424), 2,
4146
+ ACTIONS(491), 2,
4527
4147
  anon_sym_COMMA,
4528
4148
  anon_sym_RBRACE,
4529
- [3245] = 1,
4149
+ [2827] = 3,
4530
- ACTIONS(434), 3,
4150
+ ACTIONS(214), 1,
4531
- ts_builtin_sym_end,
4532
- anon_sym_type,
4533
- anon_sym_fn,
4534
- [3251] = 1,
4535
- ACTIONS(436), 3,
4536
- ts_builtin_sym_end,
4537
- anon_sym_type,
4538
- anon_sym_fn,
4539
- [3257] = 3,
4540
- ACTIONS(438), 1,
4541
- anon_sym_COMMA,
4542
- ACTIONS(441), 1,
4543
4151
  anon_sym_RPAREN,
4544
- STATE(139), 1,
4545
- aux_sym_function_repeat1,
4546
- [3267] = 3,
4547
- ACTIONS(338), 1,
4152
+ ACTIONS(499), 1,
4548
4153
  anon_sym_COMMA,
4549
- ACTIONS(443), 1,
4550
- anon_sym_RPAREN,
4551
4154
  STATE(122), 1,
4155
+ aux_sym_function_parameter_types_repeat1,
4156
+ [2837] = 3,
4157
+ ACTIONS(381), 1,
4158
+ anon_sym_RPAREN,
4159
+ ACTIONS(501), 1,
4160
+ anon_sym_COMMA,
4161
+ STATE(135), 1,
4552
- aux_sym_return_type_repeat1,
4162
+ aux_sym_enum_repeat2,
4553
- [3277] = 1,
4163
+ [2847] = 1,
4554
- ACTIONS(445), 3,
4164
+ ACTIONS(503), 3,
4555
4165
  ts_builtin_sym_end,
4556
4166
  anon_sym_type,
4557
4167
  anon_sym_fn,
4558
- [3283] = 3,
4168
+ [2853] = 3,
4559
- ACTIONS(334), 1,
4560
- sym__upname,
4561
- STATE(82), 1,
4562
- sym_type_identifier,
4563
- STATE(98), 1,
4564
- sym_union,
4565
- [3293] = 3,
4566
- ACTIONS(338), 1,
4169
+ ACTIONS(188), 1,
4567
- anon_sym_COMMA,
4568
- ACTIONS(447), 1,
4569
4170
  anon_sym_RPAREN,
4171
+ ACTIONS(505), 1,
4172
+ anon_sym_COMMA,
4570
- STATE(126), 1,
4173
+ STATE(132), 1,
4571
- aux_sym_return_type_repeat1,
4174
+ aux_sym_type_arguments_repeat1,
4572
- [3303] = 1,
4175
+ [2863] = 3,
4573
- ACTIONS(441), 2,
4176
+ ACTIONS(507), 1,
4574
4177
  anon_sym_COMMA,
4178
+ ACTIONS(509), 1,
4575
4179
  anon_sym_RPAREN,
4180
+ STATE(120), 1,
4181
+ aux_sym_enum_repeat2,
4576
- [3308] = 2,
4182
+ [2873] = 3,
4577
- ACTIONS(416), 1,
4183
+ ACTIONS(391), 1,
4578
4184
  sym_identifier,
4185
+ ACTIONS(511), 1,
4186
+ anon_sym_RPAREN,
4579
- STATE(111), 1,
4187
+ STATE(164), 1,
4580
- sym_type_field,
4188
+ sym_field,
4581
- [3315] = 1,
4189
+ [2883] = 1,
4582
4190
  ACTIONS(406), 2,
4583
4191
  anon_sym_COMMA,
4584
4192
  anon_sym_RPAREN,
4585
- [3320] = 1,
4193
+ [2888] = 2,
4586
- ACTIONS(449), 2,
4194
+ ACTIONS(419), 1,
4195
+ anon_sym_RPAREN,
4196
+ ACTIONS(513), 1,
4197
+ sym_identifier,
4198
+ [2895] = 2,
4199
+ ACTIONS(212), 1,
4200
+ anon_sym_DASH_GT,
4201
+ STATE(191), 1,
4202
+ sym_return_type,
4203
+ [2902] = 1,
4204
+ ACTIONS(515), 2,
4205
+ anon_sym_RBRACE,
4206
+ sym__upname,
4207
+ [2907] = 1,
4208
+ ACTIONS(487), 2,
4587
4209
  anon_sym_COMMA,
4588
4210
  anon_sym_RPAREN,
4211
+ [2912] = 1,
4212
+ ACTIONS(517), 2,
4213
+ anon_sym_COMMA,
4214
+ anon_sym_RBRACE,
4215
+ [2917] = 1,
4216
+ ACTIONS(480), 2,
4217
+ anon_sym_COMMA,
4218
+ anon_sym_RBRACE,
4589
- [3325] = 2,
4219
+ [2922] = 2,
4220
+ ACTIONS(212), 1,
4221
+ anon_sym_DASH_GT,
4222
+ STATE(200), 1,
4223
+ sym_return_type,
4224
+ [2929] = 2,
4590
- ACTIONS(451), 1,
4225
+ ACTIONS(519), 1,
4591
4226
  sym__name,
4592
- STATE(90), 1,
4227
+ STATE(67), 1,
4593
4228
  sym_module_name,
4594
- [3332] = 2,
4229
+ [2936] = 2,
4230
+ ACTIONS(194), 1,
4231
+ sym__upname,
4232
+ STATE(140), 1,
4233
+ sym_type_identifier,
4234
+ [2943] = 2,
4235
+ ACTIONS(521), 1,
4236
+ sym_identifier,
4237
+ STATE(155), 1,
4238
+ sym_field,
4239
+ [2950] = 2,
4595
- ACTIONS(453), 1,
4240
+ ACTIONS(469), 1,
4241
+ anon_sym_RPAREN,
4242
+ ACTIONS(523), 1,
4243
+ sym_generic,
4244
+ [2957] = 1,
4245
+ ACTIONS(525), 2,
4596
4246
  anon_sym_LBRACE,
4597
- ACTIONS(455), 1,
4598
- anon_sym_LPAREN,
4599
- [3339] = 1,
4600
- ACTIONS(457), 2,
4601
- anon_sym_EQ,
4602
4247
  anon_sym_LPAREN,
4603
- [3344] = 2,
4248
+ [2962] = 2,
4604
- ACTIONS(459), 1,
4249
+ ACTIONS(389), 1,
4605
- anon_sym_LBRACE,
4250
+ anon_sym_RPAREN,
4606
- ACTIONS(461), 1,
4607
- anon_sym_DASH_GT,
4608
- [3351] = 2,
4609
- ACTIONS(463), 1,
4251
+ ACTIONS(513), 1,
4610
4252
  sym_identifier,
4611
- STATE(112), 1,
4612
- sym_type_field,
4613
- [3358] = 1,
4253
+ [2969] = 1,
4614
- ACTIONS(465), 2,
4254
+ ACTIONS(527), 2,
4615
4255
  anon_sym_COMMA,
4616
- anon_sym_RBRACE,
4256
+ anon_sym_RPAREN,
4617
- [3363] = 2,
4257
+ [2974] = 1,
4618
- ACTIONS(467), 1,
4619
- anon_sym_LBRACE,
4620
- ACTIONS(469), 1,
4258
+ ACTIONS(529), 2,
4621
- anon_sym_DASH_GT,
4622
- [3370] = 2,
4623
- ACTIONS(471), 1,
4624
4259
  anon_sym_LBRACE,
4625
- STATE(73), 1,
4626
- sym_unqualified_imports,
4627
- [3377] = 2,
4628
- ACTIONS(416), 1,
4629
- sym_identifier,
4630
- STATE(144), 1,
4631
- sym_type_field,
4632
- [3384] = 1,
4633
- ACTIONS(473), 2,
4634
- anon_sym_EQ,
4635
4260
  anon_sym_LPAREN,
4636
- [3389] = 1,
4261
+ [2979] = 1,
4637
- ACTIONS(385), 2,
4262
+ ACTIONS(417), 2,
4638
4263
  anon_sym_COMMA,
4639
- anon_sym_RBRACE,
4640
- [3394] = 2,
4641
- ACTIONS(342), 1,
4642
- anon_sym_COLON,
4643
- ACTIONS(372), 1,
4644
4264
  anon_sym_RPAREN,
4645
- [3401] = 2,
4265
+ [2984] = 1,
4646
- ACTIONS(451), 1,
4266
+ ACTIONS(531), 2,
4647
- sym__name,
4648
- STATE(65), 1,
4649
- sym_module_name,
4650
- [3408] = 2,
4651
- ACTIONS(475), 1,
4652
- anon_sym_LBRACE,
4267
+ anon_sym_RBRACE,
4268
+ sym__upname,
4269
+ [2989] = 2,
4653
- ACTIONS(477), 1,
4270
+ ACTIONS(391), 1,
4654
- anon_sym_DASH_GT,
4655
- [3415] = 2,
4656
- ACTIONS(479), 1,
4657
4271
  sym_identifier,
4658
- STATE(111), 1,
4272
+ STATE(164), 1,
4659
- sym_type_field,
4273
+ sym_field,
4660
- [3422] = 2,
4274
+ [2996] = 2,
4661
- ACTIONS(93), 1,
4275
+ ACTIONS(212), 1,
4662
- anon_sym_DQUOTE,
4276
+ anon_sym_DASH_GT,
4663
- STATE(170), 1,
4277
+ STATE(201), 1,
4664
- sym_string,
4278
+ sym_return_type,
4665
- [3429] = 2,
4279
+ [3003] = 2,
4280
+ ACTIONS(212), 1,
4281
+ anon_sym_DASH_GT,
4282
+ STATE(206), 1,
4283
+ sym_return_type,
4284
+ [3010] = 2,
4666
- ACTIONS(334), 1,
4285
+ ACTIONS(533), 1,
4286
+ anon_sym_LBRACE,
4287
+ ACTIONS(535), 1,
4288
+ anon_sym_LPAREN,
4289
+ [3017] = 1,
4290
+ ACTIONS(537), 2,
4291
+ anon_sym_RBRACE,
4667
4292
  sym__upname,
4668
- STATE(153), 1,
4669
- sym_type_identifier,
4670
- [3436] = 2,
4293
+ [3022] = 2,
4294
+ ACTIONS(523), 1,
4295
+ sym_generic,
4671
- ACTIONS(334), 1,
4296
+ ACTIONS(539), 1,
4297
+ anon_sym_RPAREN,
4298
+ [3029] = 1,
4299
+ ACTIONS(434), 2,
4300
+ anon_sym_COMMA,
4301
+ anon_sym_RPAREN,
4302
+ [3034] = 1,
4303
+ ACTIONS(449), 2,
4304
+ anon_sym_COMMA,
4305
+ anon_sym_RPAREN,
4306
+ [3039] = 2,
4307
+ ACTIONS(194), 1,
4672
4308
  sym__upname,
4673
- STATE(92), 1,
4309
+ STATE(165), 1,
4674
4310
  sym_type_identifier,
4675
- [3443] = 1,
4311
+ [3046] = 1,
4676
- ACTIONS(481), 2,
4312
+ ACTIONS(541), 2,
4677
4313
  anon_sym_EQ,
4678
4314
  anon_sym_COLON,
4315
+ [3051] = 2,
4316
+ ACTIONS(519), 1,
4317
+ sym__name,
4318
+ STATE(99), 1,
4319
+ sym_module_name,
4679
- [3448] = 1,
4320
+ [3058] = 2,
4680
- ACTIONS(483), 1,
4321
+ ACTIONS(543), 1,
4681
- sym_identifier,
4682
- [3452] = 1,
4683
- ACTIONS(485), 1,
4684
- anon_sym_EQ,
4685
- [3456] = 1,
4686
- ACTIONS(487), 1,
4687
- sym_identifier,
4688
- [3460] = 1,
4689
- ACTIONS(489), 1,
4690
- anon_sym_RPAREN,
4691
- [3464] = 1,
4692
- ACTIONS(491), 1,
4693
- sym_identifier,
4694
- [3468] = 1,
4695
- ACTIONS(493), 1,
4696
4322
  anon_sym_LBRACE,
4323
+ STATE(81), 1,
4324
+ sym_unqualified_imports,
4697
- [3472] = 1,
4325
+ [3065] = 1,
4698
- ACTIONS(495), 1,
4326
+ ACTIONS(545), 2,
4699
4327
  anon_sym_LBRACE,
4328
+ anon_sym_LPAREN,
4700
- [3476] = 1,
4329
+ [3070] = 1,
4701
- ACTIONS(497), 1,
4330
+ ACTIONS(547), 1,
4702
- sym_identifier,
4703
- [3480] = 1,
4704
- ACTIONS(499), 1,
4705
- sym__name,
4706
- [3484] = 1,
4707
- ACTIONS(501), 1,
4708
4331
  anon_sym_LBRACE,
4709
- [3488] = 1,
4332
+ [3074] = 1,
4710
- ACTIONS(503), 1,
4333
+ ACTIONS(523), 1,
4334
+ sym_generic,
4335
+ [3078] = 1,
4336
+ ACTIONS(549), 1,
4711
4337
  sym_identifier,
4712
- [3492] = 1,
4338
+ [3082] = 1,
4713
- ACTIONS(342), 1,
4714
- anon_sym_COLON,
4715
- [3496] = 1,
4716
- ACTIONS(505), 1,
4339
+ ACTIONS(551), 1,
4340
+ anon_sym_LPAREN,
4341
+ [3086] = 1,
4342
+ ACTIONS(553), 1,
4717
4343
  sym_identifier,
4718
- [3500] = 1,
4344
+ [3090] = 1,
4345
+ ACTIONS(555), 1,
4346
+ anon_sym_EQ,
4347
+ [3094] = 1,
4719
- ACTIONS(507), 1,
4348
+ ACTIONS(557), 1,
4349
+ sym__name,
4350
+ [3098] = 1,
4351
+ ACTIONS(559), 1,
4352
+ sym_identifier,
4353
+ [3102] = 1,
4354
+ ACTIONS(561), 1,
4355
+ anon_sym_EQ,
4356
+ [3106] = 1,
4357
+ ACTIONS(563), 1,
4720
4358
  anon_sym_LBRACE,
4359
+ [3110] = 1,
4360
+ ACTIONS(565), 1,
4361
+ anon_sym_LBRACE,
4721
- [3504] = 1,
4362
+ [3114] = 1,
4363
+ ACTIONS(567), 1,
4364
+ anon_sym_COLON,
4365
+ [3118] = 1,
4722
- ACTIONS(509), 1,
4366
+ ACTIONS(569), 1,
4723
4367
  sym_identifier,
4724
- [3508] = 1,
4368
+ [3122] = 1,
4725
- ACTIONS(511), 1,
4369
+ ACTIONS(571), 1,
4726
- anon_sym_LPAREN,
4727
- [3512] = 1,
4728
- ACTIONS(513), 1,
4729
4370
  ts_builtin_sym_end,
4730
- [3516] = 1,
4371
+ [3126] = 1,
4731
- ACTIONS(515), 1,
4372
+ ACTIONS(513), 1,
4732
- sym_identifier,
4733
- [3520] = 1,
4734
- ACTIONS(517), 1,
4735
4373
  sym_identifier,
4736
- [3524] = 1,
4374
+ [3130] = 1,
4737
- ACTIONS(519), 1,
4375
+ ACTIONS(573), 1,
4738
- anon_sym_EQ,
4739
- [3528] = 1,
4740
- ACTIONS(521), 1,
4741
4376
  anon_sym_LBRACE,
4377
+ [3134] = 1,
4378
+ ACTIONS(383), 1,
4379
+ anon_sym_COLON,
4380
+ [3138] = 1,
4381
+ ACTIONS(575), 1,
4382
+ sym_identifier,
4742
4383
  };
4743
4384
 
4744
4385
  static const uint32_t ts_small_parse_table_map[] = {
4745
4386
  [SMALL_STATE(2)] = 0,
4746
- [SMALL_STATE(3)] = 34,
4747
- [SMALL_STATE(4)] = 70,
4748
- [SMALL_STATE(5)] = 104,
4749
- [SMALL_STATE(6)] = 137,
4750
- [SMALL_STATE(7)] = 170,
4751
- [SMALL_STATE(8)] = 203,
4752
- [SMALL_STATE(9)] = 254,
4753
- [SMALL_STATE(10)] = 305,
4754
- [SMALL_STATE(11)] = 338,
4755
- [SMALL_STATE(12)] = 371,
4756
- [SMALL_STATE(13)] = 422,
4757
- [SMALL_STATE(14)] = 455,
4758
- [SMALL_STATE(15)] = 490,
4759
- [SMALL_STATE(16)] = 529,
4760
- [SMALL_STATE(17)] = 570,
4761
- [SMALL_STATE(18)] = 615,
4762
- [SMALL_STATE(19)] = 662,
4763
- [SMALL_STATE(20)] = 711,
4764
- [SMALL_STATE(21)] = 744,
4765
- [SMALL_STATE(22)] = 799,
4766
- [SMALL_STATE(23)] = 854,
4767
- [SMALL_STATE(24)] = 909,
4768
- [SMALL_STATE(25)] = 964,
4769
- [SMALL_STATE(26)] = 1019,
4770
- [SMALL_STATE(27)] = 1074,
4771
- [SMALL_STATE(28)] = 1129,
4772
- [SMALL_STATE(29)] = 1184,
4773
- [SMALL_STATE(30)] = 1239,
4774
- [SMALL_STATE(31)] = 1294,
4775
- [SMALL_STATE(32)] = 1349,
4776
- [SMALL_STATE(33)] = 1401,
4777
- [SMALL_STATE(34)] = 1453,
4778
- [SMALL_STATE(35)] = 1505,
4779
- [SMALL_STATE(36)] = 1557,
4780
- [SMALL_STATE(37)] = 1609,
4781
- [SMALL_STATE(38)] = 1661,
4782
- [SMALL_STATE(39)] = 1713,
4783
- [SMALL_STATE(40)] = 1765,
4784
- [SMALL_STATE(41)] = 1817,
4785
- [SMALL_STATE(42)] = 1869,
4786
- [SMALL_STATE(43)] = 1913,
4787
- [SMALL_STATE(44)] = 1957,
4788
- [SMALL_STATE(45)] = 2001,
4789
- [SMALL_STATE(46)] = 2045,
4790
- [SMALL_STATE(47)] = 2089,
4791
- [SMALL_STATE(48)] = 2133,
4792
- [SMALL_STATE(49)] = 2177,
4793
- [SMALL_STATE(50)] = 2221,
4794
- [SMALL_STATE(51)] = 2265,
4795
- [SMALL_STATE(52)] = 2307,
4796
- [SMALL_STATE(53)] = 2326,
4797
- [SMALL_STATE(54)] = 2357,
4798
- [SMALL_STATE(55)] = 2370,
4799
- [SMALL_STATE(56)] = 2395,
4800
- [SMALL_STATE(57)] = 2417,
4801
- [SMALL_STATE(58)] = 2439,
4802
- [SMALL_STATE(59)] = 2454,
4803
- [SMALL_STATE(60)] = 2469,
4804
- [SMALL_STATE(61)] = 2484,
4805
- [SMALL_STATE(62)] = 2494,
4806
- [SMALL_STATE(63)] = 2507,
4807
- [SMALL_STATE(64)] = 2522,
4808
- [SMALL_STATE(65)] = 2537,
4809
- [SMALL_STATE(66)] = 2550,
4810
- [SMALL_STATE(67)] = 2565,
4811
- [SMALL_STATE(68)] = 2577,
4812
- [SMALL_STATE(69)] = 2589,
4813
- [SMALL_STATE(70)] = 2597,
4814
- [SMALL_STATE(71)] = 2613,
4815
- [SMALL_STATE(72)] = 2621,
4816
- [SMALL_STATE(73)] = 2637,
4817
- [SMALL_STATE(74)] = 2647,
4818
- [SMALL_STATE(75)] = 2655,
4819
- [SMALL_STATE(76)] = 2667,
4820
- [SMALL_STATE(77)] = 2679,
4821
- [SMALL_STATE(78)] = 2691,
4822
- [SMALL_STATE(79)] = 2703,
4823
- [SMALL_STATE(80)] = 2715,
4824
- [SMALL_STATE(81)] = 2731,
4825
- [SMALL_STATE(82)] = 2743,
4826
- [SMALL_STATE(83)] = 2753,
4827
- [SMALL_STATE(84)] = 2765,
4828
- [SMALL_STATE(85)] = 2773,
4829
- [SMALL_STATE(86)] = 2780,
4830
- [SMALL_STATE(87)] = 2787,
4831
- [SMALL_STATE(88)] = 2796,
4832
- [SMALL_STATE(89)] = 2803,
4833
- [SMALL_STATE(90)] = 2810,
4834
- [SMALL_STATE(91)] = 2817,
4835
- [SMALL_STATE(92)] = 2824,
4836
- [SMALL_STATE(93)] = 2837,
4837
- [SMALL_STATE(94)] = 2848,
4838
- [SMALL_STATE(95)] = 2855,
4839
- [SMALL_STATE(96)] = 2868,
4840
- [SMALL_STATE(97)] = 2877,
4841
- [SMALL_STATE(98)] = 2888,
4842
- [SMALL_STATE(99)] = 2895,
4843
- [SMALL_STATE(100)] = 2908,
4844
- [SMALL_STATE(101)] = 2915,
4845
- [SMALL_STATE(102)] = 2928,
4846
- [SMALL_STATE(103)] = 2935,
4847
- [SMALL_STATE(104)] = 2946,
4848
- [SMALL_STATE(105)] = 2959,
4849
- [SMALL_STATE(106)] = 2972,
4850
- [SMALL_STATE(107)] = 2983,
4851
- [SMALL_STATE(108)] = 2996,
4852
- [SMALL_STATE(109)] = 3009,
4853
- [SMALL_STATE(110)] = 3019,
4854
- [SMALL_STATE(111)] = 3025,
4855
- [SMALL_STATE(112)] = 3035,
4856
- [SMALL_STATE(113)] = 3045,
4857
- [SMALL_STATE(114)] = 3051,
4858
- [SMALL_STATE(115)] = 3057,
4859
- [SMALL_STATE(116)] = 3063,
4860
- [SMALL_STATE(117)] = 3069,
4861
- [SMALL_STATE(118)] = 3079,
4862
- [SMALL_STATE(119)] = 3089,
4863
- [SMALL_STATE(120)] = 3095,
4864
- [SMALL_STATE(121)] = 3105,
4865
- [SMALL_STATE(122)] = 3111,
4866
- [SMALL_STATE(123)] = 3121,
4867
- [SMALL_STATE(124)] = 3127,
4868
- [SMALL_STATE(125)] = 3133,
4869
- [SMALL_STATE(126)] = 3143,
4870
- [SMALL_STATE(127)] = 3153,
4871
- [SMALL_STATE(128)] = 3163,
4872
- [SMALL_STATE(129)] = 3173,
4873
- [SMALL_STATE(130)] = 3183,
4874
- [SMALL_STATE(131)] = 3193,
4875
- [SMALL_STATE(132)] = 3203,
4876
- [SMALL_STATE(133)] = 3213,
4877
- [SMALL_STATE(134)] = 3221,
4878
- [SMALL_STATE(135)] = 3227,
4879
- [SMALL_STATE(136)] = 3237,
4880
- [SMALL_STATE(137)] = 3245,
4881
- [SMALL_STATE(138)] = 3251,
4882
- [SMALL_STATE(139)] = 3257,
4883
- [SMALL_STATE(140)] = 3267,
4884
- [SMALL_STATE(141)] = 3277,
4885
- [SMALL_STATE(142)] = 3283,
4886
- [SMALL_STATE(143)] = 3293,
4887
- [SMALL_STATE(144)] = 3303,
4888
- [SMALL_STATE(145)] = 3308,
4889
- [SMALL_STATE(146)] = 3315,
4890
- [SMALL_STATE(147)] = 3320,
4891
- [SMALL_STATE(148)] = 3325,
4892
- [SMALL_STATE(149)] = 3332,
4893
- [SMALL_STATE(150)] = 3339,
4894
- [SMALL_STATE(151)] = 3344,
4895
- [SMALL_STATE(152)] = 3351,
4896
- [SMALL_STATE(153)] = 3358,
4897
- [SMALL_STATE(154)] = 3363,
4898
- [SMALL_STATE(155)] = 3370,
4899
- [SMALL_STATE(156)] = 3377,
4900
- [SMALL_STATE(157)] = 3384,
4901
- [SMALL_STATE(158)] = 3389,
4902
- [SMALL_STATE(159)] = 3394,
4903
- [SMALL_STATE(160)] = 3401,
4904
- [SMALL_STATE(161)] = 3408,
4905
- [SMALL_STATE(162)] = 3415,
4906
- [SMALL_STATE(163)] = 3422,
4907
- [SMALL_STATE(164)] = 3429,
4908
- [SMALL_STATE(165)] = 3436,
4909
- [SMALL_STATE(166)] = 3443,
4910
- [SMALL_STATE(167)] = 3448,
4911
- [SMALL_STATE(168)] = 3452,
4912
- [SMALL_STATE(169)] = 3456,
4913
- [SMALL_STATE(170)] = 3460,
4914
- [SMALL_STATE(171)] = 3464,
4915
- [SMALL_STATE(172)] = 3468,
4916
- [SMALL_STATE(173)] = 3472,
4917
- [SMALL_STATE(174)] = 3476,
4918
- [SMALL_STATE(175)] = 3480,
4919
- [SMALL_STATE(176)] = 3484,
4920
- [SMALL_STATE(177)] = 3488,
4921
- [SMALL_STATE(178)] = 3492,
4922
- [SMALL_STATE(179)] = 3496,
4923
- [SMALL_STATE(180)] = 3500,
4924
- [SMALL_STATE(181)] = 3504,
4925
- [SMALL_STATE(182)] = 3508,
4926
- [SMALL_STATE(183)] = 3512,
4927
- [SMALL_STATE(184)] = 3516,
4928
- [SMALL_STATE(185)] = 3520,
4929
- [SMALL_STATE(186)] = 3524,
4930
- [SMALL_STATE(187)] = 3528,
4387
+ [SMALL_STATE(3)] = 37,
4388
+ [SMALL_STATE(4)] = 68,
4389
+ [SMALL_STATE(5)] = 117,
4390
+ [SMALL_STATE(6)] = 148,
4391
+ [SMALL_STATE(7)] = 191,
4392
+ [SMALL_STATE(8)] = 240,
4393
+ [SMALL_STATE(9)] = 289,
4394
+ [SMALL_STATE(10)] = 320,
4395
+ [SMALL_STATE(11)] = 359,
4396
+ [SMALL_STATE(12)] = 390,
4397
+ [SMALL_STATE(13)] = 421,
4398
+ [SMALL_STATE(14)] = 466,
4399
+ [SMALL_STATE(15)] = 499,
4400
+ [SMALL_STATE(16)] = 546,
4401
+ [SMALL_STATE(17)] = 577,
4402
+ [SMALL_STATE(18)] = 608,
4403
+ [SMALL_STATE(19)] = 655,
4404
+ [SMALL_STATE(20)] = 702,
4405
+ [SMALL_STATE(21)] = 749,
4406
+ [SMALL_STATE(22)] = 796,
4407
+ [SMALL_STATE(23)] = 843,
4408
+ [SMALL_STATE(24)] = 890,
4409
+ [SMALL_STATE(25)] = 934,
4410
+ [SMALL_STATE(26)] = 978,
4411
+ [SMALL_STATE(27)] = 1022,
4412
+ [SMALL_STATE(28)] = 1066,
4413
+ [SMALL_STATE(29)] = 1110,
4414
+ [SMALL_STATE(30)] = 1146,
4415
+ [SMALL_STATE(31)] = 1182,
4416
+ [SMALL_STATE(32)] = 1218,
4417
+ [SMALL_STATE(33)] = 1254,
4418
+ [SMALL_STATE(34)] = 1290,
4419
+ [SMALL_STATE(35)] = 1326,
4420
+ [SMALL_STATE(36)] = 1362,
4421
+ [SMALL_STATE(37)] = 1398,
4422
+ [SMALL_STATE(38)] = 1434,
4423
+ [SMALL_STATE(39)] = 1468,
4424
+ [SMALL_STATE(40)] = 1499,
4425
+ [SMALL_STATE(41)] = 1516,
4426
+ [SMALL_STATE(42)] = 1539,
4427
+ [SMALL_STATE(43)] = 1562,
4428
+ [SMALL_STATE(44)] = 1587,
4429
+ [SMALL_STATE(45)] = 1611,
4430
+ [SMALL_STATE(46)] = 1635,
4431
+ [SMALL_STATE(47)] = 1659,
4432
+ [SMALL_STATE(48)] = 1680,
4433
+ [SMALL_STATE(49)] = 1701,
4434
+ [SMALL_STATE(50)] = 1720,
4435
+ [SMALL_STATE(51)] = 1741,
4436
+ [SMALL_STATE(52)] = 1756,
4437
+ [SMALL_STATE(53)] = 1771,
4438
+ [SMALL_STATE(54)] = 1792,
4439
+ [SMALL_STATE(55)] = 1807,
4440
+ [SMALL_STATE(56)] = 1818,
4441
+ [SMALL_STATE(57)] = 1828,
4442
+ [SMALL_STATE(58)] = 1846,
4443
+ [SMALL_STATE(59)] = 1864,
4444
+ [SMALL_STATE(60)] = 1880,
4445
+ [SMALL_STATE(61)] = 1898,
4446
+ [SMALL_STATE(62)] = 1914,
4447
+ [SMALL_STATE(63)] = 1932,
4448
+ [SMALL_STATE(64)] = 1950,
4449
+ [SMALL_STATE(65)] = 1968,
4450
+ [SMALL_STATE(66)] = 1982,
4451
+ [SMALL_STATE(67)] = 1998,
4452
+ [SMALL_STATE(68)] = 2011,
4453
+ [SMALL_STATE(69)] = 2020,
4454
+ [SMALL_STATE(70)] = 2029,
4455
+ [SMALL_STATE(71)] = 2042,
4456
+ [SMALL_STATE(72)] = 2051,
4457
+ [SMALL_STATE(73)] = 2064,
4458
+ [SMALL_STATE(74)] = 2073,
4459
+ [SMALL_STATE(75)] = 2090,
4460
+ [SMALL_STATE(76)] = 2098,
4461
+ [SMALL_STATE(77)] = 2106,
4462
+ [SMALL_STATE(78)] = 2114,
4463
+ [SMALL_STATE(79)] = 2128,
4464
+ [SMALL_STATE(80)] = 2136,
4465
+ [SMALL_STATE(81)] = 2152,
4466
+ [SMALL_STATE(82)] = 2162,
4467
+ [SMALL_STATE(83)] = 2170,
4468
+ [SMALL_STATE(84)] = 2178,
4469
+ [SMALL_STATE(85)] = 2186,
4470
+ [SMALL_STATE(86)] = 2194,
4471
+ [SMALL_STATE(87)] = 2210,
4472
+ [SMALL_STATE(88)] = 2226,
4473
+ [SMALL_STATE(89)] = 2234,
4474
+ [SMALL_STATE(90)] = 2242,
4475
+ [SMALL_STATE(91)] = 2250,
4476
+ [SMALL_STATE(92)] = 2258,
4477
+ [SMALL_STATE(93)] = 2265,
4478
+ [SMALL_STATE(94)] = 2276,
4479
+ [SMALL_STATE(95)] = 2285,
4480
+ [SMALL_STATE(96)] = 2292,
4481
+ [SMALL_STATE(97)] = 2299,
4482
+ [SMALL_STATE(98)] = 2310,
4483
+ [SMALL_STATE(99)] = 2321,
4484
+ [SMALL_STATE(100)] = 2328,
4485
+ [SMALL_STATE(101)] = 2339,
4486
+ [SMALL_STATE(102)] = 2352,
4487
+ [SMALL_STATE(103)] = 2365,
4488
+ [SMALL_STATE(104)] = 2376,
4489
+ [SMALL_STATE(105)] = 2383,
4490
+ [SMALL_STATE(106)] = 2394,
4491
+ [SMALL_STATE(107)] = 2407,
4492
+ [SMALL_STATE(108)] = 2418,
4493
+ [SMALL_STATE(109)] = 2425,
4494
+ [SMALL_STATE(110)] = 2436,
4495
+ [SMALL_STATE(111)] = 2449,
4496
+ [SMALL_STATE(112)] = 2456,
4497
+ [SMALL_STATE(113)] = 2469,
4498
+ [SMALL_STATE(114)] = 2478,
4499
+ [SMALL_STATE(115)] = 2491,
4500
+ [SMALL_STATE(116)] = 2502,
4501
+ [SMALL_STATE(117)] = 2515,
4502
+ [SMALL_STATE(118)] = 2525,
4503
+ [SMALL_STATE(119)] = 2531,
4504
+ [SMALL_STATE(120)] = 2541,
4505
+ [SMALL_STATE(121)] = 2551,
4506
+ [SMALL_STATE(122)] = 2557,
4507
+ [SMALL_STATE(123)] = 2567,
4508
+ [SMALL_STATE(124)] = 2573,
4509
+ [SMALL_STATE(125)] = 2583,
4510
+ [SMALL_STATE(126)] = 2589,
4511
+ [SMALL_STATE(127)] = 2599,
4512
+ [SMALL_STATE(128)] = 2609,
4513
+ [SMALL_STATE(129)] = 2619,
4514
+ [SMALL_STATE(130)] = 2629,
4515
+ [SMALL_STATE(131)] = 2635,
4516
+ [SMALL_STATE(132)] = 2643,
4517
+ [SMALL_STATE(133)] = 2653,
4518
+ [SMALL_STATE(134)] = 2659,
4519
+ [SMALL_STATE(135)] = 2665,
4520
+ [SMALL_STATE(136)] = 2675,
4521
+ [SMALL_STATE(137)] = 2685,
4522
+ [SMALL_STATE(138)] = 2695,
4523
+ [SMALL_STATE(139)] = 2705,
4524
+ [SMALL_STATE(140)] = 2715,
4525
+ [SMALL_STATE(141)] = 2725,
4526
+ [SMALL_STATE(142)] = 2731,
4527
+ [SMALL_STATE(143)] = 2737,
4528
+ [SMALL_STATE(144)] = 2743,
4529
+ [SMALL_STATE(145)] = 2753,
4530
+ [SMALL_STATE(146)] = 2759,
4531
+ [SMALL_STATE(147)] = 2769,
4532
+ [SMALL_STATE(148)] = 2779,
4533
+ [SMALL_STATE(149)] = 2785,
4534
+ [SMALL_STATE(150)] = 2791,
4535
+ [SMALL_STATE(151)] = 2801,
4536
+ [SMALL_STATE(152)] = 2809,
4537
+ [SMALL_STATE(153)] = 2819,
4538
+ [SMALL_STATE(154)] = 2827,
4539
+ [SMALL_STATE(155)] = 2837,
4540
+ [SMALL_STATE(156)] = 2847,
4541
+ [SMALL_STATE(157)] = 2853,
4542
+ [SMALL_STATE(158)] = 2863,
4543
+ [SMALL_STATE(159)] = 2873,
4544
+ [SMALL_STATE(160)] = 2883,
4545
+ [SMALL_STATE(161)] = 2888,
4546
+ [SMALL_STATE(162)] = 2895,
4547
+ [SMALL_STATE(163)] = 2902,
4548
+ [SMALL_STATE(164)] = 2907,
4549
+ [SMALL_STATE(165)] = 2912,
4550
+ [SMALL_STATE(166)] = 2917,
4551
+ [SMALL_STATE(167)] = 2922,
4552
+ [SMALL_STATE(168)] = 2929,
4553
+ [SMALL_STATE(169)] = 2936,
4554
+ [SMALL_STATE(170)] = 2943,
4555
+ [SMALL_STATE(171)] = 2950,
4556
+ [SMALL_STATE(172)] = 2957,
4557
+ [SMALL_STATE(173)] = 2962,
4558
+ [SMALL_STATE(174)] = 2969,
4559
+ [SMALL_STATE(175)] = 2974,
4560
+ [SMALL_STATE(176)] = 2979,
4561
+ [SMALL_STATE(177)] = 2984,
4562
+ [SMALL_STATE(178)] = 2989,
4563
+ [SMALL_STATE(179)] = 2996,
4564
+ [SMALL_STATE(180)] = 3003,
4565
+ [SMALL_STATE(181)] = 3010,
4566
+ [SMALL_STATE(182)] = 3017,
4567
+ [SMALL_STATE(183)] = 3022,
4568
+ [SMALL_STATE(184)] = 3029,
4569
+ [SMALL_STATE(185)] = 3034,
4570
+ [SMALL_STATE(186)] = 3039,
4571
+ [SMALL_STATE(187)] = 3046,
4572
+ [SMALL_STATE(188)] = 3051,
4573
+ [SMALL_STATE(189)] = 3058,
4574
+ [SMALL_STATE(190)] = 3065,
4575
+ [SMALL_STATE(191)] = 3070,
4576
+ [SMALL_STATE(192)] = 3074,
4577
+ [SMALL_STATE(193)] = 3078,
4578
+ [SMALL_STATE(194)] = 3082,
4579
+ [SMALL_STATE(195)] = 3086,
4580
+ [SMALL_STATE(196)] = 3090,
4581
+ [SMALL_STATE(197)] = 3094,
4582
+ [SMALL_STATE(198)] = 3098,
4583
+ [SMALL_STATE(199)] = 3102,
4584
+ [SMALL_STATE(200)] = 3106,
4585
+ [SMALL_STATE(201)] = 3110,
4586
+ [SMALL_STATE(202)] = 3114,
4587
+ [SMALL_STATE(203)] = 3118,
4588
+ [SMALL_STATE(204)] = 3122,
4589
+ [SMALL_STATE(205)] = 3126,
4590
+ [SMALL_STATE(206)] = 3130,
4591
+ [SMALL_STATE(207)] = 3134,
4592
+ [SMALL_STATE(208)] = 3138,
4931
4593
  };
4932
4594
 
4933
4595
  static const TSParseActionEntry ts_parse_actions[] = {
4934
4596
  [0] = {.entry = {.count = 0, .reusable = false}},
4935
4597
  [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
4936
- [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
4598
+ [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188),
4937
- [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3),
4938
- [7] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3),
4939
- [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_todo, 1),
4599
+ [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
4600
+ [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 21),
4601
+ [9] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 21),
4940
- [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
4602
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
4941
- [13] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_todo, 1),
4603
+ [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30),
4942
4604
  [15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2),
4943
4605
  [17] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2),
4944
- [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 19),
4945
- [21] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 19),
4946
- [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_group, 3),
4947
- [25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_group, 3),
4948
- [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_todo, 4, .production_id = 25),
4949
- [29] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_todo, 4, .production_id = 25),
4950
- [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
4951
- [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assignment, 3, .production_id = 22),
4952
- [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
4953
- [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
4954
- [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
4955
- [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
4956
- [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
4957
- [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
4958
- [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
4959
- [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48),
4960
- [51] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assignment, 3, .production_id = 22),
4961
- [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assignment, 4, .production_id = 30),
4962
- [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assignment, 4, .production_id = 30),
4963
- [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_panic, 1),
4964
- [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_panic, 1),
4965
- [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 1),
4966
- [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integer, 1),
4967
- [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 1),
4968
- [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 1),
4969
- [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 2),
4970
- [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integer, 2),
4971
- [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_negation, 2),
4972
- [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_negation, 2),
4973
- [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
4974
- [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
4975
- [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96),
4976
- [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
4977
- [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
4978
- [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
4979
- [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
4980
- [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
4981
- [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
4982
- [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
4983
- [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
4984
- [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
4985
- [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
4986
- [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
4987
- [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
4988
- [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
4989
- [109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(41),
4990
- [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2),
4991
- [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(96),
4992
- [117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(51),
4993
- [120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(53),
4994
- [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(3),
4995
- [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(10),
4996
- [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(12),
4997
- [132] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(97),
4998
- [135] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(11),
4999
- [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(11),
5000
- [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(12),
5001
- [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
5002
- [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124),
5003
- [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123),
5004
- [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
5005
- [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
5006
- [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
5007
- [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
5008
- [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
5009
- [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
5010
- [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
5011
- [164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17),
5012
- [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
5013
- [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
5014
- [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
5015
- [172] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16),
5016
- [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
5017
- [176] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
5018
- [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
5019
- [180] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
5020
- [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
5021
- [184] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
5022
- [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
5023
- [188] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
5024
- [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
5025
- [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20),
5026
- [194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let, 2, .production_id = 16),
5027
- [196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let, 2, .production_id = 16),
5028
- [198] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87),
5029
- [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
5030
- [202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
5031
- [204] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89),
5032
- [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(106),
5033
- [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1),
5034
- [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
5035
- [212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91),
5036
- [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
5037
- [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160),
5038
- [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
5039
- [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
5040
- [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2),
5041
- [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_name_repeat1, 2),
5042
- [226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_name_repeat1, 2), SHIFT_REPEAT(175),
5043
- [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_name, 2),
5044
- [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
5045
- [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_name, 1),
5046
- [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
5047
- [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(160),
5048
- [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3),
5049
- [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
5050
- [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(165),
5051
- [247] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(171),
5052
- [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2, .production_id = 1),
5053
- [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
5054
- [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
5055
- [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 5, .production_id = 8),
5056
- [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
5057
- [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 5, .production_id = 9),
5058
- [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 2),
5059
- [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
5060
- [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
5061
- [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
5062
- [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 3),
5063
- [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
5064
- [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, .production_id = 3),
5065
- [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
5066
- [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 5),
5067
- [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 6, .production_id = 11),
5068
- [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 7, .production_id = 15),
5069
- [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2),
5070
- [286] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_repeat1, 2), SHIFT_REPEAT(142),
5071
- [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 6, .production_id = 13),
5072
- [291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
5073
- [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union, 1, .production_id = 6),
5074
- [295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
5075
- [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4, .production_id = 5),
5076
- [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 4),
5077
- [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_expression, 1, .production_id = 17),
5078
- [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union, 4, .production_id = 6),
5079
- [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
5080
- [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88),
5081
- [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 2, .production_id = 1),
5082
- [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_binary_expression, 3, .production_id = 19),
5083
- [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
5084
- [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
5085
- [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2),
5086
- [319] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(93),
5087
- [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union, 5, .production_id = 6),
5088
- [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
5089
- [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
5090
- [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
5091
- [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
5092
- [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
5093
- [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
5094
- [336] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 6, .production_id = 10),
5095
- [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184),
5096
- [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
5097
- [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
5098
- [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, .production_id = 4),
5099
- [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
5100
- [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93),
5101
- [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
5102
- [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
5103
- [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181),
5104
- [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 1),
5105
- [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
5106
- [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
5107
- [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
5108
- [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
5109
- [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
5110
- [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record, 4),
5111
- [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
5112
- [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
5113
- [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 11, .production_id = 34),
5114
- [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 10, .production_id = 33),
5115
- [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 10, .production_id = 32),
5116
- [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 9, .production_id = 29),
5117
- [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_unqualified_imports_repeat1, 2), SHIFT_REPEAT(95),
5118
- [385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_unqualified_imports_repeat1, 2),
5119
- [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4, .production_id = 7),
5120
- [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
5121
- [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
5122
- [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 9, .production_id = 28),
5123
- [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
5124
- [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 7, .production_id = 18),
5125
- [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 9, .production_id = 26),
5126
- [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
5127
- [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_return_type_repeat1, 2), SHIFT_REPEAT(184),
5128
- [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_return_type_repeat1, 2),
5129
- [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
5130
- [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154),
5131
- [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
5132
- [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
5133
- [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
5134
- [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
5135
- [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
5136
- [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
5137
- [424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_import, 1, .production_id = 6),
5138
- [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 3, .production_id = 2),
5139
- [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
5140
- [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
5141
- [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164),
5142
- [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_record, 3),
5143
- [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 8, .production_id = 21),
5144
- [438] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2), SHIFT_REPEAT(156),
5145
- [441] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_repeat1, 2),
5146
- [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
5147
- [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 8, .production_id = 20),
5148
- [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
5149
- [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_field, 3, .production_id = 12),
5150
- [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
5151
- [453] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_type, 1, .production_id = 6),
5152
- [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
5153
- [457] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 3),
5154
- [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
5155
- [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
5156
- [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159),
5157
- [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_import, 3, .production_id = 14),
5158
- [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
5159
- [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
5160
- [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
5161
- [473] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generic_list, 4),
5162
- [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
5163
- [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
5164
- [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
5165
- [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 3, .production_id = 24),
5166
- [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
5167
- [485] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_annotation, 2, .production_id = 23),
5168
- [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
5169
- [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
5170
- [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
5171
- [493] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_type, 4, .production_id = 27),
5172
- [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
5173
- [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140),
5174
- [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
5175
- [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
5176
- [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
5177
- [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
5178
- [507] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_type, 5, .production_id = 31),
5179
- [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
5180
- [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131),
5181
- [513] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
5182
- [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146),
5183
- [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
5184
- [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
5185
- [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
4606
+ [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assignment, 3, .production_id = 23),
4607
+ [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
4608
+ [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
4609
+ [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
4610
+ [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
4611
+ [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36),
4612
+ [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
4613
+ [33] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assignment, 3, .production_id = 23),
4614
+ [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 1),
4615
+ [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integer, 1),
4616
+ [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 1),
4617
+ [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__statement, 1),
4618
+ [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assignment, 4, .production_id = 27),
4619
+ [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assignment, 4, .production_id = 27),
4620
+ [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 2),
4621
+ [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integer, 2),
4622
+ [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_negation, 2),
4623
+ [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_negation, 2),
4624
+ [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3),
4625
+ [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3),
4626
+ [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_group, 3),
4627
+ [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_group, 3),
4628
+ [63] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
4629
+ [65] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
4630
+ [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113),
4631
+ [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38),
4632
+ [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39),
4633
+ [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
4634
+ [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
4635
+ [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
4636
+ [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
4637
+ [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7),
4638
+ [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121),
4639
+ [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
4640
+ [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
4641
+ [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141),
4642
+ [91] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(26),
4643
+ [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2),
4644
+ [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(113),
4645
+ [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(38),
4646
+ [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(39),
4647
+ [105] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(7),
4648
+ [108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(115),
4649
+ [111] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(5),
4650
+ [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(5),
4651
+ [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym__statement_seq, 2), SHIFT_REPEAT(7),
4652
+ [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
4653
+ [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9),
4654
+ [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
4655
+ [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14),
4656
+ [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
4657
+ [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
4658
+ [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
4659
+ [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15),
4660
+ [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
4661
+ [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(13),
4662
+ [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
4663
+ [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6),
4664
+ [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
4665
+ [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2),
4666
+ [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
4667
+ [150] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
4668
+ [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
4669
+ [154] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4),
4670
+ [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
4671
+ [158] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
4672
+ [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94),
4673
+ [162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
4674
+ [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96),
4675
+ [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96),
4676
+ [168] = {.entry = {.count = 1, .reusable = false}}, SHIFT(105),
4677
+ [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let, 2, .production_id = 18),
4678
+ [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let, 2, .production_id = 18),
4679
+ [174] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2),
4680
+ [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
4681
+ [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
4682
+ [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
4683
+ [182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1),
4684
+ [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
4685
+ [186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108),
4686
+ [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
4687
+ [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
4688
+ [192] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174),
4689
+ [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
4690
+ [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
4691
+ [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
4692
+ [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
4693
+ [202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160),
4694
+ [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
4695
+ [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129),
4696
+ [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 1),
4697
+ [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
4698
+ [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
4699
+ [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
4700
+ [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_name, 1),
4701
+ [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197),
4702
+ [220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_name_repeat1, 2),
4703
+ [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_name_repeat1, 2), SHIFT_REPEAT(197),
4704
+ [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_name, 2),
4705
+ [227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_identifier, 1),
4706
+ [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196),
4707
+ [231] = {.entry = {.count = 1, .reusable = false}}, SHIFT(85),
4708
+ [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2),
4709
+ [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(169),
4710
+ [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat2, 2), SHIFT_REPEAT(198),
4711
+ [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
4712
+ [243] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123),
4713
+ [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
4714
+ [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, .production_id = 5),
4715
+ [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
4716
+ [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 3),
4717
+ [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 2, .production_id = 1),
4718
+ [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189),
4719
+ [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
4720
+ [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter_types, 2),
4721
+ [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter_types, 4),
4722
+ [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 2, .production_id = 16),
4723
+ [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter_types, 5),
4724
+ [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2),
4725
+ [269] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(168),
4726
+ [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_parameter_types, 3),
4727
+ [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
4728
+ [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 2),
4729
+ [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 4),
4730
+ [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 5),
4731
+ [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
4732
+ [284] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
4733
+ [286] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202),
4734
+ [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 4),
4735
+ [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
4736
+ [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
4737
+ [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
4738
+ [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, .production_id = 2),
4739
+ [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203),
4740
+ [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 3),
4741
+ [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 2),
4742
+ [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 2, .production_id = 17),
4743
+ [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_type, 2, .production_id = 14),
4744
+ [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
4745
+ [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
4746
+ [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 5),
4747
+ [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_type, 3, .production_id = 16),
4748
+ [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_imports, 3),
4749
+ [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_arguments, 2),
4750
+ [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, .production_id = 3),
4751
+ [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_struct_repeat1, 2),
4752
+ [324] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_struct_repeat1, 2), SHIFT_REPEAT(202),
4753
+ [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
4754
+ [329] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95),
4755
+ [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
4756
+ [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202),
4757
+ [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
4758
+ [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 2, .production_id = 1),
4759
+ [339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2),
4760
+ [341] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2), SHIFT_REPEAT(100),
4761
+ [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 2, .production_id = 7),
4762
+ [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 2, .production_id = 7), SHIFT_REPEAT(55),
4763
+ [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
4764
+ [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
4765
+ [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100),
4766
+ [355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_expression, 1, .production_id = 19),
4767
+ [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208),
4768
+ [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
4769
+ [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 1),
4770
+ [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
4771
+ [365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
4772
+ [367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern_binary_expression, 3, .production_id = 21),
4773
+ [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
4774
+ [371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 6, .production_id = 10),
4775
+ [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
4776
+ [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
4777
+ [377] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11),
4778
+ [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
4779
+ [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182),
4780
+ [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
4781
+ [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
4782
+ [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103),
4783
+ [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177),
4784
+ [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207),
4785
+ [393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct, 6, .production_id = 13),
4786
+ [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
4787
+ [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159),
4788
+ [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
4789
+ [401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 9, .production_id = 22),
4790
+ [403] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_function_parameter_types_repeat1, 2), SHIFT_REPEAT(58),
4791
+ [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_function_parameter_types_repeat1, 2),
4792
+ [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 11),
4793
+ [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
4794
+ [412] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum, 4, .production_id = 4),
4795
+ [414] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_repeat1, 2), SHIFT_REPEAT(205),
4796
+ [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat1, 2),
4797
+ [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
4798
+ [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
4799
+ [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
4800
+ [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum, 5, .production_id = 9),
4801
+ [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 1, .production_id = 5),
4802
+ [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170),
4803
+ [431] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_arguments_repeat1, 2), SHIFT_REPEAT(53),
4804
+ [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_arguments_repeat1, 2),
4805
+ [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 10, .production_id = 26),
4806
+ [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct, 5, .production_id = 9),
4807
+ [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
4808
+ [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
4809
+ [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
4810
+ [446] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_generics_repeat1, 2), SHIFT_REPEAT(192),
4811
+ [449] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_generics_repeat1, 2),
4812
+ [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
4813
+ [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
4814
+ [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82),
4815
+ [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
4816
+ [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
4817
+ [461] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 8, .production_id = 20),
4818
+ [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 11, .production_id = 28),
4819
+ [465] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct, 5, .production_id = 8),
4820
+ [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183),
4821
+ [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
4822
+ [471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_struct, 4, .production_id = 4),
4823
+ [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
4824
+ [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
4825
+ [477] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_unqualified_imports_repeat1, 2), SHIFT_REPEAT(116),
4826
+ [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_unqualified_imports_repeat1, 2),
4827
+ [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum, 5, .production_id = 6),
4828
+ [484] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_enum_repeat2, 2), SHIFT_REPEAT(178),
4829
+ [487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat2, 2),
4830
+ [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
4831
+ [491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_import, 1, .production_id = 5),
4832
+ [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
4833
+ [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
4834
+ [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
4835
+ [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
4836
+ [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
4837
+ [503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_enum, 6, .production_id = 12),
4838
+ [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
4839
+ [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
4840
+ [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180),
4841
+ [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
4842
+ [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176),
4843
+ [515] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 6, .production_id = 5),
4844
+ [517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unqualified_import, 3, .production_id = 15),
4845
+ [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
4846
+ [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
4847
+ [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
4848
+ [525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generics, 3),
4849
+ [527] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_argument, 1),
4850
+ [529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generics, 4),
4851
+ [531] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 5, .production_id = 5),
4852
+ [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
4853
+ [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
4854
+ [537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_enum_repeat3, 4, .production_id = 5),
4855
+ [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190),
4856
+ [541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__pattern, 3, .production_id = 25),
4857
+ [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
4858
+ [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generics, 5),
4859
+ [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
4860
+ [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92),
4861
+ [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
4862
+ [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
4863
+ [555] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_annotation, 2, .production_id = 24),
4864
+ [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
4865
+ [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
4866
+ [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
4867
+ [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
4868
+ [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
4869
+ [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
4870
+ [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
4871
+ [571] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
4872
+ [573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
4873
+ [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187),
5186
4874
  };
5187
4875
 
5188
4876
  #ifdef __cplusplus
test/corpus/type.txt DELETED
@@ -1,115 +0,0 @@
1
- ================================================================================
2
- Type - Simple
3
- ================================================================================
4
-
5
- module palm
6
-
7
- type User = Guest | LoggedIn(name: String, session_id: String)
8
-
9
- type Cat(
10
- firstName: String,
11
- middleName: String,
12
- lastName: String,
13
- age: Int
14
- )
15
-
16
- --------------------------------------------------------------------------------
17
-
18
- (source_file
19
- (module
20
- (module_name))
21
- (type
22
- (type_identifier)
23
- (union
24
- (type_identifier))
25
- (union
26
- (type_identifier)
27
- (type_field
28
- (identifier)
29
- (identifier))
30
- (type_field
31
- (identifier)
32
- (identifier))))
33
- (type
34
- (type_identifier)
35
- (record
36
- (type_field
37
- (identifier)
38
- (identifier))
39
- (type_field
40
- (identifier)
41
- (identifier))
42
- (type_field
43
- (identifier)
44
- (identifier))
45
- (type_field
46
- (identifier)
47
- (identifier)))))
48
-
49
- ================================================================================
50
- Type - Generic
51
- ================================================================================
52
-
53
- module palm
54
-
55
- type User(a) = Guest | LoggedIn(name: a, age: Int)
56
-
57
- type Option(a) = Some(a) | None
58
-
59
- type Result(a, b) = Ok(a) | Error(b)
60
-
61
- type Cat(a)(
62
- name: a,
63
- age: Int
64
- )
65
-
66
- --------------------------------------------------------------------------------
67
-
68
- (source_file
69
- (module
70
- (module_name))
71
- (type
72
- (type_identifier)
73
- (generic_list
74
- (identifier))
75
- (union
76
- (type_identifier))
77
- (union
78
- (type_identifier)
79
- (type_field
80
- (identifier)
81
- (identifier))
82
- (type_field
83
- (identifier)
84
- (identifier))))
85
- (type
86
- (type_identifier)
87
- (generic_list
88
- (identifier))
89
- (union
90
- (type_identifier)
91
- (identifier))
92
- (union
93
- (type_identifier)))
94
- (type
95
- (type_identifier)
96
- (generic_list
97
- (identifier)
98
- (identifier))
99
- (union
100
- (type_identifier)
101
- (identifier))
102
- (union
103
- (type_identifier)
104
- (identifier)))
105
- (type
106
- (type_identifier)
107
- (generic_list
108
- (identifier))
109
- (record
110
- (type_field
111
- (identifier)
112
- (identifier))
113
- (type_field
114
- (identifier)
115
- (identifier)))))
test/corpus/types.txt ADDED
@@ -0,0 +1,85 @@
1
+ ================================================================================
2
+ Types
3
+ ================================================================================
4
+
5
+ module palm
6
+
7
+ type User(a) {
8
+ Guest
9
+ LoggedIn(name: a, age: Int)
10
+ }
11
+
12
+ type Result(a, b) {
13
+ Ok(a)
14
+ Error(b)
15
+ }
16
+
17
+ type Cat(a)(
18
+ firstName: String
19
+ middleName: String
20
+ lastName: String
21
+ age: Int
22
+ shape: a
23
+ call: fn (String) -> String
24
+ )
25
+
26
+ --------------------------------------------------------------------------------
27
+
28
+ (source_file
29
+ (module
30
+ (module_name))
31
+ (enum
32
+ (type_identifier)
33
+ (generics
34
+ (generic))
35
+ (type_identifier)
36
+ (type_identifier)
37
+ (field
38
+ (identifier)
39
+ (generic))
40
+ (field
41
+ (identifier)
42
+ (type
43
+ (type_identifier))))
44
+ (enum
45
+ (type_identifier)
46
+ (generics
47
+ (generic)
48
+ (generic))
49
+ (type_identifier)
50
+ (identifier)
51
+ (type_identifier)
52
+ (identifier))
53
+ (struct
54
+ (type_identifier)
55
+ (generics
56
+ (generic))
57
+ (field
58
+ (identifier)
59
+ (type
60
+ (type_identifier)))
61
+ (field
62
+ (identifier)
63
+ (type
64
+ (type_identifier)))
65
+ (field
66
+ (identifier)
67
+ (type
68
+ (type_identifier)))
69
+ (field
70
+ (identifier)
71
+ (type
72
+ (type_identifier)))
73
+ (field
74
+ (identifier)
75
+ (generic))
76
+ (field
77
+ (identifier)
78
+ (function_type
79
+ (function_parameter_types
80
+ (type
81
+ (type_identifier)))
82
+ (return_type
83
+ (type
84
+ (type_identifier)))))))
85
+