tree-sitter-scpi 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/parser.c ADDED
@@ -0,0 +1,1691 @@
1
+ #include <tree_sitter/parser.h>
2
+
3
+ #if defined(__GNUC__) || defined(__clang__)
4
+ #pragma GCC diagnostic push
5
+ #pragma GCC diagnostic ignored "-Wmissing-field-initializers"
6
+ #endif
7
+
8
+ #define LANGUAGE_VERSION 14
9
+ #define STATE_COUNT 63
10
+ #define LARGE_STATE_COUNT 2
11
+ #define SYMBOL_COUNT 50
12
+ #define ALIAS_COUNT 0
13
+ #define TOKEN_COUNT 24
14
+ #define EXTERNAL_TOKEN_COUNT 0
15
+ #define FIELD_COUNT 0
16
+ #define MAX_ALIAS_SEQUENCE_LENGTH 4
17
+ #define PRODUCTION_ID_COUNT 1
18
+
19
+ enum {
20
+ sym__terminator = 1,
21
+ anon_sym_SEMI = 2,
22
+ anon_sym_COLON = 3,
23
+ anon_sym_QMARK = 4,
24
+ anon_sym_STAR = 5,
25
+ aux_sym_mnemonic_token1 = 6,
26
+ anon_sym_COMMA = 7,
27
+ sym_suffix = 8,
28
+ anon_sym_LPAREN_AT = 9,
29
+ anon_sym_RPAREN = 10,
30
+ anon_sym_BANG = 11,
31
+ sym_integer = 12,
32
+ sym_numeric_literal = 13,
33
+ anon_sym_DQUOTE = 14,
34
+ aux_sym_string_literal_token1 = 15,
35
+ anon_sym_DQUOTE_DQUOTE = 16,
36
+ anon_sym_SQUOTE = 17,
37
+ aux_sym_string_literal_token2 = 18,
38
+ anon_sym_SQUOTE_SQUOTE = 19,
39
+ anon_sym_ON = 20,
40
+ anon_sym_OFF = 21,
41
+ sym_comment = 22,
42
+ sym__separator = 23,
43
+ sym_scpi_command = 24,
44
+ sym__statement = 25,
45
+ sym_program_message = 26,
46
+ sym__program_message_unit = 27,
47
+ sym_command_header = 28,
48
+ sym_common_command_header = 29,
49
+ sym_mnemonic = 30,
50
+ sym_parameter_list = 31,
51
+ sym__parameter = 32,
52
+ sym__numeric_entry = 33,
53
+ sym_channel_list = 34,
54
+ sym__channel_spec_list = 35,
55
+ sym__channel_item = 36,
56
+ sym_channel_range = 37,
57
+ sym_channel_spec = 38,
58
+ sym_string_literal = 39,
59
+ sym_boolean_literal = 40,
60
+ sym_character_data = 41,
61
+ aux_sym_scpi_command_repeat1 = 42,
62
+ aux_sym_program_message_repeat1 = 43,
63
+ aux_sym_command_header_repeat1 = 44,
64
+ aux_sym_parameter_list_repeat1 = 45,
65
+ aux_sym__channel_spec_list_repeat1 = 46,
66
+ aux_sym_channel_spec_repeat1 = 47,
67
+ aux_sym_string_literal_repeat1 = 48,
68
+ aux_sym_string_literal_repeat2 = 49,
69
+ };
70
+
71
+ static const char * const ts_symbol_names[] = {
72
+ [ts_builtin_sym_end] = "end",
73
+ [sym__terminator] = "_terminator",
74
+ [anon_sym_SEMI] = ";",
75
+ [anon_sym_COLON] = ":",
76
+ [anon_sym_QMARK] = "\?",
77
+ [anon_sym_STAR] = "*",
78
+ [aux_sym_mnemonic_token1] = "mnemonic_token1",
79
+ [anon_sym_COMMA] = ",",
80
+ [sym_suffix] = "suffix",
81
+ [anon_sym_LPAREN_AT] = "(@",
82
+ [anon_sym_RPAREN] = ")",
83
+ [anon_sym_BANG] = "!",
84
+ [sym_integer] = "integer",
85
+ [sym_numeric_literal] = "numeric_literal",
86
+ [anon_sym_DQUOTE] = "\"",
87
+ [aux_sym_string_literal_token1] = "string_literal_token1",
88
+ [anon_sym_DQUOTE_DQUOTE] = "\"\"",
89
+ [anon_sym_SQUOTE] = "'",
90
+ [aux_sym_string_literal_token2] = "string_literal_token2",
91
+ [anon_sym_SQUOTE_SQUOTE] = "''",
92
+ [anon_sym_ON] = "ON",
93
+ [anon_sym_OFF] = "OFF",
94
+ [sym_comment] = "comment",
95
+ [sym__separator] = "separator",
96
+ [sym_scpi_command] = "scpi_command",
97
+ [sym__statement] = "_statement",
98
+ [sym_program_message] = "program_message",
99
+ [sym__program_message_unit] = "_program_message_unit",
100
+ [sym_command_header] = "command_header",
101
+ [sym_common_command_header] = "common_command_header",
102
+ [sym_mnemonic] = "mnemonic",
103
+ [sym_parameter_list] = "parameter_list",
104
+ [sym__parameter] = "_parameter",
105
+ [sym__numeric_entry] = "_numeric_entry",
106
+ [sym_channel_list] = "channel_list",
107
+ [sym__channel_spec_list] = "_channel_spec_list",
108
+ [sym__channel_item] = "_channel_item",
109
+ [sym_channel_range] = "channel_range",
110
+ [sym_channel_spec] = "channel_spec",
111
+ [sym_string_literal] = "string_literal",
112
+ [sym_boolean_literal] = "boolean_literal",
113
+ [sym_character_data] = "character_data",
114
+ [aux_sym_scpi_command_repeat1] = "scpi_command_repeat1",
115
+ [aux_sym_program_message_repeat1] = "program_message_repeat1",
116
+ [aux_sym_command_header_repeat1] = "command_header_repeat1",
117
+ [aux_sym_parameter_list_repeat1] = "parameter_list_repeat1",
118
+ [aux_sym__channel_spec_list_repeat1] = "_channel_spec_list_repeat1",
119
+ [aux_sym_channel_spec_repeat1] = "channel_spec_repeat1",
120
+ [aux_sym_string_literal_repeat1] = "string_literal_repeat1",
121
+ [aux_sym_string_literal_repeat2] = "string_literal_repeat2",
122
+ };
123
+
124
+ static const TSSymbol ts_symbol_map[] = {
125
+ [ts_builtin_sym_end] = ts_builtin_sym_end,
126
+ [sym__terminator] = sym__terminator,
127
+ [anon_sym_SEMI] = anon_sym_SEMI,
128
+ [anon_sym_COLON] = anon_sym_COLON,
129
+ [anon_sym_QMARK] = anon_sym_QMARK,
130
+ [anon_sym_STAR] = anon_sym_STAR,
131
+ [aux_sym_mnemonic_token1] = aux_sym_mnemonic_token1,
132
+ [anon_sym_COMMA] = anon_sym_COMMA,
133
+ [sym_suffix] = sym_suffix,
134
+ [anon_sym_LPAREN_AT] = anon_sym_LPAREN_AT,
135
+ [anon_sym_RPAREN] = anon_sym_RPAREN,
136
+ [anon_sym_BANG] = anon_sym_BANG,
137
+ [sym_integer] = sym_integer,
138
+ [sym_numeric_literal] = sym_numeric_literal,
139
+ [anon_sym_DQUOTE] = anon_sym_DQUOTE,
140
+ [aux_sym_string_literal_token1] = aux_sym_string_literal_token1,
141
+ [anon_sym_DQUOTE_DQUOTE] = anon_sym_DQUOTE_DQUOTE,
142
+ [anon_sym_SQUOTE] = anon_sym_SQUOTE,
143
+ [aux_sym_string_literal_token2] = aux_sym_string_literal_token2,
144
+ [anon_sym_SQUOTE_SQUOTE] = anon_sym_SQUOTE_SQUOTE,
145
+ [anon_sym_ON] = anon_sym_ON,
146
+ [anon_sym_OFF] = anon_sym_OFF,
147
+ [sym_comment] = sym_comment,
148
+ [sym__separator] = sym__separator,
149
+ [sym_scpi_command] = sym_scpi_command,
150
+ [sym__statement] = sym__statement,
151
+ [sym_program_message] = sym_program_message,
152
+ [sym__program_message_unit] = sym__program_message_unit,
153
+ [sym_command_header] = sym_command_header,
154
+ [sym_common_command_header] = sym_common_command_header,
155
+ [sym_mnemonic] = sym_mnemonic,
156
+ [sym_parameter_list] = sym_parameter_list,
157
+ [sym__parameter] = sym__parameter,
158
+ [sym__numeric_entry] = sym__numeric_entry,
159
+ [sym_channel_list] = sym_channel_list,
160
+ [sym__channel_spec_list] = sym__channel_spec_list,
161
+ [sym__channel_item] = sym__channel_item,
162
+ [sym_channel_range] = sym_channel_range,
163
+ [sym_channel_spec] = sym_channel_spec,
164
+ [sym_string_literal] = sym_string_literal,
165
+ [sym_boolean_literal] = sym_boolean_literal,
166
+ [sym_character_data] = sym_character_data,
167
+ [aux_sym_scpi_command_repeat1] = aux_sym_scpi_command_repeat1,
168
+ [aux_sym_program_message_repeat1] = aux_sym_program_message_repeat1,
169
+ [aux_sym_command_header_repeat1] = aux_sym_command_header_repeat1,
170
+ [aux_sym_parameter_list_repeat1] = aux_sym_parameter_list_repeat1,
171
+ [aux_sym__channel_spec_list_repeat1] = aux_sym__channel_spec_list_repeat1,
172
+ [aux_sym_channel_spec_repeat1] = aux_sym_channel_spec_repeat1,
173
+ [aux_sym_string_literal_repeat1] = aux_sym_string_literal_repeat1,
174
+ [aux_sym_string_literal_repeat2] = aux_sym_string_literal_repeat2,
175
+ };
176
+
177
+ static const TSSymbolMetadata ts_symbol_metadata[] = {
178
+ [ts_builtin_sym_end] = {
179
+ .visible = false,
180
+ .named = true,
181
+ },
182
+ [sym__terminator] = {
183
+ .visible = false,
184
+ .named = true,
185
+ },
186
+ [anon_sym_SEMI] = {
187
+ .visible = true,
188
+ .named = false,
189
+ },
190
+ [anon_sym_COLON] = {
191
+ .visible = true,
192
+ .named = false,
193
+ },
194
+ [anon_sym_QMARK] = {
195
+ .visible = true,
196
+ .named = false,
197
+ },
198
+ [anon_sym_STAR] = {
199
+ .visible = true,
200
+ .named = false,
201
+ },
202
+ [aux_sym_mnemonic_token1] = {
203
+ .visible = false,
204
+ .named = false,
205
+ },
206
+ [anon_sym_COMMA] = {
207
+ .visible = true,
208
+ .named = false,
209
+ },
210
+ [sym_suffix] = {
211
+ .visible = true,
212
+ .named = true,
213
+ },
214
+ [anon_sym_LPAREN_AT] = {
215
+ .visible = true,
216
+ .named = false,
217
+ },
218
+ [anon_sym_RPAREN] = {
219
+ .visible = true,
220
+ .named = false,
221
+ },
222
+ [anon_sym_BANG] = {
223
+ .visible = true,
224
+ .named = false,
225
+ },
226
+ [sym_integer] = {
227
+ .visible = true,
228
+ .named = true,
229
+ },
230
+ [sym_numeric_literal] = {
231
+ .visible = true,
232
+ .named = true,
233
+ },
234
+ [anon_sym_DQUOTE] = {
235
+ .visible = true,
236
+ .named = false,
237
+ },
238
+ [aux_sym_string_literal_token1] = {
239
+ .visible = false,
240
+ .named = false,
241
+ },
242
+ [anon_sym_DQUOTE_DQUOTE] = {
243
+ .visible = true,
244
+ .named = false,
245
+ },
246
+ [anon_sym_SQUOTE] = {
247
+ .visible = true,
248
+ .named = false,
249
+ },
250
+ [aux_sym_string_literal_token2] = {
251
+ .visible = false,
252
+ .named = false,
253
+ },
254
+ [anon_sym_SQUOTE_SQUOTE] = {
255
+ .visible = true,
256
+ .named = false,
257
+ },
258
+ [anon_sym_ON] = {
259
+ .visible = true,
260
+ .named = false,
261
+ },
262
+ [anon_sym_OFF] = {
263
+ .visible = true,
264
+ .named = false,
265
+ },
266
+ [sym_comment] = {
267
+ .visible = true,
268
+ .named = true,
269
+ },
270
+ [sym__separator] = {
271
+ .visible = true,
272
+ .named = false,
273
+ },
274
+ [sym_scpi_command] = {
275
+ .visible = true,
276
+ .named = true,
277
+ },
278
+ [sym__statement] = {
279
+ .visible = false,
280
+ .named = true,
281
+ },
282
+ [sym_program_message] = {
283
+ .visible = true,
284
+ .named = true,
285
+ },
286
+ [sym__program_message_unit] = {
287
+ .visible = false,
288
+ .named = true,
289
+ },
290
+ [sym_command_header] = {
291
+ .visible = true,
292
+ .named = true,
293
+ },
294
+ [sym_common_command_header] = {
295
+ .visible = true,
296
+ .named = true,
297
+ },
298
+ [sym_mnemonic] = {
299
+ .visible = true,
300
+ .named = true,
301
+ },
302
+ [sym_parameter_list] = {
303
+ .visible = true,
304
+ .named = true,
305
+ },
306
+ [sym__parameter] = {
307
+ .visible = false,
308
+ .named = true,
309
+ },
310
+ [sym__numeric_entry] = {
311
+ .visible = false,
312
+ .named = true,
313
+ },
314
+ [sym_channel_list] = {
315
+ .visible = true,
316
+ .named = true,
317
+ },
318
+ [sym__channel_spec_list] = {
319
+ .visible = false,
320
+ .named = true,
321
+ },
322
+ [sym__channel_item] = {
323
+ .visible = false,
324
+ .named = true,
325
+ },
326
+ [sym_channel_range] = {
327
+ .visible = true,
328
+ .named = true,
329
+ },
330
+ [sym_channel_spec] = {
331
+ .visible = true,
332
+ .named = true,
333
+ },
334
+ [sym_string_literal] = {
335
+ .visible = true,
336
+ .named = true,
337
+ },
338
+ [sym_boolean_literal] = {
339
+ .visible = true,
340
+ .named = true,
341
+ },
342
+ [sym_character_data] = {
343
+ .visible = true,
344
+ .named = true,
345
+ },
346
+ [aux_sym_scpi_command_repeat1] = {
347
+ .visible = false,
348
+ .named = false,
349
+ },
350
+ [aux_sym_program_message_repeat1] = {
351
+ .visible = false,
352
+ .named = false,
353
+ },
354
+ [aux_sym_command_header_repeat1] = {
355
+ .visible = false,
356
+ .named = false,
357
+ },
358
+ [aux_sym_parameter_list_repeat1] = {
359
+ .visible = false,
360
+ .named = false,
361
+ },
362
+ [aux_sym__channel_spec_list_repeat1] = {
363
+ .visible = false,
364
+ .named = false,
365
+ },
366
+ [aux_sym_channel_spec_repeat1] = {
367
+ .visible = false,
368
+ .named = false,
369
+ },
370
+ [aux_sym_string_literal_repeat1] = {
371
+ .visible = false,
372
+ .named = false,
373
+ },
374
+ [aux_sym_string_literal_repeat2] = {
375
+ .visible = false,
376
+ .named = false,
377
+ },
378
+ };
379
+
380
+ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
381
+ [0] = {0},
382
+ };
383
+
384
+ static const uint16_t ts_non_terminal_alias_map[] = {
385
+ 0,
386
+ };
387
+
388
+ static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
389
+ [0] = 0,
390
+ [1] = 1,
391
+ [2] = 2,
392
+ [3] = 3,
393
+ [4] = 4,
394
+ [5] = 5,
395
+ [6] = 6,
396
+ [7] = 7,
397
+ [8] = 8,
398
+ [9] = 9,
399
+ [10] = 10,
400
+ [11] = 11,
401
+ [12] = 12,
402
+ [13] = 13,
403
+ [14] = 14,
404
+ [15] = 15,
405
+ [16] = 16,
406
+ [17] = 17,
407
+ [18] = 18,
408
+ [19] = 19,
409
+ [20] = 20,
410
+ [21] = 21,
411
+ [22] = 22,
412
+ [23] = 23,
413
+ [24] = 24,
414
+ [25] = 25,
415
+ [26] = 26,
416
+ [27] = 27,
417
+ [28] = 28,
418
+ [29] = 29,
419
+ [30] = 30,
420
+ [31] = 31,
421
+ [32] = 32,
422
+ [33] = 33,
423
+ [34] = 34,
424
+ [35] = 35,
425
+ [36] = 36,
426
+ [37] = 37,
427
+ [38] = 38,
428
+ [39] = 39,
429
+ [40] = 40,
430
+ [41] = 41,
431
+ [42] = 42,
432
+ [43] = 43,
433
+ [44] = 44,
434
+ [45] = 45,
435
+ [46] = 46,
436
+ [47] = 47,
437
+ [48] = 48,
438
+ [49] = 49,
439
+ [50] = 50,
440
+ [51] = 51,
441
+ [52] = 52,
442
+ [53] = 53,
443
+ [54] = 54,
444
+ [55] = 55,
445
+ [56] = 56,
446
+ [57] = 57,
447
+ [58] = 58,
448
+ [59] = 59,
449
+ [60] = 60,
450
+ [61] = 61,
451
+ [62] = 62,
452
+ };
453
+
454
+ static bool ts_lex(TSLexer *lexer, TSStateId state) {
455
+ START_LEXER();
456
+ eof = lexer->eof(lexer);
457
+ switch (state) {
458
+ case 0:
459
+ if (eof) ADVANCE(18);
460
+ if (lookahead == '!') ADVANCE(31);
461
+ if (lookahead == '"') ADVANCE(41);
462
+ if (lookahead == '#') ADVANCE(9);
463
+ if (lookahead == '\'') ADVANCE(47);
464
+ if (lookahead == '(') ADVANCE(8);
465
+ if (lookahead == ')') ADVANCE(30);
466
+ if (lookahead == '*') ADVANCE(23);
467
+ if (lookahead == ',') ADVANCE(27);
468
+ if (lookahead == '.') ADVANCE(13);
469
+ if (lookahead == '/') ADVANCE(7);
470
+ if (lookahead == ':') ADVANCE(21);
471
+ if (lookahead == ';') ADVANCE(20);
472
+ if (lookahead == '?') ADVANCE(22);
473
+ if (lookahead == 'O') ADVANCE(24);
474
+ if (lookahead == '\t' ||
475
+ lookahead == ' ') SKIP(0)
476
+ if (lookahead == '\n' ||
477
+ lookahead == '\r') ADVANCE(19);
478
+ if (('+' <= lookahead && lookahead <= '-')) ADVANCE(5);
479
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
480
+ if (('A' <= lookahead && lookahead <= 'Z') ||
481
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
482
+ END_STATE();
483
+ case 1:
484
+ if (lookahead == '"') ADVANCE(41);
485
+ if (lookahead == '/') ADVANCE(43);
486
+ if (lookahead == '\t' ||
487
+ lookahead == ' ') ADVANCE(44);
488
+ if (lookahead != 0 &&
489
+ lookahead != '\n') ADVANCE(42);
490
+ END_STATE();
491
+ case 2:
492
+ if (lookahead == '"') ADVANCE(40);
493
+ if (lookahead == '#') ADVANCE(9);
494
+ if (lookahead == '\'') ADVANCE(46);
495
+ if (lookahead == '(') ADVANCE(8);
496
+ if (lookahead == '.') ADVANCE(13);
497
+ if (lookahead == '/') ADVANCE(7);
498
+ if (lookahead == 'O') ADVANCE(24);
499
+ if (lookahead == '\t' ||
500
+ lookahead == ' ') SKIP(2)
501
+ if (lookahead == '+' ||
502
+ lookahead == '-') ADVANCE(5);
503
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
504
+ if (('A' <= lookahead && lookahead <= 'Z') ||
505
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
506
+ END_STATE();
507
+ case 3:
508
+ if (lookahead == '\'') ADVANCE(47);
509
+ if (lookahead == '/') ADVANCE(49);
510
+ if (lookahead == '\t' ||
511
+ lookahead == ' ') ADVANCE(50);
512
+ if (lookahead != 0 &&
513
+ lookahead != '\n') ADVANCE(48);
514
+ END_STATE();
515
+ case 4:
516
+ if (lookahead == ',') ADVANCE(27);
517
+ if (lookahead == '/') ADVANCE(7);
518
+ if (lookahead == ';') ADVANCE(20);
519
+ if (lookahead == '\t' ||
520
+ lookahead == ' ') SKIP(4)
521
+ if (lookahead == '\n' ||
522
+ lookahead == '\r') ADVANCE(19);
523
+ if (('A' <= lookahead && lookahead <= 'Z') ||
524
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
525
+ END_STATE();
526
+ case 5:
527
+ if (lookahead == '.') ADVANCE(13);
528
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
529
+ END_STATE();
530
+ case 6:
531
+ if (lookahead == '/') ADVANCE(7);
532
+ if (lookahead == ':') ADVANCE(21);
533
+ if (lookahead == ';') ADVANCE(20);
534
+ if (lookahead == '?') ADVANCE(22);
535
+ if (lookahead == '\t' ||
536
+ lookahead == ' ') ADVANCE(55);
537
+ if (lookahead == '\n' ||
538
+ lookahead == '\r') ADVANCE(19);
539
+ END_STATE();
540
+ case 7:
541
+ if (lookahead == '/') ADVANCE(54);
542
+ END_STATE();
543
+ case 8:
544
+ if (lookahead == '@') ADVANCE(29);
545
+ END_STATE();
546
+ case 9:
547
+ if (lookahead == 'B') ADVANCE(11);
548
+ if (lookahead == 'H') ADVANCE(15);
549
+ if (lookahead == 'Q') ADVANCE(12);
550
+ END_STATE();
551
+ case 10:
552
+ if (lookahead == '+' ||
553
+ lookahead == '-') ADVANCE(14);
554
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
555
+ END_STATE();
556
+ case 11:
557
+ if (lookahead == '0' ||
558
+ lookahead == '1') ADVANCE(36);
559
+ END_STATE();
560
+ case 12:
561
+ if (('0' <= lookahead && lookahead <= '7')) ADVANCE(37);
562
+ END_STATE();
563
+ case 13:
564
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35);
565
+ END_STATE();
566
+ case 14:
567
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
568
+ END_STATE();
569
+ case 15:
570
+ if (('0' <= lookahead && lookahead <= '9') ||
571
+ ('A' <= lookahead && lookahead <= 'F') ||
572
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(39);
573
+ END_STATE();
574
+ case 16:
575
+ if (('A' <= lookahead && lookahead <= 'Z') ||
576
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
577
+ END_STATE();
578
+ case 17:
579
+ if (eof) ADVANCE(18);
580
+ if (lookahead == '*') ADVANCE(23);
581
+ if (lookahead == '/') ADVANCE(7);
582
+ if (lookahead == ':') ADVANCE(21);
583
+ if (lookahead == '\t' ||
584
+ lookahead == ' ') SKIP(17)
585
+ if (lookahead == '\n' ||
586
+ lookahead == '\r') ADVANCE(19);
587
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33);
588
+ if (('A' <= lookahead && lookahead <= 'Z') ||
589
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
590
+ END_STATE();
591
+ case 18:
592
+ ACCEPT_TOKEN(ts_builtin_sym_end);
593
+ END_STATE();
594
+ case 19:
595
+ ACCEPT_TOKEN(sym__terminator);
596
+ if (lookahead == '\n' ||
597
+ lookahead == '\r') ADVANCE(19);
598
+ END_STATE();
599
+ case 20:
600
+ ACCEPT_TOKEN(anon_sym_SEMI);
601
+ END_STATE();
602
+ case 21:
603
+ ACCEPT_TOKEN(anon_sym_COLON);
604
+ END_STATE();
605
+ case 22:
606
+ ACCEPT_TOKEN(anon_sym_QMARK);
607
+ END_STATE();
608
+ case 23:
609
+ ACCEPT_TOKEN(anon_sym_STAR);
610
+ END_STATE();
611
+ case 24:
612
+ ACCEPT_TOKEN(aux_sym_mnemonic_token1);
613
+ if (lookahead == 'F') ADVANCE(25);
614
+ if (lookahead == 'N') ADVANCE(52);
615
+ if (('0' <= lookahead && lookahead <= '9') ||
616
+ ('A' <= lookahead && lookahead <= 'Z') ||
617
+ lookahead == '_' ||
618
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
619
+ END_STATE();
620
+ case 25:
621
+ ACCEPT_TOKEN(aux_sym_mnemonic_token1);
622
+ if (lookahead == 'F') ADVANCE(53);
623
+ if (('0' <= lookahead && lookahead <= '9') ||
624
+ ('A' <= lookahead && lookahead <= 'Z') ||
625
+ lookahead == '_' ||
626
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
627
+ END_STATE();
628
+ case 26:
629
+ ACCEPT_TOKEN(aux_sym_mnemonic_token1);
630
+ if (('0' <= lookahead && lookahead <= '9') ||
631
+ ('A' <= lookahead && lookahead <= 'Z') ||
632
+ lookahead == '_' ||
633
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
634
+ END_STATE();
635
+ case 27:
636
+ ACCEPT_TOKEN(anon_sym_COMMA);
637
+ END_STATE();
638
+ case 28:
639
+ ACCEPT_TOKEN(sym_suffix);
640
+ if (lookahead == '/') ADVANCE(16);
641
+ if (('A' <= lookahead && lookahead <= 'Z') ||
642
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(28);
643
+ END_STATE();
644
+ case 29:
645
+ ACCEPT_TOKEN(anon_sym_LPAREN_AT);
646
+ END_STATE();
647
+ case 30:
648
+ ACCEPT_TOKEN(anon_sym_RPAREN);
649
+ END_STATE();
650
+ case 31:
651
+ ACCEPT_TOKEN(anon_sym_BANG);
652
+ END_STATE();
653
+ case 32:
654
+ ACCEPT_TOKEN(sym_integer);
655
+ if (lookahead == '.') ADVANCE(35);
656
+ if (lookahead == 'E' ||
657
+ lookahead == 'e') ADVANCE(10);
658
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(32);
659
+ END_STATE();
660
+ case 33:
661
+ ACCEPT_TOKEN(sym_integer);
662
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33);
663
+ END_STATE();
664
+ case 34:
665
+ ACCEPT_TOKEN(sym_numeric_literal);
666
+ if (lookahead == '.') ADVANCE(35);
667
+ if (lookahead == 'E' ||
668
+ lookahead == 'e') ADVANCE(10);
669
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34);
670
+ END_STATE();
671
+ case 35:
672
+ ACCEPT_TOKEN(sym_numeric_literal);
673
+ if (lookahead == 'E' ||
674
+ lookahead == 'e') ADVANCE(10);
675
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(35);
676
+ END_STATE();
677
+ case 36:
678
+ ACCEPT_TOKEN(sym_numeric_literal);
679
+ if (lookahead == '0' ||
680
+ lookahead == '1') ADVANCE(36);
681
+ END_STATE();
682
+ case 37:
683
+ ACCEPT_TOKEN(sym_numeric_literal);
684
+ if (('0' <= lookahead && lookahead <= '7')) ADVANCE(37);
685
+ END_STATE();
686
+ case 38:
687
+ ACCEPT_TOKEN(sym_numeric_literal);
688
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38);
689
+ END_STATE();
690
+ case 39:
691
+ ACCEPT_TOKEN(sym_numeric_literal);
692
+ if (('0' <= lookahead && lookahead <= '9') ||
693
+ ('A' <= lookahead && lookahead <= 'F') ||
694
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(39);
695
+ END_STATE();
696
+ case 40:
697
+ ACCEPT_TOKEN(anon_sym_DQUOTE);
698
+ END_STATE();
699
+ case 41:
700
+ ACCEPT_TOKEN(anon_sym_DQUOTE);
701
+ if (lookahead == '"') ADVANCE(45);
702
+ END_STATE();
703
+ case 42:
704
+ ACCEPT_TOKEN(aux_sym_string_literal_token1);
705
+ END_STATE();
706
+ case 43:
707
+ ACCEPT_TOKEN(aux_sym_string_literal_token1);
708
+ if (lookahead == '/') ADVANCE(54);
709
+ END_STATE();
710
+ case 44:
711
+ ACCEPT_TOKEN(aux_sym_string_literal_token1);
712
+ if (lookahead == '/') ADVANCE(43);
713
+ if (lookahead == '\t' ||
714
+ lookahead == ' ') ADVANCE(44);
715
+ if (lookahead != 0 &&
716
+ lookahead != '\n' &&
717
+ lookahead != '"') ADVANCE(42);
718
+ END_STATE();
719
+ case 45:
720
+ ACCEPT_TOKEN(anon_sym_DQUOTE_DQUOTE);
721
+ END_STATE();
722
+ case 46:
723
+ ACCEPT_TOKEN(anon_sym_SQUOTE);
724
+ END_STATE();
725
+ case 47:
726
+ ACCEPT_TOKEN(anon_sym_SQUOTE);
727
+ if (lookahead == '\'') ADVANCE(51);
728
+ END_STATE();
729
+ case 48:
730
+ ACCEPT_TOKEN(aux_sym_string_literal_token2);
731
+ END_STATE();
732
+ case 49:
733
+ ACCEPT_TOKEN(aux_sym_string_literal_token2);
734
+ if (lookahead == '/') ADVANCE(54);
735
+ END_STATE();
736
+ case 50:
737
+ ACCEPT_TOKEN(aux_sym_string_literal_token2);
738
+ if (lookahead == '/') ADVANCE(49);
739
+ if (lookahead == '\t' ||
740
+ lookahead == ' ') ADVANCE(50);
741
+ if (lookahead != 0 &&
742
+ lookahead != '\n' &&
743
+ lookahead != '\'') ADVANCE(48);
744
+ END_STATE();
745
+ case 51:
746
+ ACCEPT_TOKEN(anon_sym_SQUOTE_SQUOTE);
747
+ END_STATE();
748
+ case 52:
749
+ ACCEPT_TOKEN(anon_sym_ON);
750
+ if (('0' <= lookahead && lookahead <= '9') ||
751
+ ('A' <= lookahead && lookahead <= 'Z') ||
752
+ lookahead == '_' ||
753
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
754
+ END_STATE();
755
+ case 53:
756
+ ACCEPT_TOKEN(anon_sym_OFF);
757
+ if (('0' <= lookahead && lookahead <= '9') ||
758
+ ('A' <= lookahead && lookahead <= 'Z') ||
759
+ lookahead == '_' ||
760
+ ('a' <= lookahead && lookahead <= 'z')) ADVANCE(26);
761
+ END_STATE();
762
+ case 54:
763
+ ACCEPT_TOKEN(sym_comment);
764
+ if (lookahead != 0 &&
765
+ lookahead != '\n') ADVANCE(54);
766
+ END_STATE();
767
+ case 55:
768
+ ACCEPT_TOKEN(sym__separator);
769
+ if (lookahead == '\t' ||
770
+ lookahead == ' ') ADVANCE(55);
771
+ END_STATE();
772
+ default:
773
+ return false;
774
+ }
775
+ }
776
+
777
+ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
778
+ [0] = {.lex_state = 0},
779
+ [1] = {.lex_state = 17},
780
+ [2] = {.lex_state = 2},
781
+ [3] = {.lex_state = 2},
782
+ [4] = {.lex_state = 17},
783
+ [5] = {.lex_state = 17},
784
+ [6] = {.lex_state = 17},
785
+ [7] = {.lex_state = 6},
786
+ [8] = {.lex_state = 6},
787
+ [9] = {.lex_state = 6},
788
+ [10] = {.lex_state = 6},
789
+ [11] = {.lex_state = 6},
790
+ [12] = {.lex_state = 0},
791
+ [13] = {.lex_state = 0},
792
+ [14] = {.lex_state = 6},
793
+ [15] = {.lex_state = 0},
794
+ [16] = {.lex_state = 6},
795
+ [17] = {.lex_state = 17},
796
+ [18] = {.lex_state = 17},
797
+ [19] = {.lex_state = 3},
798
+ [20] = {.lex_state = 17},
799
+ [21] = {.lex_state = 0},
800
+ [22] = {.lex_state = 0},
801
+ [23] = {.lex_state = 3},
802
+ [24] = {.lex_state = 1},
803
+ [25] = {.lex_state = 6},
804
+ [26] = {.lex_state = 0},
805
+ [27] = {.lex_state = 3},
806
+ [28] = {.lex_state = 1},
807
+ [29] = {.lex_state = 4},
808
+ [30] = {.lex_state = 1},
809
+ [31] = {.lex_state = 0},
810
+ [32] = {.lex_state = 0},
811
+ [33] = {.lex_state = 0},
812
+ [34] = {.lex_state = 0},
813
+ [35] = {.lex_state = 6},
814
+ [36] = {.lex_state = 6},
815
+ [37] = {.lex_state = 0},
816
+ [38] = {.lex_state = 0},
817
+ [39] = {.lex_state = 0},
818
+ [40] = {.lex_state = 0},
819
+ [41] = {.lex_state = 0},
820
+ [42] = {.lex_state = 0},
821
+ [43] = {.lex_state = 0},
822
+ [44] = {.lex_state = 0},
823
+ [45] = {.lex_state = 6},
824
+ [46] = {.lex_state = 6},
825
+ [47] = {.lex_state = 0},
826
+ [48] = {.lex_state = 0},
827
+ [49] = {.lex_state = 0},
828
+ [50] = {.lex_state = 6},
829
+ [51] = {.lex_state = 17},
830
+ [52] = {.lex_state = 0},
831
+ [53] = {.lex_state = 0},
832
+ [54] = {.lex_state = 17},
833
+ [55] = {.lex_state = 17},
834
+ [56] = {.lex_state = 0},
835
+ [57] = {.lex_state = 17},
836
+ [58] = {.lex_state = 0},
837
+ [59] = {.lex_state = 0},
838
+ [60] = {.lex_state = 0},
839
+ [61] = {.lex_state = 17},
840
+ [62] = {.lex_state = 0},
841
+ };
842
+
843
+ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
844
+ [0] = {
845
+ [ts_builtin_sym_end] = ACTIONS(1),
846
+ [sym__terminator] = ACTIONS(1),
847
+ [anon_sym_SEMI] = ACTIONS(1),
848
+ [anon_sym_COLON] = ACTIONS(1),
849
+ [anon_sym_QMARK] = ACTIONS(1),
850
+ [anon_sym_STAR] = ACTIONS(1),
851
+ [aux_sym_mnemonic_token1] = ACTIONS(1),
852
+ [anon_sym_COMMA] = ACTIONS(1),
853
+ [anon_sym_LPAREN_AT] = ACTIONS(1),
854
+ [anon_sym_RPAREN] = ACTIONS(1),
855
+ [anon_sym_BANG] = ACTIONS(1),
856
+ [sym_integer] = ACTIONS(1),
857
+ [sym_numeric_literal] = ACTIONS(1),
858
+ [anon_sym_DQUOTE] = ACTIONS(1),
859
+ [anon_sym_DQUOTE_DQUOTE] = ACTIONS(1),
860
+ [anon_sym_SQUOTE] = ACTIONS(1),
861
+ [anon_sym_SQUOTE_SQUOTE] = ACTIONS(1),
862
+ [anon_sym_ON] = ACTIONS(1),
863
+ [anon_sym_OFF] = ACTIONS(1),
864
+ [sym_comment] = ACTIONS(3),
865
+ },
866
+ [1] = {
867
+ [sym_scpi_command] = STATE(60),
868
+ [sym__statement] = STATE(4),
869
+ [sym_program_message] = STATE(59),
870
+ [sym__program_message_unit] = STATE(37),
871
+ [sym_command_header] = STATE(35),
872
+ [sym_common_command_header] = STATE(35),
873
+ [sym_mnemonic] = STATE(9),
874
+ [aux_sym_scpi_command_repeat1] = STATE(4),
875
+ [ts_builtin_sym_end] = ACTIONS(5),
876
+ [sym__terminator] = ACTIONS(7),
877
+ [anon_sym_COLON] = ACTIONS(9),
878
+ [anon_sym_STAR] = ACTIONS(11),
879
+ [aux_sym_mnemonic_token1] = ACTIONS(13),
880
+ [sym_comment] = ACTIONS(3),
881
+ },
882
+ };
883
+
884
+ static const uint16_t ts_small_parse_table[] = {
885
+ [0] = 9,
886
+ ACTIONS(3), 1,
887
+ sym_comment,
888
+ ACTIONS(15), 1,
889
+ aux_sym_mnemonic_token1,
890
+ ACTIONS(17), 1,
891
+ anon_sym_LPAREN_AT,
892
+ ACTIONS(19), 1,
893
+ sym_numeric_literal,
894
+ ACTIONS(21), 1,
895
+ anon_sym_DQUOTE,
896
+ ACTIONS(23), 1,
897
+ anon_sym_SQUOTE,
898
+ STATE(52), 1,
899
+ sym_parameter_list,
900
+ ACTIONS(25), 2,
901
+ anon_sym_ON,
902
+ anon_sym_OFF,
903
+ STATE(31), 6,
904
+ sym__parameter,
905
+ sym__numeric_entry,
906
+ sym_channel_list,
907
+ sym_string_literal,
908
+ sym_boolean_literal,
909
+ sym_character_data,
910
+ [34] = 8,
911
+ ACTIONS(3), 1,
912
+ sym_comment,
913
+ ACTIONS(15), 1,
914
+ aux_sym_mnemonic_token1,
915
+ ACTIONS(17), 1,
916
+ anon_sym_LPAREN_AT,
917
+ ACTIONS(19), 1,
918
+ sym_numeric_literal,
919
+ ACTIONS(21), 1,
920
+ anon_sym_DQUOTE,
921
+ ACTIONS(23), 1,
922
+ anon_sym_SQUOTE,
923
+ ACTIONS(25), 2,
924
+ anon_sym_ON,
925
+ anon_sym_OFF,
926
+ STATE(43), 6,
927
+ sym__parameter,
928
+ sym__numeric_entry,
929
+ sym_channel_list,
930
+ sym_string_literal,
931
+ sym_boolean_literal,
932
+ sym_character_data,
933
+ [65] = 11,
934
+ ACTIONS(3), 1,
935
+ sym_comment,
936
+ ACTIONS(9), 1,
937
+ anon_sym_COLON,
938
+ ACTIONS(11), 1,
939
+ anon_sym_STAR,
940
+ ACTIONS(13), 1,
941
+ aux_sym_mnemonic_token1,
942
+ ACTIONS(27), 1,
943
+ ts_builtin_sym_end,
944
+ ACTIONS(29), 1,
945
+ sym__terminator,
946
+ STATE(9), 1,
947
+ sym_mnemonic,
948
+ STATE(37), 1,
949
+ sym__program_message_unit,
950
+ STATE(59), 1,
951
+ sym_program_message,
952
+ STATE(5), 2,
953
+ sym__statement,
954
+ aux_sym_scpi_command_repeat1,
955
+ STATE(35), 2,
956
+ sym_command_header,
957
+ sym_common_command_header,
958
+ [101] = 11,
959
+ ACTIONS(3), 1,
960
+ sym_comment,
961
+ ACTIONS(31), 1,
962
+ ts_builtin_sym_end,
963
+ ACTIONS(33), 1,
964
+ sym__terminator,
965
+ ACTIONS(36), 1,
966
+ anon_sym_COLON,
967
+ ACTIONS(39), 1,
968
+ anon_sym_STAR,
969
+ ACTIONS(42), 1,
970
+ aux_sym_mnemonic_token1,
971
+ STATE(9), 1,
972
+ sym_mnemonic,
973
+ STATE(37), 1,
974
+ sym__program_message_unit,
975
+ STATE(59), 1,
976
+ sym_program_message,
977
+ STATE(5), 2,
978
+ sym__statement,
979
+ aux_sym_scpi_command_repeat1,
980
+ STATE(35), 2,
981
+ sym_command_header,
982
+ sym_common_command_header,
983
+ [137] = 7,
984
+ ACTIONS(3), 1,
985
+ sym_comment,
986
+ ACTIONS(9), 1,
987
+ anon_sym_COLON,
988
+ ACTIONS(11), 1,
989
+ anon_sym_STAR,
990
+ ACTIONS(13), 1,
991
+ aux_sym_mnemonic_token1,
992
+ STATE(9), 1,
993
+ sym_mnemonic,
994
+ STATE(58), 1,
995
+ sym__program_message_unit,
996
+ STATE(35), 2,
997
+ sym_command_header,
998
+ sym_common_command_header,
999
+ [160] = 6,
1000
+ ACTIONS(47), 1,
1001
+ anon_sym_COLON,
1002
+ ACTIONS(49), 1,
1003
+ anon_sym_QMARK,
1004
+ ACTIONS(51), 1,
1005
+ sym_comment,
1006
+ ACTIONS(53), 1,
1007
+ sym__separator,
1008
+ STATE(8), 1,
1009
+ aux_sym_command_header_repeat1,
1010
+ ACTIONS(45), 2,
1011
+ sym__terminator,
1012
+ anon_sym_SEMI,
1013
+ [180] = 5,
1014
+ ACTIONS(51), 1,
1015
+ sym_comment,
1016
+ ACTIONS(57), 1,
1017
+ anon_sym_COLON,
1018
+ ACTIONS(60), 1,
1019
+ sym__separator,
1020
+ STATE(8), 1,
1021
+ aux_sym_command_header_repeat1,
1022
+ ACTIONS(55), 3,
1023
+ sym__terminator,
1024
+ anon_sym_SEMI,
1025
+ anon_sym_QMARK,
1026
+ [198] = 6,
1027
+ ACTIONS(47), 1,
1028
+ anon_sym_COLON,
1029
+ ACTIONS(51), 1,
1030
+ sym_comment,
1031
+ ACTIONS(64), 1,
1032
+ anon_sym_QMARK,
1033
+ ACTIONS(66), 1,
1034
+ sym__separator,
1035
+ STATE(7), 1,
1036
+ aux_sym_command_header_repeat1,
1037
+ ACTIONS(62), 2,
1038
+ sym__terminator,
1039
+ anon_sym_SEMI,
1040
+ [218] = 6,
1041
+ ACTIONS(47), 1,
1042
+ anon_sym_COLON,
1043
+ ACTIONS(49), 1,
1044
+ anon_sym_QMARK,
1045
+ ACTIONS(51), 1,
1046
+ sym_comment,
1047
+ ACTIONS(53), 1,
1048
+ sym__separator,
1049
+ STATE(11), 1,
1050
+ aux_sym_command_header_repeat1,
1051
+ ACTIONS(45), 2,
1052
+ sym__terminator,
1053
+ anon_sym_SEMI,
1054
+ [238] = 6,
1055
+ ACTIONS(47), 1,
1056
+ anon_sym_COLON,
1057
+ ACTIONS(51), 1,
1058
+ sym_comment,
1059
+ ACTIONS(70), 1,
1060
+ anon_sym_QMARK,
1061
+ ACTIONS(72), 1,
1062
+ sym__separator,
1063
+ STATE(8), 1,
1064
+ aux_sym_command_header_repeat1,
1065
+ ACTIONS(68), 2,
1066
+ sym__terminator,
1067
+ anon_sym_SEMI,
1068
+ [258] = 4,
1069
+ ACTIONS(3), 1,
1070
+ sym_comment,
1071
+ ACTIONS(76), 1,
1072
+ anon_sym_BANG,
1073
+ STATE(12), 1,
1074
+ aux_sym_channel_spec_repeat1,
1075
+ ACTIONS(74), 3,
1076
+ anon_sym_COLON,
1077
+ anon_sym_COMMA,
1078
+ anon_sym_RPAREN,
1079
+ [273] = 4,
1080
+ ACTIONS(3), 1,
1081
+ sym_comment,
1082
+ ACTIONS(81), 1,
1083
+ anon_sym_BANG,
1084
+ STATE(12), 1,
1085
+ aux_sym_channel_spec_repeat1,
1086
+ ACTIONS(79), 3,
1087
+ anon_sym_COLON,
1088
+ anon_sym_COMMA,
1089
+ anon_sym_RPAREN,
1090
+ [288] = 3,
1091
+ ACTIONS(51), 1,
1092
+ sym_comment,
1093
+ ACTIONS(85), 1,
1094
+ sym__separator,
1095
+ ACTIONS(83), 4,
1096
+ sym__terminator,
1097
+ anon_sym_SEMI,
1098
+ anon_sym_COLON,
1099
+ anon_sym_QMARK,
1100
+ [301] = 4,
1101
+ ACTIONS(3), 1,
1102
+ sym_comment,
1103
+ ACTIONS(81), 1,
1104
+ anon_sym_BANG,
1105
+ STATE(13), 1,
1106
+ aux_sym_channel_spec_repeat1,
1107
+ ACTIONS(87), 3,
1108
+ anon_sym_COLON,
1109
+ anon_sym_COMMA,
1110
+ anon_sym_RPAREN,
1111
+ [316] = 3,
1112
+ ACTIONS(51), 1,
1113
+ sym_comment,
1114
+ ACTIONS(60), 1,
1115
+ sym__separator,
1116
+ ACTIONS(55), 4,
1117
+ sym__terminator,
1118
+ anon_sym_SEMI,
1119
+ anon_sym_COLON,
1120
+ anon_sym_QMARK,
1121
+ [329] = 2,
1122
+ ACTIONS(3), 1,
1123
+ sym_comment,
1124
+ ACTIONS(89), 5,
1125
+ ts_builtin_sym_end,
1126
+ sym__terminator,
1127
+ anon_sym_COLON,
1128
+ anon_sym_STAR,
1129
+ aux_sym_mnemonic_token1,
1130
+ [340] = 5,
1131
+ ACTIONS(3), 1,
1132
+ sym_comment,
1133
+ ACTIONS(91), 1,
1134
+ sym_integer,
1135
+ STATE(40), 1,
1136
+ sym_channel_spec,
1137
+ STATE(62), 1,
1138
+ sym__channel_spec_list,
1139
+ STATE(39), 2,
1140
+ sym__channel_item,
1141
+ sym_channel_range,
1142
+ [357] = 4,
1143
+ ACTIONS(51), 1,
1144
+ sym_comment,
1145
+ ACTIONS(93), 1,
1146
+ anon_sym_SQUOTE,
1147
+ STATE(27), 1,
1148
+ aux_sym_string_literal_repeat2,
1149
+ ACTIONS(95), 2,
1150
+ aux_sym_string_literal_token2,
1151
+ anon_sym_SQUOTE_SQUOTE,
1152
+ [371] = 4,
1153
+ ACTIONS(3), 1,
1154
+ sym_comment,
1155
+ ACTIONS(91), 1,
1156
+ sym_integer,
1157
+ STATE(40), 1,
1158
+ sym_channel_spec,
1159
+ STATE(56), 2,
1160
+ sym__channel_item,
1161
+ sym_channel_range,
1162
+ [385] = 2,
1163
+ ACTIONS(3), 1,
1164
+ sym_comment,
1165
+ ACTIONS(74), 4,
1166
+ anon_sym_COLON,
1167
+ anon_sym_COMMA,
1168
+ anon_sym_RPAREN,
1169
+ anon_sym_BANG,
1170
+ [395] = 4,
1171
+ ACTIONS(3), 1,
1172
+ sym_comment,
1173
+ ACTIONS(99), 1,
1174
+ anon_sym_COMMA,
1175
+ STATE(22), 1,
1176
+ aux_sym_parameter_list_repeat1,
1177
+ ACTIONS(97), 2,
1178
+ sym__terminator,
1179
+ anon_sym_SEMI,
1180
+ [409] = 4,
1181
+ ACTIONS(51), 1,
1182
+ sym_comment,
1183
+ ACTIONS(102), 1,
1184
+ anon_sym_SQUOTE,
1185
+ STATE(23), 1,
1186
+ aux_sym_string_literal_repeat2,
1187
+ ACTIONS(104), 2,
1188
+ aux_sym_string_literal_token2,
1189
+ anon_sym_SQUOTE_SQUOTE,
1190
+ [423] = 4,
1191
+ ACTIONS(51), 1,
1192
+ sym_comment,
1193
+ ACTIONS(107), 1,
1194
+ anon_sym_DQUOTE,
1195
+ STATE(24), 1,
1196
+ aux_sym_string_literal_repeat1,
1197
+ ACTIONS(109), 2,
1198
+ aux_sym_string_literal_token1,
1199
+ anon_sym_DQUOTE_DQUOTE,
1200
+ [437] = 4,
1201
+ ACTIONS(51), 1,
1202
+ sym_comment,
1203
+ ACTIONS(114), 1,
1204
+ anon_sym_QMARK,
1205
+ ACTIONS(116), 1,
1206
+ sym__separator,
1207
+ ACTIONS(112), 2,
1208
+ sym__terminator,
1209
+ anon_sym_SEMI,
1210
+ [451] = 4,
1211
+ ACTIONS(3), 1,
1212
+ sym_comment,
1213
+ ACTIONS(120), 1,
1214
+ anon_sym_COMMA,
1215
+ STATE(22), 1,
1216
+ aux_sym_parameter_list_repeat1,
1217
+ ACTIONS(118), 2,
1218
+ sym__terminator,
1219
+ anon_sym_SEMI,
1220
+ [465] = 4,
1221
+ ACTIONS(51), 1,
1222
+ sym_comment,
1223
+ ACTIONS(122), 1,
1224
+ anon_sym_SQUOTE,
1225
+ STATE(23), 1,
1226
+ aux_sym_string_literal_repeat2,
1227
+ ACTIONS(124), 2,
1228
+ aux_sym_string_literal_token2,
1229
+ anon_sym_SQUOTE_SQUOTE,
1230
+ [479] = 4,
1231
+ ACTIONS(51), 1,
1232
+ sym_comment,
1233
+ ACTIONS(122), 1,
1234
+ anon_sym_DQUOTE,
1235
+ STATE(24), 1,
1236
+ aux_sym_string_literal_repeat1,
1237
+ ACTIONS(126), 2,
1238
+ aux_sym_string_literal_token1,
1239
+ anon_sym_DQUOTE_DQUOTE,
1240
+ [493] = 3,
1241
+ ACTIONS(3), 1,
1242
+ sym_comment,
1243
+ ACTIONS(130), 1,
1244
+ sym_suffix,
1245
+ ACTIONS(128), 3,
1246
+ sym__terminator,
1247
+ anon_sym_SEMI,
1248
+ anon_sym_COMMA,
1249
+ [505] = 4,
1250
+ ACTIONS(51), 1,
1251
+ sym_comment,
1252
+ ACTIONS(93), 1,
1253
+ anon_sym_DQUOTE,
1254
+ STATE(28), 1,
1255
+ aux_sym_string_literal_repeat1,
1256
+ ACTIONS(132), 2,
1257
+ aux_sym_string_literal_token1,
1258
+ anon_sym_DQUOTE_DQUOTE,
1259
+ [519] = 4,
1260
+ ACTIONS(3), 1,
1261
+ sym_comment,
1262
+ ACTIONS(120), 1,
1263
+ anon_sym_COMMA,
1264
+ STATE(26), 1,
1265
+ aux_sym_parameter_list_repeat1,
1266
+ ACTIONS(134), 2,
1267
+ sym__terminator,
1268
+ anon_sym_SEMI,
1269
+ [533] = 2,
1270
+ ACTIONS(3), 1,
1271
+ sym_comment,
1272
+ ACTIONS(136), 3,
1273
+ sym__terminator,
1274
+ anon_sym_SEMI,
1275
+ anon_sym_COMMA,
1276
+ [542] = 2,
1277
+ ACTIONS(3), 1,
1278
+ sym_comment,
1279
+ ACTIONS(138), 3,
1280
+ sym__terminator,
1281
+ anon_sym_SEMI,
1282
+ anon_sym_COMMA,
1283
+ [551] = 4,
1284
+ ACTIONS(3), 1,
1285
+ sym_comment,
1286
+ ACTIONS(140), 1,
1287
+ anon_sym_COMMA,
1288
+ ACTIONS(143), 1,
1289
+ anon_sym_RPAREN,
1290
+ STATE(34), 1,
1291
+ aux_sym__channel_spec_list_repeat1,
1292
+ [564] = 3,
1293
+ ACTIONS(51), 1,
1294
+ sym_comment,
1295
+ ACTIONS(147), 1,
1296
+ sym__separator,
1297
+ ACTIONS(145), 2,
1298
+ sym__terminator,
1299
+ anon_sym_SEMI,
1300
+ [575] = 3,
1301
+ ACTIONS(51), 1,
1302
+ sym_comment,
1303
+ ACTIONS(151), 1,
1304
+ sym__separator,
1305
+ ACTIONS(149), 2,
1306
+ sym__terminator,
1307
+ anon_sym_SEMI,
1308
+ [586] = 4,
1309
+ ACTIONS(3), 1,
1310
+ sym_comment,
1311
+ ACTIONS(153), 1,
1312
+ sym__terminator,
1313
+ ACTIONS(155), 1,
1314
+ anon_sym_SEMI,
1315
+ STATE(38), 1,
1316
+ aux_sym_program_message_repeat1,
1317
+ [599] = 4,
1318
+ ACTIONS(3), 1,
1319
+ sym_comment,
1320
+ ACTIONS(155), 1,
1321
+ anon_sym_SEMI,
1322
+ ACTIONS(157), 1,
1323
+ sym__terminator,
1324
+ STATE(44), 1,
1325
+ aux_sym_program_message_repeat1,
1326
+ [612] = 4,
1327
+ ACTIONS(3), 1,
1328
+ sym_comment,
1329
+ ACTIONS(159), 1,
1330
+ anon_sym_COMMA,
1331
+ ACTIONS(161), 1,
1332
+ anon_sym_RPAREN,
1333
+ STATE(48), 1,
1334
+ aux_sym__channel_spec_list_repeat1,
1335
+ [625] = 3,
1336
+ ACTIONS(3), 1,
1337
+ sym_comment,
1338
+ ACTIONS(163), 1,
1339
+ anon_sym_COLON,
1340
+ ACTIONS(165), 2,
1341
+ anon_sym_COMMA,
1342
+ anon_sym_RPAREN,
1343
+ [636] = 2,
1344
+ ACTIONS(3), 1,
1345
+ sym_comment,
1346
+ ACTIONS(167), 3,
1347
+ sym__terminator,
1348
+ anon_sym_SEMI,
1349
+ anon_sym_COMMA,
1350
+ [645] = 2,
1351
+ ACTIONS(3), 1,
1352
+ sym_comment,
1353
+ ACTIONS(169), 3,
1354
+ sym__terminator,
1355
+ anon_sym_SEMI,
1356
+ anon_sym_COMMA,
1357
+ [654] = 2,
1358
+ ACTIONS(3), 1,
1359
+ sym_comment,
1360
+ ACTIONS(97), 3,
1361
+ sym__terminator,
1362
+ anon_sym_SEMI,
1363
+ anon_sym_COMMA,
1364
+ [663] = 4,
1365
+ ACTIONS(3), 1,
1366
+ sym_comment,
1367
+ ACTIONS(171), 1,
1368
+ sym__terminator,
1369
+ ACTIONS(173), 1,
1370
+ anon_sym_SEMI,
1371
+ STATE(44), 1,
1372
+ aux_sym_program_message_repeat1,
1373
+ [676] = 3,
1374
+ ACTIONS(51), 1,
1375
+ sym_comment,
1376
+ ACTIONS(53), 1,
1377
+ sym__separator,
1378
+ ACTIONS(45), 2,
1379
+ sym__terminator,
1380
+ anon_sym_SEMI,
1381
+ [687] = 3,
1382
+ ACTIONS(51), 1,
1383
+ sym_comment,
1384
+ ACTIONS(72), 1,
1385
+ sym__separator,
1386
+ ACTIONS(68), 2,
1387
+ sym__terminator,
1388
+ anon_sym_SEMI,
1389
+ [698] = 2,
1390
+ ACTIONS(3), 1,
1391
+ sym_comment,
1392
+ ACTIONS(176), 3,
1393
+ sym__terminator,
1394
+ anon_sym_SEMI,
1395
+ anon_sym_COMMA,
1396
+ [707] = 4,
1397
+ ACTIONS(3), 1,
1398
+ sym_comment,
1399
+ ACTIONS(159), 1,
1400
+ anon_sym_COMMA,
1401
+ ACTIONS(178), 1,
1402
+ anon_sym_RPAREN,
1403
+ STATE(34), 1,
1404
+ aux_sym__channel_spec_list_repeat1,
1405
+ [720] = 2,
1406
+ ACTIONS(3), 1,
1407
+ sym_comment,
1408
+ ACTIONS(180), 3,
1409
+ sym__terminator,
1410
+ anon_sym_SEMI,
1411
+ anon_sym_COMMA,
1412
+ [729] = 3,
1413
+ ACTIONS(51), 1,
1414
+ sym_comment,
1415
+ ACTIONS(184), 1,
1416
+ sym__separator,
1417
+ ACTIONS(182), 2,
1418
+ sym__terminator,
1419
+ anon_sym_SEMI,
1420
+ [740] = 3,
1421
+ ACTIONS(3), 1,
1422
+ sym_comment,
1423
+ ACTIONS(91), 1,
1424
+ sym_integer,
1425
+ STATE(53), 1,
1426
+ sym_channel_spec,
1427
+ [750] = 2,
1428
+ ACTIONS(3), 1,
1429
+ sym_comment,
1430
+ ACTIONS(186), 2,
1431
+ sym__terminator,
1432
+ anon_sym_SEMI,
1433
+ [758] = 2,
1434
+ ACTIONS(3), 1,
1435
+ sym_comment,
1436
+ ACTIONS(188), 2,
1437
+ anon_sym_COMMA,
1438
+ anon_sym_RPAREN,
1439
+ [766] = 3,
1440
+ ACTIONS(3), 1,
1441
+ sym_comment,
1442
+ ACTIONS(13), 1,
1443
+ aux_sym_mnemonic_token1,
1444
+ STATE(16), 1,
1445
+ sym_mnemonic,
1446
+ [776] = 3,
1447
+ ACTIONS(3), 1,
1448
+ sym_comment,
1449
+ ACTIONS(13), 1,
1450
+ aux_sym_mnemonic_token1,
1451
+ STATE(25), 1,
1452
+ sym_mnemonic,
1453
+ [786] = 2,
1454
+ ACTIONS(3), 1,
1455
+ sym_comment,
1456
+ ACTIONS(143), 2,
1457
+ anon_sym_COMMA,
1458
+ anon_sym_RPAREN,
1459
+ [794] = 3,
1460
+ ACTIONS(3), 1,
1461
+ sym_comment,
1462
+ ACTIONS(13), 1,
1463
+ aux_sym_mnemonic_token1,
1464
+ STATE(10), 1,
1465
+ sym_mnemonic,
1466
+ [804] = 2,
1467
+ ACTIONS(3), 1,
1468
+ sym_comment,
1469
+ ACTIONS(171), 2,
1470
+ sym__terminator,
1471
+ anon_sym_SEMI,
1472
+ [812] = 2,
1473
+ ACTIONS(3), 1,
1474
+ sym_comment,
1475
+ ACTIONS(190), 1,
1476
+ sym__terminator,
1477
+ [819] = 2,
1478
+ ACTIONS(3), 1,
1479
+ sym_comment,
1480
+ ACTIONS(192), 1,
1481
+ ts_builtin_sym_end,
1482
+ [826] = 2,
1483
+ ACTIONS(3), 1,
1484
+ sym_comment,
1485
+ ACTIONS(194), 1,
1486
+ sym_integer,
1487
+ [833] = 2,
1488
+ ACTIONS(3), 1,
1489
+ sym_comment,
1490
+ ACTIONS(196), 1,
1491
+ anon_sym_RPAREN,
1492
+ };
1493
+
1494
+ static const uint32_t ts_small_parse_table_map[] = {
1495
+ [SMALL_STATE(2)] = 0,
1496
+ [SMALL_STATE(3)] = 34,
1497
+ [SMALL_STATE(4)] = 65,
1498
+ [SMALL_STATE(5)] = 101,
1499
+ [SMALL_STATE(6)] = 137,
1500
+ [SMALL_STATE(7)] = 160,
1501
+ [SMALL_STATE(8)] = 180,
1502
+ [SMALL_STATE(9)] = 198,
1503
+ [SMALL_STATE(10)] = 218,
1504
+ [SMALL_STATE(11)] = 238,
1505
+ [SMALL_STATE(12)] = 258,
1506
+ [SMALL_STATE(13)] = 273,
1507
+ [SMALL_STATE(14)] = 288,
1508
+ [SMALL_STATE(15)] = 301,
1509
+ [SMALL_STATE(16)] = 316,
1510
+ [SMALL_STATE(17)] = 329,
1511
+ [SMALL_STATE(18)] = 340,
1512
+ [SMALL_STATE(19)] = 357,
1513
+ [SMALL_STATE(20)] = 371,
1514
+ [SMALL_STATE(21)] = 385,
1515
+ [SMALL_STATE(22)] = 395,
1516
+ [SMALL_STATE(23)] = 409,
1517
+ [SMALL_STATE(24)] = 423,
1518
+ [SMALL_STATE(25)] = 437,
1519
+ [SMALL_STATE(26)] = 451,
1520
+ [SMALL_STATE(27)] = 465,
1521
+ [SMALL_STATE(28)] = 479,
1522
+ [SMALL_STATE(29)] = 493,
1523
+ [SMALL_STATE(30)] = 505,
1524
+ [SMALL_STATE(31)] = 519,
1525
+ [SMALL_STATE(32)] = 533,
1526
+ [SMALL_STATE(33)] = 542,
1527
+ [SMALL_STATE(34)] = 551,
1528
+ [SMALL_STATE(35)] = 564,
1529
+ [SMALL_STATE(36)] = 575,
1530
+ [SMALL_STATE(37)] = 586,
1531
+ [SMALL_STATE(38)] = 599,
1532
+ [SMALL_STATE(39)] = 612,
1533
+ [SMALL_STATE(40)] = 625,
1534
+ [SMALL_STATE(41)] = 636,
1535
+ [SMALL_STATE(42)] = 645,
1536
+ [SMALL_STATE(43)] = 654,
1537
+ [SMALL_STATE(44)] = 663,
1538
+ [SMALL_STATE(45)] = 676,
1539
+ [SMALL_STATE(46)] = 687,
1540
+ [SMALL_STATE(47)] = 698,
1541
+ [SMALL_STATE(48)] = 707,
1542
+ [SMALL_STATE(49)] = 720,
1543
+ [SMALL_STATE(50)] = 729,
1544
+ [SMALL_STATE(51)] = 740,
1545
+ [SMALL_STATE(52)] = 750,
1546
+ [SMALL_STATE(53)] = 758,
1547
+ [SMALL_STATE(54)] = 766,
1548
+ [SMALL_STATE(55)] = 776,
1549
+ [SMALL_STATE(56)] = 786,
1550
+ [SMALL_STATE(57)] = 794,
1551
+ [SMALL_STATE(58)] = 804,
1552
+ [SMALL_STATE(59)] = 812,
1553
+ [SMALL_STATE(60)] = 819,
1554
+ [SMALL_STATE(61)] = 826,
1555
+ [SMALL_STATE(62)] = 833,
1556
+ };
1557
+
1558
+ static const TSParseActionEntry ts_parse_actions[] = {
1559
+ [0] = {.entry = {.count = 0, .reusable = false}},
1560
+ [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
1561
+ [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
1562
+ [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scpi_command, 0),
1563
+ [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
1564
+ [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
1565
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
1566
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
1567
+ [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33),
1568
+ [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
1569
+ [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29),
1570
+ [21] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
1571
+ [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
1572
+ [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
1573
+ [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_scpi_command, 1),
1574
+ [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
1575
+ [31] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_scpi_command_repeat1, 2),
1576
+ [33] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_scpi_command_repeat1, 2), SHIFT_REPEAT(5),
1577
+ [36] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_scpi_command_repeat1, 2), SHIFT_REPEAT(57),
1578
+ [39] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_scpi_command_repeat1, 2), SHIFT_REPEAT(55),
1579
+ [42] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_scpi_command_repeat1, 2), SHIFT_REPEAT(14),
1580
+ [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_header, 2),
1581
+ [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
1582
+ [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
1583
+ [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
1584
+ [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_header, 2),
1585
+ [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_command_header_repeat1, 2),
1586
+ [57] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_command_header_repeat1, 2), SHIFT_REPEAT(54),
1587
+ [60] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_command_header_repeat1, 2),
1588
+ [62] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_header, 1),
1589
+ [64] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45),
1590
+ [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_header, 1),
1591
+ [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_header, 3),
1592
+ [70] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36),
1593
+ [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_header, 3),
1594
+ [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_channel_spec_repeat1, 2),
1595
+ [76] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_channel_spec_repeat1, 2), SHIFT_REPEAT(61),
1596
+ [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_channel_spec, 2),
1597
+ [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
1598
+ [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mnemonic, 1),
1599
+ [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mnemonic, 1),
1600
+ [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_channel_spec, 1),
1601
+ [89] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__statement, 2),
1602
+ [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
1603
+ [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
1604
+ [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27),
1605
+ [97] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2),
1606
+ [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameter_list_repeat1, 2), SHIFT_REPEAT(3),
1607
+ [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat2, 2),
1608
+ [104] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat2, 2), SHIFT_REPEAT(23),
1609
+ [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2),
1610
+ [109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_literal_repeat1, 2), SHIFT_REPEAT(24),
1611
+ [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_common_command_header, 2),
1612
+ [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(50),
1613
+ [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_common_command_header, 2),
1614
+ [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 2),
1615
+ [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
1616
+ [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32),
1617
+ [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23),
1618
+ [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24),
1619
+ [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__numeric_entry, 1),
1620
+ [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41),
1621
+ [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28),
1622
+ [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter_list, 1),
1623
+ [136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 3),
1624
+ [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_character_data, 1),
1625
+ [140] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__channel_spec_list_repeat1, 2), SHIFT_REPEAT(20),
1626
+ [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__channel_spec_list_repeat1, 2),
1627
+ [145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__program_message_unit, 1),
1628
+ [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
1629
+ [149] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_command_header, 4),
1630
+ [151] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command_header, 4),
1631
+ [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program_message, 1),
1632
+ [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
1633
+ [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program_message, 2),
1634
+ [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20),
1635
+ [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__channel_spec_list, 1),
1636
+ [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
1637
+ [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__channel_item, 1),
1638
+ [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__numeric_entry, 2),
1639
+ [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_literal, 2),
1640
+ [171] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_message_repeat1, 2),
1641
+ [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_message_repeat1, 2), SHIFT_REPEAT(6),
1642
+ [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_literal, 1),
1643
+ [178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__channel_spec_list, 2),
1644
+ [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_channel_list, 3),
1645
+ [182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_common_command_header, 3),
1646
+ [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_common_command_header, 3),
1647
+ [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__program_message_unit, 3),
1648
+ [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_channel_range, 3),
1649
+ [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
1650
+ [192] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
1651
+ [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
1652
+ [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
1653
+ };
1654
+
1655
+ #ifdef __cplusplus
1656
+ extern "C" {
1657
+ #endif
1658
+ #ifdef _WIN32
1659
+ #define extern __declspec(dllexport)
1660
+ #endif
1661
+
1662
+ extern const TSLanguage *tree_sitter_scpi(void) {
1663
+ static const TSLanguage language = {
1664
+ .version = LANGUAGE_VERSION,
1665
+ .symbol_count = SYMBOL_COUNT,
1666
+ .alias_count = ALIAS_COUNT,
1667
+ .token_count = TOKEN_COUNT,
1668
+ .external_token_count = EXTERNAL_TOKEN_COUNT,
1669
+ .state_count = STATE_COUNT,
1670
+ .large_state_count = LARGE_STATE_COUNT,
1671
+ .production_id_count = PRODUCTION_ID_COUNT,
1672
+ .field_count = FIELD_COUNT,
1673
+ .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
1674
+ .parse_table = &ts_parse_table[0][0],
1675
+ .small_parse_table = ts_small_parse_table,
1676
+ .small_parse_table_map = ts_small_parse_table_map,
1677
+ .parse_actions = ts_parse_actions,
1678
+ .symbol_names = ts_symbol_names,
1679
+ .symbol_metadata = ts_symbol_metadata,
1680
+ .public_symbol_map = ts_symbol_map,
1681
+ .alias_map = ts_non_terminal_alias_map,
1682
+ .alias_sequences = &ts_alias_sequences[0][0],
1683
+ .lex_modes = ts_lex_modes,
1684
+ .lex_fn = ts_lex,
1685
+ .primary_state_ids = ts_primary_state_ids,
1686
+ };
1687
+ return &language;
1688
+ }
1689
+ #ifdef __cplusplus
1690
+ }
1691
+ #endif