circuitscript 0.1.23 → 0.1.24

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.
Files changed (57) hide show
  1. package/dist/cjs/BaseVisitor.js +35 -23
  2. package/dist/cjs/BomGeneration.js +167 -0
  3. package/dist/cjs/ComponentMatchConditions.js +116 -0
  4. package/dist/cjs/antlr/CircuitScriptLexer.js +247 -244
  5. package/dist/cjs/antlr/CircuitScriptParser.js +1476 -825
  6. package/dist/cjs/builtinMethods.js +6 -1
  7. package/dist/cjs/execute.js +27 -16
  8. package/dist/cjs/graph.js +10 -9
  9. package/dist/cjs/helpers.js +23 -4
  10. package/dist/cjs/layout.js +14 -13
  11. package/dist/cjs/main.js +17 -1
  12. package/dist/cjs/objects/ExecutionScope.js +3 -0
  13. package/dist/cjs/objects/PinDefinition.js +11 -1
  14. package/dist/cjs/objects/types.js +6 -4
  15. package/dist/cjs/rules-check/no-connect-on-connected-pin.js +81 -0
  16. package/dist/cjs/rules-check/rules.js +74 -0
  17. package/dist/cjs/rules-check/unconnected-pins.js +52 -0
  18. package/dist/cjs/visitor.js +121 -5
  19. package/dist/esm/BaseVisitor.js +35 -23
  20. package/dist/esm/BomGeneration.js +137 -0
  21. package/dist/esm/ComponentMatchConditions.js +109 -0
  22. package/dist/esm/antlr/CircuitScriptLexer.js +247 -244
  23. package/dist/esm/antlr/CircuitScriptParser.js +1471 -824
  24. package/dist/esm/antlr/CircuitScriptVisitor.js +7 -0
  25. package/dist/esm/builtinMethods.js +6 -1
  26. package/dist/esm/execute.js +27 -16
  27. package/dist/esm/graph.js +11 -10
  28. package/dist/esm/helpers.js +23 -4
  29. package/dist/esm/layout.js +15 -13
  30. package/dist/esm/main.js +17 -1
  31. package/dist/esm/objects/ExecutionScope.js +3 -0
  32. package/dist/esm/objects/PinDefinition.js +11 -1
  33. package/dist/esm/objects/types.js +7 -5
  34. package/dist/esm/rules-check/no-connect-on-connected-pin.js +77 -0
  35. package/dist/esm/rules-check/rules.js +70 -0
  36. package/dist/esm/rules-check/unconnected-pins.js +48 -0
  37. package/dist/esm/visitor.js +121 -5
  38. package/dist/libs/std.cst +7 -3
  39. package/dist/types/BomGeneration.d.ts +13 -0
  40. package/dist/types/ComponentMatchConditions.d.ts +19 -0
  41. package/dist/types/antlr/CircuitScriptLexer.d.ts +60 -59
  42. package/dist/types/antlr/CircuitScriptParser.d.ts +146 -62
  43. package/dist/types/antlr/CircuitScriptVisitor.d.ts +14 -0
  44. package/dist/types/execute.d.ts +2 -1
  45. package/dist/types/graph.d.ts +6 -1
  46. package/dist/types/helpers.d.ts +3 -0
  47. package/dist/types/layout.d.ts +3 -2
  48. package/dist/types/objects/ExecutionScope.d.ts +8 -2
  49. package/dist/types/objects/ParamDefinition.d.ts +1 -1
  50. package/dist/types/objects/PinDefinition.d.ts +1 -0
  51. package/dist/types/objects/types.d.ts +4 -2
  52. package/dist/types/rules-check/no-connect-on-connected-pin.d.ts +3 -0
  53. package/dist/types/rules-check/rules.d.ts +15 -0
  54. package/dist/types/rules-check/unconnected-pins.d.ts +2 -0
  55. package/dist/types/visitor.d.ts +10 -1
  56. package/libs/std.cst +7 -3
  57. package/package.json +2 -1
@@ -7,67 +7,68 @@ export class CircuitScriptParser extends antlr.Parser {
7
7
  static T__4 = 5;
8
8
  static T__5 = 6;
9
9
  static T__6 = 7;
10
- static Break = 8;
11
- static Branch = 9;
12
- static Create = 10;
13
- static Component = 11;
14
- static Graphic = 12;
15
- static Module = 13;
16
- static Wire = 14;
17
- static Pin = 15;
18
- static Add = 16;
19
- static At = 17;
20
- static To = 18;
21
- static Point = 19;
22
- static Join = 20;
23
- static Parallel = 21;
24
- static Return = 22;
25
- static Define = 23;
26
- static Import = 24;
27
- static For = 25;
28
- static In = 26;
29
- static While = 27;
30
- static Continue = 28;
31
- static If = 29;
32
- static Else = 30;
33
- static Not = 31;
34
- static Frame = 32;
35
- static Sheet = 33;
36
- static Equals = 34;
37
- static NotEquals = 35;
38
- static GreaterThan = 36;
39
- static GreatOrEqualThan = 37;
40
- static LessThan = 38;
41
- static LessOrEqualThan = 39;
42
- static LogicalAnd = 40;
43
- static LogicalOr = 41;
44
- static Addition = 42;
45
- static Minus = 43;
46
- static Divide = 44;
47
- static Multiply = 45;
48
- static Modulus = 46;
49
- static AdditionAssign = 47;
50
- static MinusAssign = 48;
51
- static DivideAssign = 49;
52
- static MultiplyAssign = 50;
53
- static ModulusAssign = 51;
54
- static ANNOTATION_START = 52;
55
- static OPEN_PAREN = 53;
56
- static CLOSE_PAREN = 54;
57
- static NOT_CONNECTED = 55;
58
- static BOOLEAN_VALUE = 56;
59
- static ID = 57;
60
- static INTEGER_VALUE = 58;
61
- static DECIMAL_VALUE = 59;
62
- static NUMERIC_VALUE = 60;
63
- static STRING_VALUE = 61;
64
- static PERCENTAGE_VALUE = 62;
65
- static ALPHA_NUMERIC = 63;
66
- static WS = 64;
67
- static NEWLINE = 65;
68
- static COMMENT = 66;
69
- static INDENT = 67;
70
- static DEDENT = 68;
10
+ static T__7 = 8;
11
+ static Break = 9;
12
+ static Branch = 10;
13
+ static Create = 11;
14
+ static Component = 12;
15
+ static Graphic = 13;
16
+ static Module = 14;
17
+ static Wire = 15;
18
+ static Pin = 16;
19
+ static Add = 17;
20
+ static At = 18;
21
+ static To = 19;
22
+ static Point = 20;
23
+ static Join = 21;
24
+ static Parallel = 22;
25
+ static Return = 23;
26
+ static Define = 24;
27
+ static Import = 25;
28
+ static For = 26;
29
+ static In = 27;
30
+ static While = 28;
31
+ static Continue = 29;
32
+ static If = 30;
33
+ static Else = 31;
34
+ static Not = 32;
35
+ static Frame = 33;
36
+ static Sheet = 34;
37
+ static Equals = 35;
38
+ static NotEquals = 36;
39
+ static GreaterThan = 37;
40
+ static GreatOrEqualThan = 38;
41
+ static LessThan = 39;
42
+ static LessOrEqualThan = 40;
43
+ static LogicalAnd = 41;
44
+ static LogicalOr = 42;
45
+ static Addition = 43;
46
+ static Minus = 44;
47
+ static Divide = 45;
48
+ static Multiply = 46;
49
+ static Modulus = 47;
50
+ static AdditionAssign = 48;
51
+ static MinusAssign = 49;
52
+ static DivideAssign = 50;
53
+ static MultiplyAssign = 51;
54
+ static ModulusAssign = 52;
55
+ static ANNOTATION_START = 53;
56
+ static OPEN_PAREN = 54;
57
+ static CLOSE_PAREN = 55;
58
+ static NOT_CONNECTED = 56;
59
+ static BOOLEAN_VALUE = 57;
60
+ static ID = 58;
61
+ static INTEGER_VALUE = 59;
62
+ static DECIMAL_VALUE = 60;
63
+ static NUMERIC_VALUE = 61;
64
+ static STRING_VALUE = 62;
65
+ static PERCENTAGE_VALUE = 63;
66
+ static ALPHA_NUMERIC = 64;
67
+ static WS = 65;
68
+ static NEWLINE = 66;
69
+ static COMMENT = 67;
70
+ static INDENT = 68;
71
+ static DEDENT = 69;
71
72
  static RULE_script = 0;
72
73
  static RULE_expression = 1;
73
74
  static RULE_flow_expressions = 2;
@@ -134,10 +135,17 @@ export class CircuitScriptParser extends antlr.Parser {
134
135
  static RULE_else_expr = 63;
135
136
  static RULE_while_expr = 64;
136
137
  static RULE_for_expr = 65;
137
- static RULE_annotation_comment_expr = 66;
138
+ static RULE_part_set_expr = 66;
139
+ static RULE_part_set_key = 67;
140
+ static RULE_part_match_block = 68;
141
+ static RULE_part_sub_expr = 69;
142
+ static RULE_part_condition_expr = 70;
143
+ static RULE_part_condition_key_only_expr = 71;
144
+ static RULE_part_value_expr = 72;
145
+ static RULE_annotation_comment_expr = 73;
138
146
  static literalNames = [
139
- null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'break'",
140
- "'branch'", "'create'", "'component'", "'graphic'", "'module'",
147
+ null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'set'",
148
+ "'break'", "'branch'", "'create'", "'component'", "'graphic'", "'module'",
141
149
  "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
142
150
  "'parallel'", "'return'", "'def'", "'import'", "'for'", "'in'",
143
151
  "'while'", "'continue'", "'if'", "'else'", null, "'frame'", "'sheet'",
@@ -146,7 +154,7 @@ export class CircuitScriptParser extends antlr.Parser {
146
154
  "'#='", "'('", "')'"
147
155
  ];
148
156
  static symbolicNames = [
149
- null, null, null, null, null, null, null, null, "Break", "Branch",
157
+ null, null, null, null, null, null, null, null, null, "Break", "Branch",
150
158
  "Create", "Component", "Graphic", "Module", "Wire", "Pin", "Add",
151
159
  "At", "To", "Point", "Join", "Parallel", "Return", "Define", "Import",
152
160
  "For", "In", "While", "Continue", "If", "Else", "Not", "Frame",
@@ -178,7 +186,9 @@ export class CircuitScriptParser extends antlr.Parser {
178
186
  "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
179
187
  "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
180
188
  "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
181
- "else_expr", "while_expr", "for_expr", "annotation_comment_expr",
189
+ "else_expr", "while_expr", "for_expr", "part_set_expr", "part_set_key",
190
+ "part_match_block", "part_sub_expr", "part_condition_expr", "part_condition_key_only_expr",
191
+ "part_value_expr", "annotation_comment_expr",
182
192
  ];
183
193
  get grammarFileName() { return "CircuitScript.g4"; }
184
194
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -200,24 +210,24 @@ export class CircuitScriptParser extends antlr.Parser {
200
210
  let alternative;
201
211
  this.enterOuterAlt(localContext, 1);
202
212
  {
203
- this.state = 138;
213
+ this.state = 152;
204
214
  this.errorHandler.sync(this);
205
215
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
206
216
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
207
217
  if (alternative === 1) {
208
218
  {
209
- this.state = 136;
219
+ this.state = 150;
210
220
  this.errorHandler.sync(this);
211
221
  switch (this.tokenStream.LA(1)) {
212
222
  case CircuitScriptParser.Import:
213
223
  {
214
- this.state = 134;
224
+ this.state = 148;
215
225
  this.import_expr();
216
226
  }
217
227
  break;
218
228
  case CircuitScriptParser.NEWLINE:
219
229
  {
220
- this.state = 135;
230
+ this.state = 149;
221
231
  this.match(CircuitScriptParser.NEWLINE);
222
232
  }
223
233
  break;
@@ -226,19 +236,20 @@ export class CircuitScriptParser extends antlr.Parser {
226
236
  }
227
237
  }
228
238
  }
229
- this.state = 140;
239
+ this.state = 154;
230
240
  this.errorHandler.sync(this);
231
241
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
232
242
  }
233
- this.state = 143;
243
+ this.state = 157;
234
244
  this.errorHandler.sync(this);
235
245
  _la = this.tokenStream.LA(1);
236
246
  do {
237
247
  {
238
- this.state = 143;
248
+ this.state = 157;
239
249
  this.errorHandler.sync(this);
240
250
  switch (this.tokenStream.LA(1)) {
241
251
  case CircuitScriptParser.T__3:
252
+ case CircuitScriptParser.T__7:
242
253
  case CircuitScriptParser.Break:
243
254
  case CircuitScriptParser.Branch:
244
255
  case CircuitScriptParser.Wire:
@@ -261,13 +272,13 @@ export class CircuitScriptParser extends antlr.Parser {
261
272
  case CircuitScriptParser.ANNOTATION_START:
262
273
  case CircuitScriptParser.ID:
263
274
  {
264
- this.state = 141;
275
+ this.state = 155;
265
276
  this.expression();
266
277
  }
267
278
  break;
268
279
  case CircuitScriptParser.NEWLINE:
269
280
  {
270
- this.state = 142;
281
+ this.state = 156;
271
282
  this.match(CircuitScriptParser.NEWLINE);
272
283
  }
273
284
  break;
@@ -275,11 +286,11 @@ export class CircuitScriptParser extends antlr.Parser {
275
286
  throw new antlr.NoViableAltException(this);
276
287
  }
277
288
  }
278
- this.state = 145;
289
+ this.state = 159;
279
290
  this.errorHandler.sync(this);
280
291
  _la = this.tokenStream.LA(1);
281
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
282
- this.state = 147;
292
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
293
+ this.state = 161;
283
294
  this.match(CircuitScriptParser.EOF);
284
295
  }
285
296
  }
@@ -301,100 +312,107 @@ export class CircuitScriptParser extends antlr.Parser {
301
312
  let localContext = new ExpressionContext(this.context, this.state);
302
313
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
303
314
  try {
304
- this.state = 162;
315
+ this.state = 177;
305
316
  this.errorHandler.sync(this);
306
317
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
307
318
  case 1:
308
319
  this.enterOuterAlt(localContext, 1);
309
320
  {
310
- this.state = 149;
321
+ this.state = 163;
311
322
  this.graph_expressions();
312
323
  }
313
324
  break;
314
325
  case 2:
315
326
  this.enterOuterAlt(localContext, 2);
316
327
  {
317
- this.state = 150;
328
+ this.state = 164;
318
329
  this.assignment_expr();
319
330
  }
320
331
  break;
321
332
  case 3:
322
333
  this.enterOuterAlt(localContext, 3);
323
334
  {
324
- this.state = 151;
335
+ this.state = 165;
325
336
  this.operator_assignment_expr();
326
337
  }
327
338
  break;
328
339
  case 4:
329
340
  this.enterOuterAlt(localContext, 4);
330
341
  {
331
- this.state = 152;
342
+ this.state = 166;
332
343
  this.property_set_expr();
333
344
  }
334
345
  break;
335
346
  case 5:
336
347
  this.enterOuterAlt(localContext, 5);
337
348
  {
338
- this.state = 153;
349
+ this.state = 167;
339
350
  this.property_set_expr2();
340
351
  }
341
352
  break;
342
353
  case 6:
343
354
  this.enterOuterAlt(localContext, 6);
344
355
  {
345
- this.state = 154;
356
+ this.state = 168;
346
357
  this.double_dot_property_set_expr();
347
358
  }
348
359
  break;
349
360
  case 7:
350
361
  this.enterOuterAlt(localContext, 7);
351
362
  {
352
- this.state = 155;
363
+ this.state = 169;
353
364
  this.function_def_expr();
354
365
  }
355
366
  break;
356
367
  case 8:
357
368
  this.enterOuterAlt(localContext, 8);
358
369
  {
359
- this.state = 156;
370
+ this.state = 170;
360
371
  this.function_call_expr();
361
372
  }
362
373
  break;
363
374
  case 9:
364
375
  this.enterOuterAlt(localContext, 9);
365
376
  {
366
- this.state = 157;
377
+ this.state = 171;
367
378
  this.import_expr();
368
379
  }
369
380
  break;
370
381
  case 10:
371
382
  this.enterOuterAlt(localContext, 10);
372
383
  {
373
- this.state = 158;
384
+ this.state = 172;
374
385
  this.atom_expr();
375
386
  }
376
387
  break;
377
388
  case 11:
378
389
  this.enterOuterAlt(localContext, 11);
379
390
  {
380
- this.state = 159;
391
+ this.state = 173;
381
392
  this.frame_expr();
382
393
  }
383
394
  break;
384
395
  case 12:
385
396
  this.enterOuterAlt(localContext, 12);
386
397
  {
387
- this.state = 160;
398
+ this.state = 174;
388
399
  this.flow_expressions();
389
400
  }
390
401
  break;
391
402
  case 13:
392
403
  this.enterOuterAlt(localContext, 13);
393
404
  {
394
- this.state = 161;
405
+ this.state = 175;
395
406
  this.annotation_comment_expr();
396
407
  }
397
408
  break;
409
+ case 14:
410
+ this.enterOuterAlt(localContext, 14);
411
+ {
412
+ this.state = 176;
413
+ this.part_set_expr();
414
+ }
415
+ break;
398
416
  }
399
417
  }
400
418
  catch (re) {
@@ -415,41 +433,41 @@ export class CircuitScriptParser extends antlr.Parser {
415
433
  let localContext = new Flow_expressionsContext(this.context, this.state);
416
434
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
417
435
  try {
418
- this.state = 169;
436
+ this.state = 184;
419
437
  this.errorHandler.sync(this);
420
438
  switch (this.tokenStream.LA(1)) {
421
439
  case CircuitScriptParser.If:
422
440
  this.enterOuterAlt(localContext, 1);
423
441
  {
424
- this.state = 164;
442
+ this.state = 179;
425
443
  this.if_expr();
426
444
  }
427
445
  break;
428
446
  case CircuitScriptParser.While:
429
447
  this.enterOuterAlt(localContext, 2);
430
448
  {
431
- this.state = 165;
449
+ this.state = 180;
432
450
  this.while_expr();
433
451
  }
434
452
  break;
435
453
  case CircuitScriptParser.For:
436
454
  this.enterOuterAlt(localContext, 3);
437
455
  {
438
- this.state = 166;
456
+ this.state = 181;
439
457
  this.for_expr();
440
458
  }
441
459
  break;
442
460
  case CircuitScriptParser.Break:
443
461
  this.enterOuterAlt(localContext, 4);
444
462
  {
445
- this.state = 167;
463
+ this.state = 182;
446
464
  this.match(CircuitScriptParser.Break);
447
465
  }
448
466
  break;
449
467
  case CircuitScriptParser.Continue:
450
468
  this.enterOuterAlt(localContext, 5);
451
469
  {
452
- this.state = 168;
470
+ this.state = 183;
453
471
  this.match(CircuitScriptParser.Continue);
454
472
  }
455
473
  break;
@@ -475,20 +493,20 @@ export class CircuitScriptParser extends antlr.Parser {
475
493
  let localContext = new Graph_expressionsContext(this.context, this.state);
476
494
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
477
495
  try {
478
- this.state = 173;
496
+ this.state = 188;
479
497
  this.errorHandler.sync(this);
480
498
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
481
499
  case 1:
482
500
  this.enterOuterAlt(localContext, 1);
483
501
  {
484
- this.state = 171;
502
+ this.state = 186;
485
503
  this.graph_linear_expression();
486
504
  }
487
505
  break;
488
506
  case 2:
489
507
  this.enterOuterAlt(localContext, 2);
490
508
  {
491
- this.state = 172;
509
+ this.state = 187;
492
510
  this.path_block();
493
511
  }
494
512
  break;
@@ -512,48 +530,48 @@ export class CircuitScriptParser extends antlr.Parser {
512
530
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
513
531
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
514
532
  try {
515
- this.state = 181;
533
+ this.state = 196;
516
534
  this.errorHandler.sync(this);
517
535
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
518
536
  case 1:
519
537
  this.enterOuterAlt(localContext, 1);
520
538
  {
521
- this.state = 175;
539
+ this.state = 190;
522
540
  this.add_component_expr();
523
541
  }
524
542
  break;
525
543
  case 2:
526
544
  this.enterOuterAlt(localContext, 2);
527
545
  {
528
- this.state = 176;
546
+ this.state = 191;
529
547
  this.to_component_expr();
530
548
  }
531
549
  break;
532
550
  case 3:
533
551
  this.enterOuterAlt(localContext, 3);
534
552
  {
535
- this.state = 177;
553
+ this.state = 192;
536
554
  this.at_component_expr();
537
555
  }
538
556
  break;
539
557
  case 4:
540
558
  this.enterOuterAlt(localContext, 4);
541
559
  {
542
- this.state = 178;
560
+ this.state = 193;
543
561
  this.at_block();
544
562
  }
545
563
  break;
546
564
  case 5:
547
565
  this.enterOuterAlt(localContext, 5);
548
566
  {
549
- this.state = 179;
567
+ this.state = 194;
550
568
  this.wire_expr();
551
569
  }
552
570
  break;
553
571
  case 6:
554
572
  this.enterOuterAlt(localContext, 6);
555
573
  {
556
- this.state = 180;
574
+ this.state = 195;
557
575
  this.point_expr();
558
576
  }
559
577
  break;
@@ -580,25 +598,26 @@ export class CircuitScriptParser extends antlr.Parser {
580
598
  try {
581
599
  this.enterOuterAlt(localContext, 1);
582
600
  {
583
- this.state = 183;
601
+ this.state = 198;
584
602
  this.match(CircuitScriptParser.NEWLINE);
585
- this.state = 184;
603
+ this.state = 199;
586
604
  this.match(CircuitScriptParser.INDENT);
587
- this.state = 187;
605
+ this.state = 202;
588
606
  this.errorHandler.sync(this);
589
607
  _la = this.tokenStream.LA(1);
590
608
  do {
591
609
  {
592
- this.state = 187;
610
+ this.state = 202;
593
611
  this.errorHandler.sync(this);
594
612
  switch (this.tokenStream.LA(1)) {
595
613
  case CircuitScriptParser.NEWLINE:
596
614
  {
597
- this.state = 185;
615
+ this.state = 200;
598
616
  this.match(CircuitScriptParser.NEWLINE);
599
617
  }
600
618
  break;
601
619
  case CircuitScriptParser.T__3:
620
+ case CircuitScriptParser.T__7:
602
621
  case CircuitScriptParser.Break:
603
622
  case CircuitScriptParser.Branch:
604
623
  case CircuitScriptParser.Wire:
@@ -621,7 +640,7 @@ export class CircuitScriptParser extends antlr.Parser {
621
640
  case CircuitScriptParser.ANNOTATION_START:
622
641
  case CircuitScriptParser.ID:
623
642
  {
624
- this.state = 186;
643
+ this.state = 201;
625
644
  this.expression();
626
645
  }
627
646
  break;
@@ -629,11 +648,11 @@ export class CircuitScriptParser extends antlr.Parser {
629
648
  throw new antlr.NoViableAltException(this);
630
649
  }
631
650
  }
632
- this.state = 189;
651
+ this.state = 204;
633
652
  this.errorHandler.sync(this);
634
653
  _la = this.tokenStream.LA(1);
635
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
636
- this.state = 191;
654
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
655
+ this.state = 206;
637
656
  this.match(CircuitScriptParser.DEDENT);
638
657
  }
639
658
  }
@@ -658,18 +677,18 @@ export class CircuitScriptParser extends antlr.Parser {
658
677
  try {
659
678
  this.enterOuterAlt(localContext, 1);
660
679
  {
661
- this.state = 193;
680
+ this.state = 208;
662
681
  _la = this.tokenStream.LA(1);
663
- if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
682
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 7341056) !== 0))) {
664
683
  this.errorHandler.recoverInline(this);
665
684
  }
666
685
  else {
667
686
  this.errorHandler.reportMatch(this);
668
687
  this.consume();
669
688
  }
670
- this.state = 194;
689
+ this.state = 209;
671
690
  this.match(CircuitScriptParser.T__0);
672
- this.state = 195;
691
+ this.state = 210;
673
692
  this.expressions_block();
674
693
  }
675
694
  }
@@ -694,32 +713,32 @@ export class CircuitScriptParser extends antlr.Parser {
694
713
  try {
695
714
  this.enterOuterAlt(localContext, 1);
696
715
  {
697
- this.state = 197;
716
+ this.state = 212;
698
717
  this.atom_expr();
699
- this.state = 198;
718
+ this.state = 213;
700
719
  this.match(CircuitScriptParser.T__0);
701
- this.state = 199;
720
+ this.state = 214;
702
721
  this.match(CircuitScriptParser.NEWLINE);
703
- this.state = 200;
722
+ this.state = 215;
704
723
  this.match(CircuitScriptParser.INDENT);
705
- this.state = 203;
724
+ this.state = 218;
706
725
  this.errorHandler.sync(this);
707
726
  _la = this.tokenStream.LA(1);
708
727
  do {
709
728
  {
710
- this.state = 203;
729
+ this.state = 218;
711
730
  this.errorHandler.sync(this);
712
731
  switch (this.tokenStream.LA(1)) {
713
732
  case CircuitScriptParser.NEWLINE:
714
733
  {
715
- this.state = 201;
734
+ this.state = 216;
716
735
  this.match(CircuitScriptParser.NEWLINE);
717
736
  }
718
737
  break;
719
738
  case CircuitScriptParser.ID:
720
739
  case CircuitScriptParser.INTEGER_VALUE:
721
740
  {
722
- this.state = 202;
741
+ this.state = 217;
723
742
  this.assignment_expr2();
724
743
  }
725
744
  break;
@@ -727,11 +746,11 @@ export class CircuitScriptParser extends antlr.Parser {
727
746
  throw new antlr.NoViableAltException(this);
728
747
  }
729
748
  }
730
- this.state = 205;
749
+ this.state = 220;
731
750
  this.errorHandler.sync(this);
732
751
  _la = this.tokenStream.LA(1);
733
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 259) !== 0));
734
- this.state = 207;
752
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 259) !== 0));
753
+ this.state = 222;
735
754
  this.match(CircuitScriptParser.DEDENT);
736
755
  }
737
756
  }
@@ -756,18 +775,18 @@ export class CircuitScriptParser extends antlr.Parser {
756
775
  try {
757
776
  this.enterOuterAlt(localContext, 1);
758
777
  {
759
- this.state = 209;
778
+ this.state = 224;
760
779
  _la = this.tokenStream.LA(1);
761
- if (!(_la === 57 || _la === 58)) {
780
+ if (!(_la === 58 || _la === 59)) {
762
781
  this.errorHandler.recoverInline(this);
763
782
  }
764
783
  else {
765
784
  this.errorHandler.reportMatch(this);
766
785
  this.consume();
767
786
  }
768
- this.state = 210;
787
+ this.state = 225;
769
788
  this.match(CircuitScriptParser.T__0);
770
- this.state = 211;
789
+ this.state = 226;
771
790
  this.value_expr();
772
791
  }
773
792
  }
@@ -791,9 +810,9 @@ export class CircuitScriptParser extends antlr.Parser {
791
810
  try {
792
811
  this.enterOuterAlt(localContext, 1);
793
812
  {
794
- this.state = 213;
813
+ this.state = 228;
795
814
  this.match(CircuitScriptParser.Pin);
796
- this.state = 214;
815
+ this.state = 229;
797
816
  this.data_expr(0);
798
817
  }
799
818
  }
@@ -817,11 +836,11 @@ export class CircuitScriptParser extends antlr.Parser {
817
836
  try {
818
837
  this.enterOuterAlt(localContext, 1);
819
838
  {
820
- this.state = 216;
839
+ this.state = 231;
821
840
  this.match(CircuitScriptParser.ID);
822
- this.state = 217;
841
+ this.state = 232;
823
842
  this.match(CircuitScriptParser.T__0);
824
- this.state = 220;
843
+ this.state = 235;
825
844
  this.errorHandler.sync(this);
826
845
  switch (this.tokenStream.LA(1)) {
827
846
  case CircuitScriptParser.Minus:
@@ -832,13 +851,13 @@ export class CircuitScriptParser extends antlr.Parser {
832
851
  case CircuitScriptParser.STRING_VALUE:
833
852
  case CircuitScriptParser.PERCENTAGE_VALUE:
834
853
  {
835
- this.state = 218;
854
+ this.state = 233;
836
855
  this.value_expr();
837
856
  }
838
857
  break;
839
858
  case CircuitScriptParser.ID:
840
859
  {
841
- this.state = 219;
860
+ this.state = 234;
842
861
  this.match(CircuitScriptParser.ID);
843
862
  }
844
863
  break;
@@ -869,44 +888,44 @@ export class CircuitScriptParser extends antlr.Parser {
869
888
  let alternative;
870
889
  this.enterOuterAlt(localContext, 1);
871
890
  {
872
- this.state = 224;
891
+ this.state = 239;
873
892
  this.errorHandler.sync(this);
874
893
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
875
894
  case 1:
876
895
  {
877
- this.state = 222;
896
+ this.state = 237;
878
897
  this.data_expr(0);
879
898
  }
880
899
  break;
881
900
  case 2:
882
901
  {
883
- this.state = 223;
902
+ this.state = 238;
884
903
  this.assignment_expr();
885
904
  }
886
905
  break;
887
906
  }
888
- this.state = 229;
907
+ this.state = 244;
889
908
  this.errorHandler.sync(this);
890
909
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
891
910
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
892
911
  if (alternative === 1) {
893
912
  {
894
913
  {
895
- this.state = 226;
914
+ this.state = 241;
896
915
  this.component_modifier_expr();
897
916
  }
898
917
  }
899
918
  }
900
- this.state = 231;
919
+ this.state = 246;
901
920
  this.errorHandler.sync(this);
902
921
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
903
922
  }
904
- this.state = 233;
923
+ this.state = 248;
905
924
  this.errorHandler.sync(this);
906
925
  _la = this.tokenStream.LA(1);
907
- if (_la === 15) {
926
+ if (_la === 16) {
908
927
  {
909
- this.state = 232;
928
+ this.state = 247;
910
929
  this.pin_select_expr();
911
930
  }
912
931
  }
@@ -932,9 +951,9 @@ export class CircuitScriptParser extends antlr.Parser {
932
951
  try {
933
952
  this.enterOuterAlt(localContext, 1);
934
953
  {
935
- this.state = 235;
954
+ this.state = 250;
936
955
  this.match(CircuitScriptParser.Add);
937
- this.state = 236;
956
+ this.state = 251;
938
957
  this.data_expr_with_assignment();
939
958
  }
940
959
  }
@@ -956,7 +975,7 @@ export class CircuitScriptParser extends antlr.Parser {
956
975
  let localContext = new Component_select_exprContext(this.context, this.state);
957
976
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
958
977
  try {
959
- this.state = 241;
978
+ this.state = 256;
960
979
  this.errorHandler.sync(this);
961
980
  switch (this.tokenStream.LA(1)) {
962
981
  case CircuitScriptParser.T__4:
@@ -975,21 +994,21 @@ export class CircuitScriptParser extends antlr.Parser {
975
994
  case CircuitScriptParser.PERCENTAGE_VALUE:
976
995
  this.enterOuterAlt(localContext, 1);
977
996
  {
978
- this.state = 238;
997
+ this.state = 253;
979
998
  this.data_expr_with_assignment();
980
999
  }
981
1000
  break;
982
1001
  case CircuitScriptParser.Pin:
983
1002
  this.enterOuterAlt(localContext, 2);
984
1003
  {
985
- this.state = 239;
1004
+ this.state = 254;
986
1005
  this.pin_select_expr();
987
1006
  }
988
1007
  break;
989
1008
  case CircuitScriptParser.Point:
990
1009
  this.enterOuterAlt(localContext, 3);
991
1010
  {
992
- this.state = 240;
1011
+ this.state = 255;
993
1012
  this.match(CircuitScriptParser.Point);
994
1013
  }
995
1014
  break;
@@ -1018,9 +1037,9 @@ export class CircuitScriptParser extends antlr.Parser {
1018
1037
  try {
1019
1038
  this.enterOuterAlt(localContext, 1);
1020
1039
  {
1021
- this.state = 243;
1040
+ this.state = 258;
1022
1041
  _la = this.tokenStream.LA(1);
1023
- if (!(_la === 58 || _la === 61)) {
1042
+ if (!(_la === 59 || _la === 62)) {
1024
1043
  this.errorHandler.recoverInline(this);
1025
1044
  }
1026
1045
  else {
@@ -1049,9 +1068,9 @@ export class CircuitScriptParser extends antlr.Parser {
1049
1068
  try {
1050
1069
  this.enterOuterAlt(localContext, 1);
1051
1070
  {
1052
- this.state = 245;
1071
+ this.state = 260;
1053
1072
  this.match(CircuitScriptParser.At);
1054
- this.state = 246;
1073
+ this.state = 261;
1055
1074
  this.component_select_expr();
1056
1075
  }
1057
1076
  }
@@ -1076,24 +1095,24 @@ export class CircuitScriptParser extends antlr.Parser {
1076
1095
  try {
1077
1096
  this.enterOuterAlt(localContext, 1);
1078
1097
  {
1079
- this.state = 248;
1098
+ this.state = 263;
1080
1099
  this.match(CircuitScriptParser.To);
1081
1100
  {
1082
- this.state = 249;
1101
+ this.state = 264;
1083
1102
  this.component_select_expr();
1084
- this.state = 254;
1103
+ this.state = 269;
1085
1104
  this.errorHandler.sync(this);
1086
1105
  _la = this.tokenStream.LA(1);
1087
1106
  while (_la === 2) {
1088
1107
  {
1089
1108
  {
1090
- this.state = 250;
1109
+ this.state = 265;
1091
1110
  this.match(CircuitScriptParser.T__1);
1092
- this.state = 251;
1111
+ this.state = 266;
1093
1112
  this.component_select_expr();
1094
1113
  }
1095
1114
  }
1096
- this.state = 256;
1115
+ this.state = 271;
1097
1116
  this.errorHandler.sync(this);
1098
1117
  _la = this.tokenStream.LA(1);
1099
1118
  }
@@ -1121,54 +1140,54 @@ export class CircuitScriptParser extends antlr.Parser {
1121
1140
  try {
1122
1141
  this.enterOuterAlt(localContext, 1);
1123
1142
  {
1124
- this.state = 257;
1143
+ this.state = 272;
1125
1144
  this.match(CircuitScriptParser.At);
1126
- this.state = 258;
1145
+ this.state = 273;
1127
1146
  this.component_select_expr();
1128
- this.state = 259;
1147
+ this.state = 274;
1129
1148
  this.match(CircuitScriptParser.To);
1130
- this.state = 260;
1149
+ this.state = 275;
1131
1150
  this.component_select_expr();
1132
- this.state = 265;
1151
+ this.state = 280;
1133
1152
  this.errorHandler.sync(this);
1134
1153
  _la = this.tokenStream.LA(1);
1135
1154
  while (_la === 2) {
1136
1155
  {
1137
1156
  {
1138
- this.state = 261;
1157
+ this.state = 276;
1139
1158
  this.match(CircuitScriptParser.T__1);
1140
- this.state = 262;
1159
+ this.state = 277;
1141
1160
  this.component_select_expr();
1142
1161
  }
1143
1162
  }
1144
- this.state = 267;
1163
+ this.state = 282;
1145
1164
  this.errorHandler.sync(this);
1146
1165
  _la = this.tokenStream.LA(1);
1147
1166
  }
1148
- this.state = 268;
1167
+ this.state = 283;
1149
1168
  this.match(CircuitScriptParser.T__0);
1150
- this.state = 269;
1169
+ this.state = 284;
1151
1170
  this.match(CircuitScriptParser.NEWLINE);
1152
- this.state = 270;
1171
+ this.state = 285;
1153
1172
  this.match(CircuitScriptParser.INDENT);
1154
- this.state = 273;
1173
+ this.state = 288;
1155
1174
  this.errorHandler.sync(this);
1156
1175
  _la = this.tokenStream.LA(1);
1157
1176
  do {
1158
1177
  {
1159
- this.state = 273;
1178
+ this.state = 288;
1160
1179
  this.errorHandler.sync(this);
1161
1180
  switch (this.tokenStream.LA(1)) {
1162
1181
  case CircuitScriptParser.NEWLINE:
1163
1182
  {
1164
- this.state = 271;
1183
+ this.state = 286;
1165
1184
  this.match(CircuitScriptParser.NEWLINE);
1166
1185
  }
1167
1186
  break;
1168
1187
  case CircuitScriptParser.INTEGER_VALUE:
1169
1188
  case CircuitScriptParser.STRING_VALUE:
1170
1189
  {
1171
- this.state = 272;
1190
+ this.state = 287;
1172
1191
  this.at_to_multiple_line_expr();
1173
1192
  }
1174
1193
  break;
@@ -1176,11 +1195,11 @@ export class CircuitScriptParser extends antlr.Parser {
1176
1195
  throw new antlr.NoViableAltException(this);
1177
1196
  }
1178
1197
  }
1179
- this.state = 275;
1198
+ this.state = 290;
1180
1199
  this.errorHandler.sync(this);
1181
1200
  _la = this.tokenStream.LA(1);
1182
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 137) !== 0));
1183
- this.state = 277;
1201
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 137) !== 0));
1202
+ this.state = 292;
1184
1203
  this.match(CircuitScriptParser.DEDENT);
1185
1204
  }
1186
1205
  }
@@ -1205,25 +1224,25 @@ export class CircuitScriptParser extends antlr.Parser {
1205
1224
  try {
1206
1225
  this.enterOuterAlt(localContext, 1);
1207
1226
  {
1208
- this.state = 279;
1227
+ this.state = 294;
1209
1228
  this.pin_select_expr2();
1210
- this.state = 280;
1229
+ this.state = 295;
1211
1230
  this.match(CircuitScriptParser.T__0);
1212
- this.state = 281;
1231
+ this.state = 296;
1213
1232
  this.at_to_multiple_line_expr_to_pin();
1214
- this.state = 286;
1233
+ this.state = 301;
1215
1234
  this.errorHandler.sync(this);
1216
1235
  _la = this.tokenStream.LA(1);
1217
1236
  while (_la === 2) {
1218
1237
  {
1219
1238
  {
1220
- this.state = 282;
1239
+ this.state = 297;
1221
1240
  this.match(CircuitScriptParser.T__1);
1222
- this.state = 283;
1241
+ this.state = 298;
1223
1242
  this.at_to_multiple_line_expr_to_pin();
1224
1243
  }
1225
1244
  }
1226
- this.state = 288;
1245
+ this.state = 303;
1227
1246
  this.errorHandler.sync(this);
1228
1247
  _la = this.tokenStream.LA(1);
1229
1248
  }
@@ -1250,9 +1269,9 @@ export class CircuitScriptParser extends antlr.Parser {
1250
1269
  try {
1251
1270
  this.enterOuterAlt(localContext, 1);
1252
1271
  {
1253
- this.state = 289;
1272
+ this.state = 304;
1254
1273
  _la = this.tokenStream.LA(1);
1255
- if (!(_la === 55 || _la === 58)) {
1274
+ if (!(_la === 56 || _la === 59)) {
1256
1275
  this.errorHandler.recoverInline(this);
1257
1276
  }
1258
1277
  else {
@@ -1282,27 +1301,28 @@ export class CircuitScriptParser extends antlr.Parser {
1282
1301
  try {
1283
1302
  this.enterOuterAlt(localContext, 1);
1284
1303
  {
1285
- this.state = 291;
1304
+ this.state = 306;
1286
1305
  this.at_block_header();
1287
- this.state = 292;
1306
+ this.state = 307;
1288
1307
  this.match(CircuitScriptParser.NEWLINE);
1289
- this.state = 293;
1308
+ this.state = 308;
1290
1309
  this.match(CircuitScriptParser.INDENT);
1291
- this.state = 296;
1310
+ this.state = 311;
1292
1311
  this.errorHandler.sync(this);
1293
1312
  _la = this.tokenStream.LA(1);
1294
1313
  do {
1295
1314
  {
1296
- this.state = 296;
1315
+ this.state = 311;
1297
1316
  this.errorHandler.sync(this);
1298
1317
  switch (this.tokenStream.LA(1)) {
1299
1318
  case CircuitScriptParser.NEWLINE:
1300
1319
  {
1301
- this.state = 294;
1320
+ this.state = 309;
1302
1321
  this.match(CircuitScriptParser.NEWLINE);
1303
1322
  }
1304
1323
  break;
1305
1324
  case CircuitScriptParser.T__3:
1325
+ case CircuitScriptParser.T__7:
1306
1326
  case CircuitScriptParser.Break:
1307
1327
  case CircuitScriptParser.Branch:
1308
1328
  case CircuitScriptParser.Wire:
@@ -1327,7 +1347,7 @@ export class CircuitScriptParser extends antlr.Parser {
1327
1347
  case CircuitScriptParser.INTEGER_VALUE:
1328
1348
  case CircuitScriptParser.STRING_VALUE:
1329
1349
  {
1330
- this.state = 295;
1350
+ this.state = 310;
1331
1351
  this.at_block_expressions();
1332
1352
  }
1333
1353
  break;
@@ -1335,11 +1355,11 @@ export class CircuitScriptParser extends antlr.Parser {
1335
1355
  throw new antlr.NoViableAltException(this);
1336
1356
  }
1337
1357
  }
1338
- this.state = 298;
1358
+ this.state = 313;
1339
1359
  this.errorHandler.sync(this);
1340
1360
  _la = this.tokenStream.LA(1);
1341
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 9012229) !== 0));
1342
- this.state = 300;
1361
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 9012229) !== 0));
1362
+ this.state = 315;
1343
1363
  this.match(CircuitScriptParser.DEDENT);
1344
1364
  }
1345
1365
  }
@@ -1361,10 +1381,11 @@ export class CircuitScriptParser extends antlr.Parser {
1361
1381
  let localContext = new At_block_expressionsContext(this.context, this.state);
1362
1382
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1363
1383
  try {
1364
- this.state = 304;
1384
+ this.state = 319;
1365
1385
  this.errorHandler.sync(this);
1366
1386
  switch (this.tokenStream.LA(1)) {
1367
1387
  case CircuitScriptParser.T__3:
1388
+ case CircuitScriptParser.T__7:
1368
1389
  case CircuitScriptParser.Break:
1369
1390
  case CircuitScriptParser.Branch:
1370
1391
  case CircuitScriptParser.Wire:
@@ -1388,7 +1409,7 @@ export class CircuitScriptParser extends antlr.Parser {
1388
1409
  case CircuitScriptParser.ID:
1389
1410
  this.enterOuterAlt(localContext, 1);
1390
1411
  {
1391
- this.state = 302;
1412
+ this.state = 317;
1392
1413
  this.expression();
1393
1414
  }
1394
1415
  break;
@@ -1396,7 +1417,7 @@ export class CircuitScriptParser extends antlr.Parser {
1396
1417
  case CircuitScriptParser.STRING_VALUE:
1397
1418
  this.enterOuterAlt(localContext, 2);
1398
1419
  {
1399
- this.state = 303;
1420
+ this.state = 318;
1400
1421
  this.at_block_pin_expr();
1401
1422
  }
1402
1423
  break;
@@ -1425,21 +1446,21 @@ export class CircuitScriptParser extends antlr.Parser {
1425
1446
  try {
1426
1447
  this.enterOuterAlt(localContext, 1);
1427
1448
  {
1428
- this.state = 306;
1449
+ this.state = 321;
1429
1450
  this.at_component_expr();
1430
- this.state = 307;
1451
+ this.state = 322;
1431
1452
  this.match(CircuitScriptParser.T__0);
1432
- this.state = 311;
1453
+ this.state = 326;
1433
1454
  this.errorHandler.sync(this);
1434
1455
  _la = this.tokenStream.LA(1);
1435
- while (_la === 52) {
1456
+ while (_la === 53) {
1436
1457
  {
1437
1458
  {
1438
- this.state = 308;
1459
+ this.state = 323;
1439
1460
  this.annotation_comment_expr();
1440
1461
  }
1441
1462
  }
1442
- this.state = 313;
1463
+ this.state = 328;
1443
1464
  this.errorHandler.sync(this);
1444
1465
  _la = this.tokenStream.LA(1);
1445
1466
  }
@@ -1465,14 +1486,15 @@ export class CircuitScriptParser extends antlr.Parser {
1465
1486
  try {
1466
1487
  this.enterOuterAlt(localContext, 1);
1467
1488
  {
1468
- this.state = 314;
1489
+ this.state = 329;
1469
1490
  this.pin_select_expr2();
1470
- this.state = 315;
1491
+ this.state = 330;
1471
1492
  this.match(CircuitScriptParser.T__0);
1472
- this.state = 318;
1493
+ this.state = 333;
1473
1494
  this.errorHandler.sync(this);
1474
1495
  switch (this.tokenStream.LA(1)) {
1475
1496
  case CircuitScriptParser.T__3:
1497
+ case CircuitScriptParser.T__7:
1476
1498
  case CircuitScriptParser.Break:
1477
1499
  case CircuitScriptParser.Branch:
1478
1500
  case CircuitScriptParser.Wire:
@@ -1496,13 +1518,13 @@ export class CircuitScriptParser extends antlr.Parser {
1496
1518
  case CircuitScriptParser.NOT_CONNECTED:
1497
1519
  case CircuitScriptParser.ID:
1498
1520
  {
1499
- this.state = 316;
1521
+ this.state = 331;
1500
1522
  this.at_block_pin_expression_simple();
1501
1523
  }
1502
1524
  break;
1503
1525
  case CircuitScriptParser.NEWLINE:
1504
1526
  {
1505
- this.state = 317;
1527
+ this.state = 332;
1506
1528
  this.at_block_pin_expression_complex();
1507
1529
  }
1508
1530
  break;
@@ -1531,10 +1553,11 @@ export class CircuitScriptParser extends antlr.Parser {
1531
1553
  try {
1532
1554
  this.enterOuterAlt(localContext, 1);
1533
1555
  {
1534
- this.state = 322;
1556
+ this.state = 337;
1535
1557
  this.errorHandler.sync(this);
1536
1558
  switch (this.tokenStream.LA(1)) {
1537
1559
  case CircuitScriptParser.T__3:
1560
+ case CircuitScriptParser.T__7:
1538
1561
  case CircuitScriptParser.Break:
1539
1562
  case CircuitScriptParser.Branch:
1540
1563
  case CircuitScriptParser.Wire:
@@ -1557,13 +1580,13 @@ export class CircuitScriptParser extends antlr.Parser {
1557
1580
  case CircuitScriptParser.ANNOTATION_START:
1558
1581
  case CircuitScriptParser.ID:
1559
1582
  {
1560
- this.state = 320;
1583
+ this.state = 335;
1561
1584
  this.expression();
1562
1585
  }
1563
1586
  break;
1564
1587
  case CircuitScriptParser.NOT_CONNECTED:
1565
1588
  {
1566
- this.state = 321;
1589
+ this.state = 336;
1567
1590
  this.match(CircuitScriptParser.NOT_CONNECTED);
1568
1591
  }
1569
1592
  break;
@@ -1592,7 +1615,7 @@ export class CircuitScriptParser extends antlr.Parser {
1592
1615
  try {
1593
1616
  this.enterOuterAlt(localContext, 1);
1594
1617
  {
1595
- this.state = 324;
1618
+ this.state = 339;
1596
1619
  this.expressions_block();
1597
1620
  }
1598
1621
  }
@@ -1616,25 +1639,25 @@ export class CircuitScriptParser extends antlr.Parser {
1616
1639
  try {
1617
1640
  this.enterOuterAlt(localContext, 1);
1618
1641
  {
1619
- this.state = 328;
1642
+ this.state = 343;
1620
1643
  this.errorHandler.sync(this);
1621
1644
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1622
1645
  case 1:
1623
1646
  {
1624
- this.state = 326;
1647
+ this.state = 341;
1625
1648
  this.atom_expr();
1626
1649
  }
1627
1650
  break;
1628
1651
  case 2:
1629
1652
  {
1630
- this.state = 327;
1653
+ this.state = 342;
1631
1654
  this.function_call_expr();
1632
1655
  }
1633
1656
  break;
1634
1657
  }
1635
- this.state = 330;
1658
+ this.state = 345;
1636
1659
  this.match(CircuitScriptParser.T__2);
1637
- this.state = 331;
1660
+ this.state = 346;
1638
1661
  this.data_expr(0);
1639
1662
  }
1640
1663
  }
@@ -1659,18 +1682,18 @@ export class CircuitScriptParser extends antlr.Parser {
1659
1682
  try {
1660
1683
  this.enterOuterAlt(localContext, 1);
1661
1684
  {
1662
- this.state = 333;
1685
+ this.state = 348;
1663
1686
  this.atom_expr();
1664
- this.state = 334;
1687
+ this.state = 349;
1665
1688
  _la = this.tokenStream.LA(1);
1666
- if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1689
+ if (!(((((_la - 48)) & ~0x1F) === 0 && ((1 << (_la - 48)) & 31) !== 0))) {
1667
1690
  this.errorHandler.recoverInline(this);
1668
1691
  }
1669
1692
  else {
1670
1693
  this.errorHandler.reportMatch(this);
1671
1694
  this.consume();
1672
1695
  }
1673
- this.state = 335;
1696
+ this.state = 350;
1674
1697
  this.data_expr(0);
1675
1698
  }
1676
1699
  }
@@ -1694,11 +1717,11 @@ export class CircuitScriptParser extends antlr.Parser {
1694
1717
  try {
1695
1718
  this.enterOuterAlt(localContext, 1);
1696
1719
  {
1697
- this.state = 337;
1720
+ this.state = 352;
1698
1721
  this.match(CircuitScriptParser.ID);
1699
- this.state = 338;
1722
+ this.state = 353;
1700
1723
  this.match(CircuitScriptParser.T__2);
1701
- this.state = 339;
1724
+ this.state = 354;
1702
1725
  this.data_expr(0);
1703
1726
  }
1704
1727
  }
@@ -1722,46 +1745,46 @@ export class CircuitScriptParser extends antlr.Parser {
1722
1745
  let _la;
1723
1746
  try {
1724
1747
  let alternative;
1725
- this.state = 364;
1748
+ this.state = 379;
1726
1749
  this.errorHandler.sync(this);
1727
1750
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1728
1751
  case 1:
1729
1752
  this.enterOuterAlt(localContext, 1);
1730
1753
  {
1731
1754
  {
1732
- this.state = 341;
1755
+ this.state = 356;
1733
1756
  this.data_expr(0);
1734
- this.state = 346;
1757
+ this.state = 361;
1735
1758
  this.errorHandler.sync(this);
1736
1759
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1737
1760
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1738
1761
  if (alternative === 1) {
1739
1762
  {
1740
1763
  {
1741
- this.state = 342;
1764
+ this.state = 357;
1742
1765
  this.match(CircuitScriptParser.T__1);
1743
- this.state = 343;
1766
+ this.state = 358;
1744
1767
  this.data_expr(0);
1745
1768
  }
1746
1769
  }
1747
1770
  }
1748
- this.state = 348;
1771
+ this.state = 363;
1749
1772
  this.errorHandler.sync(this);
1750
1773
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1751
1774
  }
1752
- this.state = 353;
1775
+ this.state = 368;
1753
1776
  this.errorHandler.sync(this);
1754
1777
  _la = this.tokenStream.LA(1);
1755
1778
  while (_la === 2) {
1756
1779
  {
1757
1780
  {
1758
- this.state = 349;
1781
+ this.state = 364;
1759
1782
  this.match(CircuitScriptParser.T__1);
1760
- this.state = 350;
1783
+ this.state = 365;
1761
1784
  this.keyword_assignment_expr();
1762
1785
  }
1763
1786
  }
1764
- this.state = 355;
1787
+ this.state = 370;
1765
1788
  this.errorHandler.sync(this);
1766
1789
  _la = this.tokenStream.LA(1);
1767
1790
  }
@@ -1772,21 +1795,21 @@ export class CircuitScriptParser extends antlr.Parser {
1772
1795
  this.enterOuterAlt(localContext, 2);
1773
1796
  {
1774
1797
  {
1775
- this.state = 356;
1798
+ this.state = 371;
1776
1799
  this.keyword_assignment_expr();
1777
- this.state = 361;
1800
+ this.state = 376;
1778
1801
  this.errorHandler.sync(this);
1779
1802
  _la = this.tokenStream.LA(1);
1780
1803
  while (_la === 2) {
1781
1804
  {
1782
1805
  {
1783
- this.state = 357;
1806
+ this.state = 372;
1784
1807
  this.match(CircuitScriptParser.T__1);
1785
- this.state = 358;
1808
+ this.state = 373;
1786
1809
  this.keyword_assignment_expr();
1787
1810
  }
1788
1811
  }
1789
- this.state = 363;
1812
+ this.state = 378;
1790
1813
  this.errorHandler.sync(this);
1791
1814
  _la = this.tokenStream.LA(1);
1792
1815
  }
@@ -1815,11 +1838,11 @@ export class CircuitScriptParser extends antlr.Parser {
1815
1838
  try {
1816
1839
  this.enterOuterAlt(localContext, 1);
1817
1840
  {
1818
- this.state = 366;
1841
+ this.state = 381;
1819
1842
  this.atom_expr();
1820
- this.state = 367;
1843
+ this.state = 382;
1821
1844
  this.match(CircuitScriptParser.T__2);
1822
- this.state = 368;
1845
+ this.state = 383;
1823
1846
  this.data_expr(0);
1824
1847
  }
1825
1848
  }
@@ -1843,13 +1866,13 @@ export class CircuitScriptParser extends antlr.Parser {
1843
1866
  try {
1844
1867
  this.enterOuterAlt(localContext, 1);
1845
1868
  {
1846
- this.state = 370;
1869
+ this.state = 385;
1847
1870
  this.match(CircuitScriptParser.T__3);
1848
- this.state = 371;
1871
+ this.state = 386;
1849
1872
  this.match(CircuitScriptParser.ID);
1850
- this.state = 372;
1873
+ this.state = 387;
1851
1874
  this.match(CircuitScriptParser.T__2);
1852
- this.state = 373;
1875
+ this.state = 388;
1853
1876
  this.data_expr(0);
1854
1877
  }
1855
1878
  }
@@ -1882,7 +1905,7 @@ export class CircuitScriptParser extends antlr.Parser {
1882
1905
  let alternative;
1883
1906
  this.enterOuterAlt(localContext, 1);
1884
1907
  {
1885
- this.state = 392;
1908
+ this.state = 407;
1886
1909
  this.errorHandler.sync(this);
1887
1910
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1888
1911
  case 1:
@@ -1890,11 +1913,11 @@ export class CircuitScriptParser extends antlr.Parser {
1890
1913
  localContext = new RoundedBracketsExprContext(localContext);
1891
1914
  this.context = localContext;
1892
1915
  previousContext = localContext;
1893
- this.state = 376;
1916
+ this.state = 391;
1894
1917
  this.match(CircuitScriptParser.OPEN_PAREN);
1895
- this.state = 377;
1918
+ this.state = 392;
1896
1919
  this.data_expr(0);
1897
- this.state = 378;
1920
+ this.state = 393;
1898
1921
  this.match(CircuitScriptParser.CLOSE_PAREN);
1899
1922
  }
1900
1923
  break;
@@ -1903,7 +1926,7 @@ export class CircuitScriptParser extends antlr.Parser {
1903
1926
  localContext = new ValueAtomExprContext(localContext);
1904
1927
  this.context = localContext;
1905
1928
  previousContext = localContext;
1906
- this.state = 382;
1929
+ this.state = 397;
1907
1930
  this.errorHandler.sync(this);
1908
1931
  switch (this.tokenStream.LA(1)) {
1909
1932
  case CircuitScriptParser.Minus:
@@ -1914,13 +1937,13 @@ export class CircuitScriptParser extends antlr.Parser {
1914
1937
  case CircuitScriptParser.STRING_VALUE:
1915
1938
  case CircuitScriptParser.PERCENTAGE_VALUE:
1916
1939
  {
1917
- this.state = 380;
1940
+ this.state = 395;
1918
1941
  this.value_expr();
1919
1942
  }
1920
1943
  break;
1921
1944
  case CircuitScriptParser.ID:
1922
1945
  {
1923
- this.state = 381;
1946
+ this.state = 396;
1924
1947
  this.atom_expr();
1925
1948
  }
1926
1949
  break;
@@ -1934,9 +1957,9 @@ export class CircuitScriptParser extends antlr.Parser {
1934
1957
  localContext = new UnaryOperatorExprContext(localContext);
1935
1958
  this.context = localContext;
1936
1959
  previousContext = localContext;
1937
- this.state = 384;
1960
+ this.state = 399;
1938
1961
  this.unary_operator();
1939
- this.state = 385;
1962
+ this.state = 400;
1940
1963
  this.data_expr(11);
1941
1964
  }
1942
1965
  break;
@@ -1945,7 +1968,7 @@ export class CircuitScriptParser extends antlr.Parser {
1945
1968
  localContext = new DataExprContext(localContext);
1946
1969
  this.context = localContext;
1947
1970
  previousContext = localContext;
1948
- this.state = 387;
1971
+ this.state = 402;
1949
1972
  this.create_component_expr();
1950
1973
  }
1951
1974
  break;
@@ -1954,7 +1977,7 @@ export class CircuitScriptParser extends antlr.Parser {
1954
1977
  localContext = new DataExprContext(localContext);
1955
1978
  this.context = localContext;
1956
1979
  previousContext = localContext;
1957
- this.state = 388;
1980
+ this.state = 403;
1958
1981
  this.create_graphic_expr();
1959
1982
  }
1960
1983
  break;
@@ -1963,7 +1986,7 @@ export class CircuitScriptParser extends antlr.Parser {
1963
1986
  localContext = new DataExprContext(localContext);
1964
1987
  this.context = localContext;
1965
1988
  previousContext = localContext;
1966
- this.state = 389;
1989
+ this.state = 404;
1967
1990
  this.create_module_expr();
1968
1991
  }
1969
1992
  break;
@@ -1972,7 +1995,7 @@ export class CircuitScriptParser extends antlr.Parser {
1972
1995
  localContext = new FunctionCallExprContext(localContext);
1973
1996
  this.context = localContext;
1974
1997
  previousContext = localContext;
1975
- this.state = 390;
1998
+ this.state = 405;
1976
1999
  this.function_call_expr();
1977
2000
  }
1978
2001
  break;
@@ -1981,13 +2004,13 @@ export class CircuitScriptParser extends antlr.Parser {
1981
2004
  localContext = new ArrayExprContext(localContext);
1982
2005
  this.context = localContext;
1983
2006
  previousContext = localContext;
1984
- this.state = 391;
2007
+ this.state = 406;
1985
2008
  this.array_expr();
1986
2009
  }
1987
2010
  break;
1988
2011
  }
1989
2012
  this.context.stop = this.tokenStream.LT(-1);
1990
- this.state = 414;
2013
+ this.state = 429;
1991
2014
  this.errorHandler.sync(this);
1992
2015
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1993
2016
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1997,27 +2020,27 @@ export class CircuitScriptParser extends antlr.Parser {
1997
2020
  }
1998
2021
  previousContext = localContext;
1999
2022
  {
2000
- this.state = 412;
2023
+ this.state = 427;
2001
2024
  this.errorHandler.sync(this);
2002
2025
  switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
2003
2026
  case 1:
2004
2027
  {
2005
2028
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
2006
2029
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2007
- this.state = 394;
2030
+ this.state = 409;
2008
2031
  if (!(this.precpred(this.context, 10))) {
2009
2032
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
2010
2033
  }
2011
- this.state = 395;
2034
+ this.state = 410;
2012
2035
  _la = this.tokenStream.LA(1);
2013
- if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
2036
+ if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 7) !== 0))) {
2014
2037
  this.errorHandler.recoverInline(this);
2015
2038
  }
2016
2039
  else {
2017
2040
  this.errorHandler.reportMatch(this);
2018
2041
  this.consume();
2019
2042
  }
2020
- this.state = 396;
2043
+ this.state = 411;
2021
2044
  this.data_expr(11);
2022
2045
  }
2023
2046
  break;
@@ -2025,20 +2048,20 @@ export class CircuitScriptParser extends antlr.Parser {
2025
2048
  {
2026
2049
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
2027
2050
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2028
- this.state = 397;
2051
+ this.state = 412;
2029
2052
  if (!(this.precpred(this.context, 9))) {
2030
2053
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
2031
2054
  }
2032
- this.state = 398;
2055
+ this.state = 413;
2033
2056
  _la = this.tokenStream.LA(1);
2034
- if (!(_la === 42 || _la === 43)) {
2057
+ if (!(_la === 43 || _la === 44)) {
2035
2058
  this.errorHandler.recoverInline(this);
2036
2059
  }
2037
2060
  else {
2038
2061
  this.errorHandler.reportMatch(this);
2039
2062
  this.consume();
2040
2063
  }
2041
- this.state = 399;
2064
+ this.state = 414;
2042
2065
  this.data_expr(10);
2043
2066
  }
2044
2067
  break;
@@ -2046,13 +2069,13 @@ export class CircuitScriptParser extends antlr.Parser {
2046
2069
  {
2047
2070
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
2048
2071
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2049
- this.state = 400;
2072
+ this.state = 415;
2050
2073
  if (!(this.precpred(this.context, 8))) {
2051
2074
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
2052
2075
  }
2053
- this.state = 401;
2076
+ this.state = 416;
2054
2077
  this.binary_operator();
2055
- this.state = 402;
2078
+ this.state = 417;
2056
2079
  this.data_expr(9);
2057
2080
  }
2058
2081
  break;
@@ -2060,20 +2083,20 @@ export class CircuitScriptParser extends antlr.Parser {
2060
2083
  {
2061
2084
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
2062
2085
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2063
- this.state = 404;
2086
+ this.state = 419;
2064
2087
  if (!(this.precpred(this.context, 7))) {
2065
2088
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
2066
2089
  }
2067
- this.state = 405;
2090
+ this.state = 420;
2068
2091
  _la = this.tokenStream.LA(1);
2069
- if (!(_la === 40 || _la === 41)) {
2092
+ if (!(_la === 41 || _la === 42)) {
2070
2093
  this.errorHandler.recoverInline(this);
2071
2094
  }
2072
2095
  else {
2073
2096
  this.errorHandler.reportMatch(this);
2074
2097
  this.consume();
2075
2098
  }
2076
- this.state = 406;
2099
+ this.state = 421;
2077
2100
  this.data_expr(8);
2078
2101
  }
2079
2102
  break;
@@ -2081,22 +2104,22 @@ export class CircuitScriptParser extends antlr.Parser {
2081
2104
  {
2082
2105
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
2083
2106
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2084
- this.state = 407;
2107
+ this.state = 422;
2085
2108
  if (!(this.precpred(this.context, 1))) {
2086
2109
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2087
2110
  }
2088
- this.state = 408;
2111
+ this.state = 423;
2089
2112
  this.match(CircuitScriptParser.T__4);
2090
- this.state = 409;
2113
+ this.state = 424;
2091
2114
  this.data_expr(0);
2092
- this.state = 410;
2115
+ this.state = 425;
2093
2116
  this.match(CircuitScriptParser.T__5);
2094
2117
  }
2095
2118
  break;
2096
2119
  }
2097
2120
  }
2098
2121
  }
2099
- this.state = 416;
2122
+ this.state = 431;
2100
2123
  this.errorHandler.sync(this);
2101
2124
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2102
2125
  }
@@ -2123,9 +2146,9 @@ export class CircuitScriptParser extends antlr.Parser {
2123
2146
  try {
2124
2147
  this.enterOuterAlt(localContext, 1);
2125
2148
  {
2126
- this.state = 417;
2149
+ this.state = 432;
2127
2150
  _la = this.tokenStream.LA(1);
2128
- if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
2151
+ if (!(((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 63) !== 0))) {
2129
2152
  this.errorHandler.recoverInline(this);
2130
2153
  }
2131
2154
  else {
@@ -2155,9 +2178,9 @@ export class CircuitScriptParser extends antlr.Parser {
2155
2178
  try {
2156
2179
  this.enterOuterAlt(localContext, 1);
2157
2180
  {
2158
- this.state = 419;
2181
+ this.state = 434;
2159
2182
  _la = this.tokenStream.LA(1);
2160
- if (!(_la === 31 || _la === 43)) {
2183
+ if (!(_la === 32 || _la === 44)) {
2161
2184
  this.errorHandler.recoverInline(this);
2162
2185
  }
2163
2186
  else {
@@ -2188,18 +2211,18 @@ export class CircuitScriptParser extends antlr.Parser {
2188
2211
  this.enterOuterAlt(localContext, 1);
2189
2212
  {
2190
2213
  {
2191
- this.state = 422;
2214
+ this.state = 437;
2192
2215
  this.errorHandler.sync(this);
2193
2216
  _la = this.tokenStream.LA(1);
2194
- if (_la === 43) {
2217
+ if (_la === 44) {
2195
2218
  {
2196
- this.state = 421;
2219
+ this.state = 436;
2197
2220
  this.match(CircuitScriptParser.Minus);
2198
2221
  }
2199
2222
  }
2200
- this.state = 424;
2223
+ this.state = 439;
2201
2224
  _la = this.tokenStream.LA(1);
2202
- if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 125) !== 0))) {
2225
+ if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 125) !== 0))) {
2203
2226
  this.errorHandler.recoverInline(this);
2204
2227
  }
2205
2228
  else {
@@ -2230,44 +2253,45 @@ export class CircuitScriptParser extends antlr.Parser {
2230
2253
  try {
2231
2254
  this.enterOuterAlt(localContext, 1);
2232
2255
  {
2233
- this.state = 426;
2256
+ this.state = 441;
2234
2257
  this.match(CircuitScriptParser.Define);
2235
- this.state = 427;
2258
+ this.state = 442;
2236
2259
  this.match(CircuitScriptParser.ID);
2237
- this.state = 428;
2260
+ this.state = 443;
2238
2261
  this.match(CircuitScriptParser.OPEN_PAREN);
2239
- this.state = 430;
2262
+ this.state = 445;
2240
2263
  this.errorHandler.sync(this);
2241
2264
  _la = this.tokenStream.LA(1);
2242
- if (_la === 57) {
2265
+ if (_la === 58) {
2243
2266
  {
2244
- this.state = 429;
2267
+ this.state = 444;
2245
2268
  this.function_args_expr();
2246
2269
  }
2247
2270
  }
2248
- this.state = 432;
2271
+ this.state = 447;
2249
2272
  this.match(CircuitScriptParser.CLOSE_PAREN);
2250
- this.state = 433;
2273
+ this.state = 448;
2251
2274
  this.match(CircuitScriptParser.T__0);
2252
- this.state = 434;
2275
+ this.state = 449;
2253
2276
  this.match(CircuitScriptParser.NEWLINE);
2254
- this.state = 435;
2277
+ this.state = 450;
2255
2278
  this.match(CircuitScriptParser.INDENT);
2256
- this.state = 438;
2279
+ this.state = 453;
2257
2280
  this.errorHandler.sync(this);
2258
2281
  _la = this.tokenStream.LA(1);
2259
2282
  do {
2260
2283
  {
2261
- this.state = 438;
2284
+ this.state = 453;
2262
2285
  this.errorHandler.sync(this);
2263
2286
  switch (this.tokenStream.LA(1)) {
2264
2287
  case CircuitScriptParser.NEWLINE:
2265
2288
  {
2266
- this.state = 436;
2289
+ this.state = 451;
2267
2290
  this.match(CircuitScriptParser.NEWLINE);
2268
2291
  }
2269
2292
  break;
2270
2293
  case CircuitScriptParser.T__3:
2294
+ case CircuitScriptParser.T__7:
2271
2295
  case CircuitScriptParser.Break:
2272
2296
  case CircuitScriptParser.Branch:
2273
2297
  case CircuitScriptParser.Wire:
@@ -2291,7 +2315,7 @@ export class CircuitScriptParser extends antlr.Parser {
2291
2315
  case CircuitScriptParser.ANNOTATION_START:
2292
2316
  case CircuitScriptParser.ID:
2293
2317
  {
2294
- this.state = 437;
2318
+ this.state = 452;
2295
2319
  this.function_expr();
2296
2320
  }
2297
2321
  break;
@@ -2299,11 +2323,11 @@ export class CircuitScriptParser extends antlr.Parser {
2299
2323
  throw new antlr.NoViableAltException(this);
2300
2324
  }
2301
2325
  }
2302
- this.state = 440;
2326
+ this.state = 455;
2303
2327
  this.errorHandler.sync(this);
2304
2328
  _la = this.tokenStream.LA(1);
2305
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
2306
- this.state = 442;
2329
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1736435825) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
2330
+ this.state = 457;
2307
2331
  this.match(CircuitScriptParser.DEDENT);
2308
2332
  }
2309
2333
  }
@@ -2325,10 +2349,11 @@ export class CircuitScriptParser extends antlr.Parser {
2325
2349
  let localContext = new Function_exprContext(this.context, this.state);
2326
2350
  this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2327
2351
  try {
2328
- this.state = 446;
2352
+ this.state = 461;
2329
2353
  this.errorHandler.sync(this);
2330
2354
  switch (this.tokenStream.LA(1)) {
2331
2355
  case CircuitScriptParser.T__3:
2356
+ case CircuitScriptParser.T__7:
2332
2357
  case CircuitScriptParser.Break:
2333
2358
  case CircuitScriptParser.Branch:
2334
2359
  case CircuitScriptParser.Wire:
@@ -2352,14 +2377,14 @@ export class CircuitScriptParser extends antlr.Parser {
2352
2377
  case CircuitScriptParser.ID:
2353
2378
  this.enterOuterAlt(localContext, 1);
2354
2379
  {
2355
- this.state = 444;
2380
+ this.state = 459;
2356
2381
  this.expression();
2357
2382
  }
2358
2383
  break;
2359
2384
  case CircuitScriptParser.Return:
2360
2385
  this.enterOuterAlt(localContext, 2);
2361
2386
  {
2362
- this.state = 445;
2387
+ this.state = 460;
2363
2388
  this.function_return_expr();
2364
2389
  }
2365
2390
  break;
@@ -2387,49 +2412,49 @@ export class CircuitScriptParser extends antlr.Parser {
2387
2412
  let _la;
2388
2413
  try {
2389
2414
  let alternative;
2390
- this.state = 477;
2415
+ this.state = 492;
2391
2416
  this.errorHandler.sync(this);
2392
2417
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2393
2418
  case 1:
2394
2419
  this.enterOuterAlt(localContext, 1);
2395
2420
  {
2396
- this.state = 448;
2421
+ this.state = 463;
2397
2422
  this.match(CircuitScriptParser.ID);
2398
- this.state = 453;
2423
+ this.state = 468;
2399
2424
  this.errorHandler.sync(this);
2400
2425
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2401
2426
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2402
2427
  if (alternative === 1) {
2403
2428
  {
2404
2429
  {
2405
- this.state = 449;
2430
+ this.state = 464;
2406
2431
  this.match(CircuitScriptParser.T__1);
2407
- this.state = 450;
2432
+ this.state = 465;
2408
2433
  this.match(CircuitScriptParser.ID);
2409
2434
  }
2410
2435
  }
2411
2436
  }
2412
- this.state = 455;
2437
+ this.state = 470;
2413
2438
  this.errorHandler.sync(this);
2414
2439
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2415
2440
  }
2416
- this.state = 462;
2441
+ this.state = 477;
2417
2442
  this.errorHandler.sync(this);
2418
2443
  _la = this.tokenStream.LA(1);
2419
2444
  while (_la === 2) {
2420
2445
  {
2421
2446
  {
2422
- this.state = 456;
2447
+ this.state = 471;
2423
2448
  this.match(CircuitScriptParser.T__1);
2424
- this.state = 457;
2449
+ this.state = 472;
2425
2450
  this.match(CircuitScriptParser.ID);
2426
- this.state = 458;
2451
+ this.state = 473;
2427
2452
  this.match(CircuitScriptParser.T__2);
2428
- this.state = 459;
2453
+ this.state = 474;
2429
2454
  this.value_expr();
2430
2455
  }
2431
2456
  }
2432
- this.state = 464;
2457
+ this.state = 479;
2433
2458
  this.errorHandler.sync(this);
2434
2459
  _la = this.tokenStream.LA(1);
2435
2460
  }
@@ -2438,29 +2463,29 @@ export class CircuitScriptParser extends antlr.Parser {
2438
2463
  case 2:
2439
2464
  this.enterOuterAlt(localContext, 2);
2440
2465
  {
2441
- this.state = 465;
2466
+ this.state = 480;
2442
2467
  this.match(CircuitScriptParser.ID);
2443
- this.state = 466;
2468
+ this.state = 481;
2444
2469
  this.match(CircuitScriptParser.T__2);
2445
- this.state = 467;
2470
+ this.state = 482;
2446
2471
  this.value_expr();
2447
- this.state = 474;
2472
+ this.state = 489;
2448
2473
  this.errorHandler.sync(this);
2449
2474
  _la = this.tokenStream.LA(1);
2450
2475
  while (_la === 2) {
2451
2476
  {
2452
2477
  {
2453
- this.state = 468;
2478
+ this.state = 483;
2454
2479
  this.match(CircuitScriptParser.T__1);
2455
- this.state = 469;
2480
+ this.state = 484;
2456
2481
  this.match(CircuitScriptParser.ID);
2457
- this.state = 470;
2482
+ this.state = 485;
2458
2483
  this.match(CircuitScriptParser.T__2);
2459
- this.state = 471;
2484
+ this.state = 486;
2460
2485
  this.value_expr();
2461
2486
  }
2462
2487
  }
2463
- this.state = 476;
2488
+ this.state = 491;
2464
2489
  this.errorHandler.sync(this);
2465
2490
  _la = this.tokenStream.LA(1);
2466
2491
  }
@@ -2489,21 +2514,21 @@ export class CircuitScriptParser extends antlr.Parser {
2489
2514
  let alternative;
2490
2515
  this.enterOuterAlt(localContext, 1);
2491
2516
  {
2492
- this.state = 479;
2517
+ this.state = 494;
2493
2518
  this.match(CircuitScriptParser.ID);
2494
- this.state = 483;
2519
+ this.state = 498;
2495
2520
  this.errorHandler.sync(this);
2496
2521
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2497
2522
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2498
2523
  if (alternative === 1) {
2499
2524
  {
2500
2525
  {
2501
- this.state = 480;
2526
+ this.state = 495;
2502
2527
  this.trailer_expr2();
2503
2528
  }
2504
2529
  }
2505
2530
  }
2506
- this.state = 485;
2531
+ this.state = 500;
2507
2532
  this.errorHandler.sync(this);
2508
2533
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2509
2534
  }
@@ -2528,24 +2553,24 @@ export class CircuitScriptParser extends antlr.Parser {
2528
2553
  this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2529
2554
  let _la;
2530
2555
  try {
2531
- this.state = 492;
2556
+ this.state = 507;
2532
2557
  this.errorHandler.sync(this);
2533
2558
  switch (this.tokenStream.LA(1)) {
2534
2559
  case CircuitScriptParser.OPEN_PAREN:
2535
2560
  this.enterOuterAlt(localContext, 1);
2536
2561
  {
2537
- this.state = 486;
2562
+ this.state = 501;
2538
2563
  this.match(CircuitScriptParser.OPEN_PAREN);
2539
- this.state = 488;
2564
+ this.state = 503;
2540
2565
  this.errorHandler.sync(this);
2541
2566
  _la = this.tokenStream.LA(1);
2542
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2082823) !== 0)) {
2567
+ if (_la === 5 || _la === 11 || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4265621505) !== 0)) {
2543
2568
  {
2544
- this.state = 487;
2569
+ this.state = 502;
2545
2570
  this.parameters();
2546
2571
  }
2547
2572
  }
2548
- this.state = 490;
2573
+ this.state = 505;
2549
2574
  this.match(CircuitScriptParser.CLOSE_PAREN);
2550
2575
  }
2551
2576
  break;
@@ -2553,7 +2578,7 @@ export class CircuitScriptParser extends antlr.Parser {
2553
2578
  case CircuitScriptParser.T__6:
2554
2579
  this.enterOuterAlt(localContext, 2);
2555
2580
  {
2556
- this.state = 491;
2581
+ this.state = 506;
2557
2582
  this.trailer_expr2();
2558
2583
  }
2559
2584
  break;
@@ -2579,26 +2604,26 @@ export class CircuitScriptParser extends antlr.Parser {
2579
2604
  let localContext = new Trailer_expr2Context(this.context, this.state);
2580
2605
  this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2581
2606
  try {
2582
- this.state = 500;
2607
+ this.state = 515;
2583
2608
  this.errorHandler.sync(this);
2584
2609
  switch (this.tokenStream.LA(1)) {
2585
2610
  case CircuitScriptParser.T__6:
2586
2611
  this.enterOuterAlt(localContext, 1);
2587
2612
  {
2588
- this.state = 494;
2613
+ this.state = 509;
2589
2614
  this.match(CircuitScriptParser.T__6);
2590
- this.state = 495;
2615
+ this.state = 510;
2591
2616
  this.match(CircuitScriptParser.ID);
2592
2617
  }
2593
2618
  break;
2594
2619
  case CircuitScriptParser.T__4:
2595
2620
  this.enterOuterAlt(localContext, 2);
2596
2621
  {
2597
- this.state = 496;
2622
+ this.state = 511;
2598
2623
  this.match(CircuitScriptParser.T__4);
2599
- this.state = 497;
2624
+ this.state = 512;
2600
2625
  this.data_expr(0);
2601
- this.state = 498;
2626
+ this.state = 513;
2602
2627
  this.match(CircuitScriptParser.T__5);
2603
2628
  }
2604
2629
  break;
@@ -2628,18 +2653,18 @@ export class CircuitScriptParser extends antlr.Parser {
2628
2653
  let alternative;
2629
2654
  this.enterOuterAlt(localContext, 1);
2630
2655
  {
2631
- this.state = 503;
2656
+ this.state = 518;
2632
2657
  this.errorHandler.sync(this);
2633
2658
  _la = this.tokenStream.LA(1);
2634
- if (_la === 42 || _la === 44) {
2659
+ if (_la === 43 || _la === 45) {
2635
2660
  {
2636
- this.state = 502;
2661
+ this.state = 517;
2637
2662
  this.net_namespace_expr();
2638
2663
  }
2639
2664
  }
2640
- this.state = 505;
2665
+ this.state = 520;
2641
2666
  this.match(CircuitScriptParser.ID);
2642
- this.state = 507;
2667
+ this.state = 522;
2643
2668
  this.errorHandler.sync(this);
2644
2669
  alternative = 1;
2645
2670
  do {
@@ -2647,7 +2672,7 @@ export class CircuitScriptParser extends antlr.Parser {
2647
2672
  case 1:
2648
2673
  {
2649
2674
  {
2650
- this.state = 506;
2675
+ this.state = 521;
2651
2676
  this.trailer_expr();
2652
2677
  }
2653
2678
  }
@@ -2655,7 +2680,7 @@ export class CircuitScriptParser extends antlr.Parser {
2655
2680
  default:
2656
2681
  throw new antlr.NoViableAltException(this);
2657
2682
  }
2658
- this.state = 509;
2683
+ this.state = 524;
2659
2684
  this.errorHandler.sync(this);
2660
2685
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2661
2686
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2682,23 +2707,23 @@ export class CircuitScriptParser extends antlr.Parser {
2682
2707
  try {
2683
2708
  this.enterOuterAlt(localContext, 1);
2684
2709
  {
2685
- this.state = 512;
2710
+ this.state = 527;
2686
2711
  this.errorHandler.sync(this);
2687
2712
  _la = this.tokenStream.LA(1);
2688
- if (_la === 42) {
2713
+ if (_la === 43) {
2689
2714
  {
2690
- this.state = 511;
2715
+ this.state = 526;
2691
2716
  this.match(CircuitScriptParser.Addition);
2692
2717
  }
2693
2718
  }
2694
- this.state = 514;
2719
+ this.state = 529;
2695
2720
  this.match(CircuitScriptParser.Divide);
2696
- this.state = 516;
2721
+ this.state = 531;
2697
2722
  this.errorHandler.sync(this);
2698
2723
  switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2699
2724
  case 1:
2700
2725
  {
2701
- this.state = 515;
2726
+ this.state = 530;
2702
2727
  this.data_expr(0);
2703
2728
  }
2704
2729
  break;
@@ -2725,9 +2750,9 @@ export class CircuitScriptParser extends antlr.Parser {
2725
2750
  try {
2726
2751
  this.enterOuterAlt(localContext, 1);
2727
2752
  {
2728
- this.state = 518;
2753
+ this.state = 533;
2729
2754
  this.match(CircuitScriptParser.Return);
2730
- this.state = 519;
2755
+ this.state = 534;
2731
2756
  this.data_expr(0);
2732
2757
  }
2733
2758
  }
@@ -2751,11 +2776,11 @@ export class CircuitScriptParser extends antlr.Parser {
2751
2776
  try {
2752
2777
  this.enterOuterAlt(localContext, 1);
2753
2778
  {
2754
- this.state = 521;
2779
+ this.state = 536;
2755
2780
  this.property_key_expr();
2756
- this.state = 522;
2781
+ this.state = 537;
2757
2782
  this.match(CircuitScriptParser.T__0);
2758
- this.state = 523;
2783
+ this.state = 538;
2759
2784
  this.expressions_block();
2760
2785
  }
2761
2786
  }
@@ -2780,27 +2805,27 @@ export class CircuitScriptParser extends antlr.Parser {
2780
2805
  try {
2781
2806
  this.enterOuterAlt(localContext, 1);
2782
2807
  {
2783
- this.state = 525;
2808
+ this.state = 540;
2784
2809
  this.match(CircuitScriptParser.Create);
2785
- this.state = 526;
2810
+ this.state = 541;
2786
2811
  this.match(CircuitScriptParser.Component);
2787
- this.state = 527;
2812
+ this.state = 542;
2788
2813
  this.match(CircuitScriptParser.T__0);
2789
- this.state = 528;
2814
+ this.state = 543;
2790
2815
  this.match(CircuitScriptParser.NEWLINE);
2791
- this.state = 529;
2816
+ this.state = 544;
2792
2817
  this.match(CircuitScriptParser.INDENT);
2793
- this.state = 532;
2818
+ this.state = 547;
2794
2819
  this.errorHandler.sync(this);
2795
2820
  _la = this.tokenStream.LA(1);
2796
2821
  do {
2797
2822
  {
2798
- this.state = 532;
2823
+ this.state = 547;
2799
2824
  this.errorHandler.sync(this);
2800
2825
  switch (this.tokenStream.LA(1)) {
2801
2826
  case CircuitScriptParser.NEWLINE:
2802
2827
  {
2803
- this.state = 530;
2828
+ this.state = 545;
2804
2829
  this.match(CircuitScriptParser.NEWLINE);
2805
2830
  }
2806
2831
  break;
@@ -2808,7 +2833,7 @@ export class CircuitScriptParser extends antlr.Parser {
2808
2833
  case CircuitScriptParser.INTEGER_VALUE:
2809
2834
  case CircuitScriptParser.STRING_VALUE:
2810
2835
  {
2811
- this.state = 531;
2836
+ this.state = 546;
2812
2837
  this.property_expr();
2813
2838
  }
2814
2839
  break;
@@ -2816,11 +2841,11 @@ export class CircuitScriptParser extends antlr.Parser {
2816
2841
  throw new antlr.NoViableAltException(this);
2817
2842
  }
2818
2843
  }
2819
- this.state = 534;
2844
+ this.state = 549;
2820
2845
  this.errorHandler.sync(this);
2821
2846
  _la = this.tokenStream.LA(1);
2822
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2823
- this.state = 536;
2847
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
2848
+ this.state = 551;
2824
2849
  this.match(CircuitScriptParser.DEDENT);
2825
2850
  }
2826
2851
  }
@@ -2845,21 +2870,21 @@ export class CircuitScriptParser extends antlr.Parser {
2845
2870
  try {
2846
2871
  this.enterOuterAlt(localContext, 1);
2847
2872
  {
2848
- this.state = 538;
2873
+ this.state = 553;
2849
2874
  this.match(CircuitScriptParser.NEWLINE);
2850
- this.state = 539;
2875
+ this.state = 554;
2851
2876
  this.match(CircuitScriptParser.INDENT);
2852
- this.state = 542;
2877
+ this.state = 557;
2853
2878
  this.errorHandler.sync(this);
2854
2879
  _la = this.tokenStream.LA(1);
2855
2880
  do {
2856
2881
  {
2857
- this.state = 542;
2882
+ this.state = 557;
2858
2883
  this.errorHandler.sync(this);
2859
2884
  switch (this.tokenStream.LA(1)) {
2860
2885
  case CircuitScriptParser.NEWLINE:
2861
2886
  {
2862
- this.state = 540;
2887
+ this.state = 555;
2863
2888
  this.match(CircuitScriptParser.NEWLINE);
2864
2889
  }
2865
2890
  break;
@@ -2867,7 +2892,7 @@ export class CircuitScriptParser extends antlr.Parser {
2867
2892
  case CircuitScriptParser.For:
2868
2893
  case CircuitScriptParser.ID:
2869
2894
  {
2870
- this.state = 541;
2895
+ this.state = 556;
2871
2896
  this.graphic_expr();
2872
2897
  }
2873
2898
  break;
@@ -2875,11 +2900,11 @@ export class CircuitScriptParser extends antlr.Parser {
2875
2900
  throw new antlr.NoViableAltException(this);
2876
2901
  }
2877
2902
  }
2878
- this.state = 544;
2903
+ this.state = 559;
2879
2904
  this.errorHandler.sync(this);
2880
2905
  _la = this.tokenStream.LA(1);
2881
- } while (_la === 15 || _la === 25 || _la === 57 || _la === 65);
2882
- this.state = 546;
2906
+ } while (_la === 16 || _la === 26 || _la === 58 || _la === 66);
2907
+ this.state = 561;
2883
2908
  this.match(CircuitScriptParser.DEDENT);
2884
2909
  }
2885
2910
  }
@@ -2904,26 +2929,26 @@ export class CircuitScriptParser extends antlr.Parser {
2904
2929
  try {
2905
2930
  this.enterOuterAlt(localContext, 1);
2906
2931
  {
2907
- this.state = 548;
2932
+ this.state = 563;
2908
2933
  this.match(CircuitScriptParser.Create);
2909
- this.state = 549;
2934
+ this.state = 564;
2910
2935
  this.match(CircuitScriptParser.Graphic);
2911
- this.state = 553;
2936
+ this.state = 568;
2912
2937
  this.errorHandler.sync(this);
2913
2938
  _la = this.tokenStream.LA(1);
2914
- if (_la === 53) {
2939
+ if (_la === 54) {
2915
2940
  {
2916
- this.state = 550;
2941
+ this.state = 565;
2917
2942
  this.match(CircuitScriptParser.OPEN_PAREN);
2918
- this.state = 551;
2943
+ this.state = 566;
2919
2944
  this.match(CircuitScriptParser.ID);
2920
- this.state = 552;
2945
+ this.state = 567;
2921
2946
  this.match(CircuitScriptParser.CLOSE_PAREN);
2922
2947
  }
2923
2948
  }
2924
- this.state = 555;
2949
+ this.state = 570;
2925
2950
  this.match(CircuitScriptParser.T__0);
2926
- this.state = 556;
2951
+ this.state = 571;
2927
2952
  this.graphic_expressions_block();
2928
2953
  }
2929
2954
  }
@@ -2948,49 +2973,49 @@ export class CircuitScriptParser extends antlr.Parser {
2948
2973
  try {
2949
2974
  this.enterOuterAlt(localContext, 1);
2950
2975
  {
2951
- this.state = 558;
2976
+ this.state = 573;
2952
2977
  this.match(CircuitScriptParser.Create);
2953
- this.state = 559;
2978
+ this.state = 574;
2954
2979
  this.match(CircuitScriptParser.Module);
2955
- this.state = 560;
2980
+ this.state = 575;
2956
2981
  this.match(CircuitScriptParser.T__0);
2957
- this.state = 561;
2982
+ this.state = 576;
2958
2983
  this.match(CircuitScriptParser.NEWLINE);
2959
- this.state = 562;
2984
+ this.state = 577;
2960
2985
  this.match(CircuitScriptParser.INDENT);
2961
- this.state = 566;
2986
+ this.state = 581;
2962
2987
  this.errorHandler.sync(this);
2963
2988
  _la = this.tokenStream.LA(1);
2964
2989
  do {
2965
2990
  {
2966
- this.state = 566;
2991
+ this.state = 581;
2967
2992
  this.errorHandler.sync(this);
2968
2993
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2969
2994
  case 1:
2970
2995
  {
2971
- this.state = 563;
2996
+ this.state = 578;
2972
2997
  this.match(CircuitScriptParser.NEWLINE);
2973
2998
  }
2974
2999
  break;
2975
3000
  case 2:
2976
3001
  {
2977
- this.state = 564;
3002
+ this.state = 579;
2978
3003
  this.property_expr();
2979
3004
  }
2980
3005
  break;
2981
3006
  case 3:
2982
3007
  {
2983
- this.state = 565;
3008
+ this.state = 580;
2984
3009
  this.property_block_expr();
2985
3010
  }
2986
3011
  break;
2987
3012
  }
2988
3013
  }
2989
- this.state = 568;
3014
+ this.state = 583;
2990
3015
  this.errorHandler.sync(this);
2991
3016
  _la = this.tokenStream.LA(1);
2992
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2993
- this.state = 570;
3017
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
3018
+ this.state = 585;
2994
3019
  this.match(CircuitScriptParser.DEDENT);
2995
3020
  }
2996
3021
  }
@@ -3016,21 +3041,21 @@ export class CircuitScriptParser extends antlr.Parser {
3016
3041
  this.enterOuterAlt(localContext, 1);
3017
3042
  {
3018
3043
  {
3019
- this.state = 572;
3044
+ this.state = 587;
3020
3045
  this.match(CircuitScriptParser.NEWLINE);
3021
- this.state = 573;
3046
+ this.state = 588;
3022
3047
  this.match(CircuitScriptParser.INDENT);
3023
- this.state = 576;
3048
+ this.state = 591;
3024
3049
  this.errorHandler.sync(this);
3025
3050
  _la = this.tokenStream.LA(1);
3026
3051
  do {
3027
3052
  {
3028
- this.state = 576;
3053
+ this.state = 591;
3029
3054
  this.errorHandler.sync(this);
3030
3055
  switch (this.tokenStream.LA(1)) {
3031
3056
  case CircuitScriptParser.NEWLINE:
3032
3057
  {
3033
- this.state = 574;
3058
+ this.state = 589;
3034
3059
  this.match(CircuitScriptParser.NEWLINE);
3035
3060
  }
3036
3061
  break;
@@ -3038,7 +3063,7 @@ export class CircuitScriptParser extends antlr.Parser {
3038
3063
  case CircuitScriptParser.INTEGER_VALUE:
3039
3064
  case CircuitScriptParser.STRING_VALUE:
3040
3065
  {
3041
- this.state = 575;
3066
+ this.state = 590;
3042
3067
  this.property_expr();
3043
3068
  }
3044
3069
  break;
@@ -3046,11 +3071,11 @@ export class CircuitScriptParser extends antlr.Parser {
3046
3071
  throw new antlr.NoViableAltException(this);
3047
3072
  }
3048
3073
  }
3049
- this.state = 578;
3074
+ this.state = 593;
3050
3075
  this.errorHandler.sync(this);
3051
3076
  _la = this.tokenStream.LA(1);
3052
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
3053
- this.state = 580;
3077
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
3078
+ this.state = 595;
3054
3079
  this.match(CircuitScriptParser.DEDENT);
3055
3080
  }
3056
3081
  }
@@ -3074,7 +3099,7 @@ export class CircuitScriptParser extends antlr.Parser {
3074
3099
  this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
3075
3100
  let _la;
3076
3101
  try {
3077
- this.state = 608;
3102
+ this.state = 623;
3078
3103
  this.errorHandler.sync(this);
3079
3104
  switch (this.tokenStream.LA(1)) {
3080
3105
  case CircuitScriptParser.Pin:
@@ -3082,47 +3107,47 @@ export class CircuitScriptParser extends antlr.Parser {
3082
3107
  localContext = new GraphicCommandExprContext(localContext);
3083
3108
  this.enterOuterAlt(localContext, 1);
3084
3109
  {
3085
- this.state = 582;
3110
+ this.state = 597;
3086
3111
  localContext._command = this.tokenStream.LT(1);
3087
3112
  _la = this.tokenStream.LA(1);
3088
- if (!(_la === 15 || _la === 57)) {
3113
+ if (!(_la === 16 || _la === 58)) {
3089
3114
  localContext._command = this.errorHandler.recoverInline(this);
3090
3115
  }
3091
3116
  else {
3092
3117
  this.errorHandler.reportMatch(this);
3093
3118
  this.consume();
3094
3119
  }
3095
- this.state = 584;
3120
+ this.state = 599;
3096
3121
  this.errorHandler.sync(this);
3097
3122
  _la = this.tokenStream.LA(1);
3098
3123
  if (_la === 1) {
3099
3124
  {
3100
- this.state = 583;
3125
+ this.state = 598;
3101
3126
  this.match(CircuitScriptParser.T__0);
3102
3127
  }
3103
3128
  }
3104
- this.state = 592;
3129
+ this.state = 607;
3105
3130
  this.errorHandler.sync(this);
3106
3131
  switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3107
3132
  case 1:
3108
3133
  {
3109
- this.state = 586;
3134
+ this.state = 601;
3110
3135
  this.parameters();
3111
3136
  }
3112
3137
  break;
3113
3138
  case 2:
3114
3139
  {
3115
- this.state = 587;
3140
+ this.state = 602;
3116
3141
  this.match(CircuitScriptParser.OPEN_PAREN);
3117
- this.state = 588;
3142
+ this.state = 603;
3118
3143
  this.parameters();
3119
- this.state = 589;
3144
+ this.state = 604;
3120
3145
  this.match(CircuitScriptParser.CLOSE_PAREN);
3121
3146
  }
3122
3147
  break;
3123
3148
  case 3:
3124
3149
  {
3125
- this.state = 591;
3150
+ this.state = 606;
3126
3151
  this.nested_properties_inner();
3127
3152
  }
3128
3153
  break;
@@ -3133,33 +3158,33 @@ export class CircuitScriptParser extends antlr.Parser {
3133
3158
  localContext = new GraphicForExprContext(localContext);
3134
3159
  this.enterOuterAlt(localContext, 2);
3135
3160
  {
3136
- this.state = 594;
3161
+ this.state = 609;
3137
3162
  this.match(CircuitScriptParser.For);
3138
- this.state = 595;
3163
+ this.state = 610;
3139
3164
  this.match(CircuitScriptParser.ID);
3140
- this.state = 600;
3165
+ this.state = 615;
3141
3166
  this.errorHandler.sync(this);
3142
3167
  _la = this.tokenStream.LA(1);
3143
3168
  while (_la === 2) {
3144
3169
  {
3145
3170
  {
3146
- this.state = 596;
3171
+ this.state = 611;
3147
3172
  this.match(CircuitScriptParser.T__1);
3148
- this.state = 597;
3173
+ this.state = 612;
3149
3174
  this.match(CircuitScriptParser.ID);
3150
3175
  }
3151
3176
  }
3152
- this.state = 602;
3177
+ this.state = 617;
3153
3178
  this.errorHandler.sync(this);
3154
3179
  _la = this.tokenStream.LA(1);
3155
3180
  }
3156
- this.state = 603;
3181
+ this.state = 618;
3157
3182
  this.match(CircuitScriptParser.In);
3158
- this.state = 604;
3183
+ this.state = 619;
3159
3184
  this.data_expr(0);
3160
- this.state = 605;
3185
+ this.state = 620;
3161
3186
  this.match(CircuitScriptParser.T__0);
3162
- this.state = 606;
3187
+ this.state = 621;
3163
3188
  this.graphic_expressions_block();
3164
3189
  }
3165
3190
  break;
@@ -3187,11 +3212,11 @@ export class CircuitScriptParser extends antlr.Parser {
3187
3212
  try {
3188
3213
  this.enterOuterAlt(localContext, 1);
3189
3214
  {
3190
- this.state = 610;
3215
+ this.state = 625;
3191
3216
  this.property_key_expr();
3192
- this.state = 611;
3217
+ this.state = 626;
3193
3218
  this.match(CircuitScriptParser.T__0);
3194
- this.state = 612;
3219
+ this.state = 627;
3195
3220
  this.property_value_expr();
3196
3221
  }
3197
3222
  }
@@ -3216,9 +3241,9 @@ export class CircuitScriptParser extends antlr.Parser {
3216
3241
  try {
3217
3242
  this.enterOuterAlt(localContext, 1);
3218
3243
  {
3219
- this.state = 614;
3244
+ this.state = 629;
3220
3245
  _la = this.tokenStream.LA(1);
3221
- if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 19) !== 0))) {
3246
+ if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 19) !== 0))) {
3222
3247
  this.errorHandler.recoverInline(this);
3223
3248
  }
3224
3249
  else {
@@ -3246,14 +3271,14 @@ export class CircuitScriptParser extends antlr.Parser {
3246
3271
  this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3247
3272
  let _la;
3248
3273
  try {
3249
- this.state = 625;
3274
+ this.state = 640;
3250
3275
  this.errorHandler.sync(this);
3251
3276
  switch (this.tokenStream.LA(1)) {
3252
3277
  case CircuitScriptParser.NEWLINE:
3253
3278
  localContext = new Nested_propertiesContext(localContext);
3254
3279
  this.enterOuterAlt(localContext, 1);
3255
3280
  {
3256
- this.state = 616;
3281
+ this.state = 631;
3257
3282
  this.nested_properties_inner();
3258
3283
  }
3259
3284
  break;
@@ -3274,21 +3299,21 @@ export class CircuitScriptParser extends antlr.Parser {
3274
3299
  localContext = new Single_line_propertyContext(localContext);
3275
3300
  this.enterOuterAlt(localContext, 2);
3276
3301
  {
3277
- this.state = 617;
3302
+ this.state = 632;
3278
3303
  this.data_expr(0);
3279
- this.state = 622;
3304
+ this.state = 637;
3280
3305
  this.errorHandler.sync(this);
3281
3306
  _la = this.tokenStream.LA(1);
3282
3307
  while (_la === 2) {
3283
3308
  {
3284
3309
  {
3285
- this.state = 618;
3310
+ this.state = 633;
3286
3311
  this.match(CircuitScriptParser.T__1);
3287
- this.state = 619;
3312
+ this.state = 634;
3288
3313
  this.data_expr(0);
3289
3314
  }
3290
3315
  }
3291
- this.state = 624;
3316
+ this.state = 639;
3292
3317
  this.errorHandler.sync(this);
3293
3318
  _la = this.tokenStream.LA(1);
3294
3319
  }
@@ -3316,27 +3341,27 @@ export class CircuitScriptParser extends antlr.Parser {
3316
3341
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3317
3342
  this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3318
3343
  try {
3319
- this.state = 633;
3344
+ this.state = 648;
3320
3345
  this.errorHandler.sync(this);
3321
3346
  switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3322
3347
  case 1:
3323
3348
  localContext = new Wire_expr_direction_valueContext(localContext);
3324
3349
  this.enterOuterAlt(localContext, 1);
3325
3350
  {
3326
- this.state = 627;
3351
+ this.state = 642;
3327
3352
  this.match(CircuitScriptParser.ID);
3328
- this.state = 630;
3353
+ this.state = 645;
3329
3354
  this.errorHandler.sync(this);
3330
3355
  switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3331
3356
  case 1:
3332
3357
  {
3333
- this.state = 628;
3358
+ this.state = 643;
3334
3359
  this.match(CircuitScriptParser.INTEGER_VALUE);
3335
3360
  }
3336
3361
  break;
3337
3362
  case 2:
3338
3363
  {
3339
- this.state = 629;
3364
+ this.state = 644;
3340
3365
  this.data_expr(0);
3341
3366
  }
3342
3367
  break;
@@ -3347,7 +3372,7 @@ export class CircuitScriptParser extends antlr.Parser {
3347
3372
  localContext = new Wire_expr_direction_onlyContext(localContext);
3348
3373
  this.enterOuterAlt(localContext, 2);
3349
3374
  {
3350
- this.state = 632;
3375
+ this.state = 647;
3351
3376
  this.match(CircuitScriptParser.ID);
3352
3377
  }
3353
3378
  break;
@@ -3374,21 +3399,21 @@ export class CircuitScriptParser extends antlr.Parser {
3374
3399
  let alternative;
3375
3400
  this.enterOuterAlt(localContext, 1);
3376
3401
  {
3377
- this.state = 635;
3402
+ this.state = 650;
3378
3403
  this.match(CircuitScriptParser.Wire);
3379
- this.state = 639;
3404
+ this.state = 654;
3380
3405
  this.errorHandler.sync(this);
3381
3406
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3382
3407
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3383
3408
  if (alternative === 1) {
3384
3409
  {
3385
3410
  {
3386
- this.state = 636;
3411
+ this.state = 651;
3387
3412
  this.wire_atom_expr();
3388
3413
  }
3389
3414
  }
3390
3415
  }
3391
- this.state = 641;
3416
+ this.state = 656;
3392
3417
  this.errorHandler.sync(this);
3393
3418
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3394
3419
  }
@@ -3415,39 +3440,39 @@ export class CircuitScriptParser extends antlr.Parser {
3415
3440
  try {
3416
3441
  this.enterOuterAlt(localContext, 1);
3417
3442
  {
3418
- this.state = 642;
3443
+ this.state = 657;
3419
3444
  this.match(CircuitScriptParser.T__4);
3420
- this.state = 653;
3445
+ this.state = 668;
3421
3446
  this.errorHandler.sync(this);
3422
3447
  _la = this.tokenStream.LA(1);
3423
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2082823) !== 0)) {
3448
+ while (_la === 5 || _la === 11 || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4265621505) !== 0)) {
3424
3449
  {
3425
3450
  {
3426
- this.state = 643;
3451
+ this.state = 658;
3427
3452
  this.data_expr(0);
3428
- this.state = 648;
3453
+ this.state = 663;
3429
3454
  this.errorHandler.sync(this);
3430
3455
  _la = this.tokenStream.LA(1);
3431
3456
  while (_la === 2) {
3432
3457
  {
3433
3458
  {
3434
- this.state = 644;
3459
+ this.state = 659;
3435
3460
  this.match(CircuitScriptParser.T__1);
3436
- this.state = 645;
3461
+ this.state = 660;
3437
3462
  this.data_expr(0);
3438
3463
  }
3439
3464
  }
3440
- this.state = 650;
3465
+ this.state = 665;
3441
3466
  this.errorHandler.sync(this);
3442
3467
  _la = this.tokenStream.LA(1);
3443
3468
  }
3444
3469
  }
3445
3470
  }
3446
- this.state = 655;
3471
+ this.state = 670;
3447
3472
  this.errorHandler.sync(this);
3448
3473
  _la = this.tokenStream.LA(1);
3449
3474
  }
3450
- this.state = 656;
3475
+ this.state = 671;
3451
3476
  this.match(CircuitScriptParser.T__5);
3452
3477
  }
3453
3478
  }
@@ -3471,20 +3496,20 @@ export class CircuitScriptParser extends antlr.Parser {
3471
3496
  try {
3472
3497
  this.enterOuterAlt(localContext, 1);
3473
3498
  {
3474
- this.state = 658;
3499
+ this.state = 673;
3475
3500
  this.match(CircuitScriptParser.Point);
3476
- this.state = 661;
3501
+ this.state = 676;
3477
3502
  this.errorHandler.sync(this);
3478
3503
  switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3479
3504
  case 1:
3480
3505
  {
3481
- this.state = 659;
3506
+ this.state = 674;
3482
3507
  this.match(CircuitScriptParser.ID);
3483
3508
  }
3484
3509
  break;
3485
3510
  case 2:
3486
3511
  {
3487
- this.state = 660;
3512
+ this.state = 675;
3488
3513
  this.data_expr(0);
3489
3514
  }
3490
3515
  break;
@@ -3511,9 +3536,9 @@ export class CircuitScriptParser extends antlr.Parser {
3511
3536
  try {
3512
3537
  this.enterOuterAlt(localContext, 1);
3513
3538
  {
3514
- this.state = 663;
3539
+ this.state = 678;
3515
3540
  this.match(CircuitScriptParser.Import);
3516
- this.state = 664;
3541
+ this.state = 679;
3517
3542
  this.match(CircuitScriptParser.ID);
3518
3543
  }
3519
3544
  }
@@ -3538,18 +3563,18 @@ export class CircuitScriptParser extends antlr.Parser {
3538
3563
  try {
3539
3564
  this.enterOuterAlt(localContext, 1);
3540
3565
  {
3541
- this.state = 666;
3566
+ this.state = 681;
3542
3567
  _la = this.tokenStream.LA(1);
3543
- if (!(_la === 32 || _la === 33)) {
3568
+ if (!(_la === 33 || _la === 34)) {
3544
3569
  this.errorHandler.recoverInline(this);
3545
3570
  }
3546
3571
  else {
3547
3572
  this.errorHandler.reportMatch(this);
3548
3573
  this.consume();
3549
3574
  }
3550
- this.state = 667;
3575
+ this.state = 682;
3551
3576
  this.match(CircuitScriptParser.T__0);
3552
- this.state = 668;
3577
+ this.state = 683;
3553
3578
  this.expressions_block();
3554
3579
  }
3555
3580
  }
@@ -3575,36 +3600,36 @@ export class CircuitScriptParser extends antlr.Parser {
3575
3600
  let alternative;
3576
3601
  this.enterOuterAlt(localContext, 1);
3577
3602
  {
3578
- this.state = 670;
3603
+ this.state = 685;
3579
3604
  this.match(CircuitScriptParser.If);
3580
- this.state = 671;
3605
+ this.state = 686;
3581
3606
  this.data_expr(0);
3582
- this.state = 672;
3607
+ this.state = 687;
3583
3608
  this.match(CircuitScriptParser.T__0);
3584
- this.state = 673;
3609
+ this.state = 688;
3585
3610
  this.expressions_block();
3586
- this.state = 677;
3611
+ this.state = 692;
3587
3612
  this.errorHandler.sync(this);
3588
3613
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3589
3614
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3590
3615
  if (alternative === 1) {
3591
3616
  {
3592
3617
  {
3593
- this.state = 674;
3618
+ this.state = 689;
3594
3619
  this.if_inner_expr();
3595
3620
  }
3596
3621
  }
3597
3622
  }
3598
- this.state = 679;
3623
+ this.state = 694;
3599
3624
  this.errorHandler.sync(this);
3600
3625
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3601
3626
  }
3602
- this.state = 681;
3627
+ this.state = 696;
3603
3628
  this.errorHandler.sync(this);
3604
3629
  _la = this.tokenStream.LA(1);
3605
- if (_la === 30) {
3630
+ if (_la === 31) {
3606
3631
  {
3607
- this.state = 680;
3632
+ this.state = 695;
3608
3633
  this.else_expr();
3609
3634
  }
3610
3635
  }
@@ -3630,15 +3655,15 @@ export class CircuitScriptParser extends antlr.Parser {
3630
3655
  try {
3631
3656
  this.enterOuterAlt(localContext, 1);
3632
3657
  {
3633
- this.state = 683;
3658
+ this.state = 698;
3634
3659
  this.match(CircuitScriptParser.Else);
3635
- this.state = 684;
3660
+ this.state = 699;
3636
3661
  this.match(CircuitScriptParser.If);
3637
- this.state = 685;
3662
+ this.state = 700;
3638
3663
  this.data_expr(0);
3639
- this.state = 686;
3664
+ this.state = 701;
3640
3665
  this.match(CircuitScriptParser.T__0);
3641
- this.state = 687;
3666
+ this.state = 702;
3642
3667
  this.expressions_block();
3643
3668
  }
3644
3669
  }
@@ -3662,11 +3687,11 @@ export class CircuitScriptParser extends antlr.Parser {
3662
3687
  try {
3663
3688
  this.enterOuterAlt(localContext, 1);
3664
3689
  {
3665
- this.state = 689;
3690
+ this.state = 704;
3666
3691
  this.match(CircuitScriptParser.Else);
3667
- this.state = 690;
3692
+ this.state = 705;
3668
3693
  this.match(CircuitScriptParser.T__0);
3669
- this.state = 691;
3694
+ this.state = 706;
3670
3695
  this.expressions_block();
3671
3696
  }
3672
3697
  }
@@ -3690,13 +3715,13 @@ export class CircuitScriptParser extends antlr.Parser {
3690
3715
  try {
3691
3716
  this.enterOuterAlt(localContext, 1);
3692
3717
  {
3693
- this.state = 693;
3718
+ this.state = 708;
3694
3719
  this.match(CircuitScriptParser.While);
3695
- this.state = 694;
3720
+ this.state = 709;
3696
3721
  this.data_expr(0);
3697
- this.state = 695;
3722
+ this.state = 710;
3698
3723
  this.match(CircuitScriptParser.T__0);
3699
- this.state = 696;
3724
+ this.state = 711;
3700
3725
  this.expressions_block();
3701
3726
  }
3702
3727
  }
@@ -3721,33 +3746,33 @@ export class CircuitScriptParser extends antlr.Parser {
3721
3746
  try {
3722
3747
  this.enterOuterAlt(localContext, 1);
3723
3748
  {
3724
- this.state = 698;
3749
+ this.state = 713;
3725
3750
  this.match(CircuitScriptParser.For);
3726
- this.state = 699;
3751
+ this.state = 714;
3727
3752
  this.match(CircuitScriptParser.ID);
3728
- this.state = 704;
3753
+ this.state = 719;
3729
3754
  this.errorHandler.sync(this);
3730
3755
  _la = this.tokenStream.LA(1);
3731
3756
  while (_la === 2) {
3732
3757
  {
3733
3758
  {
3734
- this.state = 700;
3759
+ this.state = 715;
3735
3760
  this.match(CircuitScriptParser.T__1);
3736
- this.state = 701;
3761
+ this.state = 716;
3737
3762
  this.match(CircuitScriptParser.ID);
3738
3763
  }
3739
3764
  }
3740
- this.state = 706;
3765
+ this.state = 721;
3741
3766
  this.errorHandler.sync(this);
3742
3767
  _la = this.tokenStream.LA(1);
3743
3768
  }
3744
- this.state = 707;
3769
+ this.state = 722;
3745
3770
  this.match(CircuitScriptParser.In);
3746
- this.state = 708;
3771
+ this.state = 723;
3747
3772
  this.data_expr(0);
3748
- this.state = 709;
3773
+ this.state = 724;
3749
3774
  this.match(CircuitScriptParser.T__0);
3750
- this.state = 710;
3775
+ this.state = 725;
3751
3776
  this.expressions_block();
3752
3777
  }
3753
3778
  }
@@ -3765,16 +3790,39 @@ export class CircuitScriptParser extends antlr.Parser {
3765
3790
  }
3766
3791
  return localContext;
3767
3792
  }
3768
- annotation_comment_expr() {
3769
- let localContext = new Annotation_comment_exprContext(this.context, this.state);
3770
- this.enterRule(localContext, 132, CircuitScriptParser.RULE_annotation_comment_expr);
3793
+ part_set_expr() {
3794
+ let localContext = new Part_set_exprContext(this.context, this.state);
3795
+ this.enterRule(localContext, 132, CircuitScriptParser.RULE_part_set_expr);
3796
+ let _la;
3771
3797
  try {
3772
3798
  this.enterOuterAlt(localContext, 1);
3773
3799
  {
3774
- this.state = 712;
3775
- this.match(CircuitScriptParser.ANNOTATION_START);
3776
- this.state = 713;
3777
- this.match(CircuitScriptParser.ID);
3800
+ this.state = 727;
3801
+ this.match(CircuitScriptParser.T__7);
3802
+ this.state = 728;
3803
+ this.match(CircuitScriptParser.T__0);
3804
+ this.state = 729;
3805
+ this.data_expr(0);
3806
+ this.state = 734;
3807
+ this.errorHandler.sync(this);
3808
+ _la = this.tokenStream.LA(1);
3809
+ while (_la === 2) {
3810
+ {
3811
+ {
3812
+ this.state = 730;
3813
+ this.match(CircuitScriptParser.T__1);
3814
+ this.state = 731;
3815
+ this.data_expr(0);
3816
+ }
3817
+ }
3818
+ this.state = 736;
3819
+ this.errorHandler.sync(this);
3820
+ _la = this.tokenStream.LA(1);
3821
+ }
3822
+ this.state = 737;
3823
+ this.match(CircuitScriptParser.T__0);
3824
+ this.state = 738;
3825
+ this.part_match_block();
3778
3826
  }
3779
3827
  }
3780
3828
  catch (re) {
@@ -3791,302 +3839,697 @@ export class CircuitScriptParser extends antlr.Parser {
3791
3839
  }
3792
3840
  return localContext;
3793
3841
  }
3794
- sempred(localContext, ruleIndex, predIndex) {
3795
- switch (ruleIndex) {
3796
- case 32:
3797
- return this.data_expr_sempred(localContext, predIndex);
3842
+ part_set_key() {
3843
+ let localContext = new Part_set_keyContext(this.context, this.state);
3844
+ this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_key);
3845
+ let _la;
3846
+ try {
3847
+ this.enterOuterAlt(localContext, 1);
3848
+ {
3849
+ this.state = 740;
3850
+ _la = this.tokenStream.LA(1);
3851
+ if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 59) !== 0))) {
3852
+ this.errorHandler.recoverInline(this);
3853
+ }
3854
+ else {
3855
+ this.errorHandler.reportMatch(this);
3856
+ this.consume();
3857
+ }
3858
+ }
3798
3859
  }
3799
- return true;
3800
- }
3801
- data_expr_sempred(localContext, predIndex) {
3802
- switch (predIndex) {
3803
- case 0:
3804
- return this.precpred(this.context, 10);
3805
- case 1:
3806
- return this.precpred(this.context, 9);
3807
- case 2:
3808
- return this.precpred(this.context, 8);
3809
- case 3:
3810
- return this.precpred(this.context, 7);
3811
- case 4:
3812
- return this.precpred(this.context, 1);
3860
+ catch (re) {
3861
+ if (re instanceof antlr.RecognitionException) {
3862
+ this.errorHandler.reportError(this, re);
3863
+ this.errorHandler.recover(this, re);
3864
+ }
3865
+ else {
3866
+ throw re;
3867
+ }
3813
3868
  }
3814
- return true;
3815
- }
3816
- static _serializedATN = [
3817
- 4, 1, 68, 716, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
3818
- 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13,
3819
- 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
3820
- 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
3821
- 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33,
3822
- 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
3823
- 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46,
3824
- 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52,
3825
- 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
3826
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
3827
- 2, 66, 7, 66, 1, 0, 1, 0, 5, 0, 137, 8, 0, 10, 0, 12, 0, 140, 9, 0, 1, 0, 1, 0, 4, 0, 144,
3828
- 8, 0, 11, 0, 12, 0, 145, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3829
- 1, 1, 1, 1, 1, 1, 1, 3, 1, 163, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 170, 8, 2, 1, 3, 1,
3830
- 3, 3, 3, 174, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 182, 8, 4, 1, 5, 1, 5, 1, 5, 1,
3831
- 5, 4, 5, 188, 8, 5, 11, 5, 12, 5, 189, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7,
3832
- 1, 7, 1, 7, 1, 7, 4, 7, 204, 8, 7, 11, 7, 12, 7, 205, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1,
3833
- 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 221, 8, 10, 1, 11, 1, 11, 3, 11, 225, 8,
3834
- 11, 1, 11, 5, 11, 228, 8, 11, 10, 11, 12, 11, 231, 9, 11, 1, 11, 3, 11, 234, 8, 11, 1,
3835
- 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 242, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1,
3836
- 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 253, 8, 16, 10, 16, 12, 16, 256, 9, 16, 1, 17, 1,
3837
- 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 264, 8, 17, 10, 17, 12, 17, 267, 9, 17, 1, 17, 1,
3838
- 17, 1, 17, 1, 17, 1, 17, 4, 17, 274, 8, 17, 11, 17, 12, 17, 275, 1, 17, 1, 17, 1, 18, 1,
3839
- 18, 1, 18, 1, 18, 1, 18, 5, 18, 285, 8, 18, 10, 18, 12, 18, 288, 9, 18, 1, 19, 1, 19, 1,
3840
- 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 297, 8, 20, 11, 20, 12, 20, 298, 1, 20, 1, 20, 1,
3841
- 21, 1, 21, 3, 21, 305, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 310, 8, 22, 10, 22, 12, 22, 313,
3842
- 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 319, 8, 23, 1, 24, 1, 24, 3, 24, 323, 8, 24, 1,
3843
- 25, 1, 25, 1, 26, 1, 26, 3, 26, 329, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1,
3844
- 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 345, 8, 29, 10, 29, 12, 29,
3845
- 348, 9, 29, 1, 29, 1, 29, 5, 29, 352, 8, 29, 10, 29, 12, 29, 355, 9, 29, 1, 29, 1, 29,
3846
- 1, 29, 5, 29, 360, 8, 29, 10, 29, 12, 29, 363, 9, 29, 3, 29, 365, 8, 29, 1, 30, 1, 30,
3847
- 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
3848
- 1, 32, 3, 32, 383, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32,
3849
- 393, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
3850
- 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 413, 8, 32, 10, 32, 12, 32, 416,
3851
- 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 423, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36,
3852
- 1, 36, 1, 36, 3, 36, 431, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36, 439, 8,
3853
- 36, 11, 36, 12, 36, 440, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 447, 8, 37, 1, 38, 1, 38, 1,
3854
- 38, 5, 38, 452, 8, 38, 10, 38, 12, 38, 455, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 461,
3855
- 8, 38, 10, 38, 12, 38, 464, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38,
3856
- 473, 8, 38, 10, 38, 12, 38, 476, 9, 38, 3, 38, 478, 8, 38, 1, 39, 1, 39, 5, 39, 482, 8,
3857
- 39, 10, 39, 12, 39, 485, 9, 39, 1, 40, 1, 40, 3, 40, 489, 8, 40, 1, 40, 1, 40, 3, 40, 493,
3858
- 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 501, 8, 41, 1, 42, 3, 42, 504, 8,
3859
- 42, 1, 42, 1, 42, 4, 42, 508, 8, 42, 11, 42, 12, 42, 509, 1, 43, 3, 43, 513, 8, 43, 1,
3860
- 43, 1, 43, 3, 43, 517, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1,
3861
- 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 533, 8, 46, 11, 46, 12, 46, 534, 1, 46, 1,
3862
- 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 543, 8, 47, 11, 47, 12, 47, 544, 1, 47, 1, 47, 1,
3863
- 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 554, 8, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1,
3864
- 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 567, 8, 49, 11, 49, 12, 49, 568, 1, 49, 1,
3865
- 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 577, 8, 50, 11, 50, 12, 50, 578, 1, 50, 1, 50, 1,
3866
- 51, 1, 51, 3, 51, 585, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 593, 8, 51,
3867
- 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 599, 8, 51, 10, 51, 12, 51, 602, 9, 51, 1, 51, 1, 51,
3868
- 1, 51, 1, 51, 1, 51, 3, 51, 609, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54,
3869
- 1, 54, 1, 54, 1, 54, 5, 54, 621, 8, 54, 10, 54, 12, 54, 624, 9, 54, 3, 54, 626, 8, 54,
3870
- 1, 55, 1, 55, 1, 55, 3, 55, 631, 8, 55, 1, 55, 3, 55, 634, 8, 55, 1, 56, 1, 56, 5, 56, 638,
3871
- 8, 56, 10, 56, 12, 56, 641, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 647, 8, 57, 10, 57,
3872
- 12, 57, 650, 9, 57, 5, 57, 652, 8, 57, 10, 57, 12, 57, 655, 9, 57, 1, 57, 1, 57, 1, 58,
3873
- 1, 58, 1, 58, 3, 58, 662, 8, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61,
3874
- 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 676, 8, 61, 10, 61, 12, 61, 679, 9, 61, 1, 61, 3, 61,
3875
- 682, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64,
3876
- 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 703, 8, 65, 10, 65, 12, 65,
3877
- 706, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 0, 1, 64, 67,
3878
- 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
3879
- 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
3880
- 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
3881
- 126, 128, 130, 132, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 57, 58, 2, 0, 58, 58, 61, 61, 2, 0,
3882
- 55, 55, 58, 58, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2,
3883
- 0, 31, 31, 43, 43, 2, 0, 56, 56, 58, 62, 2, 0, 15, 15, 57, 57, 2, 0, 57, 58, 61, 61, 1,
3884
- 0, 32, 33, 756, 0, 138, 1, 0, 0, 0, 2, 162, 1, 0, 0, 0, 4, 169, 1, 0, 0, 0, 6, 173, 1, 0,
3885
- 0, 0, 8, 181, 1, 0, 0, 0, 10, 183, 1, 0, 0, 0, 12, 193, 1, 0, 0, 0, 14, 197, 1, 0, 0, 0, 16,
3886
- 209, 1, 0, 0, 0, 18, 213, 1, 0, 0, 0, 20, 216, 1, 0, 0, 0, 22, 224, 1, 0, 0, 0, 24, 235,
3887
- 1, 0, 0, 0, 26, 241, 1, 0, 0, 0, 28, 243, 1, 0, 0, 0, 30, 245, 1, 0, 0, 0, 32, 248, 1, 0,
3888
- 0, 0, 34, 257, 1, 0, 0, 0, 36, 279, 1, 0, 0, 0, 38, 289, 1, 0, 0, 0, 40, 291, 1, 0, 0, 0,
3889
- 42, 304, 1, 0, 0, 0, 44, 306, 1, 0, 0, 0, 46, 314, 1, 0, 0, 0, 48, 322, 1, 0, 0, 0, 50, 324,
3890
- 1, 0, 0, 0, 52, 328, 1, 0, 0, 0, 54, 333, 1, 0, 0, 0, 56, 337, 1, 0, 0, 0, 58, 364, 1, 0,
3891
- 0, 0, 60, 366, 1, 0, 0, 0, 62, 370, 1, 0, 0, 0, 64, 392, 1, 0, 0, 0, 66, 417, 1, 0, 0, 0,
3892
- 68, 419, 1, 0, 0, 0, 70, 422, 1, 0, 0, 0, 72, 426, 1, 0, 0, 0, 74, 446, 1, 0, 0, 0, 76, 477,
3893
- 1, 0, 0, 0, 78, 479, 1, 0, 0, 0, 80, 492, 1, 0, 0, 0, 82, 500, 1, 0, 0, 0, 84, 503, 1, 0,
3894
- 0, 0, 86, 512, 1, 0, 0, 0, 88, 518, 1, 0, 0, 0, 90, 521, 1, 0, 0, 0, 92, 525, 1, 0, 0, 0,
3895
- 94, 538, 1, 0, 0, 0, 96, 548, 1, 0, 0, 0, 98, 558, 1, 0, 0, 0, 100, 572, 1, 0, 0, 0, 102,
3896
- 608, 1, 0, 0, 0, 104, 610, 1, 0, 0, 0, 106, 614, 1, 0, 0, 0, 108, 625, 1, 0, 0, 0, 110,
3897
- 633, 1, 0, 0, 0, 112, 635, 1, 0, 0, 0, 114, 642, 1, 0, 0, 0, 116, 658, 1, 0, 0, 0, 118,
3898
- 663, 1, 0, 0, 0, 120, 666, 1, 0, 0, 0, 122, 670, 1, 0, 0, 0, 124, 683, 1, 0, 0, 0, 126,
3899
- 689, 1, 0, 0, 0, 128, 693, 1, 0, 0, 0, 130, 698, 1, 0, 0, 0, 132, 712, 1, 0, 0, 0, 134,
3900
- 137, 3, 118, 59, 0, 135, 137, 5, 65, 0, 0, 136, 134, 1, 0, 0, 0, 136, 135, 1, 0, 0, 0,
3901
- 137, 140, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 143, 1, 0, 0, 0,
3902
- 140, 138, 1, 0, 0, 0, 141, 144, 3, 2, 1, 0, 142, 144, 5, 65, 0, 0, 143, 141, 1, 0, 0, 0,
3903
- 143, 142, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0,
3904
- 146, 147, 1, 0, 0, 0, 147, 148, 5, 0, 0, 1, 148, 1, 1, 0, 0, 0, 149, 163, 3, 6, 3, 0, 150,
3905
- 163, 3, 52, 26, 0, 151, 163, 3, 54, 27, 0, 152, 163, 3, 60, 30, 0, 153, 163, 3, 14, 7,
3906
- 0, 154, 163, 3, 62, 31, 0, 155, 163, 3, 72, 36, 0, 156, 163, 3, 84, 42, 0, 157, 163,
3907
- 3, 118, 59, 0, 158, 163, 3, 78, 39, 0, 159, 163, 3, 120, 60, 0, 160, 163, 3, 4, 2, 0,
3908
- 161, 163, 3, 132, 66, 0, 162, 149, 1, 0, 0, 0, 162, 150, 1, 0, 0, 0, 162, 151, 1, 0, 0,
3909
- 0, 162, 152, 1, 0, 0, 0, 162, 153, 1, 0, 0, 0, 162, 154, 1, 0, 0, 0, 162, 155, 1, 0, 0,
3910
- 0, 162, 156, 1, 0, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0,
3911
- 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 3, 1, 0, 0, 0, 164, 170, 3, 122, 61,
3912
- 0, 165, 170, 3, 128, 64, 0, 166, 170, 3, 130, 65, 0, 167, 170, 5, 8, 0, 0, 168, 170,
3913
- 5, 28, 0, 0, 169, 164, 1, 0, 0, 0, 169, 165, 1, 0, 0, 0, 169, 166, 1, 0, 0, 0, 169, 167,
3914
- 1, 0, 0, 0, 169, 168, 1, 0, 0, 0, 170, 5, 1, 0, 0, 0, 171, 174, 3, 8, 4, 0, 172, 174, 3,
3915
- 12, 6, 0, 173, 171, 1, 0, 0, 0, 173, 172, 1, 0, 0, 0, 174, 7, 1, 0, 0, 0, 175, 182, 3, 24,
3916
- 12, 0, 176, 182, 3, 32, 16, 0, 177, 182, 3, 30, 15, 0, 178, 182, 3, 40, 20, 0, 179, 182,
3917
- 3, 112, 56, 0, 180, 182, 3, 116, 58, 0, 181, 175, 1, 0, 0, 0, 181, 176, 1, 0, 0, 0, 181,
3918
- 177, 1, 0, 0, 0, 181, 178, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182,
3919
- 9, 1, 0, 0, 0, 183, 184, 5, 65, 0, 0, 184, 187, 5, 67, 0, 0, 185, 188, 5, 65, 0, 0, 186,
3920
- 188, 3, 2, 1, 0, 187, 185, 1, 0, 0, 0, 187, 186, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189,
3921
- 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 5, 68, 0, 0, 192,
3922
- 11, 1, 0, 0, 0, 193, 194, 7, 0, 0, 0, 194, 195, 5, 1, 0, 0, 195, 196, 3, 10, 5, 0, 196,
3923
- 13, 1, 0, 0, 0, 197, 198, 3, 78, 39, 0, 198, 199, 5, 1, 0, 0, 199, 200, 5, 65, 0, 0, 200,
3924
- 203, 5, 67, 0, 0, 201, 204, 5, 65, 0, 0, 202, 204, 3, 16, 8, 0, 203, 201, 1, 0, 0, 0, 203,
3925
- 202, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206,
3926
- 207, 1, 0, 0, 0, 207, 208, 5, 68, 0, 0, 208, 15, 1, 0, 0, 0, 209, 210, 7, 1, 0, 0, 210,
3927
- 211, 5, 1, 0, 0, 211, 212, 3, 70, 35, 0, 212, 17, 1, 0, 0, 0, 213, 214, 5, 15, 0, 0, 214,
3928
- 215, 3, 64, 32, 0, 215, 19, 1, 0, 0, 0, 216, 217, 5, 57, 0, 0, 217, 220, 5, 1, 0, 0, 218,
3929
- 221, 3, 70, 35, 0, 219, 221, 5, 57, 0, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221,
3930
- 21, 1, 0, 0, 0, 222, 225, 3, 64, 32, 0, 223, 225, 3, 52, 26, 0, 224, 222, 1, 0, 0, 0, 224,
3931
- 223, 1, 0, 0, 0, 225, 229, 1, 0, 0, 0, 226, 228, 3, 20, 10, 0, 227, 226, 1, 0, 0, 0, 228,
3932
- 231, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231,
3933
- 229, 1, 0, 0, 0, 232, 234, 3, 18, 9, 0, 233, 232, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234,
3934
- 23, 1, 0, 0, 0, 235, 236, 5, 16, 0, 0, 236, 237, 3, 22, 11, 0, 237, 25, 1, 0, 0, 0, 238,
3935
- 242, 3, 22, 11, 0, 239, 242, 3, 18, 9, 0, 240, 242, 5, 19, 0, 0, 241, 238, 1, 0, 0, 0,
3936
- 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 27, 1, 0, 0, 0, 243, 244, 7, 2, 0, 0, 244,
3937
- 29, 1, 0, 0, 0, 245, 246, 5, 17, 0, 0, 246, 247, 3, 26, 13, 0, 247, 31, 1, 0, 0, 0, 248,
3938
- 249, 5, 18, 0, 0, 249, 254, 3, 26, 13, 0, 250, 251, 5, 2, 0, 0, 251, 253, 3, 26, 13, 0,
3939
- 252, 250, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0,
3940
- 255, 33, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 5, 17, 0, 0, 258, 259, 3, 26, 13,
3941
- 0, 259, 260, 5, 18, 0, 0, 260, 265, 3, 26, 13, 0, 261, 262, 5, 2, 0, 0, 262, 264, 3, 26,
3942
- 13, 0, 263, 261, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0,
3943
- 0, 0, 266, 268, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 269, 5, 1, 0, 0, 269, 270, 5, 65,
3944
- 0, 0, 270, 273, 5, 67, 0, 0, 271, 274, 5, 65, 0, 0, 272, 274, 3, 36, 18, 0, 273, 271,
3945
- 1, 0, 0, 0, 273, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276,
3946
- 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 278, 5, 68, 0, 0, 278, 35, 1, 0, 0, 0, 279, 280,
3947
- 3, 28, 14, 0, 280, 281, 5, 1, 0, 0, 281, 286, 3, 38, 19, 0, 282, 283, 5, 2, 0, 0, 283,
3948
- 285, 3, 38, 19, 0, 284, 282, 1, 0, 0, 0, 285, 288, 1, 0, 0, 0, 286, 284, 1, 0, 0, 0, 286,
3949
- 287, 1, 0, 0, 0, 287, 37, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 289, 290, 7, 3, 0, 0, 290, 39,
3950
- 1, 0, 0, 0, 291, 292, 3, 44, 22, 0, 292, 293, 5, 65, 0, 0, 293, 296, 5, 67, 0, 0, 294,
3951
- 297, 5, 65, 0, 0, 295, 297, 3, 42, 21, 0, 296, 294, 1, 0, 0, 0, 296, 295, 1, 0, 0, 0, 297,
3952
- 298, 1, 0, 0, 0, 298, 296, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300,
3953
- 301, 5, 68, 0, 0, 301, 41, 1, 0, 0, 0, 302, 305, 3, 2, 1, 0, 303, 305, 3, 46, 23, 0, 304,
3954
- 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 43, 1, 0, 0, 0, 306, 307, 3, 30, 15, 0, 307,
3955
- 311, 5, 1, 0, 0, 308, 310, 3, 132, 66, 0, 309, 308, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311,
3956
- 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 45, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 315,
3957
- 3, 28, 14, 0, 315, 318, 5, 1, 0, 0, 316, 319, 3, 48, 24, 0, 317, 319, 3, 50, 25, 0, 318,
3958
- 316, 1, 0, 0, 0, 318, 317, 1, 0, 0, 0, 319, 47, 1, 0, 0, 0, 320, 323, 3, 2, 1, 0, 321, 323,
3959
- 5, 55, 0, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 49, 1, 0, 0, 0, 324, 325,
3960
- 3, 10, 5, 0, 325, 51, 1, 0, 0, 0, 326, 329, 3, 78, 39, 0, 327, 329, 3, 84, 42, 0, 328,
3961
- 326, 1, 0, 0, 0, 328, 327, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 5, 3, 0, 0, 331,
3962
- 332, 3, 64, 32, 0, 332, 53, 1, 0, 0, 0, 333, 334, 3, 78, 39, 0, 334, 335, 7, 4, 0, 0, 335,
3963
- 336, 3, 64, 32, 0, 336, 55, 1, 0, 0, 0, 337, 338, 5, 57, 0, 0, 338, 339, 5, 3, 0, 0, 339,
3964
- 340, 3, 64, 32, 0, 340, 57, 1, 0, 0, 0, 341, 346, 3, 64, 32, 0, 342, 343, 5, 2, 0, 0, 343,
3965
- 345, 3, 64, 32, 0, 344, 342, 1, 0, 0, 0, 345, 348, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346,
3966
- 347, 1, 0, 0, 0, 347, 353, 1, 0, 0, 0, 348, 346, 1, 0, 0, 0, 349, 350, 5, 2, 0, 0, 350,
3967
- 352, 3, 56, 28, 0, 351, 349, 1, 0, 0, 0, 352, 355, 1, 0, 0, 0, 353, 351, 1, 0, 0, 0, 353,
3968
- 354, 1, 0, 0, 0, 354, 365, 1, 0, 0, 0, 355, 353, 1, 0, 0, 0, 356, 361, 3, 56, 28, 0, 357,
3969
- 358, 5, 2, 0, 0, 358, 360, 3, 56, 28, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361,
3970
- 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364,
3971
- 341, 1, 0, 0, 0, 364, 356, 1, 0, 0, 0, 365, 59, 1, 0, 0, 0, 366, 367, 3, 78, 39, 0, 367,
3972
- 368, 5, 3, 0, 0, 368, 369, 3, 64, 32, 0, 369, 61, 1, 0, 0, 0, 370, 371, 5, 4, 0, 0, 371,
3973
- 372, 5, 57, 0, 0, 372, 373, 5, 3, 0, 0, 373, 374, 3, 64, 32, 0, 374, 63, 1, 0, 0, 0, 375,
3974
- 376, 6, 32, -1, 0, 376, 377, 5, 53, 0, 0, 377, 378, 3, 64, 32, 0, 378, 379, 5, 54, 0,
3975
- 0, 379, 393, 1, 0, 0, 0, 380, 383, 3, 70, 35, 0, 381, 383, 3, 78, 39, 0, 382, 380, 1,
3976
- 0, 0, 0, 382, 381, 1, 0, 0, 0, 383, 393, 1, 0, 0, 0, 384, 385, 3, 68, 34, 0, 385, 386,
3977
- 3, 64, 32, 11, 386, 393, 1, 0, 0, 0, 387, 393, 3, 92, 46, 0, 388, 393, 3, 96, 48, 0, 389,
3978
- 393, 3, 98, 49, 0, 390, 393, 3, 84, 42, 0, 391, 393, 3, 114, 57, 0, 392, 375, 1, 0, 0,
3979
- 0, 392, 382, 1, 0, 0, 0, 392, 384, 1, 0, 0, 0, 392, 387, 1, 0, 0, 0, 392, 388, 1, 0, 0,
3980
- 0, 392, 389, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392, 391, 1, 0, 0, 0, 393, 414, 1, 0, 0,
3981
- 0, 394, 395, 10, 10, 0, 0, 395, 396, 7, 5, 0, 0, 396, 413, 3, 64, 32, 11, 397, 398, 10,
3982
- 9, 0, 0, 398, 399, 7, 6, 0, 0, 399, 413, 3, 64, 32, 10, 400, 401, 10, 8, 0, 0, 401, 402,
3983
- 3, 66, 33, 0, 402, 403, 3, 64, 32, 9, 403, 413, 1, 0, 0, 0, 404, 405, 10, 7, 0, 0, 405,
3984
- 406, 7, 7, 0, 0, 406, 413, 3, 64, 32, 8, 407, 408, 10, 1, 0, 0, 408, 409, 5, 5, 0, 0, 409,
3985
- 410, 3, 64, 32, 0, 410, 411, 5, 6, 0, 0, 411, 413, 1, 0, 0, 0, 412, 394, 1, 0, 0, 0, 412,
3986
- 397, 1, 0, 0, 0, 412, 400, 1, 0, 0, 0, 412, 404, 1, 0, 0, 0, 412, 407, 1, 0, 0, 0, 413,
3987
- 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 65, 1, 0, 0, 0, 416, 414,
3988
- 1, 0, 0, 0, 417, 418, 7, 8, 0, 0, 418, 67, 1, 0, 0, 0, 419, 420, 7, 9, 0, 0, 420, 69, 1,
3989
- 0, 0, 0, 421, 423, 5, 43, 0, 0, 422, 421, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 424, 1,
3990
- 0, 0, 0, 424, 425, 7, 10, 0, 0, 425, 71, 1, 0, 0, 0, 426, 427, 5, 23, 0, 0, 427, 428, 5,
3991
- 57, 0, 0, 428, 430, 5, 53, 0, 0, 429, 431, 3, 76, 38, 0, 430, 429, 1, 0, 0, 0, 430, 431,
3992
- 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 433, 5, 54, 0, 0, 433, 434, 5, 1, 0, 0, 434, 435,
3993
- 5, 65, 0, 0, 435, 438, 5, 67, 0, 0, 436, 439, 5, 65, 0, 0, 437, 439, 3, 74, 37, 0, 438,
3994
- 436, 1, 0, 0, 0, 438, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440,
3995
- 441, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 5, 68, 0, 0, 443, 73, 1, 0, 0, 0, 444,
3996
- 447, 3, 2, 1, 0, 445, 447, 3, 88, 44, 0, 446, 444, 1, 0, 0, 0, 446, 445, 1, 0, 0, 0, 447,
3997
- 75, 1, 0, 0, 0, 448, 453, 5, 57, 0, 0, 449, 450, 5, 2, 0, 0, 450, 452, 5, 57, 0, 0, 451,
3998
- 449, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454,
3999
- 462, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 456, 457, 5, 2, 0, 0, 457, 458, 5, 57, 0, 0, 458,
4000
- 459, 5, 3, 0, 0, 459, 461, 3, 70, 35, 0, 460, 456, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462,
4001
- 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 478, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465,
4002
- 466, 5, 57, 0, 0, 466, 467, 5, 3, 0, 0, 467, 474, 3, 70, 35, 0, 468, 469, 5, 2, 0, 0, 469,
4003
- 470, 5, 57, 0, 0, 470, 471, 5, 3, 0, 0, 471, 473, 3, 70, 35, 0, 472, 468, 1, 0, 0, 0, 473,
4004
- 476, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 478, 1, 0, 0, 0, 476,
4005
- 474, 1, 0, 0, 0, 477, 448, 1, 0, 0, 0, 477, 465, 1, 0, 0, 0, 478, 77, 1, 0, 0, 0, 479, 483,
4006
- 5, 57, 0, 0, 480, 482, 3, 82, 41, 0, 481, 480, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 481,
4007
- 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 79, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 488, 5,
4008
- 53, 0, 0, 487, 489, 3, 58, 29, 0, 488, 487, 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 490,
4009
- 1, 0, 0, 0, 490, 493, 5, 54, 0, 0, 491, 493, 3, 82, 41, 0, 492, 486, 1, 0, 0, 0, 492, 491,
4010
- 1, 0, 0, 0, 493, 81, 1, 0, 0, 0, 494, 495, 5, 7, 0, 0, 495, 501, 5, 57, 0, 0, 496, 497,
4011
- 5, 5, 0, 0, 497, 498, 3, 64, 32, 0, 498, 499, 5, 6, 0, 0, 499, 501, 1, 0, 0, 0, 500, 494,
4012
- 1, 0, 0, 0, 500, 496, 1, 0, 0, 0, 501, 83, 1, 0, 0, 0, 502, 504, 3, 86, 43, 0, 503, 502,
4013
- 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 507, 5, 57, 0, 0, 506, 508,
4014
- 3, 80, 40, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 510,
4015
- 1, 0, 0, 0, 510, 85, 1, 0, 0, 0, 511, 513, 5, 42, 0, 0, 512, 511, 1, 0, 0, 0, 512, 513,
4016
- 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 516, 5, 44, 0, 0, 515, 517, 3, 64, 32, 0, 516, 515,
4017
- 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 87, 1, 0, 0, 0, 518, 519, 5, 22, 0, 0, 519, 520,
4018
- 3, 64, 32, 0, 520, 89, 1, 0, 0, 0, 521, 522, 3, 106, 53, 0, 522, 523, 5, 1, 0, 0, 523,
4019
- 524, 3, 10, 5, 0, 524, 91, 1, 0, 0, 0, 525, 526, 5, 10, 0, 0, 526, 527, 5, 11, 0, 0, 527,
4020
- 528, 5, 1, 0, 0, 528, 529, 5, 65, 0, 0, 529, 532, 5, 67, 0, 0, 530, 533, 5, 65, 0, 0, 531,
4021
- 533, 3, 104, 52, 0, 532, 530, 1, 0, 0, 0, 532, 531, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534,
4022
- 532, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536, 537, 5, 68, 0, 0, 537,
4023
- 93, 1, 0, 0, 0, 538, 539, 5, 65, 0, 0, 539, 542, 5, 67, 0, 0, 540, 543, 5, 65, 0, 0, 541,
4024
- 543, 3, 102, 51, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544,
4025
- 542, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546, 547, 5, 68, 0, 0, 547,
4026
- 95, 1, 0, 0, 0, 548, 549, 5, 10, 0, 0, 549, 553, 5, 12, 0, 0, 550, 551, 5, 53, 0, 0, 551,
4027
- 552, 5, 57, 0, 0, 552, 554, 5, 54, 0, 0, 553, 550, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554,
4028
- 555, 1, 0, 0, 0, 555, 556, 5, 1, 0, 0, 556, 557, 3, 94, 47, 0, 557, 97, 1, 0, 0, 0, 558,
4029
- 559, 5, 10, 0, 0, 559, 560, 5, 13, 0, 0, 560, 561, 5, 1, 0, 0, 561, 562, 5, 65, 0, 0, 562,
4030
- 566, 5, 67, 0, 0, 563, 567, 5, 65, 0, 0, 564, 567, 3, 104, 52, 0, 565, 567, 3, 90, 45,
4031
- 0, 566, 563, 1, 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0,
4032
- 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 68, 0,
4033
- 0, 571, 99, 1, 0, 0, 0, 572, 573, 5, 65, 0, 0, 573, 576, 5, 67, 0, 0, 574, 577, 5, 65,
4034
- 0, 0, 575, 577, 3, 104, 52, 0, 576, 574, 1, 0, 0, 0, 576, 575, 1, 0, 0, 0, 577, 578, 1,
4035
- 0, 0, 0, 578, 576, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 5,
4036
- 68, 0, 0, 581, 101, 1, 0, 0, 0, 582, 584, 7, 11, 0, 0, 583, 585, 5, 1, 0, 0, 584, 583,
4037
- 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 592, 1, 0, 0, 0, 586, 593, 3, 58, 29, 0, 587, 588,
4038
- 5, 53, 0, 0, 588, 589, 3, 58, 29, 0, 589, 590, 5, 54, 0, 0, 590, 593, 1, 0, 0, 0, 591,
4039
- 593, 3, 100, 50, 0, 592, 586, 1, 0, 0, 0, 592, 587, 1, 0, 0, 0, 592, 591, 1, 0, 0, 0, 593,
4040
- 609, 1, 0, 0, 0, 594, 595, 5, 25, 0, 0, 595, 600, 5, 57, 0, 0, 596, 597, 5, 2, 0, 0, 597,
4041
- 599, 5, 57, 0, 0, 598, 596, 1, 0, 0, 0, 599, 602, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 600,
4042
- 601, 1, 0, 0, 0, 601, 603, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 603, 604, 5, 26, 0, 0, 604,
4043
- 605, 3, 64, 32, 0, 605, 606, 5, 1, 0, 0, 606, 607, 3, 94, 47, 0, 607, 609, 1, 0, 0, 0,
4044
- 608, 582, 1, 0, 0, 0, 608, 594, 1, 0, 0, 0, 609, 103, 1, 0, 0, 0, 610, 611, 3, 106, 53,
4045
- 0, 611, 612, 5, 1, 0, 0, 612, 613, 3, 108, 54, 0, 613, 105, 1, 0, 0, 0, 614, 615, 7, 12,
4046
- 0, 0, 615, 107, 1, 0, 0, 0, 616, 626, 3, 100, 50, 0, 617, 622, 3, 64, 32, 0, 618, 619,
4047
- 5, 2, 0, 0, 619, 621, 3, 64, 32, 0, 620, 618, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620,
4048
- 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 616,
4049
- 1, 0, 0, 0, 625, 617, 1, 0, 0, 0, 626, 109, 1, 0, 0, 0, 627, 630, 5, 57, 0, 0, 628, 631,
4050
- 5, 58, 0, 0, 629, 631, 3, 64, 32, 0, 630, 628, 1, 0, 0, 0, 630, 629, 1, 0, 0, 0, 631, 634,
4051
- 1, 0, 0, 0, 632, 634, 5, 57, 0, 0, 633, 627, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 111,
4052
- 1, 0, 0, 0, 635, 639, 5, 14, 0, 0, 636, 638, 3, 110, 55, 0, 637, 636, 1, 0, 0, 0, 638,
4053
- 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 113, 1, 0, 0, 0, 641,
4054
- 639, 1, 0, 0, 0, 642, 653, 5, 5, 0, 0, 643, 648, 3, 64, 32, 0, 644, 645, 5, 2, 0, 0, 645,
4055
- 647, 3, 64, 32, 0, 646, 644, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 648,
4056
- 649, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 651, 643, 1, 0, 0, 0, 652,
4057
- 655, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 656, 1, 0, 0, 0, 655,
4058
- 653, 1, 0, 0, 0, 656, 657, 5, 6, 0, 0, 657, 115, 1, 0, 0, 0, 658, 661, 5, 19, 0, 0, 659,
4059
- 662, 5, 57, 0, 0, 660, 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 661, 660, 1, 0, 0, 0, 662,
4060
- 117, 1, 0, 0, 0, 663, 664, 5, 24, 0, 0, 664, 665, 5, 57, 0, 0, 665, 119, 1, 0, 0, 0, 666,
4061
- 667, 7, 13, 0, 0, 667, 668, 5, 1, 0, 0, 668, 669, 3, 10, 5, 0, 669, 121, 1, 0, 0, 0, 670,
4062
- 671, 5, 29, 0, 0, 671, 672, 3, 64, 32, 0, 672, 673, 5, 1, 0, 0, 673, 677, 3, 10, 5, 0,
4063
- 674, 676, 3, 124, 62, 0, 675, 674, 1, 0, 0, 0, 676, 679, 1, 0, 0, 0, 677, 675, 1, 0, 0,
4064
- 0, 677, 678, 1, 0, 0, 0, 678, 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 680, 682, 3, 126,
4065
- 63, 0, 681, 680, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 123, 1, 0, 0, 0, 683, 684, 5, 30,
4066
- 0, 0, 684, 685, 5, 29, 0, 0, 685, 686, 3, 64, 32, 0, 686, 687, 5, 1, 0, 0, 687, 688, 3,
4067
- 10, 5, 0, 688, 125, 1, 0, 0, 0, 689, 690, 5, 30, 0, 0, 690, 691, 5, 1, 0, 0, 691, 692,
4068
- 3, 10, 5, 0, 692, 127, 1, 0, 0, 0, 693, 694, 5, 27, 0, 0, 694, 695, 3, 64, 32, 0, 695,
4069
- 696, 5, 1, 0, 0, 696, 697, 3, 10, 5, 0, 697, 129, 1, 0, 0, 0, 698, 699, 5, 25, 0, 0, 699,
4070
- 704, 5, 57, 0, 0, 700, 701, 5, 2, 0, 0, 701, 703, 5, 57, 0, 0, 702, 700, 1, 0, 0, 0, 703,
4071
- 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 707, 1, 0, 0, 0, 706,
4072
- 704, 1, 0, 0, 0, 707, 708, 5, 26, 0, 0, 708, 709, 3, 64, 32, 0, 709, 710, 5, 1, 0, 0, 710,
4073
- 711, 3, 10, 5, 0, 711, 131, 1, 0, 0, 0, 712, 713, 5, 52, 0, 0, 713, 714, 5, 57, 0, 0, 714,
4074
- 133, 1, 0, 0, 0, 78, 136, 138, 143, 145, 162, 169, 173, 181, 187, 189, 203, 205, 220,
4075
- 224, 229, 233, 241, 254, 265, 273, 275, 286, 296, 298, 304, 311, 318, 322, 328,
4076
- 346, 353, 361, 364, 382, 392, 412, 414, 422, 430, 438, 440, 446, 453, 462, 474,
4077
- 477, 483, 488, 492, 500, 503, 509, 512, 516, 532, 534, 542, 544, 553, 566, 568,
4078
- 576, 578, 584, 592, 600, 608, 622, 625, 630, 633, 639, 648, 653, 661, 677, 681,
4079
- 704
4080
- ];
4081
- static __ATN;
4082
- static get _ATN() {
4083
- if (!CircuitScriptParser.__ATN) {
4084
- CircuitScriptParser.__ATN = new antlr.ATNDeserializer().deserialize(CircuitScriptParser._serializedATN);
3869
+ finally {
3870
+ this.exitRule();
4085
3871
  }
4086
- return CircuitScriptParser.__ATN;
3872
+ return localContext;
4087
3873
  }
4088
- static vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4089
- get vocabulary() {
3874
+ part_match_block() {
3875
+ let localContext = new Part_match_blockContext(this.context, this.state);
3876
+ this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_match_block);
3877
+ let _la;
3878
+ try {
3879
+ this.enterOuterAlt(localContext, 1);
3880
+ {
3881
+ this.state = 742;
3882
+ this.match(CircuitScriptParser.NEWLINE);
3883
+ this.state = 743;
3884
+ this.match(CircuitScriptParser.INDENT);
3885
+ this.state = 746;
3886
+ this.errorHandler.sync(this);
3887
+ _la = this.tokenStream.LA(1);
3888
+ do {
3889
+ {
3890
+ this.state = 746;
3891
+ this.errorHandler.sync(this);
3892
+ switch (this.tokenStream.LA(1)) {
3893
+ case CircuitScriptParser.NEWLINE:
3894
+ {
3895
+ this.state = 744;
3896
+ this.match(CircuitScriptParser.NEWLINE);
3897
+ }
3898
+ break;
3899
+ case CircuitScriptParser.ID:
3900
+ case CircuitScriptParser.INTEGER_VALUE:
3901
+ case CircuitScriptParser.NUMERIC_VALUE:
3902
+ case CircuitScriptParser.STRING_VALUE:
3903
+ case CircuitScriptParser.PERCENTAGE_VALUE:
3904
+ {
3905
+ this.state = 745;
3906
+ this.part_sub_expr();
3907
+ }
3908
+ break;
3909
+ default:
3910
+ throw new antlr.NoViableAltException(this);
3911
+ }
3912
+ }
3913
+ this.state = 748;
3914
+ this.errorHandler.sync(this);
3915
+ _la = this.tokenStream.LA(1);
3916
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 315) !== 0));
3917
+ this.state = 750;
3918
+ this.match(CircuitScriptParser.DEDENT);
3919
+ }
3920
+ }
3921
+ catch (re) {
3922
+ if (re instanceof antlr.RecognitionException) {
3923
+ this.errorHandler.reportError(this, re);
3924
+ this.errorHandler.recover(this, re);
3925
+ }
3926
+ else {
3927
+ throw re;
3928
+ }
3929
+ }
3930
+ finally {
3931
+ this.exitRule();
3932
+ }
3933
+ return localContext;
3934
+ }
3935
+ part_sub_expr() {
3936
+ let localContext = new Part_sub_exprContext(this.context, this.state);
3937
+ this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_sub_expr);
3938
+ try {
3939
+ this.state = 755;
3940
+ this.errorHandler.sync(this);
3941
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 81, this.context)) {
3942
+ case 1:
3943
+ this.enterOuterAlt(localContext, 1);
3944
+ {
3945
+ this.state = 752;
3946
+ this.part_condition_expr();
3947
+ }
3948
+ break;
3949
+ case 2:
3950
+ this.enterOuterAlt(localContext, 2);
3951
+ {
3952
+ this.state = 753;
3953
+ this.part_value_expr();
3954
+ }
3955
+ break;
3956
+ case 3:
3957
+ this.enterOuterAlt(localContext, 3);
3958
+ {
3959
+ this.state = 754;
3960
+ this.part_condition_key_only_expr();
3961
+ }
3962
+ break;
3963
+ }
3964
+ }
3965
+ catch (re) {
3966
+ if (re instanceof antlr.RecognitionException) {
3967
+ this.errorHandler.reportError(this, re);
3968
+ this.errorHandler.recover(this, re);
3969
+ }
3970
+ else {
3971
+ throw re;
3972
+ }
3973
+ }
3974
+ finally {
3975
+ this.exitRule();
3976
+ }
3977
+ return localContext;
3978
+ }
3979
+ part_condition_expr() {
3980
+ let localContext = new Part_condition_exprContext(this.context, this.state);
3981
+ this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_condition_expr);
3982
+ let _la;
3983
+ try {
3984
+ let alternative;
3985
+ this.enterOuterAlt(localContext, 1);
3986
+ {
3987
+ this.state = 757;
3988
+ localContext._part_set_key = this.part_set_key();
3989
+ localContext._key_id.push(localContext._part_set_key);
3990
+ this.state = 758;
3991
+ this.match(CircuitScriptParser.T__0);
3992
+ this.state = 759;
3993
+ localContext._data_expr = this.data_expr(0);
3994
+ localContext._values.push(localContext._data_expr);
3995
+ this.state = 767;
3996
+ this.errorHandler.sync(this);
3997
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3998
+ while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3999
+ if (alternative === 1) {
4000
+ {
4001
+ {
4002
+ this.state = 760;
4003
+ this.match(CircuitScriptParser.T__1);
4004
+ this.state = 761;
4005
+ localContext._part_set_key = this.part_set_key();
4006
+ localContext._key_id.push(localContext._part_set_key);
4007
+ this.state = 762;
4008
+ this.match(CircuitScriptParser.T__0);
4009
+ this.state = 763;
4010
+ localContext._data_expr = this.data_expr(0);
4011
+ localContext._values.push(localContext._data_expr);
4012
+ }
4013
+ }
4014
+ }
4015
+ this.state = 769;
4016
+ this.errorHandler.sync(this);
4017
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
4018
+ }
4019
+ this.state = 774;
4020
+ this.errorHandler.sync(this);
4021
+ _la = this.tokenStream.LA(1);
4022
+ while (_la === 2) {
4023
+ {
4024
+ {
4025
+ this.state = 770;
4026
+ this.match(CircuitScriptParser.T__1);
4027
+ this.state = 771;
4028
+ localContext._id_only = this.part_set_key();
4029
+ }
4030
+ }
4031
+ this.state = 776;
4032
+ this.errorHandler.sync(this);
4033
+ _la = this.tokenStream.LA(1);
4034
+ }
4035
+ this.state = 777;
4036
+ this.match(CircuitScriptParser.T__0);
4037
+ this.state = 787;
4038
+ this.errorHandler.sync(this);
4039
+ switch (this.tokenStream.LA(1)) {
4040
+ case CircuitScriptParser.NEWLINE:
4041
+ {
4042
+ this.state = 778;
4043
+ this.part_match_block();
4044
+ }
4045
+ break;
4046
+ case CircuitScriptParser.T__4:
4047
+ case CircuitScriptParser.Create:
4048
+ case CircuitScriptParser.Not:
4049
+ case CircuitScriptParser.Addition:
4050
+ case CircuitScriptParser.Minus:
4051
+ case CircuitScriptParser.Divide:
4052
+ case CircuitScriptParser.OPEN_PAREN:
4053
+ case CircuitScriptParser.BOOLEAN_VALUE:
4054
+ case CircuitScriptParser.ID:
4055
+ case CircuitScriptParser.INTEGER_VALUE:
4056
+ case CircuitScriptParser.DECIMAL_VALUE:
4057
+ case CircuitScriptParser.NUMERIC_VALUE:
4058
+ case CircuitScriptParser.STRING_VALUE:
4059
+ case CircuitScriptParser.PERCENTAGE_VALUE:
4060
+ {
4061
+ {
4062
+ this.state = 779;
4063
+ localContext._data_expr = this.data_expr(0);
4064
+ localContext._last_data.push(localContext._data_expr);
4065
+ this.state = 784;
4066
+ this.errorHandler.sync(this);
4067
+ _la = this.tokenStream.LA(1);
4068
+ while (_la === 2) {
4069
+ {
4070
+ {
4071
+ this.state = 780;
4072
+ this.match(CircuitScriptParser.T__1);
4073
+ this.state = 781;
4074
+ localContext._data_expr = this.data_expr(0);
4075
+ localContext._last_data.push(localContext._data_expr);
4076
+ }
4077
+ }
4078
+ this.state = 786;
4079
+ this.errorHandler.sync(this);
4080
+ _la = this.tokenStream.LA(1);
4081
+ }
4082
+ }
4083
+ }
4084
+ break;
4085
+ default:
4086
+ throw new antlr.NoViableAltException(this);
4087
+ }
4088
+ }
4089
+ }
4090
+ catch (re) {
4091
+ if (re instanceof antlr.RecognitionException) {
4092
+ this.errorHandler.reportError(this, re);
4093
+ this.errorHandler.recover(this, re);
4094
+ }
4095
+ else {
4096
+ throw re;
4097
+ }
4098
+ }
4099
+ finally {
4100
+ this.exitRule();
4101
+ }
4102
+ return localContext;
4103
+ }
4104
+ part_condition_key_only_expr() {
4105
+ let localContext = new Part_condition_key_only_exprContext(this.context, this.state);
4106
+ this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_key_only_expr);
4107
+ try {
4108
+ this.enterOuterAlt(localContext, 1);
4109
+ {
4110
+ this.state = 789;
4111
+ this.part_set_key();
4112
+ this.state = 790;
4113
+ this.match(CircuitScriptParser.T__0);
4114
+ this.state = 791;
4115
+ this.part_match_block();
4116
+ }
4117
+ }
4118
+ catch (re) {
4119
+ if (re instanceof antlr.RecognitionException) {
4120
+ this.errorHandler.reportError(this, re);
4121
+ this.errorHandler.recover(this, re);
4122
+ }
4123
+ else {
4124
+ throw re;
4125
+ }
4126
+ }
4127
+ finally {
4128
+ this.exitRule();
4129
+ }
4130
+ return localContext;
4131
+ }
4132
+ part_value_expr() {
4133
+ let localContext = new Part_value_exprContext(this.context, this.state);
4134
+ this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_value_expr);
4135
+ let _la;
4136
+ try {
4137
+ this.enterOuterAlt(localContext, 1);
4138
+ {
4139
+ this.state = 793;
4140
+ this.part_set_key();
4141
+ this.state = 794;
4142
+ this.match(CircuitScriptParser.T__0);
4143
+ this.state = 795;
4144
+ this.data_expr(0);
4145
+ this.state = 800;
4146
+ this.errorHandler.sync(this);
4147
+ _la = this.tokenStream.LA(1);
4148
+ while (_la === 2) {
4149
+ {
4150
+ {
4151
+ this.state = 796;
4152
+ this.match(CircuitScriptParser.T__1);
4153
+ this.state = 797;
4154
+ this.data_expr(0);
4155
+ }
4156
+ }
4157
+ this.state = 802;
4158
+ this.errorHandler.sync(this);
4159
+ _la = this.tokenStream.LA(1);
4160
+ }
4161
+ }
4162
+ }
4163
+ catch (re) {
4164
+ if (re instanceof antlr.RecognitionException) {
4165
+ this.errorHandler.reportError(this, re);
4166
+ this.errorHandler.recover(this, re);
4167
+ }
4168
+ else {
4169
+ throw re;
4170
+ }
4171
+ }
4172
+ finally {
4173
+ this.exitRule();
4174
+ }
4175
+ return localContext;
4176
+ }
4177
+ annotation_comment_expr() {
4178
+ let localContext = new Annotation_comment_exprContext(this.context, this.state);
4179
+ this.enterRule(localContext, 146, CircuitScriptParser.RULE_annotation_comment_expr);
4180
+ try {
4181
+ this.enterOuterAlt(localContext, 1);
4182
+ {
4183
+ this.state = 803;
4184
+ this.match(CircuitScriptParser.ANNOTATION_START);
4185
+ this.state = 804;
4186
+ this.match(CircuitScriptParser.ID);
4187
+ }
4188
+ }
4189
+ catch (re) {
4190
+ if (re instanceof antlr.RecognitionException) {
4191
+ this.errorHandler.reportError(this, re);
4192
+ this.errorHandler.recover(this, re);
4193
+ }
4194
+ else {
4195
+ throw re;
4196
+ }
4197
+ }
4198
+ finally {
4199
+ this.exitRule();
4200
+ }
4201
+ return localContext;
4202
+ }
4203
+ sempred(localContext, ruleIndex, predIndex) {
4204
+ switch (ruleIndex) {
4205
+ case 32:
4206
+ return this.data_expr_sempred(localContext, predIndex);
4207
+ }
4208
+ return true;
4209
+ }
4210
+ data_expr_sempred(localContext, predIndex) {
4211
+ switch (predIndex) {
4212
+ case 0:
4213
+ return this.precpred(this.context, 10);
4214
+ case 1:
4215
+ return this.precpred(this.context, 9);
4216
+ case 2:
4217
+ return this.precpred(this.context, 8);
4218
+ case 3:
4219
+ return this.precpred(this.context, 7);
4220
+ case 4:
4221
+ return this.precpred(this.context, 1);
4222
+ }
4223
+ return true;
4224
+ }
4225
+ static _serializedATN = [
4226
+ 4, 1, 69, 807, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
4227
+ 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13,
4228
+ 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20,
4229
+ 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26,
4230
+ 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33,
4231
+ 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
4232
+ 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46,
4233
+ 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52,
4234
+ 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
4235
+ 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
4236
+ 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72,
4237
+ 7, 72, 2, 73, 7, 73, 1, 0, 1, 0, 5, 0, 151, 8, 0, 10, 0, 12, 0, 154, 9, 0, 1, 0, 1, 0, 4, 0,
4238
+ 158, 8, 0, 11, 0, 12, 0, 159, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4239
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 178, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 185, 8,
4240
+ 2, 1, 3, 1, 3, 3, 3, 189, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 197, 8, 4, 1, 5, 1,
4241
+ 5, 1, 5, 1, 5, 4, 5, 203, 8, 5, 11, 5, 12, 5, 204, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7,
4242
+ 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 219, 8, 7, 11, 7, 12, 7, 220, 1, 7, 1, 7, 1, 8, 1, 8, 1,
4243
+ 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 236, 8, 10, 1, 11, 1, 11, 3,
4244
+ 11, 240, 8, 11, 1, 11, 5, 11, 243, 8, 11, 10, 11, 12, 11, 246, 9, 11, 1, 11, 3, 11, 249,
4245
+ 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 257, 8, 13, 1, 14, 1, 14, 1, 15,
4246
+ 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 268, 8, 16, 10, 16, 12, 16, 271, 9, 16,
4247
+ 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 279, 8, 17, 10, 17, 12, 17, 282, 9, 17,
4248
+ 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 289, 8, 17, 11, 17, 12, 17, 290, 1, 17, 1, 17,
4249
+ 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 300, 8, 18, 10, 18, 12, 18, 303, 9, 18, 1, 19,
4250
+ 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 312, 8, 20, 11, 20, 12, 20, 313, 1, 20,
4251
+ 1, 20, 1, 21, 1, 21, 3, 21, 320, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 325, 8, 22, 10, 22,
4252
+ 12, 22, 328, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 334, 8, 23, 1, 24, 1, 24, 3, 24,
4253
+ 338, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 344, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1,
4254
+ 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 360, 8, 29, 10,
4255
+ 29, 12, 29, 363, 9, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29, 370, 9, 29, 1,
4256
+ 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 3, 29, 380, 8, 29, 1,
4257
+ 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4258
+ 32, 1, 32, 1, 32, 3, 32, 398, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4259
+ 32, 3, 32, 408, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4260
+ 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 428, 8, 32, 10, 32, 12,
4261
+ 32, 431, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 438, 8, 35, 1, 35, 1, 35, 1, 36,
4262
+ 1, 36, 1, 36, 1, 36, 3, 36, 446, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36,
4263
+ 454, 8, 36, 11, 36, 12, 36, 455, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 462, 8, 37, 1, 38,
4264
+ 1, 38, 1, 38, 5, 38, 467, 8, 38, 10, 38, 12, 38, 470, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4265
+ 5, 38, 476, 8, 38, 10, 38, 12, 38, 479, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4266
+ 1, 38, 5, 38, 488, 8, 38, 10, 38, 12, 38, 491, 9, 38, 3, 38, 493, 8, 38, 1, 39, 1, 39,
4267
+ 5, 39, 497, 8, 39, 10, 39, 12, 39, 500, 9, 39, 1, 40, 1, 40, 3, 40, 504, 8, 40, 1, 40,
4268
+ 1, 40, 3, 40, 508, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 516, 8, 41, 1,
4269
+ 42, 3, 42, 519, 8, 42, 1, 42, 1, 42, 4, 42, 523, 8, 42, 11, 42, 12, 42, 524, 1, 43, 3,
4270
+ 43, 528, 8, 43, 1, 43, 1, 43, 3, 43, 532, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45,
4271
+ 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 548, 8, 46, 11, 46, 12, 46,
4272
+ 549, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 558, 8, 47, 11, 47, 12, 47, 559,
4273
+ 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 569, 8, 48, 1, 48, 1, 48, 1, 48,
4274
+ 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 582, 8, 49, 11, 49, 12, 49,
4275
+ 583, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 592, 8, 50, 11, 50, 12, 50, 593,
4276
+ 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 600, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51,
4277
+ 3, 51, 608, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 614, 8, 51, 10, 51, 12, 51, 617,
4278
+ 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 624, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52,
4279
+ 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54,
4280
+ 3, 54, 641, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 646, 8, 55, 1, 55, 3, 55, 649, 8, 55, 1,
4281
+ 56, 1, 56, 5, 56, 653, 8, 56, 10, 56, 12, 56, 656, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5,
4282
+ 57, 662, 8, 57, 10, 57, 12, 57, 665, 9, 57, 5, 57, 667, 8, 57, 10, 57, 12, 57, 670, 9,
4283
+ 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 677, 8, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1,
4284
+ 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 691, 8, 61, 10, 61, 12, 61,
4285
+ 694, 9, 61, 1, 61, 3, 61, 697, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1,
4286
+ 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 718,
4287
+ 8, 65, 10, 65, 12, 65, 721, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66,
4288
+ 1, 66, 1, 66, 5, 66, 733, 8, 66, 10, 66, 12, 66, 736, 9, 66, 1, 66, 1, 66, 1, 66, 1, 67,
4289
+ 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 4, 68, 747, 8, 68, 11, 68, 12, 68, 748, 1, 68, 1, 68,
4290
+ 1, 69, 1, 69, 1, 69, 3, 69, 756, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70,
4291
+ 1, 70, 5, 70, 766, 8, 70, 10, 70, 12, 70, 769, 9, 70, 1, 70, 1, 70, 5, 70, 773, 8, 70,
4292
+ 10, 70, 12, 70, 776, 9, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 783, 8, 70, 10, 70,
4293
+ 12, 70, 786, 9, 70, 3, 70, 788, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72,
4294
+ 1, 72, 1, 72, 5, 72, 799, 8, 72, 10, 72, 12, 72, 802, 9, 72, 1, 73, 1, 73, 1, 73, 1, 73,
4295
+ 0, 1, 64, 74, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
4296
+ 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82,
4297
+ 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
4298
+ 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 0, 15, 2, 0,
4299
+ 10, 10, 20, 22, 1, 0, 58, 59, 2, 0, 59, 59, 62, 62, 2, 0, 56, 56, 59, 59, 1, 0, 48, 52,
4300
+ 1, 0, 45, 47, 1, 0, 43, 44, 1, 0, 41, 42, 1, 0, 35, 40, 2, 0, 32, 32, 44, 44, 2, 0, 57, 57,
4301
+ 59, 63, 2, 0, 16, 16, 58, 58, 2, 0, 58, 59, 62, 62, 1, 0, 33, 34, 2, 0, 58, 59, 61, 63,
4302
+ 851, 0, 152, 1, 0, 0, 0, 2, 177, 1, 0, 0, 0, 4, 184, 1, 0, 0, 0, 6, 188, 1, 0, 0, 0, 8, 196,
4303
+ 1, 0, 0, 0, 10, 198, 1, 0, 0, 0, 12, 208, 1, 0, 0, 0, 14, 212, 1, 0, 0, 0, 16, 224, 1, 0,
4304
+ 0, 0, 18, 228, 1, 0, 0, 0, 20, 231, 1, 0, 0, 0, 22, 239, 1, 0, 0, 0, 24, 250, 1, 0, 0, 0,
4305
+ 26, 256, 1, 0, 0, 0, 28, 258, 1, 0, 0, 0, 30, 260, 1, 0, 0, 0, 32, 263, 1, 0, 0, 0, 34, 272,
4306
+ 1, 0, 0, 0, 36, 294, 1, 0, 0, 0, 38, 304, 1, 0, 0, 0, 40, 306, 1, 0, 0, 0, 42, 319, 1, 0,
4307
+ 0, 0, 44, 321, 1, 0, 0, 0, 46, 329, 1, 0, 0, 0, 48, 337, 1, 0, 0, 0, 50, 339, 1, 0, 0, 0,
4308
+ 52, 343, 1, 0, 0, 0, 54, 348, 1, 0, 0, 0, 56, 352, 1, 0, 0, 0, 58, 379, 1, 0, 0, 0, 60, 381,
4309
+ 1, 0, 0, 0, 62, 385, 1, 0, 0, 0, 64, 407, 1, 0, 0, 0, 66, 432, 1, 0, 0, 0, 68, 434, 1, 0,
4310
+ 0, 0, 70, 437, 1, 0, 0, 0, 72, 441, 1, 0, 0, 0, 74, 461, 1, 0, 0, 0, 76, 492, 1, 0, 0, 0,
4311
+ 78, 494, 1, 0, 0, 0, 80, 507, 1, 0, 0, 0, 82, 515, 1, 0, 0, 0, 84, 518, 1, 0, 0, 0, 86, 527,
4312
+ 1, 0, 0, 0, 88, 533, 1, 0, 0, 0, 90, 536, 1, 0, 0, 0, 92, 540, 1, 0, 0, 0, 94, 553, 1, 0,
4313
+ 0, 0, 96, 563, 1, 0, 0, 0, 98, 573, 1, 0, 0, 0, 100, 587, 1, 0, 0, 0, 102, 623, 1, 0, 0,
4314
+ 0, 104, 625, 1, 0, 0, 0, 106, 629, 1, 0, 0, 0, 108, 640, 1, 0, 0, 0, 110, 648, 1, 0, 0,
4315
+ 0, 112, 650, 1, 0, 0, 0, 114, 657, 1, 0, 0, 0, 116, 673, 1, 0, 0, 0, 118, 678, 1, 0, 0,
4316
+ 0, 120, 681, 1, 0, 0, 0, 122, 685, 1, 0, 0, 0, 124, 698, 1, 0, 0, 0, 126, 704, 1, 0, 0,
4317
+ 0, 128, 708, 1, 0, 0, 0, 130, 713, 1, 0, 0, 0, 132, 727, 1, 0, 0, 0, 134, 740, 1, 0, 0,
4318
+ 0, 136, 742, 1, 0, 0, 0, 138, 755, 1, 0, 0, 0, 140, 757, 1, 0, 0, 0, 142, 789, 1, 0, 0,
4319
+ 0, 144, 793, 1, 0, 0, 0, 146, 803, 1, 0, 0, 0, 148, 151, 3, 118, 59, 0, 149, 151, 5, 66,
4320
+ 0, 0, 150, 148, 1, 0, 0, 0, 150, 149, 1, 0, 0, 0, 151, 154, 1, 0, 0, 0, 152, 150, 1, 0,
4321
+ 0, 0, 152, 153, 1, 0, 0, 0, 153, 157, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 155, 158, 3, 2,
4322
+ 1, 0, 156, 158, 5, 66, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0, 0, 0, 158, 159, 1, 0,
4323
+ 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 0,
4324
+ 0, 1, 162, 1, 1, 0, 0, 0, 163, 178, 3, 6, 3, 0, 164, 178, 3, 52, 26, 0, 165, 178, 3, 54,
4325
+ 27, 0, 166, 178, 3, 60, 30, 0, 167, 178, 3, 14, 7, 0, 168, 178, 3, 62, 31, 0, 169, 178,
4326
+ 3, 72, 36, 0, 170, 178, 3, 84, 42, 0, 171, 178, 3, 118, 59, 0, 172, 178, 3, 78, 39, 0,
4327
+ 173, 178, 3, 120, 60, 0, 174, 178, 3, 4, 2, 0, 175, 178, 3, 146, 73, 0, 176, 178, 3,
4328
+ 132, 66, 0, 177, 163, 1, 0, 0, 0, 177, 164, 1, 0, 0, 0, 177, 165, 1, 0, 0, 0, 177, 166,
4329
+ 1, 0, 0, 0, 177, 167, 1, 0, 0, 0, 177, 168, 1, 0, 0, 0, 177, 169, 1, 0, 0, 0, 177, 170,
4330
+ 1, 0, 0, 0, 177, 171, 1, 0, 0, 0, 177, 172, 1, 0, 0, 0, 177, 173, 1, 0, 0, 0, 177, 174,
4331
+ 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 176, 1, 0, 0, 0, 178, 3, 1, 0, 0, 0, 179, 185, 3,
4332
+ 122, 61, 0, 180, 185, 3, 128, 64, 0, 181, 185, 3, 130, 65, 0, 182, 185, 5, 9, 0, 0, 183,
4333
+ 185, 5, 29, 0, 0, 184, 179, 1, 0, 0, 0, 184, 180, 1, 0, 0, 0, 184, 181, 1, 0, 0, 0, 184,
4334
+ 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 5, 1, 0, 0, 0, 186, 189, 3, 8, 4, 0, 187, 189,
4335
+ 3, 12, 6, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189, 7, 1, 0, 0, 0, 190, 197, 3,
4336
+ 24, 12, 0, 191, 197, 3, 32, 16, 0, 192, 197, 3, 30, 15, 0, 193, 197, 3, 40, 20, 0, 194,
4337
+ 197, 3, 112, 56, 0, 195, 197, 3, 116, 58, 0, 196, 190, 1, 0, 0, 0, 196, 191, 1, 0, 0,
4338
+ 0, 196, 192, 1, 0, 0, 0, 196, 193, 1, 0, 0, 0, 196, 194, 1, 0, 0, 0, 196, 195, 1, 0, 0,
4339
+ 0, 197, 9, 1, 0, 0, 0, 198, 199, 5, 66, 0, 0, 199, 202, 5, 68, 0, 0, 200, 203, 5, 66, 0,
4340
+ 0, 201, 203, 3, 2, 1, 0, 202, 200, 1, 0, 0, 0, 202, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0,
4341
+ 0, 204, 202, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 207, 5, 69, 0,
4342
+ 0, 207, 11, 1, 0, 0, 0, 208, 209, 7, 0, 0, 0, 209, 210, 5, 1, 0, 0, 210, 211, 3, 10, 5,
4343
+ 0, 211, 13, 1, 0, 0, 0, 212, 213, 3, 78, 39, 0, 213, 214, 5, 1, 0, 0, 214, 215, 5, 66,
4344
+ 0, 0, 215, 218, 5, 68, 0, 0, 216, 219, 5, 66, 0, 0, 217, 219, 3, 16, 8, 0, 218, 216, 1,
4345
+ 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 220, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1,
4346
+ 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223, 5, 69, 0, 0, 223, 15, 1, 0, 0, 0, 224, 225, 7,
4347
+ 1, 0, 0, 225, 226, 5, 1, 0, 0, 226, 227, 3, 70, 35, 0, 227, 17, 1, 0, 0, 0, 228, 229, 5,
4348
+ 16, 0, 0, 229, 230, 3, 64, 32, 0, 230, 19, 1, 0, 0, 0, 231, 232, 5, 58, 0, 0, 232, 235,
4349
+ 5, 1, 0, 0, 233, 236, 3, 70, 35, 0, 234, 236, 5, 58, 0, 0, 235, 233, 1, 0, 0, 0, 235, 234,
4350
+ 1, 0, 0, 0, 236, 21, 1, 0, 0, 0, 237, 240, 3, 64, 32, 0, 238, 240, 3, 52, 26, 0, 239, 237,
4351
+ 1, 0, 0, 0, 239, 238, 1, 0, 0, 0, 240, 244, 1, 0, 0, 0, 241, 243, 3, 20, 10, 0, 242, 241,
4352
+ 1, 0, 0, 0, 243, 246, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 248,
4353
+ 1, 0, 0, 0, 246, 244, 1, 0, 0, 0, 247, 249, 3, 18, 9, 0, 248, 247, 1, 0, 0, 0, 248, 249,
4354
+ 1, 0, 0, 0, 249, 23, 1, 0, 0, 0, 250, 251, 5, 17, 0, 0, 251, 252, 3, 22, 11, 0, 252, 25,
4355
+ 1, 0, 0, 0, 253, 257, 3, 22, 11, 0, 254, 257, 3, 18, 9, 0, 255, 257, 5, 20, 0, 0, 256,
4356
+ 253, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 256, 255, 1, 0, 0, 0, 257, 27, 1, 0, 0, 0, 258, 259,
4357
+ 7, 2, 0, 0, 259, 29, 1, 0, 0, 0, 260, 261, 5, 18, 0, 0, 261, 262, 3, 26, 13, 0, 262, 31,
4358
+ 1, 0, 0, 0, 263, 264, 5, 19, 0, 0, 264, 269, 3, 26, 13, 0, 265, 266, 5, 2, 0, 0, 266, 268,
4359
+ 3, 26, 13, 0, 267, 265, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270,
4360
+ 1, 0, 0, 0, 270, 33, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 273, 5, 18, 0, 0, 273, 274,
4361
+ 3, 26, 13, 0, 274, 275, 5, 19, 0, 0, 275, 280, 3, 26, 13, 0, 276, 277, 5, 2, 0, 0, 277,
4362
+ 279, 3, 26, 13, 0, 278, 276, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280,
4363
+ 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 284, 5, 1, 0, 0, 284,
4364
+ 285, 5, 66, 0, 0, 285, 288, 5, 68, 0, 0, 286, 289, 5, 66, 0, 0, 287, 289, 3, 36, 18, 0,
4365
+ 288, 286, 1, 0, 0, 0, 288, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0,
4366
+ 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 293, 5, 69, 0, 0, 293, 35, 1, 0, 0, 0,
4367
+ 294, 295, 3, 28, 14, 0, 295, 296, 5, 1, 0, 0, 296, 301, 3, 38, 19, 0, 297, 298, 5, 2,
4368
+ 0, 0, 298, 300, 3, 38, 19, 0, 299, 297, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1,
4369
+ 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 37, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 7, 3,
4370
+ 0, 0, 305, 39, 1, 0, 0, 0, 306, 307, 3, 44, 22, 0, 307, 308, 5, 66, 0, 0, 308, 311, 5,
4371
+ 68, 0, 0, 309, 312, 5, 66, 0, 0, 310, 312, 3, 42, 21, 0, 311, 309, 1, 0, 0, 0, 311, 310,
4372
+ 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315,
4373
+ 1, 0, 0, 0, 315, 316, 5, 69, 0, 0, 316, 41, 1, 0, 0, 0, 317, 320, 3, 2, 1, 0, 318, 320,
4374
+ 3, 46, 23, 0, 319, 317, 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320, 43, 1, 0, 0, 0, 321, 322,
4375
+ 3, 30, 15, 0, 322, 326, 5, 1, 0, 0, 323, 325, 3, 146, 73, 0, 324, 323, 1, 0, 0, 0, 325,
4376
+ 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 45, 1, 0, 0, 0, 328, 326,
4377
+ 1, 0, 0, 0, 329, 330, 3, 28, 14, 0, 330, 333, 5, 1, 0, 0, 331, 334, 3, 48, 24, 0, 332,
4378
+ 334, 3, 50, 25, 0, 333, 331, 1, 0, 0, 0, 333, 332, 1, 0, 0, 0, 334, 47, 1, 0, 0, 0, 335,
4379
+ 338, 3, 2, 1, 0, 336, 338, 5, 56, 0, 0, 337, 335, 1, 0, 0, 0, 337, 336, 1, 0, 0, 0, 338,
4380
+ 49, 1, 0, 0, 0, 339, 340, 3, 10, 5, 0, 340, 51, 1, 0, 0, 0, 341, 344, 3, 78, 39, 0, 342,
4381
+ 344, 3, 84, 42, 0, 343, 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345,
4382
+ 346, 5, 3, 0, 0, 346, 347, 3, 64, 32, 0, 347, 53, 1, 0, 0, 0, 348, 349, 3, 78, 39, 0, 349,
4383
+ 350, 7, 4, 0, 0, 350, 351, 3, 64, 32, 0, 351, 55, 1, 0, 0, 0, 352, 353, 5, 58, 0, 0, 353,
4384
+ 354, 5, 3, 0, 0, 354, 355, 3, 64, 32, 0, 355, 57, 1, 0, 0, 0, 356, 361, 3, 64, 32, 0, 357,
4385
+ 358, 5, 2, 0, 0, 358, 360, 3, 64, 32, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361,
4386
+ 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 368, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364,
4387
+ 365, 5, 2, 0, 0, 365, 367, 3, 56, 28, 0, 366, 364, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368,
4388
+ 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 380, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371,
4389
+ 376, 3, 56, 28, 0, 372, 373, 5, 2, 0, 0, 373, 375, 3, 56, 28, 0, 374, 372, 1, 0, 0, 0,
4390
+ 375, 378, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0,
4391
+ 378, 376, 1, 0, 0, 0, 379, 356, 1, 0, 0, 0, 379, 371, 1, 0, 0, 0, 380, 59, 1, 0, 0, 0, 381,
4392
+ 382, 3, 78, 39, 0, 382, 383, 5, 3, 0, 0, 383, 384, 3, 64, 32, 0, 384, 61, 1, 0, 0, 0, 385,
4393
+ 386, 5, 4, 0, 0, 386, 387, 5, 58, 0, 0, 387, 388, 5, 3, 0, 0, 388, 389, 3, 64, 32, 0, 389,
4394
+ 63, 1, 0, 0, 0, 390, 391, 6, 32, -1, 0, 391, 392, 5, 54, 0, 0, 392, 393, 3, 64, 32, 0,
4395
+ 393, 394, 5, 55, 0, 0, 394, 408, 1, 0, 0, 0, 395, 398, 3, 70, 35, 0, 396, 398, 3, 78,
4396
+ 39, 0, 397, 395, 1, 0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 408, 1, 0, 0, 0, 399, 400, 3, 68,
4397
+ 34, 0, 400, 401, 3, 64, 32, 11, 401, 408, 1, 0, 0, 0, 402, 408, 3, 92, 46, 0, 403, 408,
4398
+ 3, 96, 48, 0, 404, 408, 3, 98, 49, 0, 405, 408, 3, 84, 42, 0, 406, 408, 3, 114, 57, 0,
4399
+ 407, 390, 1, 0, 0, 0, 407, 397, 1, 0, 0, 0, 407, 399, 1, 0, 0, 0, 407, 402, 1, 0, 0, 0,
4400
+ 407, 403, 1, 0, 0, 0, 407, 404, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 406, 1, 0, 0, 0,
4401
+ 408, 429, 1, 0, 0, 0, 409, 410, 10, 10, 0, 0, 410, 411, 7, 5, 0, 0, 411, 428, 3, 64, 32,
4402
+ 11, 412, 413, 10, 9, 0, 0, 413, 414, 7, 6, 0, 0, 414, 428, 3, 64, 32, 10, 415, 416, 10,
4403
+ 8, 0, 0, 416, 417, 3, 66, 33, 0, 417, 418, 3, 64, 32, 9, 418, 428, 1, 0, 0, 0, 419, 420,
4404
+ 10, 7, 0, 0, 420, 421, 7, 7, 0, 0, 421, 428, 3, 64, 32, 8, 422, 423, 10, 1, 0, 0, 423,
4405
+ 424, 5, 5, 0, 0, 424, 425, 3, 64, 32, 0, 425, 426, 5, 6, 0, 0, 426, 428, 1, 0, 0, 0, 427,
4406
+ 409, 1, 0, 0, 0, 427, 412, 1, 0, 0, 0, 427, 415, 1, 0, 0, 0, 427, 419, 1, 0, 0, 0, 427,
4407
+ 422, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430,
4408
+ 65, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 433, 7, 8, 0, 0, 433, 67, 1, 0, 0, 0, 434, 435,
4409
+ 7, 9, 0, 0, 435, 69, 1, 0, 0, 0, 436, 438, 5, 44, 0, 0, 437, 436, 1, 0, 0, 0, 437, 438,
4410
+ 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440, 7, 10, 0, 0, 440, 71, 1, 0, 0, 0, 441, 442,
4411
+ 5, 24, 0, 0, 442, 443, 5, 58, 0, 0, 443, 445, 5, 54, 0, 0, 444, 446, 3, 76, 38, 0, 445,
4412
+ 444, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 5, 55, 0, 0, 448,
4413
+ 449, 5, 1, 0, 0, 449, 450, 5, 66, 0, 0, 450, 453, 5, 68, 0, 0, 451, 454, 5, 66, 0, 0, 452,
4414
+ 454, 3, 74, 37, 0, 453, 451, 1, 0, 0, 0, 453, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455,
4415
+ 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 458, 5, 69, 0, 0, 458,
4416
+ 73, 1, 0, 0, 0, 459, 462, 3, 2, 1, 0, 460, 462, 3, 88, 44, 0, 461, 459, 1, 0, 0, 0, 461,
4417
+ 460, 1, 0, 0, 0, 462, 75, 1, 0, 0, 0, 463, 468, 5, 58, 0, 0, 464, 465, 5, 2, 0, 0, 465,
4418
+ 467, 5, 58, 0, 0, 466, 464, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468,
4419
+ 469, 1, 0, 0, 0, 469, 477, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 472, 5, 2, 0, 0, 472,
4420
+ 473, 5, 58, 0, 0, 473, 474, 5, 3, 0, 0, 474, 476, 3, 70, 35, 0, 475, 471, 1, 0, 0, 0, 476,
4421
+ 479, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 493, 1, 0, 0, 0, 479,
4422
+ 477, 1, 0, 0, 0, 480, 481, 5, 58, 0, 0, 481, 482, 5, 3, 0, 0, 482, 489, 3, 70, 35, 0, 483,
4423
+ 484, 5, 2, 0, 0, 484, 485, 5, 58, 0, 0, 485, 486, 5, 3, 0, 0, 486, 488, 3, 70, 35, 0, 487,
4424
+ 483, 1, 0, 0, 0, 488, 491, 1, 0, 0, 0, 489, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490,
4425
+ 493, 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 492, 463, 1, 0, 0, 0, 492, 480, 1, 0, 0, 0, 493,
4426
+ 77, 1, 0, 0, 0, 494, 498, 5, 58, 0, 0, 495, 497, 3, 82, 41, 0, 496, 495, 1, 0, 0, 0, 497,
4427
+ 500, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 79, 1, 0, 0, 0, 500, 498,
4428
+ 1, 0, 0, 0, 501, 503, 5, 54, 0, 0, 502, 504, 3, 58, 29, 0, 503, 502, 1, 0, 0, 0, 503, 504,
4429
+ 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 508, 5, 55, 0, 0, 506, 508, 3, 82, 41, 0, 507, 501,
4430
+ 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 81, 1, 0, 0, 0, 509, 510, 5, 7, 0, 0, 510, 516, 5,
4431
+ 58, 0, 0, 511, 512, 5, 5, 0, 0, 512, 513, 3, 64, 32, 0, 513, 514, 5, 6, 0, 0, 514, 516,
4432
+ 1, 0, 0, 0, 515, 509, 1, 0, 0, 0, 515, 511, 1, 0, 0, 0, 516, 83, 1, 0, 0, 0, 517, 519, 3,
4433
+ 86, 43, 0, 518, 517, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 522,
4434
+ 5, 58, 0, 0, 521, 523, 3, 80, 40, 0, 522, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 522,
4435
+ 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 85, 1, 0, 0, 0, 526, 528, 5, 43, 0, 0, 527, 526,
4436
+ 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 531, 5, 45, 0, 0, 530, 532,
4437
+ 3, 64, 32, 0, 531, 530, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 87, 1, 0, 0, 0, 533, 534,
4438
+ 5, 23, 0, 0, 534, 535, 3, 64, 32, 0, 535, 89, 1, 0, 0, 0, 536, 537, 3, 106, 53, 0, 537,
4439
+ 538, 5, 1, 0, 0, 538, 539, 3, 10, 5, 0, 539, 91, 1, 0, 0, 0, 540, 541, 5, 11, 0, 0, 541,
4440
+ 542, 5, 12, 0, 0, 542, 543, 5, 1, 0, 0, 543, 544, 5, 66, 0, 0, 544, 547, 5, 68, 0, 0, 545,
4441
+ 548, 5, 66, 0, 0, 546, 548, 3, 104, 52, 0, 547, 545, 1, 0, 0, 0, 547, 546, 1, 0, 0, 0,
4442
+ 548, 549, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0,
4443
+ 551, 552, 5, 69, 0, 0, 552, 93, 1, 0, 0, 0, 553, 554, 5, 66, 0, 0, 554, 557, 5, 68, 0,
4444
+ 0, 555, 558, 5, 66, 0, 0, 556, 558, 3, 102, 51, 0, 557, 555, 1, 0, 0, 0, 557, 556, 1,
4445
+ 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 557, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, 1,
4446
+ 0, 0, 0, 561, 562, 5, 69, 0, 0, 562, 95, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 568, 5,
4447
+ 13, 0, 0, 565, 566, 5, 54, 0, 0, 566, 567, 5, 58, 0, 0, 567, 569, 5, 55, 0, 0, 568, 565,
4448
+ 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 1, 0, 0, 571, 572,
4449
+ 3, 94, 47, 0, 572, 97, 1, 0, 0, 0, 573, 574, 5, 11, 0, 0, 574, 575, 5, 14, 0, 0, 575, 576,
4450
+ 5, 1, 0, 0, 576, 577, 5, 66, 0, 0, 577, 581, 5, 68, 0, 0, 578, 582, 5, 66, 0, 0, 579, 582,
4451
+ 3, 104, 52, 0, 580, 582, 3, 90, 45, 0, 581, 578, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581,
4452
+ 580, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584,
4453
+ 585, 1, 0, 0, 0, 585, 586, 5, 69, 0, 0, 586, 99, 1, 0, 0, 0, 587, 588, 5, 66, 0, 0, 588,
4454
+ 591, 5, 68, 0, 0, 589, 592, 5, 66, 0, 0, 590, 592, 3, 104, 52, 0, 591, 589, 1, 0, 0, 0,
4455
+ 591, 590, 1, 0, 0, 0, 592, 593, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0,
4456
+ 594, 595, 1, 0, 0, 0, 595, 596, 5, 69, 0, 0, 596, 101, 1, 0, 0, 0, 597, 599, 7, 11, 0,
4457
+ 0, 598, 600, 5, 1, 0, 0, 599, 598, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 607, 1, 0, 0,
4458
+ 0, 601, 608, 3, 58, 29, 0, 602, 603, 5, 54, 0, 0, 603, 604, 3, 58, 29, 0, 604, 605, 5,
4459
+ 55, 0, 0, 605, 608, 1, 0, 0, 0, 606, 608, 3, 100, 50, 0, 607, 601, 1, 0, 0, 0, 607, 602,
4460
+ 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608, 624, 1, 0, 0, 0, 609, 610, 5, 26, 0, 0, 610, 615,
4461
+ 5, 58, 0, 0, 611, 612, 5, 2, 0, 0, 612, 614, 5, 58, 0, 0, 613, 611, 1, 0, 0, 0, 614, 617,
4462
+ 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 618, 1, 0, 0, 0, 617, 615,
4463
+ 1, 0, 0, 0, 618, 619, 5, 27, 0, 0, 619, 620, 3, 64, 32, 0, 620, 621, 5, 1, 0, 0, 621, 622,
4464
+ 3, 94, 47, 0, 622, 624, 1, 0, 0, 0, 623, 597, 1, 0, 0, 0, 623, 609, 1, 0, 0, 0, 624, 103,
4465
+ 1, 0, 0, 0, 625, 626, 3, 106, 53, 0, 626, 627, 5, 1, 0, 0, 627, 628, 3, 108, 54, 0, 628,
4466
+ 105, 1, 0, 0, 0, 629, 630, 7, 12, 0, 0, 630, 107, 1, 0, 0, 0, 631, 641, 3, 100, 50, 0,
4467
+ 632, 637, 3, 64, 32, 0, 633, 634, 5, 2, 0, 0, 634, 636, 3, 64, 32, 0, 635, 633, 1, 0,
4468
+ 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0,
4469
+ 0, 0, 639, 637, 1, 0, 0, 0, 640, 631, 1, 0, 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0,
4470
+ 0, 0, 642, 645, 5, 58, 0, 0, 643, 646, 5, 59, 0, 0, 644, 646, 3, 64, 32, 0, 645, 643,
4471
+ 1, 0, 0, 0, 645, 644, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 649, 5, 58, 0, 0, 648, 642,
4472
+ 1, 0, 0, 0, 648, 647, 1, 0, 0, 0, 649, 111, 1, 0, 0, 0, 650, 654, 5, 15, 0, 0, 651, 653,
4473
+ 3, 110, 55, 0, 652, 651, 1, 0, 0, 0, 653, 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655,
4474
+ 1, 0, 0, 0, 655, 113, 1, 0, 0, 0, 656, 654, 1, 0, 0, 0, 657, 668, 5, 5, 0, 0, 658, 663,
4475
+ 3, 64, 32, 0, 659, 660, 5, 2, 0, 0, 660, 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 662,
4476
+ 665, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 663, 664, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665,
4477
+ 663, 1, 0, 0, 0, 666, 658, 1, 0, 0, 0, 667, 670, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 668,
4478
+ 669, 1, 0, 0, 0, 669, 671, 1, 0, 0, 0, 670, 668, 1, 0, 0, 0, 671, 672, 5, 6, 0, 0, 672,
4479
+ 115, 1, 0, 0, 0, 673, 676, 5, 20, 0, 0, 674, 677, 5, 58, 0, 0, 675, 677, 3, 64, 32, 0,
4480
+ 676, 674, 1, 0, 0, 0, 676, 675, 1, 0, 0, 0, 677, 117, 1, 0, 0, 0, 678, 679, 5, 25, 0, 0,
4481
+ 679, 680, 5, 58, 0, 0, 680, 119, 1, 0, 0, 0, 681, 682, 7, 13, 0, 0, 682, 683, 5, 1, 0,
4482
+ 0, 683, 684, 3, 10, 5, 0, 684, 121, 1, 0, 0, 0, 685, 686, 5, 30, 0, 0, 686, 687, 3, 64,
4483
+ 32, 0, 687, 688, 5, 1, 0, 0, 688, 692, 3, 10, 5, 0, 689, 691, 3, 124, 62, 0, 690, 689,
4484
+ 1, 0, 0, 0, 691, 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 696,
4485
+ 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 697, 3, 126, 63, 0, 696, 695, 1, 0, 0, 0, 696, 697,
4486
+ 1, 0, 0, 0, 697, 123, 1, 0, 0, 0, 698, 699, 5, 31, 0, 0, 699, 700, 5, 30, 0, 0, 700, 701,
4487
+ 3, 64, 32, 0, 701, 702, 5, 1, 0, 0, 702, 703, 3, 10, 5, 0, 703, 125, 1, 0, 0, 0, 704, 705,
4488
+ 5, 31, 0, 0, 705, 706, 5, 1, 0, 0, 706, 707, 3, 10, 5, 0, 707, 127, 1, 0, 0, 0, 708, 709,
4489
+ 5, 28, 0, 0, 709, 710, 3, 64, 32, 0, 710, 711, 5, 1, 0, 0, 711, 712, 3, 10, 5, 0, 712,
4490
+ 129, 1, 0, 0, 0, 713, 714, 5, 26, 0, 0, 714, 719, 5, 58, 0, 0, 715, 716, 5, 2, 0, 0, 716,
4491
+ 718, 5, 58, 0, 0, 717, 715, 1, 0, 0, 0, 718, 721, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 719,
4492
+ 720, 1, 0, 0, 0, 720, 722, 1, 0, 0, 0, 721, 719, 1, 0, 0, 0, 722, 723, 5, 27, 0, 0, 723,
4493
+ 724, 3, 64, 32, 0, 724, 725, 5, 1, 0, 0, 725, 726, 3, 10, 5, 0, 726, 131, 1, 0, 0, 0, 727,
4494
+ 728, 5, 8, 0, 0, 728, 729, 5, 1, 0, 0, 729, 734, 3, 64, 32, 0, 730, 731, 5, 2, 0, 0, 731,
4495
+ 733, 3, 64, 32, 0, 732, 730, 1, 0, 0, 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 734,
4496
+ 735, 1, 0, 0, 0, 735, 737, 1, 0, 0, 0, 736, 734, 1, 0, 0, 0, 737, 738, 5, 1, 0, 0, 738,
4497
+ 739, 3, 136, 68, 0, 739, 133, 1, 0, 0, 0, 740, 741, 7, 14, 0, 0, 741, 135, 1, 0, 0, 0,
4498
+ 742, 743, 5, 66, 0, 0, 743, 746, 5, 68, 0, 0, 744, 747, 5, 66, 0, 0, 745, 747, 3, 138,
4499
+ 69, 0, 746, 744, 1, 0, 0, 0, 746, 745, 1, 0, 0, 0, 747, 748, 1, 0, 0, 0, 748, 746, 1, 0,
4500
+ 0, 0, 748, 749, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 751, 5, 69, 0, 0, 751, 137, 1, 0,
4501
+ 0, 0, 752, 756, 3, 140, 70, 0, 753, 756, 3, 144, 72, 0, 754, 756, 3, 142, 71, 0, 755,
4502
+ 752, 1, 0, 0, 0, 755, 753, 1, 0, 0, 0, 755, 754, 1, 0, 0, 0, 756, 139, 1, 0, 0, 0, 757,
4503
+ 758, 3, 134, 67, 0, 758, 759, 5, 1, 0, 0, 759, 767, 3, 64, 32, 0, 760, 761, 5, 2, 0, 0,
4504
+ 761, 762, 3, 134, 67, 0, 762, 763, 5, 1, 0, 0, 763, 764, 3, 64, 32, 0, 764, 766, 1, 0,
4505
+ 0, 0, 765, 760, 1, 0, 0, 0, 766, 769, 1, 0, 0, 0, 767, 765, 1, 0, 0, 0, 767, 768, 1, 0,
4506
+ 0, 0, 768, 774, 1, 0, 0, 0, 769, 767, 1, 0, 0, 0, 770, 771, 5, 2, 0, 0, 771, 773, 3, 134,
4507
+ 67, 0, 772, 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774, 772, 1, 0, 0, 0, 774, 775, 1, 0,
4508
+ 0, 0, 775, 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777, 787, 5, 1, 0, 0, 778, 788, 3, 136,
4509
+ 68, 0, 779, 784, 3, 64, 32, 0, 780, 781, 5, 2, 0, 0, 781, 783, 3, 64, 32, 0, 782, 780,
4510
+ 1, 0, 0, 0, 783, 786, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 788,
4511
+ 1, 0, 0, 0, 786, 784, 1, 0, 0, 0, 787, 778, 1, 0, 0, 0, 787, 779, 1, 0, 0, 0, 788, 141,
4512
+ 1, 0, 0, 0, 789, 790, 3, 134, 67, 0, 790, 791, 5, 1, 0, 0, 791, 792, 3, 136, 68, 0, 792,
4513
+ 143, 1, 0, 0, 0, 793, 794, 3, 134, 67, 0, 794, 795, 5, 1, 0, 0, 795, 800, 3, 64, 32, 0,
4514
+ 796, 797, 5, 2, 0, 0, 797, 799, 3, 64, 32, 0, 798, 796, 1, 0, 0, 0, 799, 802, 1, 0, 0,
4515
+ 0, 800, 798, 1, 0, 0, 0, 800, 801, 1, 0, 0, 0, 801, 145, 1, 0, 0, 0, 802, 800, 1, 0, 0,
4516
+ 0, 803, 804, 5, 53, 0, 0, 804, 805, 5, 58, 0, 0, 805, 147, 1, 0, 0, 0, 87, 150, 152, 157,
4517
+ 159, 177, 184, 188, 196, 202, 204, 218, 220, 235, 239, 244, 248, 256, 269, 280,
4518
+ 288, 290, 301, 311, 313, 319, 326, 333, 337, 343, 361, 368, 376, 379, 397, 407,
4519
+ 427, 429, 437, 445, 453, 455, 461, 468, 477, 489, 492, 498, 503, 507, 515, 518,
4520
+ 524, 527, 531, 547, 549, 557, 559, 568, 581, 583, 591, 593, 599, 607, 615, 623,
4521
+ 637, 640, 645, 648, 654, 663, 668, 676, 692, 696, 719, 734, 746, 748, 755, 767,
4522
+ 774, 784, 787, 800
4523
+ ];
4524
+ static __ATN;
4525
+ static get _ATN() {
4526
+ if (!CircuitScriptParser.__ATN) {
4527
+ CircuitScriptParser.__ATN = new antlr.ATNDeserializer().deserialize(CircuitScriptParser._serializedATN);
4528
+ }
4529
+ return CircuitScriptParser.__ATN;
4530
+ }
4531
+ static vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4532
+ get vocabulary() {
4090
4533
  return CircuitScriptParser.vocabulary;
4091
4534
  }
4092
4535
  static decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4173,6 +4616,9 @@ export class ExpressionContext extends antlr.ParserRuleContext {
4173
4616
  annotation_comment_expr() {
4174
4617
  return this.getRuleContext(0, Annotation_comment_exprContext);
4175
4618
  }
4619
+ part_set_expr() {
4620
+ return this.getRuleContext(0, Part_set_exprContext);
4621
+ }
4176
4622
  get ruleIndex() {
4177
4623
  return CircuitScriptParser.RULE_expression;
4178
4624
  }
@@ -6309,6 +6755,207 @@ export class For_exprContext extends antlr.ParserRuleContext {
6309
6755
  }
6310
6756
  }
6311
6757
  }
6758
+ export class Part_set_exprContext extends antlr.ParserRuleContext {
6759
+ constructor(parent, invokingState) {
6760
+ super(parent, invokingState);
6761
+ }
6762
+ data_expr(i) {
6763
+ if (i === undefined) {
6764
+ return this.getRuleContexts(Data_exprContext);
6765
+ }
6766
+ return this.getRuleContext(i, Data_exprContext);
6767
+ }
6768
+ part_match_block() {
6769
+ return this.getRuleContext(0, Part_match_blockContext);
6770
+ }
6771
+ get ruleIndex() {
6772
+ return CircuitScriptParser.RULE_part_set_expr;
6773
+ }
6774
+ accept(visitor) {
6775
+ if (visitor.visitPart_set_expr) {
6776
+ return visitor.visitPart_set_expr(this);
6777
+ }
6778
+ else {
6779
+ return visitor.visitChildren(this);
6780
+ }
6781
+ }
6782
+ }
6783
+ export class Part_set_keyContext extends antlr.ParserRuleContext {
6784
+ constructor(parent, invokingState) {
6785
+ super(parent, invokingState);
6786
+ }
6787
+ ID() {
6788
+ return this.getToken(CircuitScriptParser.ID, 0);
6789
+ }
6790
+ INTEGER_VALUE() {
6791
+ return this.getToken(CircuitScriptParser.INTEGER_VALUE, 0);
6792
+ }
6793
+ NUMERIC_VALUE() {
6794
+ return this.getToken(CircuitScriptParser.NUMERIC_VALUE, 0);
6795
+ }
6796
+ STRING_VALUE() {
6797
+ return this.getToken(CircuitScriptParser.STRING_VALUE, 0);
6798
+ }
6799
+ PERCENTAGE_VALUE() {
6800
+ return this.getToken(CircuitScriptParser.PERCENTAGE_VALUE, 0);
6801
+ }
6802
+ get ruleIndex() {
6803
+ return CircuitScriptParser.RULE_part_set_key;
6804
+ }
6805
+ accept(visitor) {
6806
+ if (visitor.visitPart_set_key) {
6807
+ return visitor.visitPart_set_key(this);
6808
+ }
6809
+ else {
6810
+ return visitor.visitChildren(this);
6811
+ }
6812
+ }
6813
+ }
6814
+ export class Part_match_blockContext extends antlr.ParserRuleContext {
6815
+ constructor(parent, invokingState) {
6816
+ super(parent, invokingState);
6817
+ }
6818
+ NEWLINE(i) {
6819
+ if (i === undefined) {
6820
+ return this.getTokens(CircuitScriptParser.NEWLINE);
6821
+ }
6822
+ else {
6823
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
6824
+ }
6825
+ }
6826
+ INDENT() {
6827
+ return this.getToken(CircuitScriptParser.INDENT, 0);
6828
+ }
6829
+ DEDENT() {
6830
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
6831
+ }
6832
+ part_sub_expr(i) {
6833
+ if (i === undefined) {
6834
+ return this.getRuleContexts(Part_sub_exprContext);
6835
+ }
6836
+ return this.getRuleContext(i, Part_sub_exprContext);
6837
+ }
6838
+ get ruleIndex() {
6839
+ return CircuitScriptParser.RULE_part_match_block;
6840
+ }
6841
+ accept(visitor) {
6842
+ if (visitor.visitPart_match_block) {
6843
+ return visitor.visitPart_match_block(this);
6844
+ }
6845
+ else {
6846
+ return visitor.visitChildren(this);
6847
+ }
6848
+ }
6849
+ }
6850
+ export class Part_sub_exprContext extends antlr.ParserRuleContext {
6851
+ constructor(parent, invokingState) {
6852
+ super(parent, invokingState);
6853
+ }
6854
+ part_condition_expr() {
6855
+ return this.getRuleContext(0, Part_condition_exprContext);
6856
+ }
6857
+ part_value_expr() {
6858
+ return this.getRuleContext(0, Part_value_exprContext);
6859
+ }
6860
+ part_condition_key_only_expr() {
6861
+ return this.getRuleContext(0, Part_condition_key_only_exprContext);
6862
+ }
6863
+ get ruleIndex() {
6864
+ return CircuitScriptParser.RULE_part_sub_expr;
6865
+ }
6866
+ accept(visitor) {
6867
+ if (visitor.visitPart_sub_expr) {
6868
+ return visitor.visitPart_sub_expr(this);
6869
+ }
6870
+ else {
6871
+ return visitor.visitChildren(this);
6872
+ }
6873
+ }
6874
+ }
6875
+ export class Part_condition_exprContext extends antlr.ParserRuleContext {
6876
+ _part_set_key;
6877
+ _key_id = [];
6878
+ _data_expr;
6879
+ _values = [];
6880
+ _id_only;
6881
+ _last_data = [];
6882
+ constructor(parent, invokingState) {
6883
+ super(parent, invokingState);
6884
+ }
6885
+ part_set_key(i) {
6886
+ if (i === undefined) {
6887
+ return this.getRuleContexts(Part_set_keyContext);
6888
+ }
6889
+ return this.getRuleContext(i, Part_set_keyContext);
6890
+ }
6891
+ data_expr(i) {
6892
+ if (i === undefined) {
6893
+ return this.getRuleContexts(Data_exprContext);
6894
+ }
6895
+ return this.getRuleContext(i, Data_exprContext);
6896
+ }
6897
+ part_match_block() {
6898
+ return this.getRuleContext(0, Part_match_blockContext);
6899
+ }
6900
+ get ruleIndex() {
6901
+ return CircuitScriptParser.RULE_part_condition_expr;
6902
+ }
6903
+ accept(visitor) {
6904
+ if (visitor.visitPart_condition_expr) {
6905
+ return visitor.visitPart_condition_expr(this);
6906
+ }
6907
+ else {
6908
+ return visitor.visitChildren(this);
6909
+ }
6910
+ }
6911
+ }
6912
+ export class Part_condition_key_only_exprContext extends antlr.ParserRuleContext {
6913
+ constructor(parent, invokingState) {
6914
+ super(parent, invokingState);
6915
+ }
6916
+ part_set_key() {
6917
+ return this.getRuleContext(0, Part_set_keyContext);
6918
+ }
6919
+ part_match_block() {
6920
+ return this.getRuleContext(0, Part_match_blockContext);
6921
+ }
6922
+ get ruleIndex() {
6923
+ return CircuitScriptParser.RULE_part_condition_key_only_expr;
6924
+ }
6925
+ accept(visitor) {
6926
+ if (visitor.visitPart_condition_key_only_expr) {
6927
+ return visitor.visitPart_condition_key_only_expr(this);
6928
+ }
6929
+ else {
6930
+ return visitor.visitChildren(this);
6931
+ }
6932
+ }
6933
+ }
6934
+ export class Part_value_exprContext extends antlr.ParserRuleContext {
6935
+ constructor(parent, invokingState) {
6936
+ super(parent, invokingState);
6937
+ }
6938
+ part_set_key() {
6939
+ return this.getRuleContext(0, Part_set_keyContext);
6940
+ }
6941
+ data_expr(i) {
6942
+ if (i === undefined) {
6943
+ return this.getRuleContexts(Data_exprContext);
6944
+ }
6945
+ return this.getRuleContext(i, Data_exprContext);
6946
+ }
6947
+ get ruleIndex() {
6948
+ return CircuitScriptParser.RULE_part_value_expr;
6949
+ }
6950
+ accept(visitor) {
6951
+ if (visitor.visitPart_value_expr) {
6952
+ return visitor.visitPart_value_expr(this);
6953
+ }
6954
+ else {
6955
+ return visitor.visitChildren(this);
6956
+ }
6957
+ }
6958
+ }
6312
6959
  export class Annotation_comment_exprContext extends antlr.ParserRuleContext {
6313
6960
  constructor(parent, invokingState) {
6314
6961
  super(parent, invokingState);