circuitscript 0.1.22 → 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 +1503 -843
  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 +26 -6
  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 +124 -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 +1498 -842
  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 +26 -6
  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 +124 -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 +148 -63
  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 +5 -2
  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,18 +1446,23 @@ 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 = 309;
1453
+ this.state = 326;
1433
1454
  this.errorHandler.sync(this);
1434
1455
  _la = this.tokenStream.LA(1);
1435
- if (_la === 52) {
1456
+ while (_la === 53) {
1436
1457
  {
1437
- this.state = 308;
1438
- this.annotation_comment_expr();
1458
+ {
1459
+ this.state = 323;
1460
+ this.annotation_comment_expr();
1461
+ }
1439
1462
  }
1463
+ this.state = 328;
1464
+ this.errorHandler.sync(this);
1465
+ _la = this.tokenStream.LA(1);
1440
1466
  }
1441
1467
  }
1442
1468
  }
@@ -1460,14 +1486,15 @@ export class CircuitScriptParser extends antlr.Parser {
1460
1486
  try {
1461
1487
  this.enterOuterAlt(localContext, 1);
1462
1488
  {
1463
- this.state = 311;
1489
+ this.state = 329;
1464
1490
  this.pin_select_expr2();
1465
- this.state = 312;
1491
+ this.state = 330;
1466
1492
  this.match(CircuitScriptParser.T__0);
1467
- this.state = 315;
1493
+ this.state = 333;
1468
1494
  this.errorHandler.sync(this);
1469
1495
  switch (this.tokenStream.LA(1)) {
1470
1496
  case CircuitScriptParser.T__3:
1497
+ case CircuitScriptParser.T__7:
1471
1498
  case CircuitScriptParser.Break:
1472
1499
  case CircuitScriptParser.Branch:
1473
1500
  case CircuitScriptParser.Wire:
@@ -1491,13 +1518,13 @@ export class CircuitScriptParser extends antlr.Parser {
1491
1518
  case CircuitScriptParser.NOT_CONNECTED:
1492
1519
  case CircuitScriptParser.ID:
1493
1520
  {
1494
- this.state = 313;
1521
+ this.state = 331;
1495
1522
  this.at_block_pin_expression_simple();
1496
1523
  }
1497
1524
  break;
1498
1525
  case CircuitScriptParser.NEWLINE:
1499
1526
  {
1500
- this.state = 314;
1527
+ this.state = 332;
1501
1528
  this.at_block_pin_expression_complex();
1502
1529
  }
1503
1530
  break;
@@ -1526,10 +1553,11 @@ export class CircuitScriptParser extends antlr.Parser {
1526
1553
  try {
1527
1554
  this.enterOuterAlt(localContext, 1);
1528
1555
  {
1529
- this.state = 319;
1556
+ this.state = 337;
1530
1557
  this.errorHandler.sync(this);
1531
1558
  switch (this.tokenStream.LA(1)) {
1532
1559
  case CircuitScriptParser.T__3:
1560
+ case CircuitScriptParser.T__7:
1533
1561
  case CircuitScriptParser.Break:
1534
1562
  case CircuitScriptParser.Branch:
1535
1563
  case CircuitScriptParser.Wire:
@@ -1552,13 +1580,13 @@ export class CircuitScriptParser extends antlr.Parser {
1552
1580
  case CircuitScriptParser.ANNOTATION_START:
1553
1581
  case CircuitScriptParser.ID:
1554
1582
  {
1555
- this.state = 317;
1583
+ this.state = 335;
1556
1584
  this.expression();
1557
1585
  }
1558
1586
  break;
1559
1587
  case CircuitScriptParser.NOT_CONNECTED:
1560
1588
  {
1561
- this.state = 318;
1589
+ this.state = 336;
1562
1590
  this.match(CircuitScriptParser.NOT_CONNECTED);
1563
1591
  }
1564
1592
  break;
@@ -1587,7 +1615,7 @@ export class CircuitScriptParser extends antlr.Parser {
1587
1615
  try {
1588
1616
  this.enterOuterAlt(localContext, 1);
1589
1617
  {
1590
- this.state = 321;
1618
+ this.state = 339;
1591
1619
  this.expressions_block();
1592
1620
  }
1593
1621
  }
@@ -1611,25 +1639,25 @@ export class CircuitScriptParser extends antlr.Parser {
1611
1639
  try {
1612
1640
  this.enterOuterAlt(localContext, 1);
1613
1641
  {
1614
- this.state = 325;
1642
+ this.state = 343;
1615
1643
  this.errorHandler.sync(this);
1616
1644
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1617
1645
  case 1:
1618
1646
  {
1619
- this.state = 323;
1647
+ this.state = 341;
1620
1648
  this.atom_expr();
1621
1649
  }
1622
1650
  break;
1623
1651
  case 2:
1624
1652
  {
1625
- this.state = 324;
1653
+ this.state = 342;
1626
1654
  this.function_call_expr();
1627
1655
  }
1628
1656
  break;
1629
1657
  }
1630
- this.state = 327;
1658
+ this.state = 345;
1631
1659
  this.match(CircuitScriptParser.T__2);
1632
- this.state = 328;
1660
+ this.state = 346;
1633
1661
  this.data_expr(0);
1634
1662
  }
1635
1663
  }
@@ -1654,18 +1682,18 @@ export class CircuitScriptParser extends antlr.Parser {
1654
1682
  try {
1655
1683
  this.enterOuterAlt(localContext, 1);
1656
1684
  {
1657
- this.state = 330;
1685
+ this.state = 348;
1658
1686
  this.atom_expr();
1659
- this.state = 331;
1687
+ this.state = 349;
1660
1688
  _la = this.tokenStream.LA(1);
1661
- if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1689
+ if (!(((((_la - 48)) & ~0x1F) === 0 && ((1 << (_la - 48)) & 31) !== 0))) {
1662
1690
  this.errorHandler.recoverInline(this);
1663
1691
  }
1664
1692
  else {
1665
1693
  this.errorHandler.reportMatch(this);
1666
1694
  this.consume();
1667
1695
  }
1668
- this.state = 332;
1696
+ this.state = 350;
1669
1697
  this.data_expr(0);
1670
1698
  }
1671
1699
  }
@@ -1689,11 +1717,11 @@ export class CircuitScriptParser extends antlr.Parser {
1689
1717
  try {
1690
1718
  this.enterOuterAlt(localContext, 1);
1691
1719
  {
1692
- this.state = 334;
1720
+ this.state = 352;
1693
1721
  this.match(CircuitScriptParser.ID);
1694
- this.state = 335;
1722
+ this.state = 353;
1695
1723
  this.match(CircuitScriptParser.T__2);
1696
- this.state = 336;
1724
+ this.state = 354;
1697
1725
  this.data_expr(0);
1698
1726
  }
1699
1727
  }
@@ -1717,46 +1745,46 @@ export class CircuitScriptParser extends antlr.Parser {
1717
1745
  let _la;
1718
1746
  try {
1719
1747
  let alternative;
1720
- this.state = 361;
1748
+ this.state = 379;
1721
1749
  this.errorHandler.sync(this);
1722
1750
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1723
1751
  case 1:
1724
1752
  this.enterOuterAlt(localContext, 1);
1725
1753
  {
1726
1754
  {
1727
- this.state = 338;
1755
+ this.state = 356;
1728
1756
  this.data_expr(0);
1729
- this.state = 343;
1757
+ this.state = 361;
1730
1758
  this.errorHandler.sync(this);
1731
1759
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1732
1760
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1733
1761
  if (alternative === 1) {
1734
1762
  {
1735
1763
  {
1736
- this.state = 339;
1764
+ this.state = 357;
1737
1765
  this.match(CircuitScriptParser.T__1);
1738
- this.state = 340;
1766
+ this.state = 358;
1739
1767
  this.data_expr(0);
1740
1768
  }
1741
1769
  }
1742
1770
  }
1743
- this.state = 345;
1771
+ this.state = 363;
1744
1772
  this.errorHandler.sync(this);
1745
1773
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1746
1774
  }
1747
- this.state = 350;
1775
+ this.state = 368;
1748
1776
  this.errorHandler.sync(this);
1749
1777
  _la = this.tokenStream.LA(1);
1750
1778
  while (_la === 2) {
1751
1779
  {
1752
1780
  {
1753
- this.state = 346;
1781
+ this.state = 364;
1754
1782
  this.match(CircuitScriptParser.T__1);
1755
- this.state = 347;
1783
+ this.state = 365;
1756
1784
  this.keyword_assignment_expr();
1757
1785
  }
1758
1786
  }
1759
- this.state = 352;
1787
+ this.state = 370;
1760
1788
  this.errorHandler.sync(this);
1761
1789
  _la = this.tokenStream.LA(1);
1762
1790
  }
@@ -1767,21 +1795,21 @@ export class CircuitScriptParser extends antlr.Parser {
1767
1795
  this.enterOuterAlt(localContext, 2);
1768
1796
  {
1769
1797
  {
1770
- this.state = 353;
1798
+ this.state = 371;
1771
1799
  this.keyword_assignment_expr();
1772
- this.state = 358;
1800
+ this.state = 376;
1773
1801
  this.errorHandler.sync(this);
1774
1802
  _la = this.tokenStream.LA(1);
1775
1803
  while (_la === 2) {
1776
1804
  {
1777
1805
  {
1778
- this.state = 354;
1806
+ this.state = 372;
1779
1807
  this.match(CircuitScriptParser.T__1);
1780
- this.state = 355;
1808
+ this.state = 373;
1781
1809
  this.keyword_assignment_expr();
1782
1810
  }
1783
1811
  }
1784
- this.state = 360;
1812
+ this.state = 378;
1785
1813
  this.errorHandler.sync(this);
1786
1814
  _la = this.tokenStream.LA(1);
1787
1815
  }
@@ -1810,11 +1838,11 @@ export class CircuitScriptParser extends antlr.Parser {
1810
1838
  try {
1811
1839
  this.enterOuterAlt(localContext, 1);
1812
1840
  {
1813
- this.state = 363;
1841
+ this.state = 381;
1814
1842
  this.atom_expr();
1815
- this.state = 364;
1843
+ this.state = 382;
1816
1844
  this.match(CircuitScriptParser.T__2);
1817
- this.state = 365;
1845
+ this.state = 383;
1818
1846
  this.data_expr(0);
1819
1847
  }
1820
1848
  }
@@ -1838,13 +1866,13 @@ export class CircuitScriptParser extends antlr.Parser {
1838
1866
  try {
1839
1867
  this.enterOuterAlt(localContext, 1);
1840
1868
  {
1841
- this.state = 367;
1869
+ this.state = 385;
1842
1870
  this.match(CircuitScriptParser.T__3);
1843
- this.state = 368;
1871
+ this.state = 386;
1844
1872
  this.match(CircuitScriptParser.ID);
1845
- this.state = 369;
1873
+ this.state = 387;
1846
1874
  this.match(CircuitScriptParser.T__2);
1847
- this.state = 370;
1875
+ this.state = 388;
1848
1876
  this.data_expr(0);
1849
1877
  }
1850
1878
  }
@@ -1877,7 +1905,7 @@ export class CircuitScriptParser extends antlr.Parser {
1877
1905
  let alternative;
1878
1906
  this.enterOuterAlt(localContext, 1);
1879
1907
  {
1880
- this.state = 389;
1908
+ this.state = 407;
1881
1909
  this.errorHandler.sync(this);
1882
1910
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1883
1911
  case 1:
@@ -1885,11 +1913,11 @@ export class CircuitScriptParser extends antlr.Parser {
1885
1913
  localContext = new RoundedBracketsExprContext(localContext);
1886
1914
  this.context = localContext;
1887
1915
  previousContext = localContext;
1888
- this.state = 373;
1916
+ this.state = 391;
1889
1917
  this.match(CircuitScriptParser.OPEN_PAREN);
1890
- this.state = 374;
1918
+ this.state = 392;
1891
1919
  this.data_expr(0);
1892
- this.state = 375;
1920
+ this.state = 393;
1893
1921
  this.match(CircuitScriptParser.CLOSE_PAREN);
1894
1922
  }
1895
1923
  break;
@@ -1898,7 +1926,7 @@ export class CircuitScriptParser extends antlr.Parser {
1898
1926
  localContext = new ValueAtomExprContext(localContext);
1899
1927
  this.context = localContext;
1900
1928
  previousContext = localContext;
1901
- this.state = 379;
1929
+ this.state = 397;
1902
1930
  this.errorHandler.sync(this);
1903
1931
  switch (this.tokenStream.LA(1)) {
1904
1932
  case CircuitScriptParser.Minus:
@@ -1909,13 +1937,13 @@ export class CircuitScriptParser extends antlr.Parser {
1909
1937
  case CircuitScriptParser.STRING_VALUE:
1910
1938
  case CircuitScriptParser.PERCENTAGE_VALUE:
1911
1939
  {
1912
- this.state = 377;
1940
+ this.state = 395;
1913
1941
  this.value_expr();
1914
1942
  }
1915
1943
  break;
1916
1944
  case CircuitScriptParser.ID:
1917
1945
  {
1918
- this.state = 378;
1946
+ this.state = 396;
1919
1947
  this.atom_expr();
1920
1948
  }
1921
1949
  break;
@@ -1929,9 +1957,9 @@ export class CircuitScriptParser extends antlr.Parser {
1929
1957
  localContext = new UnaryOperatorExprContext(localContext);
1930
1958
  this.context = localContext;
1931
1959
  previousContext = localContext;
1932
- this.state = 381;
1960
+ this.state = 399;
1933
1961
  this.unary_operator();
1934
- this.state = 382;
1962
+ this.state = 400;
1935
1963
  this.data_expr(11);
1936
1964
  }
1937
1965
  break;
@@ -1940,7 +1968,7 @@ export class CircuitScriptParser extends antlr.Parser {
1940
1968
  localContext = new DataExprContext(localContext);
1941
1969
  this.context = localContext;
1942
1970
  previousContext = localContext;
1943
- this.state = 384;
1971
+ this.state = 402;
1944
1972
  this.create_component_expr();
1945
1973
  }
1946
1974
  break;
@@ -1949,7 +1977,7 @@ export class CircuitScriptParser extends antlr.Parser {
1949
1977
  localContext = new DataExprContext(localContext);
1950
1978
  this.context = localContext;
1951
1979
  previousContext = localContext;
1952
- this.state = 385;
1980
+ this.state = 403;
1953
1981
  this.create_graphic_expr();
1954
1982
  }
1955
1983
  break;
@@ -1958,7 +1986,7 @@ export class CircuitScriptParser extends antlr.Parser {
1958
1986
  localContext = new DataExprContext(localContext);
1959
1987
  this.context = localContext;
1960
1988
  previousContext = localContext;
1961
- this.state = 386;
1989
+ this.state = 404;
1962
1990
  this.create_module_expr();
1963
1991
  }
1964
1992
  break;
@@ -1967,7 +1995,7 @@ export class CircuitScriptParser extends antlr.Parser {
1967
1995
  localContext = new FunctionCallExprContext(localContext);
1968
1996
  this.context = localContext;
1969
1997
  previousContext = localContext;
1970
- this.state = 387;
1998
+ this.state = 405;
1971
1999
  this.function_call_expr();
1972
2000
  }
1973
2001
  break;
@@ -1976,13 +2004,13 @@ export class CircuitScriptParser extends antlr.Parser {
1976
2004
  localContext = new ArrayExprContext(localContext);
1977
2005
  this.context = localContext;
1978
2006
  previousContext = localContext;
1979
- this.state = 388;
2007
+ this.state = 406;
1980
2008
  this.array_expr();
1981
2009
  }
1982
2010
  break;
1983
2011
  }
1984
2012
  this.context.stop = this.tokenStream.LT(-1);
1985
- this.state = 411;
2013
+ this.state = 429;
1986
2014
  this.errorHandler.sync(this);
1987
2015
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1988
2016
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1992,27 +2020,27 @@ export class CircuitScriptParser extends antlr.Parser {
1992
2020
  }
1993
2021
  previousContext = localContext;
1994
2022
  {
1995
- this.state = 409;
2023
+ this.state = 427;
1996
2024
  this.errorHandler.sync(this);
1997
2025
  switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
1998
2026
  case 1:
1999
2027
  {
2000
2028
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
2001
2029
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2002
- this.state = 391;
2030
+ this.state = 409;
2003
2031
  if (!(this.precpred(this.context, 10))) {
2004
2032
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
2005
2033
  }
2006
- this.state = 392;
2034
+ this.state = 410;
2007
2035
  _la = this.tokenStream.LA(1);
2008
- if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
2036
+ if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 7) !== 0))) {
2009
2037
  this.errorHandler.recoverInline(this);
2010
2038
  }
2011
2039
  else {
2012
2040
  this.errorHandler.reportMatch(this);
2013
2041
  this.consume();
2014
2042
  }
2015
- this.state = 393;
2043
+ this.state = 411;
2016
2044
  this.data_expr(11);
2017
2045
  }
2018
2046
  break;
@@ -2020,20 +2048,20 @@ export class CircuitScriptParser extends antlr.Parser {
2020
2048
  {
2021
2049
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
2022
2050
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2023
- this.state = 394;
2051
+ this.state = 412;
2024
2052
  if (!(this.precpred(this.context, 9))) {
2025
2053
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
2026
2054
  }
2027
- this.state = 395;
2055
+ this.state = 413;
2028
2056
  _la = this.tokenStream.LA(1);
2029
- if (!(_la === 42 || _la === 43)) {
2057
+ if (!(_la === 43 || _la === 44)) {
2030
2058
  this.errorHandler.recoverInline(this);
2031
2059
  }
2032
2060
  else {
2033
2061
  this.errorHandler.reportMatch(this);
2034
2062
  this.consume();
2035
2063
  }
2036
- this.state = 396;
2064
+ this.state = 414;
2037
2065
  this.data_expr(10);
2038
2066
  }
2039
2067
  break;
@@ -2041,13 +2069,13 @@ export class CircuitScriptParser extends antlr.Parser {
2041
2069
  {
2042
2070
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
2043
2071
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2044
- this.state = 397;
2072
+ this.state = 415;
2045
2073
  if (!(this.precpred(this.context, 8))) {
2046
2074
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
2047
2075
  }
2048
- this.state = 398;
2076
+ this.state = 416;
2049
2077
  this.binary_operator();
2050
- this.state = 399;
2078
+ this.state = 417;
2051
2079
  this.data_expr(9);
2052
2080
  }
2053
2081
  break;
@@ -2055,20 +2083,20 @@ export class CircuitScriptParser extends antlr.Parser {
2055
2083
  {
2056
2084
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
2057
2085
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2058
- this.state = 401;
2086
+ this.state = 419;
2059
2087
  if (!(this.precpred(this.context, 7))) {
2060
2088
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
2061
2089
  }
2062
- this.state = 402;
2090
+ this.state = 420;
2063
2091
  _la = this.tokenStream.LA(1);
2064
- if (!(_la === 40 || _la === 41)) {
2092
+ if (!(_la === 41 || _la === 42)) {
2065
2093
  this.errorHandler.recoverInline(this);
2066
2094
  }
2067
2095
  else {
2068
2096
  this.errorHandler.reportMatch(this);
2069
2097
  this.consume();
2070
2098
  }
2071
- this.state = 403;
2099
+ this.state = 421;
2072
2100
  this.data_expr(8);
2073
2101
  }
2074
2102
  break;
@@ -2076,22 +2104,22 @@ export class CircuitScriptParser extends antlr.Parser {
2076
2104
  {
2077
2105
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
2078
2106
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2079
- this.state = 404;
2107
+ this.state = 422;
2080
2108
  if (!(this.precpred(this.context, 1))) {
2081
2109
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2082
2110
  }
2083
- this.state = 405;
2111
+ this.state = 423;
2084
2112
  this.match(CircuitScriptParser.T__4);
2085
- this.state = 406;
2113
+ this.state = 424;
2086
2114
  this.data_expr(0);
2087
- this.state = 407;
2115
+ this.state = 425;
2088
2116
  this.match(CircuitScriptParser.T__5);
2089
2117
  }
2090
2118
  break;
2091
2119
  }
2092
2120
  }
2093
2121
  }
2094
- this.state = 413;
2122
+ this.state = 431;
2095
2123
  this.errorHandler.sync(this);
2096
2124
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
2097
2125
  }
@@ -2118,9 +2146,9 @@ export class CircuitScriptParser extends antlr.Parser {
2118
2146
  try {
2119
2147
  this.enterOuterAlt(localContext, 1);
2120
2148
  {
2121
- this.state = 414;
2149
+ this.state = 432;
2122
2150
  _la = this.tokenStream.LA(1);
2123
- if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
2151
+ if (!(((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 63) !== 0))) {
2124
2152
  this.errorHandler.recoverInline(this);
2125
2153
  }
2126
2154
  else {
@@ -2150,9 +2178,9 @@ export class CircuitScriptParser extends antlr.Parser {
2150
2178
  try {
2151
2179
  this.enterOuterAlt(localContext, 1);
2152
2180
  {
2153
- this.state = 416;
2181
+ this.state = 434;
2154
2182
  _la = this.tokenStream.LA(1);
2155
- if (!(_la === 31 || _la === 43)) {
2183
+ if (!(_la === 32 || _la === 44)) {
2156
2184
  this.errorHandler.recoverInline(this);
2157
2185
  }
2158
2186
  else {
@@ -2183,18 +2211,18 @@ export class CircuitScriptParser extends antlr.Parser {
2183
2211
  this.enterOuterAlt(localContext, 1);
2184
2212
  {
2185
2213
  {
2186
- this.state = 419;
2214
+ this.state = 437;
2187
2215
  this.errorHandler.sync(this);
2188
2216
  _la = this.tokenStream.LA(1);
2189
- if (_la === 43) {
2217
+ if (_la === 44) {
2190
2218
  {
2191
- this.state = 418;
2219
+ this.state = 436;
2192
2220
  this.match(CircuitScriptParser.Minus);
2193
2221
  }
2194
2222
  }
2195
- this.state = 421;
2223
+ this.state = 439;
2196
2224
  _la = this.tokenStream.LA(1);
2197
- if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 125) !== 0))) {
2225
+ if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 125) !== 0))) {
2198
2226
  this.errorHandler.recoverInline(this);
2199
2227
  }
2200
2228
  else {
@@ -2225,44 +2253,45 @@ export class CircuitScriptParser extends antlr.Parser {
2225
2253
  try {
2226
2254
  this.enterOuterAlt(localContext, 1);
2227
2255
  {
2228
- this.state = 423;
2256
+ this.state = 441;
2229
2257
  this.match(CircuitScriptParser.Define);
2230
- this.state = 424;
2258
+ this.state = 442;
2231
2259
  this.match(CircuitScriptParser.ID);
2232
- this.state = 425;
2260
+ this.state = 443;
2233
2261
  this.match(CircuitScriptParser.OPEN_PAREN);
2234
- this.state = 427;
2262
+ this.state = 445;
2235
2263
  this.errorHandler.sync(this);
2236
2264
  _la = this.tokenStream.LA(1);
2237
- if (_la === 57) {
2265
+ if (_la === 58) {
2238
2266
  {
2239
- this.state = 426;
2267
+ this.state = 444;
2240
2268
  this.function_args_expr();
2241
2269
  }
2242
2270
  }
2243
- this.state = 429;
2271
+ this.state = 447;
2244
2272
  this.match(CircuitScriptParser.CLOSE_PAREN);
2245
- this.state = 430;
2273
+ this.state = 448;
2246
2274
  this.match(CircuitScriptParser.T__0);
2247
- this.state = 431;
2275
+ this.state = 449;
2248
2276
  this.match(CircuitScriptParser.NEWLINE);
2249
- this.state = 432;
2277
+ this.state = 450;
2250
2278
  this.match(CircuitScriptParser.INDENT);
2251
- this.state = 435;
2279
+ this.state = 453;
2252
2280
  this.errorHandler.sync(this);
2253
2281
  _la = this.tokenStream.LA(1);
2254
2282
  do {
2255
2283
  {
2256
- this.state = 435;
2284
+ this.state = 453;
2257
2285
  this.errorHandler.sync(this);
2258
2286
  switch (this.tokenStream.LA(1)) {
2259
2287
  case CircuitScriptParser.NEWLINE:
2260
2288
  {
2261
- this.state = 433;
2289
+ this.state = 451;
2262
2290
  this.match(CircuitScriptParser.NEWLINE);
2263
2291
  }
2264
2292
  break;
2265
2293
  case CircuitScriptParser.T__3:
2294
+ case CircuitScriptParser.T__7:
2266
2295
  case CircuitScriptParser.Break:
2267
2296
  case CircuitScriptParser.Branch:
2268
2297
  case CircuitScriptParser.Wire:
@@ -2286,7 +2315,7 @@ export class CircuitScriptParser extends antlr.Parser {
2286
2315
  case CircuitScriptParser.ANNOTATION_START:
2287
2316
  case CircuitScriptParser.ID:
2288
2317
  {
2289
- this.state = 434;
2318
+ this.state = 452;
2290
2319
  this.function_expr();
2291
2320
  }
2292
2321
  break;
@@ -2294,11 +2323,11 @@ export class CircuitScriptParser extends antlr.Parser {
2294
2323
  throw new antlr.NoViableAltException(this);
2295
2324
  }
2296
2325
  }
2297
- this.state = 437;
2326
+ this.state = 455;
2298
2327
  this.errorHandler.sync(this);
2299
2328
  _la = this.tokenStream.LA(1);
2300
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
2301
- this.state = 439;
2329
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1736435825) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
2330
+ this.state = 457;
2302
2331
  this.match(CircuitScriptParser.DEDENT);
2303
2332
  }
2304
2333
  }
@@ -2320,10 +2349,11 @@ export class CircuitScriptParser extends antlr.Parser {
2320
2349
  let localContext = new Function_exprContext(this.context, this.state);
2321
2350
  this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2322
2351
  try {
2323
- this.state = 443;
2352
+ this.state = 461;
2324
2353
  this.errorHandler.sync(this);
2325
2354
  switch (this.tokenStream.LA(1)) {
2326
2355
  case CircuitScriptParser.T__3:
2356
+ case CircuitScriptParser.T__7:
2327
2357
  case CircuitScriptParser.Break:
2328
2358
  case CircuitScriptParser.Branch:
2329
2359
  case CircuitScriptParser.Wire:
@@ -2347,14 +2377,14 @@ export class CircuitScriptParser extends antlr.Parser {
2347
2377
  case CircuitScriptParser.ID:
2348
2378
  this.enterOuterAlt(localContext, 1);
2349
2379
  {
2350
- this.state = 441;
2380
+ this.state = 459;
2351
2381
  this.expression();
2352
2382
  }
2353
2383
  break;
2354
2384
  case CircuitScriptParser.Return:
2355
2385
  this.enterOuterAlt(localContext, 2);
2356
2386
  {
2357
- this.state = 442;
2387
+ this.state = 460;
2358
2388
  this.function_return_expr();
2359
2389
  }
2360
2390
  break;
@@ -2382,49 +2412,49 @@ export class CircuitScriptParser extends antlr.Parser {
2382
2412
  let _la;
2383
2413
  try {
2384
2414
  let alternative;
2385
- this.state = 474;
2415
+ this.state = 492;
2386
2416
  this.errorHandler.sync(this);
2387
2417
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2388
2418
  case 1:
2389
2419
  this.enterOuterAlt(localContext, 1);
2390
2420
  {
2391
- this.state = 445;
2421
+ this.state = 463;
2392
2422
  this.match(CircuitScriptParser.ID);
2393
- this.state = 450;
2423
+ this.state = 468;
2394
2424
  this.errorHandler.sync(this);
2395
2425
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2396
2426
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2397
2427
  if (alternative === 1) {
2398
2428
  {
2399
2429
  {
2400
- this.state = 446;
2430
+ this.state = 464;
2401
2431
  this.match(CircuitScriptParser.T__1);
2402
- this.state = 447;
2432
+ this.state = 465;
2403
2433
  this.match(CircuitScriptParser.ID);
2404
2434
  }
2405
2435
  }
2406
2436
  }
2407
- this.state = 452;
2437
+ this.state = 470;
2408
2438
  this.errorHandler.sync(this);
2409
2439
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2410
2440
  }
2411
- this.state = 459;
2441
+ this.state = 477;
2412
2442
  this.errorHandler.sync(this);
2413
2443
  _la = this.tokenStream.LA(1);
2414
2444
  while (_la === 2) {
2415
2445
  {
2416
2446
  {
2417
- this.state = 453;
2447
+ this.state = 471;
2418
2448
  this.match(CircuitScriptParser.T__1);
2419
- this.state = 454;
2449
+ this.state = 472;
2420
2450
  this.match(CircuitScriptParser.ID);
2421
- this.state = 455;
2451
+ this.state = 473;
2422
2452
  this.match(CircuitScriptParser.T__2);
2423
- this.state = 456;
2453
+ this.state = 474;
2424
2454
  this.value_expr();
2425
2455
  }
2426
2456
  }
2427
- this.state = 461;
2457
+ this.state = 479;
2428
2458
  this.errorHandler.sync(this);
2429
2459
  _la = this.tokenStream.LA(1);
2430
2460
  }
@@ -2433,29 +2463,29 @@ export class CircuitScriptParser extends antlr.Parser {
2433
2463
  case 2:
2434
2464
  this.enterOuterAlt(localContext, 2);
2435
2465
  {
2436
- this.state = 462;
2466
+ this.state = 480;
2437
2467
  this.match(CircuitScriptParser.ID);
2438
- this.state = 463;
2468
+ this.state = 481;
2439
2469
  this.match(CircuitScriptParser.T__2);
2440
- this.state = 464;
2470
+ this.state = 482;
2441
2471
  this.value_expr();
2442
- this.state = 471;
2472
+ this.state = 489;
2443
2473
  this.errorHandler.sync(this);
2444
2474
  _la = this.tokenStream.LA(1);
2445
2475
  while (_la === 2) {
2446
2476
  {
2447
2477
  {
2448
- this.state = 465;
2478
+ this.state = 483;
2449
2479
  this.match(CircuitScriptParser.T__1);
2450
- this.state = 466;
2480
+ this.state = 484;
2451
2481
  this.match(CircuitScriptParser.ID);
2452
- this.state = 467;
2482
+ this.state = 485;
2453
2483
  this.match(CircuitScriptParser.T__2);
2454
- this.state = 468;
2484
+ this.state = 486;
2455
2485
  this.value_expr();
2456
2486
  }
2457
2487
  }
2458
- this.state = 473;
2488
+ this.state = 491;
2459
2489
  this.errorHandler.sync(this);
2460
2490
  _la = this.tokenStream.LA(1);
2461
2491
  }
@@ -2484,21 +2514,21 @@ export class CircuitScriptParser extends antlr.Parser {
2484
2514
  let alternative;
2485
2515
  this.enterOuterAlt(localContext, 1);
2486
2516
  {
2487
- this.state = 476;
2517
+ this.state = 494;
2488
2518
  this.match(CircuitScriptParser.ID);
2489
- this.state = 480;
2519
+ this.state = 498;
2490
2520
  this.errorHandler.sync(this);
2491
2521
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2492
2522
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2493
2523
  if (alternative === 1) {
2494
2524
  {
2495
2525
  {
2496
- this.state = 477;
2526
+ this.state = 495;
2497
2527
  this.trailer_expr2();
2498
2528
  }
2499
2529
  }
2500
2530
  }
2501
- this.state = 482;
2531
+ this.state = 500;
2502
2532
  this.errorHandler.sync(this);
2503
2533
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2504
2534
  }
@@ -2523,24 +2553,24 @@ export class CircuitScriptParser extends antlr.Parser {
2523
2553
  this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2524
2554
  let _la;
2525
2555
  try {
2526
- this.state = 489;
2556
+ this.state = 507;
2527
2557
  this.errorHandler.sync(this);
2528
2558
  switch (this.tokenStream.LA(1)) {
2529
2559
  case CircuitScriptParser.OPEN_PAREN:
2530
2560
  this.enterOuterAlt(localContext, 1);
2531
2561
  {
2532
- this.state = 483;
2562
+ this.state = 501;
2533
2563
  this.match(CircuitScriptParser.OPEN_PAREN);
2534
- this.state = 485;
2564
+ this.state = 503;
2535
2565
  this.errorHandler.sync(this);
2536
2566
  _la = this.tokenStream.LA(1);
2537
- 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)) {
2538
2568
  {
2539
- this.state = 484;
2569
+ this.state = 502;
2540
2570
  this.parameters();
2541
2571
  }
2542
2572
  }
2543
- this.state = 487;
2573
+ this.state = 505;
2544
2574
  this.match(CircuitScriptParser.CLOSE_PAREN);
2545
2575
  }
2546
2576
  break;
@@ -2548,7 +2578,7 @@ export class CircuitScriptParser extends antlr.Parser {
2548
2578
  case CircuitScriptParser.T__6:
2549
2579
  this.enterOuterAlt(localContext, 2);
2550
2580
  {
2551
- this.state = 488;
2581
+ this.state = 506;
2552
2582
  this.trailer_expr2();
2553
2583
  }
2554
2584
  break;
@@ -2574,26 +2604,26 @@ export class CircuitScriptParser extends antlr.Parser {
2574
2604
  let localContext = new Trailer_expr2Context(this.context, this.state);
2575
2605
  this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2576
2606
  try {
2577
- this.state = 497;
2607
+ this.state = 515;
2578
2608
  this.errorHandler.sync(this);
2579
2609
  switch (this.tokenStream.LA(1)) {
2580
2610
  case CircuitScriptParser.T__6:
2581
2611
  this.enterOuterAlt(localContext, 1);
2582
2612
  {
2583
- this.state = 491;
2613
+ this.state = 509;
2584
2614
  this.match(CircuitScriptParser.T__6);
2585
- this.state = 492;
2615
+ this.state = 510;
2586
2616
  this.match(CircuitScriptParser.ID);
2587
2617
  }
2588
2618
  break;
2589
2619
  case CircuitScriptParser.T__4:
2590
2620
  this.enterOuterAlt(localContext, 2);
2591
2621
  {
2592
- this.state = 493;
2622
+ this.state = 511;
2593
2623
  this.match(CircuitScriptParser.T__4);
2594
- this.state = 494;
2624
+ this.state = 512;
2595
2625
  this.data_expr(0);
2596
- this.state = 495;
2626
+ this.state = 513;
2597
2627
  this.match(CircuitScriptParser.T__5);
2598
2628
  }
2599
2629
  break;
@@ -2623,18 +2653,18 @@ export class CircuitScriptParser extends antlr.Parser {
2623
2653
  let alternative;
2624
2654
  this.enterOuterAlt(localContext, 1);
2625
2655
  {
2626
- this.state = 500;
2656
+ this.state = 518;
2627
2657
  this.errorHandler.sync(this);
2628
2658
  _la = this.tokenStream.LA(1);
2629
- if (_la === 42 || _la === 44) {
2659
+ if (_la === 43 || _la === 45) {
2630
2660
  {
2631
- this.state = 499;
2661
+ this.state = 517;
2632
2662
  this.net_namespace_expr();
2633
2663
  }
2634
2664
  }
2635
- this.state = 502;
2665
+ this.state = 520;
2636
2666
  this.match(CircuitScriptParser.ID);
2637
- this.state = 504;
2667
+ this.state = 522;
2638
2668
  this.errorHandler.sync(this);
2639
2669
  alternative = 1;
2640
2670
  do {
@@ -2642,7 +2672,7 @@ export class CircuitScriptParser extends antlr.Parser {
2642
2672
  case 1:
2643
2673
  {
2644
2674
  {
2645
- this.state = 503;
2675
+ this.state = 521;
2646
2676
  this.trailer_expr();
2647
2677
  }
2648
2678
  }
@@ -2650,7 +2680,7 @@ export class CircuitScriptParser extends antlr.Parser {
2650
2680
  default:
2651
2681
  throw new antlr.NoViableAltException(this);
2652
2682
  }
2653
- this.state = 506;
2683
+ this.state = 524;
2654
2684
  this.errorHandler.sync(this);
2655
2685
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2656
2686
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2677,23 +2707,23 @@ export class CircuitScriptParser extends antlr.Parser {
2677
2707
  try {
2678
2708
  this.enterOuterAlt(localContext, 1);
2679
2709
  {
2680
- this.state = 509;
2710
+ this.state = 527;
2681
2711
  this.errorHandler.sync(this);
2682
2712
  _la = this.tokenStream.LA(1);
2683
- if (_la === 42) {
2713
+ if (_la === 43) {
2684
2714
  {
2685
- this.state = 508;
2715
+ this.state = 526;
2686
2716
  this.match(CircuitScriptParser.Addition);
2687
2717
  }
2688
2718
  }
2689
- this.state = 511;
2719
+ this.state = 529;
2690
2720
  this.match(CircuitScriptParser.Divide);
2691
- this.state = 513;
2721
+ this.state = 531;
2692
2722
  this.errorHandler.sync(this);
2693
2723
  switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2694
2724
  case 1:
2695
2725
  {
2696
- this.state = 512;
2726
+ this.state = 530;
2697
2727
  this.data_expr(0);
2698
2728
  }
2699
2729
  break;
@@ -2720,9 +2750,9 @@ export class CircuitScriptParser extends antlr.Parser {
2720
2750
  try {
2721
2751
  this.enterOuterAlt(localContext, 1);
2722
2752
  {
2723
- this.state = 515;
2753
+ this.state = 533;
2724
2754
  this.match(CircuitScriptParser.Return);
2725
- this.state = 516;
2755
+ this.state = 534;
2726
2756
  this.data_expr(0);
2727
2757
  }
2728
2758
  }
@@ -2746,11 +2776,11 @@ export class CircuitScriptParser extends antlr.Parser {
2746
2776
  try {
2747
2777
  this.enterOuterAlt(localContext, 1);
2748
2778
  {
2749
- this.state = 518;
2779
+ this.state = 536;
2750
2780
  this.property_key_expr();
2751
- this.state = 519;
2781
+ this.state = 537;
2752
2782
  this.match(CircuitScriptParser.T__0);
2753
- this.state = 520;
2783
+ this.state = 538;
2754
2784
  this.expressions_block();
2755
2785
  }
2756
2786
  }
@@ -2775,27 +2805,27 @@ export class CircuitScriptParser extends antlr.Parser {
2775
2805
  try {
2776
2806
  this.enterOuterAlt(localContext, 1);
2777
2807
  {
2778
- this.state = 522;
2808
+ this.state = 540;
2779
2809
  this.match(CircuitScriptParser.Create);
2780
- this.state = 523;
2810
+ this.state = 541;
2781
2811
  this.match(CircuitScriptParser.Component);
2782
- this.state = 524;
2812
+ this.state = 542;
2783
2813
  this.match(CircuitScriptParser.T__0);
2784
- this.state = 525;
2814
+ this.state = 543;
2785
2815
  this.match(CircuitScriptParser.NEWLINE);
2786
- this.state = 526;
2816
+ this.state = 544;
2787
2817
  this.match(CircuitScriptParser.INDENT);
2788
- this.state = 529;
2818
+ this.state = 547;
2789
2819
  this.errorHandler.sync(this);
2790
2820
  _la = this.tokenStream.LA(1);
2791
2821
  do {
2792
2822
  {
2793
- this.state = 529;
2823
+ this.state = 547;
2794
2824
  this.errorHandler.sync(this);
2795
2825
  switch (this.tokenStream.LA(1)) {
2796
2826
  case CircuitScriptParser.NEWLINE:
2797
2827
  {
2798
- this.state = 527;
2828
+ this.state = 545;
2799
2829
  this.match(CircuitScriptParser.NEWLINE);
2800
2830
  }
2801
2831
  break;
@@ -2803,7 +2833,7 @@ export class CircuitScriptParser extends antlr.Parser {
2803
2833
  case CircuitScriptParser.INTEGER_VALUE:
2804
2834
  case CircuitScriptParser.STRING_VALUE:
2805
2835
  {
2806
- this.state = 528;
2836
+ this.state = 546;
2807
2837
  this.property_expr();
2808
2838
  }
2809
2839
  break;
@@ -2811,11 +2841,11 @@ export class CircuitScriptParser extends antlr.Parser {
2811
2841
  throw new antlr.NoViableAltException(this);
2812
2842
  }
2813
2843
  }
2814
- this.state = 531;
2844
+ this.state = 549;
2815
2845
  this.errorHandler.sync(this);
2816
2846
  _la = this.tokenStream.LA(1);
2817
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2818
- this.state = 533;
2847
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
2848
+ this.state = 551;
2819
2849
  this.match(CircuitScriptParser.DEDENT);
2820
2850
  }
2821
2851
  }
@@ -2840,21 +2870,21 @@ export class CircuitScriptParser extends antlr.Parser {
2840
2870
  try {
2841
2871
  this.enterOuterAlt(localContext, 1);
2842
2872
  {
2843
- this.state = 535;
2873
+ this.state = 553;
2844
2874
  this.match(CircuitScriptParser.NEWLINE);
2845
- this.state = 536;
2875
+ this.state = 554;
2846
2876
  this.match(CircuitScriptParser.INDENT);
2847
- this.state = 539;
2877
+ this.state = 557;
2848
2878
  this.errorHandler.sync(this);
2849
2879
  _la = this.tokenStream.LA(1);
2850
2880
  do {
2851
2881
  {
2852
- this.state = 539;
2882
+ this.state = 557;
2853
2883
  this.errorHandler.sync(this);
2854
2884
  switch (this.tokenStream.LA(1)) {
2855
2885
  case CircuitScriptParser.NEWLINE:
2856
2886
  {
2857
- this.state = 537;
2887
+ this.state = 555;
2858
2888
  this.match(CircuitScriptParser.NEWLINE);
2859
2889
  }
2860
2890
  break;
@@ -2862,7 +2892,7 @@ export class CircuitScriptParser extends antlr.Parser {
2862
2892
  case CircuitScriptParser.For:
2863
2893
  case CircuitScriptParser.ID:
2864
2894
  {
2865
- this.state = 538;
2895
+ this.state = 556;
2866
2896
  this.graphic_expr();
2867
2897
  }
2868
2898
  break;
@@ -2870,11 +2900,11 @@ export class CircuitScriptParser extends antlr.Parser {
2870
2900
  throw new antlr.NoViableAltException(this);
2871
2901
  }
2872
2902
  }
2873
- this.state = 541;
2903
+ this.state = 559;
2874
2904
  this.errorHandler.sync(this);
2875
2905
  _la = this.tokenStream.LA(1);
2876
- } while (_la === 15 || _la === 25 || _la === 57 || _la === 65);
2877
- this.state = 543;
2906
+ } while (_la === 16 || _la === 26 || _la === 58 || _la === 66);
2907
+ this.state = 561;
2878
2908
  this.match(CircuitScriptParser.DEDENT);
2879
2909
  }
2880
2910
  }
@@ -2899,26 +2929,26 @@ export class CircuitScriptParser extends antlr.Parser {
2899
2929
  try {
2900
2930
  this.enterOuterAlt(localContext, 1);
2901
2931
  {
2902
- this.state = 545;
2932
+ this.state = 563;
2903
2933
  this.match(CircuitScriptParser.Create);
2904
- this.state = 546;
2934
+ this.state = 564;
2905
2935
  this.match(CircuitScriptParser.Graphic);
2906
- this.state = 550;
2936
+ this.state = 568;
2907
2937
  this.errorHandler.sync(this);
2908
2938
  _la = this.tokenStream.LA(1);
2909
- if (_la === 53) {
2939
+ if (_la === 54) {
2910
2940
  {
2911
- this.state = 547;
2941
+ this.state = 565;
2912
2942
  this.match(CircuitScriptParser.OPEN_PAREN);
2913
- this.state = 548;
2943
+ this.state = 566;
2914
2944
  this.match(CircuitScriptParser.ID);
2915
- this.state = 549;
2945
+ this.state = 567;
2916
2946
  this.match(CircuitScriptParser.CLOSE_PAREN);
2917
2947
  }
2918
2948
  }
2919
- this.state = 552;
2949
+ this.state = 570;
2920
2950
  this.match(CircuitScriptParser.T__0);
2921
- this.state = 553;
2951
+ this.state = 571;
2922
2952
  this.graphic_expressions_block();
2923
2953
  }
2924
2954
  }
@@ -2943,49 +2973,49 @@ export class CircuitScriptParser extends antlr.Parser {
2943
2973
  try {
2944
2974
  this.enterOuterAlt(localContext, 1);
2945
2975
  {
2946
- this.state = 555;
2976
+ this.state = 573;
2947
2977
  this.match(CircuitScriptParser.Create);
2948
- this.state = 556;
2978
+ this.state = 574;
2949
2979
  this.match(CircuitScriptParser.Module);
2950
- this.state = 557;
2980
+ this.state = 575;
2951
2981
  this.match(CircuitScriptParser.T__0);
2952
- this.state = 558;
2982
+ this.state = 576;
2953
2983
  this.match(CircuitScriptParser.NEWLINE);
2954
- this.state = 559;
2984
+ this.state = 577;
2955
2985
  this.match(CircuitScriptParser.INDENT);
2956
- this.state = 563;
2986
+ this.state = 581;
2957
2987
  this.errorHandler.sync(this);
2958
2988
  _la = this.tokenStream.LA(1);
2959
2989
  do {
2960
2990
  {
2961
- this.state = 563;
2991
+ this.state = 581;
2962
2992
  this.errorHandler.sync(this);
2963
2993
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2964
2994
  case 1:
2965
2995
  {
2966
- this.state = 560;
2996
+ this.state = 578;
2967
2997
  this.match(CircuitScriptParser.NEWLINE);
2968
2998
  }
2969
2999
  break;
2970
3000
  case 2:
2971
3001
  {
2972
- this.state = 561;
3002
+ this.state = 579;
2973
3003
  this.property_expr();
2974
3004
  }
2975
3005
  break;
2976
3006
  case 3:
2977
3007
  {
2978
- this.state = 562;
3008
+ this.state = 580;
2979
3009
  this.property_block_expr();
2980
3010
  }
2981
3011
  break;
2982
3012
  }
2983
3013
  }
2984
- this.state = 565;
3014
+ this.state = 583;
2985
3015
  this.errorHandler.sync(this);
2986
3016
  _la = this.tokenStream.LA(1);
2987
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2988
- this.state = 567;
3017
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
3018
+ this.state = 585;
2989
3019
  this.match(CircuitScriptParser.DEDENT);
2990
3020
  }
2991
3021
  }
@@ -3011,21 +3041,21 @@ export class CircuitScriptParser extends antlr.Parser {
3011
3041
  this.enterOuterAlt(localContext, 1);
3012
3042
  {
3013
3043
  {
3014
- this.state = 569;
3044
+ this.state = 587;
3015
3045
  this.match(CircuitScriptParser.NEWLINE);
3016
- this.state = 570;
3046
+ this.state = 588;
3017
3047
  this.match(CircuitScriptParser.INDENT);
3018
- this.state = 573;
3048
+ this.state = 591;
3019
3049
  this.errorHandler.sync(this);
3020
3050
  _la = this.tokenStream.LA(1);
3021
3051
  do {
3022
3052
  {
3023
- this.state = 573;
3053
+ this.state = 591;
3024
3054
  this.errorHandler.sync(this);
3025
3055
  switch (this.tokenStream.LA(1)) {
3026
3056
  case CircuitScriptParser.NEWLINE:
3027
3057
  {
3028
- this.state = 571;
3058
+ this.state = 589;
3029
3059
  this.match(CircuitScriptParser.NEWLINE);
3030
3060
  }
3031
3061
  break;
@@ -3033,7 +3063,7 @@ export class CircuitScriptParser extends antlr.Parser {
3033
3063
  case CircuitScriptParser.INTEGER_VALUE:
3034
3064
  case CircuitScriptParser.STRING_VALUE:
3035
3065
  {
3036
- this.state = 572;
3066
+ this.state = 590;
3037
3067
  this.property_expr();
3038
3068
  }
3039
3069
  break;
@@ -3041,11 +3071,11 @@ export class CircuitScriptParser extends antlr.Parser {
3041
3071
  throw new antlr.NoViableAltException(this);
3042
3072
  }
3043
3073
  }
3044
- this.state = 575;
3074
+ this.state = 593;
3045
3075
  this.errorHandler.sync(this);
3046
3076
  _la = this.tokenStream.LA(1);
3047
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
3048
- this.state = 577;
3077
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
3078
+ this.state = 595;
3049
3079
  this.match(CircuitScriptParser.DEDENT);
3050
3080
  }
3051
3081
  }
@@ -3069,7 +3099,7 @@ export class CircuitScriptParser extends antlr.Parser {
3069
3099
  this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
3070
3100
  let _la;
3071
3101
  try {
3072
- this.state = 605;
3102
+ this.state = 623;
3073
3103
  this.errorHandler.sync(this);
3074
3104
  switch (this.tokenStream.LA(1)) {
3075
3105
  case CircuitScriptParser.Pin:
@@ -3077,47 +3107,47 @@ export class CircuitScriptParser extends antlr.Parser {
3077
3107
  localContext = new GraphicCommandExprContext(localContext);
3078
3108
  this.enterOuterAlt(localContext, 1);
3079
3109
  {
3080
- this.state = 579;
3110
+ this.state = 597;
3081
3111
  localContext._command = this.tokenStream.LT(1);
3082
3112
  _la = this.tokenStream.LA(1);
3083
- if (!(_la === 15 || _la === 57)) {
3113
+ if (!(_la === 16 || _la === 58)) {
3084
3114
  localContext._command = this.errorHandler.recoverInline(this);
3085
3115
  }
3086
3116
  else {
3087
3117
  this.errorHandler.reportMatch(this);
3088
3118
  this.consume();
3089
3119
  }
3090
- this.state = 581;
3120
+ this.state = 599;
3091
3121
  this.errorHandler.sync(this);
3092
3122
  _la = this.tokenStream.LA(1);
3093
3123
  if (_la === 1) {
3094
3124
  {
3095
- this.state = 580;
3125
+ this.state = 598;
3096
3126
  this.match(CircuitScriptParser.T__0);
3097
3127
  }
3098
3128
  }
3099
- this.state = 589;
3129
+ this.state = 607;
3100
3130
  this.errorHandler.sync(this);
3101
3131
  switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3102
3132
  case 1:
3103
3133
  {
3104
- this.state = 583;
3134
+ this.state = 601;
3105
3135
  this.parameters();
3106
3136
  }
3107
3137
  break;
3108
3138
  case 2:
3109
3139
  {
3110
- this.state = 584;
3140
+ this.state = 602;
3111
3141
  this.match(CircuitScriptParser.OPEN_PAREN);
3112
- this.state = 585;
3142
+ this.state = 603;
3113
3143
  this.parameters();
3114
- this.state = 586;
3144
+ this.state = 604;
3115
3145
  this.match(CircuitScriptParser.CLOSE_PAREN);
3116
3146
  }
3117
3147
  break;
3118
3148
  case 3:
3119
3149
  {
3120
- this.state = 588;
3150
+ this.state = 606;
3121
3151
  this.nested_properties_inner();
3122
3152
  }
3123
3153
  break;
@@ -3128,33 +3158,33 @@ export class CircuitScriptParser extends antlr.Parser {
3128
3158
  localContext = new GraphicForExprContext(localContext);
3129
3159
  this.enterOuterAlt(localContext, 2);
3130
3160
  {
3131
- this.state = 591;
3161
+ this.state = 609;
3132
3162
  this.match(CircuitScriptParser.For);
3133
- this.state = 592;
3163
+ this.state = 610;
3134
3164
  this.match(CircuitScriptParser.ID);
3135
- this.state = 597;
3165
+ this.state = 615;
3136
3166
  this.errorHandler.sync(this);
3137
3167
  _la = this.tokenStream.LA(1);
3138
3168
  while (_la === 2) {
3139
3169
  {
3140
3170
  {
3141
- this.state = 593;
3171
+ this.state = 611;
3142
3172
  this.match(CircuitScriptParser.T__1);
3143
- this.state = 594;
3173
+ this.state = 612;
3144
3174
  this.match(CircuitScriptParser.ID);
3145
3175
  }
3146
3176
  }
3147
- this.state = 599;
3177
+ this.state = 617;
3148
3178
  this.errorHandler.sync(this);
3149
3179
  _la = this.tokenStream.LA(1);
3150
3180
  }
3151
- this.state = 600;
3181
+ this.state = 618;
3152
3182
  this.match(CircuitScriptParser.In);
3153
- this.state = 601;
3183
+ this.state = 619;
3154
3184
  this.data_expr(0);
3155
- this.state = 602;
3185
+ this.state = 620;
3156
3186
  this.match(CircuitScriptParser.T__0);
3157
- this.state = 603;
3187
+ this.state = 621;
3158
3188
  this.graphic_expressions_block();
3159
3189
  }
3160
3190
  break;
@@ -3182,11 +3212,11 @@ export class CircuitScriptParser extends antlr.Parser {
3182
3212
  try {
3183
3213
  this.enterOuterAlt(localContext, 1);
3184
3214
  {
3185
- this.state = 607;
3215
+ this.state = 625;
3186
3216
  this.property_key_expr();
3187
- this.state = 608;
3217
+ this.state = 626;
3188
3218
  this.match(CircuitScriptParser.T__0);
3189
- this.state = 609;
3219
+ this.state = 627;
3190
3220
  this.property_value_expr();
3191
3221
  }
3192
3222
  }
@@ -3211,9 +3241,9 @@ export class CircuitScriptParser extends antlr.Parser {
3211
3241
  try {
3212
3242
  this.enterOuterAlt(localContext, 1);
3213
3243
  {
3214
- this.state = 611;
3244
+ this.state = 629;
3215
3245
  _la = this.tokenStream.LA(1);
3216
- if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 19) !== 0))) {
3246
+ if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 19) !== 0))) {
3217
3247
  this.errorHandler.recoverInline(this);
3218
3248
  }
3219
3249
  else {
@@ -3241,14 +3271,14 @@ export class CircuitScriptParser extends antlr.Parser {
3241
3271
  this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3242
3272
  let _la;
3243
3273
  try {
3244
- this.state = 622;
3274
+ this.state = 640;
3245
3275
  this.errorHandler.sync(this);
3246
3276
  switch (this.tokenStream.LA(1)) {
3247
3277
  case CircuitScriptParser.NEWLINE:
3248
3278
  localContext = new Nested_propertiesContext(localContext);
3249
3279
  this.enterOuterAlt(localContext, 1);
3250
3280
  {
3251
- this.state = 613;
3281
+ this.state = 631;
3252
3282
  this.nested_properties_inner();
3253
3283
  }
3254
3284
  break;
@@ -3269,21 +3299,21 @@ export class CircuitScriptParser extends antlr.Parser {
3269
3299
  localContext = new Single_line_propertyContext(localContext);
3270
3300
  this.enterOuterAlt(localContext, 2);
3271
3301
  {
3272
- this.state = 614;
3302
+ this.state = 632;
3273
3303
  this.data_expr(0);
3274
- this.state = 619;
3304
+ this.state = 637;
3275
3305
  this.errorHandler.sync(this);
3276
3306
  _la = this.tokenStream.LA(1);
3277
3307
  while (_la === 2) {
3278
3308
  {
3279
3309
  {
3280
- this.state = 615;
3310
+ this.state = 633;
3281
3311
  this.match(CircuitScriptParser.T__1);
3282
- this.state = 616;
3312
+ this.state = 634;
3283
3313
  this.data_expr(0);
3284
3314
  }
3285
3315
  }
3286
- this.state = 621;
3316
+ this.state = 639;
3287
3317
  this.errorHandler.sync(this);
3288
3318
  _la = this.tokenStream.LA(1);
3289
3319
  }
@@ -3311,27 +3341,27 @@ export class CircuitScriptParser extends antlr.Parser {
3311
3341
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3312
3342
  this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3313
3343
  try {
3314
- this.state = 630;
3344
+ this.state = 648;
3315
3345
  this.errorHandler.sync(this);
3316
3346
  switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3317
3347
  case 1:
3318
3348
  localContext = new Wire_expr_direction_valueContext(localContext);
3319
3349
  this.enterOuterAlt(localContext, 1);
3320
3350
  {
3321
- this.state = 624;
3351
+ this.state = 642;
3322
3352
  this.match(CircuitScriptParser.ID);
3323
- this.state = 627;
3353
+ this.state = 645;
3324
3354
  this.errorHandler.sync(this);
3325
3355
  switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3326
3356
  case 1:
3327
3357
  {
3328
- this.state = 625;
3358
+ this.state = 643;
3329
3359
  this.match(CircuitScriptParser.INTEGER_VALUE);
3330
3360
  }
3331
3361
  break;
3332
3362
  case 2:
3333
3363
  {
3334
- this.state = 626;
3364
+ this.state = 644;
3335
3365
  this.data_expr(0);
3336
3366
  }
3337
3367
  break;
@@ -3342,7 +3372,7 @@ export class CircuitScriptParser extends antlr.Parser {
3342
3372
  localContext = new Wire_expr_direction_onlyContext(localContext);
3343
3373
  this.enterOuterAlt(localContext, 2);
3344
3374
  {
3345
- this.state = 629;
3375
+ this.state = 647;
3346
3376
  this.match(CircuitScriptParser.ID);
3347
3377
  }
3348
3378
  break;
@@ -3369,21 +3399,21 @@ export class CircuitScriptParser extends antlr.Parser {
3369
3399
  let alternative;
3370
3400
  this.enterOuterAlt(localContext, 1);
3371
3401
  {
3372
- this.state = 632;
3402
+ this.state = 650;
3373
3403
  this.match(CircuitScriptParser.Wire);
3374
- this.state = 636;
3404
+ this.state = 654;
3375
3405
  this.errorHandler.sync(this);
3376
3406
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3377
3407
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3378
3408
  if (alternative === 1) {
3379
3409
  {
3380
3410
  {
3381
- this.state = 633;
3411
+ this.state = 651;
3382
3412
  this.wire_atom_expr();
3383
3413
  }
3384
3414
  }
3385
3415
  }
3386
- this.state = 638;
3416
+ this.state = 656;
3387
3417
  this.errorHandler.sync(this);
3388
3418
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3389
3419
  }
@@ -3410,39 +3440,39 @@ export class CircuitScriptParser extends antlr.Parser {
3410
3440
  try {
3411
3441
  this.enterOuterAlt(localContext, 1);
3412
3442
  {
3413
- this.state = 639;
3443
+ this.state = 657;
3414
3444
  this.match(CircuitScriptParser.T__4);
3415
- this.state = 650;
3445
+ this.state = 668;
3416
3446
  this.errorHandler.sync(this);
3417
3447
  _la = this.tokenStream.LA(1);
3418
- 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)) {
3419
3449
  {
3420
3450
  {
3421
- this.state = 640;
3451
+ this.state = 658;
3422
3452
  this.data_expr(0);
3423
- this.state = 645;
3453
+ this.state = 663;
3424
3454
  this.errorHandler.sync(this);
3425
3455
  _la = this.tokenStream.LA(1);
3426
3456
  while (_la === 2) {
3427
3457
  {
3428
3458
  {
3429
- this.state = 641;
3459
+ this.state = 659;
3430
3460
  this.match(CircuitScriptParser.T__1);
3431
- this.state = 642;
3461
+ this.state = 660;
3432
3462
  this.data_expr(0);
3433
3463
  }
3434
3464
  }
3435
- this.state = 647;
3465
+ this.state = 665;
3436
3466
  this.errorHandler.sync(this);
3437
3467
  _la = this.tokenStream.LA(1);
3438
3468
  }
3439
3469
  }
3440
3470
  }
3441
- this.state = 652;
3471
+ this.state = 670;
3442
3472
  this.errorHandler.sync(this);
3443
3473
  _la = this.tokenStream.LA(1);
3444
3474
  }
3445
- this.state = 653;
3475
+ this.state = 671;
3446
3476
  this.match(CircuitScriptParser.T__5);
3447
3477
  }
3448
3478
  }
@@ -3466,20 +3496,20 @@ export class CircuitScriptParser extends antlr.Parser {
3466
3496
  try {
3467
3497
  this.enterOuterAlt(localContext, 1);
3468
3498
  {
3469
- this.state = 655;
3499
+ this.state = 673;
3470
3500
  this.match(CircuitScriptParser.Point);
3471
- this.state = 658;
3501
+ this.state = 676;
3472
3502
  this.errorHandler.sync(this);
3473
3503
  switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3474
3504
  case 1:
3475
3505
  {
3476
- this.state = 656;
3506
+ this.state = 674;
3477
3507
  this.match(CircuitScriptParser.ID);
3478
3508
  }
3479
3509
  break;
3480
3510
  case 2:
3481
3511
  {
3482
- this.state = 657;
3512
+ this.state = 675;
3483
3513
  this.data_expr(0);
3484
3514
  }
3485
3515
  break;
@@ -3506,9 +3536,9 @@ export class CircuitScriptParser extends antlr.Parser {
3506
3536
  try {
3507
3537
  this.enterOuterAlt(localContext, 1);
3508
3538
  {
3509
- this.state = 660;
3539
+ this.state = 678;
3510
3540
  this.match(CircuitScriptParser.Import);
3511
- this.state = 661;
3541
+ this.state = 679;
3512
3542
  this.match(CircuitScriptParser.ID);
3513
3543
  }
3514
3544
  }
@@ -3533,18 +3563,18 @@ export class CircuitScriptParser extends antlr.Parser {
3533
3563
  try {
3534
3564
  this.enterOuterAlt(localContext, 1);
3535
3565
  {
3536
- this.state = 663;
3566
+ this.state = 681;
3537
3567
  _la = this.tokenStream.LA(1);
3538
- if (!(_la === 32 || _la === 33)) {
3568
+ if (!(_la === 33 || _la === 34)) {
3539
3569
  this.errorHandler.recoverInline(this);
3540
3570
  }
3541
3571
  else {
3542
3572
  this.errorHandler.reportMatch(this);
3543
3573
  this.consume();
3544
3574
  }
3545
- this.state = 664;
3575
+ this.state = 682;
3546
3576
  this.match(CircuitScriptParser.T__0);
3547
- this.state = 665;
3577
+ this.state = 683;
3548
3578
  this.expressions_block();
3549
3579
  }
3550
3580
  }
@@ -3570,36 +3600,36 @@ export class CircuitScriptParser extends antlr.Parser {
3570
3600
  let alternative;
3571
3601
  this.enterOuterAlt(localContext, 1);
3572
3602
  {
3573
- this.state = 667;
3603
+ this.state = 685;
3574
3604
  this.match(CircuitScriptParser.If);
3575
- this.state = 668;
3605
+ this.state = 686;
3576
3606
  this.data_expr(0);
3577
- this.state = 669;
3607
+ this.state = 687;
3578
3608
  this.match(CircuitScriptParser.T__0);
3579
- this.state = 670;
3609
+ this.state = 688;
3580
3610
  this.expressions_block();
3581
- this.state = 674;
3611
+ this.state = 692;
3582
3612
  this.errorHandler.sync(this);
3583
3613
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3584
3614
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3585
3615
  if (alternative === 1) {
3586
3616
  {
3587
3617
  {
3588
- this.state = 671;
3618
+ this.state = 689;
3589
3619
  this.if_inner_expr();
3590
3620
  }
3591
3621
  }
3592
3622
  }
3593
- this.state = 676;
3623
+ this.state = 694;
3594
3624
  this.errorHandler.sync(this);
3595
3625
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3596
3626
  }
3597
- this.state = 678;
3627
+ this.state = 696;
3598
3628
  this.errorHandler.sync(this);
3599
3629
  _la = this.tokenStream.LA(1);
3600
- if (_la === 30) {
3630
+ if (_la === 31) {
3601
3631
  {
3602
- this.state = 677;
3632
+ this.state = 695;
3603
3633
  this.else_expr();
3604
3634
  }
3605
3635
  }
@@ -3625,15 +3655,15 @@ export class CircuitScriptParser extends antlr.Parser {
3625
3655
  try {
3626
3656
  this.enterOuterAlt(localContext, 1);
3627
3657
  {
3628
- this.state = 680;
3658
+ this.state = 698;
3629
3659
  this.match(CircuitScriptParser.Else);
3630
- this.state = 681;
3660
+ this.state = 699;
3631
3661
  this.match(CircuitScriptParser.If);
3632
- this.state = 682;
3662
+ this.state = 700;
3633
3663
  this.data_expr(0);
3634
- this.state = 683;
3664
+ this.state = 701;
3635
3665
  this.match(CircuitScriptParser.T__0);
3636
- this.state = 684;
3666
+ this.state = 702;
3637
3667
  this.expressions_block();
3638
3668
  }
3639
3669
  }
@@ -3657,11 +3687,11 @@ export class CircuitScriptParser extends antlr.Parser {
3657
3687
  try {
3658
3688
  this.enterOuterAlt(localContext, 1);
3659
3689
  {
3660
- this.state = 686;
3690
+ this.state = 704;
3661
3691
  this.match(CircuitScriptParser.Else);
3662
- this.state = 687;
3692
+ this.state = 705;
3663
3693
  this.match(CircuitScriptParser.T__0);
3664
- this.state = 688;
3694
+ this.state = 706;
3665
3695
  this.expressions_block();
3666
3696
  }
3667
3697
  }
@@ -3685,13 +3715,13 @@ export class CircuitScriptParser extends antlr.Parser {
3685
3715
  try {
3686
3716
  this.enterOuterAlt(localContext, 1);
3687
3717
  {
3688
- this.state = 690;
3718
+ this.state = 708;
3689
3719
  this.match(CircuitScriptParser.While);
3690
- this.state = 691;
3720
+ this.state = 709;
3691
3721
  this.data_expr(0);
3692
- this.state = 692;
3722
+ this.state = 710;
3693
3723
  this.match(CircuitScriptParser.T__0);
3694
- this.state = 693;
3724
+ this.state = 711;
3695
3725
  this.expressions_block();
3696
3726
  }
3697
3727
  }
@@ -3716,33 +3746,33 @@ export class CircuitScriptParser extends antlr.Parser {
3716
3746
  try {
3717
3747
  this.enterOuterAlt(localContext, 1);
3718
3748
  {
3719
- this.state = 695;
3749
+ this.state = 713;
3720
3750
  this.match(CircuitScriptParser.For);
3721
- this.state = 696;
3751
+ this.state = 714;
3722
3752
  this.match(CircuitScriptParser.ID);
3723
- this.state = 701;
3753
+ this.state = 719;
3724
3754
  this.errorHandler.sync(this);
3725
3755
  _la = this.tokenStream.LA(1);
3726
3756
  while (_la === 2) {
3727
3757
  {
3728
3758
  {
3729
- this.state = 697;
3759
+ this.state = 715;
3730
3760
  this.match(CircuitScriptParser.T__1);
3731
- this.state = 698;
3761
+ this.state = 716;
3732
3762
  this.match(CircuitScriptParser.ID);
3733
3763
  }
3734
3764
  }
3735
- this.state = 703;
3765
+ this.state = 721;
3736
3766
  this.errorHandler.sync(this);
3737
3767
  _la = this.tokenStream.LA(1);
3738
3768
  }
3739
- this.state = 704;
3769
+ this.state = 722;
3740
3770
  this.match(CircuitScriptParser.In);
3741
- this.state = 705;
3771
+ this.state = 723;
3742
3772
  this.data_expr(0);
3743
- this.state = 706;
3773
+ this.state = 724;
3744
3774
  this.match(CircuitScriptParser.T__0);
3745
- this.state = 707;
3775
+ this.state = 725;
3746
3776
  this.expressions_block();
3747
3777
  }
3748
3778
  }
@@ -3760,16 +3790,39 @@ export class CircuitScriptParser extends antlr.Parser {
3760
3790
  }
3761
3791
  return localContext;
3762
3792
  }
3763
- annotation_comment_expr() {
3764
- let localContext = new Annotation_comment_exprContext(this.context, this.state);
3765
- 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;
3766
3797
  try {
3767
3798
  this.enterOuterAlt(localContext, 1);
3768
3799
  {
3769
- this.state = 709;
3770
- this.match(CircuitScriptParser.ANNOTATION_START);
3771
- this.state = 710;
3772
- 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();
3773
3826
  }
3774
3827
  }
3775
3828
  catch (re) {
@@ -3786,317 +3839,713 @@ export class CircuitScriptParser extends antlr.Parser {
3786
3839
  }
3787
3840
  return localContext;
3788
3841
  }
3789
- sempred(localContext, ruleIndex, predIndex) {
3790
- switch (ruleIndex) {
3791
- case 32:
3792
- return this.data_expr_sempred(localContext, predIndex);
3793
- }
3794
- return true;
3795
- }
3796
- data_expr_sempred(localContext, predIndex) {
3797
- switch (predIndex) {
3798
- case 0:
3799
- return this.precpred(this.context, 10);
3800
- case 1:
3801
- return this.precpred(this.context, 9);
3802
- case 2:
3803
- return this.precpred(this.context, 8);
3804
- case 3:
3805
- return this.precpred(this.context, 7);
3806
- case 4:
3807
- return this.precpred(this.context, 1);
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
+ }
3808
3859
  }
3809
- return true;
3810
- }
3811
- static _serializedATN = [
3812
- 4, 1, 68, 713, 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,
3813
- 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,
3814
- 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,
3815
- 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,
3816
- 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,
3817
- 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,
3818
- 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,
3819
- 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,
3820
- 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,
3821
- 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,
3822
- 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,
3823
- 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,
3824
- 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,
3825
- 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,
3826
- 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,
3827
- 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,
3828
- 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,
3829
- 11, 1, 11, 5, 11, 228, 8, 11, 10, 11, 12, 11, 231, 9, 11, 1, 11, 3, 11, 234, 8, 11, 1,
3830
- 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,
3831
- 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 253, 8, 16, 10, 16, 12, 16, 256, 9, 16, 1, 17, 1,
3832
- 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 264, 8, 17, 10, 17, 12, 17, 267, 9, 17, 1, 17, 1,
3833
- 17, 1, 17, 1, 17, 1, 17, 4, 17, 274, 8, 17, 11, 17, 12, 17, 275, 1, 17, 1, 17, 1, 18, 1,
3834
- 18, 1, 18, 1, 18, 1, 18, 5, 18, 285, 8, 18, 10, 18, 12, 18, 288, 9, 18, 1, 19, 1, 19, 1,
3835
- 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 297, 8, 20, 11, 20, 12, 20, 298, 1, 20, 1, 20, 1,
3836
- 21, 1, 21, 3, 21, 305, 8, 21, 1, 22, 1, 22, 1, 22, 3, 22, 310, 8, 22, 1, 23, 1, 23, 1, 23,
3837
- 1, 23, 3, 23, 316, 8, 23, 1, 24, 1, 24, 3, 24, 320, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3,
3838
- 26, 326, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1,
3839
- 28, 1, 29, 1, 29, 1, 29, 5, 29, 342, 8, 29, 10, 29, 12, 29, 345, 9, 29, 1, 29, 1, 29, 5,
3840
- 29, 349, 8, 29, 10, 29, 12, 29, 352, 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 357, 8, 29, 10,
3841
- 29, 12, 29, 360, 9, 29, 3, 29, 362, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1,
3842
- 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 380, 8, 32, 1,
3843
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 390, 8, 32, 1, 32, 1, 32, 1,
3844
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
3845
- 32, 1, 32, 1, 32, 5, 32, 410, 8, 32, 10, 32, 12, 32, 413, 9, 32, 1, 33, 1, 33, 1, 34, 1,
3846
- 34, 1, 35, 3, 35, 420, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 428, 8, 36,
3847
- 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36, 436, 8, 36, 11, 36, 12, 36, 437, 1, 36,
3848
- 1, 36, 1, 37, 1, 37, 3, 37, 444, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 449, 8, 38, 10, 38,
3849
- 12, 38, 452, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 458, 8, 38, 10, 38, 12, 38, 461,
3850
- 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 470, 8, 38, 10, 38, 12, 38,
3851
- 473, 9, 38, 3, 38, 475, 8, 38, 1, 39, 1, 39, 5, 39, 479, 8, 39, 10, 39, 12, 39, 482, 9,
3852
- 39, 1, 40, 1, 40, 3, 40, 486, 8, 40, 1, 40, 1, 40, 3, 40, 490, 8, 40, 1, 41, 1, 41, 1, 41,
3853
- 1, 41, 1, 41, 1, 41, 3, 41, 498, 8, 41, 1, 42, 3, 42, 501, 8, 42, 1, 42, 1, 42, 4, 42, 505,
3854
- 8, 42, 11, 42, 12, 42, 506, 1, 43, 3, 43, 510, 8, 43, 1, 43, 1, 43, 3, 43, 514, 8, 43,
3855
- 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46,
3856
- 1, 46, 4, 46, 530, 8, 46, 11, 46, 12, 46, 531, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47,
3857
- 4, 47, 540, 8, 47, 11, 47, 12, 47, 541, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48,
3858
- 3, 48, 551, 8, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49,
3859
- 1, 49, 4, 49, 564, 8, 49, 11, 49, 12, 49, 565, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50,
3860
- 4, 50, 574, 8, 50, 11, 50, 12, 50, 575, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 582, 8, 51,
3861
- 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 590, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51,
3862
- 5, 51, 596, 8, 51, 10, 51, 12, 51, 599, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51,
3863
- 606, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54,
3864
- 618, 8, 54, 10, 54, 12, 54, 621, 9, 54, 3, 54, 623, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55,
3865
- 628, 8, 55, 1, 55, 3, 55, 631, 8, 55, 1, 56, 1, 56, 5, 56, 635, 8, 56, 10, 56, 12, 56,
3866
- 638, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 644, 8, 57, 10, 57, 12, 57, 647, 9, 57,
3867
- 5, 57, 649, 8, 57, 10, 57, 12, 57, 652, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58,
3868
- 659, 8, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61,
3869
- 1, 61, 5, 61, 673, 8, 61, 10, 61, 12, 61, 676, 9, 61, 1, 61, 3, 61, 679, 8, 61, 1, 62,
3870
- 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64,
3871
- 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 700, 8, 65, 10, 65, 12, 65, 703, 9, 65, 1, 65,
3872
- 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 0, 1, 64, 67, 0, 2, 4, 6, 8, 10, 12,
3873
- 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3874
- 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3875
- 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132,
3876
- 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 57, 58, 2, 0, 58, 58, 61, 61, 2, 0, 55, 55, 58, 58, 1, 0,
3877
- 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2,
3878
- 0, 56, 56, 58, 62, 2, 0, 15, 15, 57, 57, 2, 0, 57, 58, 61, 61, 1, 0, 32, 33, 753, 0, 138,
3879
- 1, 0, 0, 0, 2, 162, 1, 0, 0, 0, 4, 169, 1, 0, 0, 0, 6, 173, 1, 0, 0, 0, 8, 181, 1, 0, 0, 0,
3880
- 10, 183, 1, 0, 0, 0, 12, 193, 1, 0, 0, 0, 14, 197, 1, 0, 0, 0, 16, 209, 1, 0, 0, 0, 18, 213,
3881
- 1, 0, 0, 0, 20, 216, 1, 0, 0, 0, 22, 224, 1, 0, 0, 0, 24, 235, 1, 0, 0, 0, 26, 241, 1, 0,
3882
- 0, 0, 28, 243, 1, 0, 0, 0, 30, 245, 1, 0, 0, 0, 32, 248, 1, 0, 0, 0, 34, 257, 1, 0, 0, 0,
3883
- 36, 279, 1, 0, 0, 0, 38, 289, 1, 0, 0, 0, 40, 291, 1, 0, 0, 0, 42, 304, 1, 0, 0, 0, 44, 306,
3884
- 1, 0, 0, 0, 46, 311, 1, 0, 0, 0, 48, 319, 1, 0, 0, 0, 50, 321, 1, 0, 0, 0, 52, 325, 1, 0,
3885
- 0, 0, 54, 330, 1, 0, 0, 0, 56, 334, 1, 0, 0, 0, 58, 361, 1, 0, 0, 0, 60, 363, 1, 0, 0, 0,
3886
- 62, 367, 1, 0, 0, 0, 64, 389, 1, 0, 0, 0, 66, 414, 1, 0, 0, 0, 68, 416, 1, 0, 0, 0, 70, 419,
3887
- 1, 0, 0, 0, 72, 423, 1, 0, 0, 0, 74, 443, 1, 0, 0, 0, 76, 474, 1, 0, 0, 0, 78, 476, 1, 0,
3888
- 0, 0, 80, 489, 1, 0, 0, 0, 82, 497, 1, 0, 0, 0, 84, 500, 1, 0, 0, 0, 86, 509, 1, 0, 0, 0,
3889
- 88, 515, 1, 0, 0, 0, 90, 518, 1, 0, 0, 0, 92, 522, 1, 0, 0, 0, 94, 535, 1, 0, 0, 0, 96, 545,
3890
- 1, 0, 0, 0, 98, 555, 1, 0, 0, 0, 100, 569, 1, 0, 0, 0, 102, 605, 1, 0, 0, 0, 104, 607, 1,
3891
- 0, 0, 0, 106, 611, 1, 0, 0, 0, 108, 622, 1, 0, 0, 0, 110, 630, 1, 0, 0, 0, 112, 632, 1,
3892
- 0, 0, 0, 114, 639, 1, 0, 0, 0, 116, 655, 1, 0, 0, 0, 118, 660, 1, 0, 0, 0, 120, 663, 1,
3893
- 0, 0, 0, 122, 667, 1, 0, 0, 0, 124, 680, 1, 0, 0, 0, 126, 686, 1, 0, 0, 0, 128, 690, 1,
3894
- 0, 0, 0, 130, 695, 1, 0, 0, 0, 132, 709, 1, 0, 0, 0, 134, 137, 3, 118, 59, 0, 135, 137,
3895
- 5, 65, 0, 0, 136, 134, 1, 0, 0, 0, 136, 135, 1, 0, 0, 0, 137, 140, 1, 0, 0, 0, 138, 136,
3896
- 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 143, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 141, 144,
3897
- 3, 2, 1, 0, 142, 144, 5, 65, 0, 0, 143, 141, 1, 0, 0, 0, 143, 142, 1, 0, 0, 0, 144, 145,
3898
- 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 147, 1, 0, 0, 0, 147, 148,
3899
- 5, 0, 0, 1, 148, 1, 1, 0, 0, 0, 149, 163, 3, 6, 3, 0, 150, 163, 3, 52, 26, 0, 151, 163,
3900
- 3, 54, 27, 0, 152, 163, 3, 60, 30, 0, 153, 163, 3, 14, 7, 0, 154, 163, 3, 62, 31, 0, 155,
3901
- 163, 3, 72, 36, 0, 156, 163, 3, 84, 42, 0, 157, 163, 3, 118, 59, 0, 158, 163, 3, 78,
3902
- 39, 0, 159, 163, 3, 120, 60, 0, 160, 163, 3, 4, 2, 0, 161, 163, 3, 132, 66, 0, 162, 149,
3903
- 1, 0, 0, 0, 162, 150, 1, 0, 0, 0, 162, 151, 1, 0, 0, 0, 162, 152, 1, 0, 0, 0, 162, 153,
3904
- 1, 0, 0, 0, 162, 154, 1, 0, 0, 0, 162, 155, 1, 0, 0, 0, 162, 156, 1, 0, 0, 0, 162, 157,
3905
- 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161,
3906
- 1, 0, 0, 0, 163, 3, 1, 0, 0, 0, 164, 170, 3, 122, 61, 0, 165, 170, 3, 128, 64, 0, 166,
3907
- 170, 3, 130, 65, 0, 167, 170, 5, 8, 0, 0, 168, 170, 5, 28, 0, 0, 169, 164, 1, 0, 0, 0,
3908
- 169, 165, 1, 0, 0, 0, 169, 166, 1, 0, 0, 0, 169, 167, 1, 0, 0, 0, 169, 168, 1, 0, 0, 0,
3909
- 170, 5, 1, 0, 0, 0, 171, 174, 3, 8, 4, 0, 172, 174, 3, 12, 6, 0, 173, 171, 1, 0, 0, 0, 173,
3910
- 172, 1, 0, 0, 0, 174, 7, 1, 0, 0, 0, 175, 182, 3, 24, 12, 0, 176, 182, 3, 32, 16, 0, 177,
3911
- 182, 3, 30, 15, 0, 178, 182, 3, 40, 20, 0, 179, 182, 3, 112, 56, 0, 180, 182, 3, 116,
3912
- 58, 0, 181, 175, 1, 0, 0, 0, 181, 176, 1, 0, 0, 0, 181, 177, 1, 0, 0, 0, 181, 178, 1, 0,
3913
- 0, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182, 9, 1, 0, 0, 0, 183, 184, 5, 65, 0,
3914
- 0, 184, 187, 5, 67, 0, 0, 185, 188, 5, 65, 0, 0, 186, 188, 3, 2, 1, 0, 187, 185, 1, 0,
3915
- 0, 0, 187, 186, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0,
3916
- 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 5, 68, 0, 0, 192, 11, 1, 0, 0, 0, 193, 194, 7, 0,
3917
- 0, 0, 194, 195, 5, 1, 0, 0, 195, 196, 3, 10, 5, 0, 196, 13, 1, 0, 0, 0, 197, 198, 3, 78,
3918
- 39, 0, 198, 199, 5, 1, 0, 0, 199, 200, 5, 65, 0, 0, 200, 203, 5, 67, 0, 0, 201, 204, 5,
3919
- 65, 0, 0, 202, 204, 3, 16, 8, 0, 203, 201, 1, 0, 0, 0, 203, 202, 1, 0, 0, 0, 204, 205,
3920
- 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 207, 1, 0, 0, 0, 207, 208,
3921
- 5, 68, 0, 0, 208, 15, 1, 0, 0, 0, 209, 210, 7, 1, 0, 0, 210, 211, 5, 1, 0, 0, 211, 212,
3922
- 3, 70, 35, 0, 212, 17, 1, 0, 0, 0, 213, 214, 5, 15, 0, 0, 214, 215, 3, 64, 32, 0, 215,
3923
- 19, 1, 0, 0, 0, 216, 217, 5, 57, 0, 0, 217, 220, 5, 1, 0, 0, 218, 221, 3, 70, 35, 0, 219,
3924
- 221, 5, 57, 0, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 21, 1, 0, 0, 0, 222,
3925
- 225, 3, 64, 32, 0, 223, 225, 3, 52, 26, 0, 224, 222, 1, 0, 0, 0, 224, 223, 1, 0, 0, 0,
3926
- 225, 229, 1, 0, 0, 0, 226, 228, 3, 20, 10, 0, 227, 226, 1, 0, 0, 0, 228, 231, 1, 0, 0,
3927
- 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231, 229, 1, 0, 0,
3928
- 0, 232, 234, 3, 18, 9, 0, 233, 232, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 23, 1, 0, 0,
3929
- 0, 235, 236, 5, 16, 0, 0, 236, 237, 3, 22, 11, 0, 237, 25, 1, 0, 0, 0, 238, 242, 3, 22,
3930
- 11, 0, 239, 242, 3, 18, 9, 0, 240, 242, 5, 19, 0, 0, 241, 238, 1, 0, 0, 0, 241, 239, 1,
3931
- 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 27, 1, 0, 0, 0, 243, 244, 7, 2, 0, 0, 244, 29, 1, 0,
3932
- 0, 0, 245, 246, 5, 17, 0, 0, 246, 247, 3, 26, 13, 0, 247, 31, 1, 0, 0, 0, 248, 249, 5,
3933
- 18, 0, 0, 249, 254, 3, 26, 13, 0, 250, 251, 5, 2, 0, 0, 251, 253, 3, 26, 13, 0, 252, 250,
3934
- 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0, 255, 33, 1,
3935
- 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 5, 17, 0, 0, 258, 259, 3, 26, 13, 0, 259, 260,
3936
- 5, 18, 0, 0, 260, 265, 3, 26, 13, 0, 261, 262, 5, 2, 0, 0, 262, 264, 3, 26, 13, 0, 263,
3937
- 261, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0, 0, 0, 266,
3938
- 268, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 269, 5, 1, 0, 0, 269, 270, 5, 65, 0, 0, 270,
3939
- 273, 5, 67, 0, 0, 271, 274, 5, 65, 0, 0, 272, 274, 3, 36, 18, 0, 273, 271, 1, 0, 0, 0,
3940
- 273, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0,
3941
- 276, 277, 1, 0, 0, 0, 277, 278, 5, 68, 0, 0, 278, 35, 1, 0, 0, 0, 279, 280, 3, 28, 14,
3942
- 0, 280, 281, 5, 1, 0, 0, 281, 286, 3, 38, 19, 0, 282, 283, 5, 2, 0, 0, 283, 285, 3, 38,
3943
- 19, 0, 284, 282, 1, 0, 0, 0, 285, 288, 1, 0, 0, 0, 286, 284, 1, 0, 0, 0, 286, 287, 1, 0,
3944
- 0, 0, 287, 37, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 289, 290, 7, 3, 0, 0, 290, 39, 1, 0, 0,
3945
- 0, 291, 292, 3, 44, 22, 0, 292, 293, 5, 65, 0, 0, 293, 296, 5, 67, 0, 0, 294, 297, 5,
3946
- 65, 0, 0, 295, 297, 3, 42, 21, 0, 296, 294, 1, 0, 0, 0, 296, 295, 1, 0, 0, 0, 297, 298,
3947
- 1, 0, 0, 0, 298, 296, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 301,
3948
- 5, 68, 0, 0, 301, 41, 1, 0, 0, 0, 302, 305, 3, 2, 1, 0, 303, 305, 3, 46, 23, 0, 304, 302,
3949
- 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 43, 1, 0, 0, 0, 306, 307, 3, 30, 15, 0, 307, 309,
3950
- 5, 1, 0, 0, 308, 310, 3, 132, 66, 0, 309, 308, 1, 0, 0, 0, 309, 310, 1, 0, 0, 0, 310, 45,
3951
- 1, 0, 0, 0, 311, 312, 3, 28, 14, 0, 312, 315, 5, 1, 0, 0, 313, 316, 3, 48, 24, 0, 314,
3952
- 316, 3, 50, 25, 0, 315, 313, 1, 0, 0, 0, 315, 314, 1, 0, 0, 0, 316, 47, 1, 0, 0, 0, 317,
3953
- 320, 3, 2, 1, 0, 318, 320, 5, 55, 0, 0, 319, 317, 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320,
3954
- 49, 1, 0, 0, 0, 321, 322, 3, 10, 5, 0, 322, 51, 1, 0, 0, 0, 323, 326, 3, 78, 39, 0, 324,
3955
- 326, 3, 84, 42, 0, 325, 323, 1, 0, 0, 0, 325, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327,
3956
- 328, 5, 3, 0, 0, 328, 329, 3, 64, 32, 0, 329, 53, 1, 0, 0, 0, 330, 331, 3, 78, 39, 0, 331,
3957
- 332, 7, 4, 0, 0, 332, 333, 3, 64, 32, 0, 333, 55, 1, 0, 0, 0, 334, 335, 5, 57, 0, 0, 335,
3958
- 336, 5, 3, 0, 0, 336, 337, 3, 64, 32, 0, 337, 57, 1, 0, 0, 0, 338, 343, 3, 64, 32, 0, 339,
3959
- 340, 5, 2, 0, 0, 340, 342, 3, 64, 32, 0, 341, 339, 1, 0, 0, 0, 342, 345, 1, 0, 0, 0, 343,
3960
- 341, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 350, 1, 0, 0, 0, 345, 343, 1, 0, 0, 0, 346,
3961
- 347, 5, 2, 0, 0, 347, 349, 3, 56, 28, 0, 348, 346, 1, 0, 0, 0, 349, 352, 1, 0, 0, 0, 350,
3962
- 348, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 362, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 353,
3963
- 358, 3, 56, 28, 0, 354, 355, 5, 2, 0, 0, 355, 357, 3, 56, 28, 0, 356, 354, 1, 0, 0, 0,
3964
- 357, 360, 1, 0, 0, 0, 358, 356, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359, 362, 1, 0, 0, 0,
3965
- 360, 358, 1, 0, 0, 0, 361, 338, 1, 0, 0, 0, 361, 353, 1, 0, 0, 0, 362, 59, 1, 0, 0, 0, 363,
3966
- 364, 3, 78, 39, 0, 364, 365, 5, 3, 0, 0, 365, 366, 3, 64, 32, 0, 366, 61, 1, 0, 0, 0, 367,
3967
- 368, 5, 4, 0, 0, 368, 369, 5, 57, 0, 0, 369, 370, 5, 3, 0, 0, 370, 371, 3, 64, 32, 0, 371,
3968
- 63, 1, 0, 0, 0, 372, 373, 6, 32, -1, 0, 373, 374, 5, 53, 0, 0, 374, 375, 3, 64, 32, 0,
3969
- 375, 376, 5, 54, 0, 0, 376, 390, 1, 0, 0, 0, 377, 380, 3, 70, 35, 0, 378, 380, 3, 78,
3970
- 39, 0, 379, 377, 1, 0, 0, 0, 379, 378, 1, 0, 0, 0, 380, 390, 1, 0, 0, 0, 381, 382, 3, 68,
3971
- 34, 0, 382, 383, 3, 64, 32, 11, 383, 390, 1, 0, 0, 0, 384, 390, 3, 92, 46, 0, 385, 390,
3972
- 3, 96, 48, 0, 386, 390, 3, 98, 49, 0, 387, 390, 3, 84, 42, 0, 388, 390, 3, 114, 57, 0,
3973
- 389, 372, 1, 0, 0, 0, 389, 379, 1, 0, 0, 0, 389, 381, 1, 0, 0, 0, 389, 384, 1, 0, 0, 0,
3974
- 389, 385, 1, 0, 0, 0, 389, 386, 1, 0, 0, 0, 389, 387, 1, 0, 0, 0, 389, 388, 1, 0, 0, 0,
3975
- 390, 411, 1, 0, 0, 0, 391, 392, 10, 10, 0, 0, 392, 393, 7, 5, 0, 0, 393, 410, 3, 64, 32,
3976
- 11, 394, 395, 10, 9, 0, 0, 395, 396, 7, 6, 0, 0, 396, 410, 3, 64, 32, 10, 397, 398, 10,
3977
- 8, 0, 0, 398, 399, 3, 66, 33, 0, 399, 400, 3, 64, 32, 9, 400, 410, 1, 0, 0, 0, 401, 402,
3978
- 10, 7, 0, 0, 402, 403, 7, 7, 0, 0, 403, 410, 3, 64, 32, 8, 404, 405, 10, 1, 0, 0, 405,
3979
- 406, 5, 5, 0, 0, 406, 407, 3, 64, 32, 0, 407, 408, 5, 6, 0, 0, 408, 410, 1, 0, 0, 0, 409,
3980
- 391, 1, 0, 0, 0, 409, 394, 1, 0, 0, 0, 409, 397, 1, 0, 0, 0, 409, 401, 1, 0, 0, 0, 409,
3981
- 404, 1, 0, 0, 0, 410, 413, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412,
3982
- 65, 1, 0, 0, 0, 413, 411, 1, 0, 0, 0, 414, 415, 7, 8, 0, 0, 415, 67, 1, 0, 0, 0, 416, 417,
3983
- 7, 9, 0, 0, 417, 69, 1, 0, 0, 0, 418, 420, 5, 43, 0, 0, 419, 418, 1, 0, 0, 0, 419, 420,
3984
- 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 7, 10, 0, 0, 422, 71, 1, 0, 0, 0, 423, 424,
3985
- 5, 23, 0, 0, 424, 425, 5, 57, 0, 0, 425, 427, 5, 53, 0, 0, 426, 428, 3, 76, 38, 0, 427,
3986
- 426, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 430, 5, 54, 0, 0, 430,
3987
- 431, 5, 1, 0, 0, 431, 432, 5, 65, 0, 0, 432, 435, 5, 67, 0, 0, 433, 436, 5, 65, 0, 0, 434,
3988
- 436, 3, 74, 37, 0, 435, 433, 1, 0, 0, 0, 435, 434, 1, 0, 0, 0, 436, 437, 1, 0, 0, 0, 437,
3989
- 435, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440, 5, 68, 0, 0, 440,
3990
- 73, 1, 0, 0, 0, 441, 444, 3, 2, 1, 0, 442, 444, 3, 88, 44, 0, 443, 441, 1, 0, 0, 0, 443,
3991
- 442, 1, 0, 0, 0, 444, 75, 1, 0, 0, 0, 445, 450, 5, 57, 0, 0, 446, 447, 5, 2, 0, 0, 447,
3992
- 449, 5, 57, 0, 0, 448, 446, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 448, 1, 0, 0, 0, 450,
3993
- 451, 1, 0, 0, 0, 451, 459, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454, 5, 2, 0, 0, 454,
3994
- 455, 5, 57, 0, 0, 455, 456, 5, 3, 0, 0, 456, 458, 3, 70, 35, 0, 457, 453, 1, 0, 0, 0, 458,
3995
- 461, 1, 0, 0, 0, 459, 457, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 475, 1, 0, 0, 0, 461,
3996
- 459, 1, 0, 0, 0, 462, 463, 5, 57, 0, 0, 463, 464, 5, 3, 0, 0, 464, 471, 3, 70, 35, 0, 465,
3997
- 466, 5, 2, 0, 0, 466, 467, 5, 57, 0, 0, 467, 468, 5, 3, 0, 0, 468, 470, 3, 70, 35, 0, 469,
3998
- 465, 1, 0, 0, 0, 470, 473, 1, 0, 0, 0, 471, 469, 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472,
3999
- 475, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 445, 1, 0, 0, 0, 474, 462, 1, 0, 0, 0, 475,
4000
- 77, 1, 0, 0, 0, 476, 480, 5, 57, 0, 0, 477, 479, 3, 82, 41, 0, 478, 477, 1, 0, 0, 0, 479,
4001
- 482, 1, 0, 0, 0, 480, 478, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 79, 1, 0, 0, 0, 482, 480,
4002
- 1, 0, 0, 0, 483, 485, 5, 53, 0, 0, 484, 486, 3, 58, 29, 0, 485, 484, 1, 0, 0, 0, 485, 486,
4003
- 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 490, 5, 54, 0, 0, 488, 490, 3, 82, 41, 0, 489, 483,
4004
- 1, 0, 0, 0, 489, 488, 1, 0, 0, 0, 490, 81, 1, 0, 0, 0, 491, 492, 5, 7, 0, 0, 492, 498, 5,
4005
- 57, 0, 0, 493, 494, 5, 5, 0, 0, 494, 495, 3, 64, 32, 0, 495, 496, 5, 6, 0, 0, 496, 498,
4006
- 1, 0, 0, 0, 497, 491, 1, 0, 0, 0, 497, 493, 1, 0, 0, 0, 498, 83, 1, 0, 0, 0, 499, 501, 3,
4007
- 86, 43, 0, 500, 499, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504,
4008
- 5, 57, 0, 0, 503, 505, 3, 80, 40, 0, 504, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 504,
4009
- 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 85, 1, 0, 0, 0, 508, 510, 5, 42, 0, 0, 509, 508,
4010
- 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 513, 5, 44, 0, 0, 512, 514,
4011
- 3, 64, 32, 0, 513, 512, 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 87, 1, 0, 0, 0, 515, 516,
4012
- 5, 22, 0, 0, 516, 517, 3, 64, 32, 0, 517, 89, 1, 0, 0, 0, 518, 519, 3, 106, 53, 0, 519,
4013
- 520, 5, 1, 0, 0, 520, 521, 3, 10, 5, 0, 521, 91, 1, 0, 0, 0, 522, 523, 5, 10, 0, 0, 523,
4014
- 524, 5, 11, 0, 0, 524, 525, 5, 1, 0, 0, 525, 526, 5, 65, 0, 0, 526, 529, 5, 67, 0, 0, 527,
4015
- 530, 5, 65, 0, 0, 528, 530, 3, 104, 52, 0, 529, 527, 1, 0, 0, 0, 529, 528, 1, 0, 0, 0,
4016
- 530, 531, 1, 0, 0, 0, 531, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0,
4017
- 533, 534, 5, 68, 0, 0, 534, 93, 1, 0, 0, 0, 535, 536, 5, 65, 0, 0, 536, 539, 5, 67, 0,
4018
- 0, 537, 540, 5, 65, 0, 0, 538, 540, 3, 102, 51, 0, 539, 537, 1, 0, 0, 0, 539, 538, 1,
4019
- 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 543, 1,
4020
- 0, 0, 0, 543, 544, 5, 68, 0, 0, 544, 95, 1, 0, 0, 0, 545, 546, 5, 10, 0, 0, 546, 550, 5,
4021
- 12, 0, 0, 547, 548, 5, 53, 0, 0, 548, 549, 5, 57, 0, 0, 549, 551, 5, 54, 0, 0, 550, 547,
4022
- 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 5, 1, 0, 0, 553, 554,
4023
- 3, 94, 47, 0, 554, 97, 1, 0, 0, 0, 555, 556, 5, 10, 0, 0, 556, 557, 5, 13, 0, 0, 557, 558,
4024
- 5, 1, 0, 0, 558, 559, 5, 65, 0, 0, 559, 563, 5, 67, 0, 0, 560, 564, 5, 65, 0, 0, 561, 564,
4025
- 3, 104, 52, 0, 562, 564, 3, 90, 45, 0, 563, 560, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 563,
4026
- 562, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 566,
4027
- 567, 1, 0, 0, 0, 567, 568, 5, 68, 0, 0, 568, 99, 1, 0, 0, 0, 569, 570, 5, 65, 0, 0, 570,
4028
- 573, 5, 67, 0, 0, 571, 574, 5, 65, 0, 0, 572, 574, 3, 104, 52, 0, 573, 571, 1, 0, 0, 0,
4029
- 573, 572, 1, 0, 0, 0, 574, 575, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0,
4030
- 576, 577, 1, 0, 0, 0, 577, 578, 5, 68, 0, 0, 578, 101, 1, 0, 0, 0, 579, 581, 7, 11, 0,
4031
- 0, 580, 582, 5, 1, 0, 0, 581, 580, 1, 0, 0, 0, 581, 582, 1, 0, 0, 0, 582, 589, 1, 0, 0,
4032
- 0, 583, 590, 3, 58, 29, 0, 584, 585, 5, 53, 0, 0, 585, 586, 3, 58, 29, 0, 586, 587, 5,
4033
- 54, 0, 0, 587, 590, 1, 0, 0, 0, 588, 590, 3, 100, 50, 0, 589, 583, 1, 0, 0, 0, 589, 584,
4034
- 1, 0, 0, 0, 589, 588, 1, 0, 0, 0, 590, 606, 1, 0, 0, 0, 591, 592, 5, 25, 0, 0, 592, 597,
4035
- 5, 57, 0, 0, 593, 594, 5, 2, 0, 0, 594, 596, 5, 57, 0, 0, 595, 593, 1, 0, 0, 0, 596, 599,
4036
- 1, 0, 0, 0, 597, 595, 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 600, 1, 0, 0, 0, 599, 597,
4037
- 1, 0, 0, 0, 600, 601, 5, 26, 0, 0, 601, 602, 3, 64, 32, 0, 602, 603, 5, 1, 0, 0, 603, 604,
4038
- 3, 94, 47, 0, 604, 606, 1, 0, 0, 0, 605, 579, 1, 0, 0, 0, 605, 591, 1, 0, 0, 0, 606, 103,
4039
- 1, 0, 0, 0, 607, 608, 3, 106, 53, 0, 608, 609, 5, 1, 0, 0, 609, 610, 3, 108, 54, 0, 610,
4040
- 105, 1, 0, 0, 0, 611, 612, 7, 12, 0, 0, 612, 107, 1, 0, 0, 0, 613, 623, 3, 100, 50, 0,
4041
- 614, 619, 3, 64, 32, 0, 615, 616, 5, 2, 0, 0, 616, 618, 3, 64, 32, 0, 617, 615, 1, 0,
4042
- 0, 0, 618, 621, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 619, 620, 1, 0, 0, 0, 620, 623, 1, 0,
4043
- 0, 0, 621, 619, 1, 0, 0, 0, 622, 613, 1, 0, 0, 0, 622, 614, 1, 0, 0, 0, 623, 109, 1, 0,
4044
- 0, 0, 624, 627, 5, 57, 0, 0, 625, 628, 5, 58, 0, 0, 626, 628, 3, 64, 32, 0, 627, 625,
4045
- 1, 0, 0, 0, 627, 626, 1, 0, 0, 0, 628, 631, 1, 0, 0, 0, 629, 631, 5, 57, 0, 0, 630, 624,
4046
- 1, 0, 0, 0, 630, 629, 1, 0, 0, 0, 631, 111, 1, 0, 0, 0, 632, 636, 5, 14, 0, 0, 633, 635,
4047
- 3, 110, 55, 0, 634, 633, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636, 637,
4048
- 1, 0, 0, 0, 637, 113, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 650, 5, 5, 0, 0, 640, 645,
4049
- 3, 64, 32, 0, 641, 642, 5, 2, 0, 0, 642, 644, 3, 64, 32, 0, 643, 641, 1, 0, 0, 0, 644,
4050
- 647, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 645, 646, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647,
4051
- 645, 1, 0, 0, 0, 648, 640, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650,
4052
- 651, 1, 0, 0, 0, 651, 653, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 653, 654, 5, 6, 0, 0, 654,
4053
- 115, 1, 0, 0, 0, 655, 658, 5, 19, 0, 0, 656, 659, 5, 57, 0, 0, 657, 659, 3, 64, 32, 0,
4054
- 658, 656, 1, 0, 0, 0, 658, 657, 1, 0, 0, 0, 659, 117, 1, 0, 0, 0, 660, 661, 5, 24, 0, 0,
4055
- 661, 662, 5, 57, 0, 0, 662, 119, 1, 0, 0, 0, 663, 664, 7, 13, 0, 0, 664, 665, 5, 1, 0,
4056
- 0, 665, 666, 3, 10, 5, 0, 666, 121, 1, 0, 0, 0, 667, 668, 5, 29, 0, 0, 668, 669, 3, 64,
4057
- 32, 0, 669, 670, 5, 1, 0, 0, 670, 674, 3, 10, 5, 0, 671, 673, 3, 124, 62, 0, 672, 671,
4058
- 1, 0, 0, 0, 673, 676, 1, 0, 0, 0, 674, 672, 1, 0, 0, 0, 674, 675, 1, 0, 0, 0, 675, 678,
4059
- 1, 0, 0, 0, 676, 674, 1, 0, 0, 0, 677, 679, 3, 126, 63, 0, 678, 677, 1, 0, 0, 0, 678, 679,
4060
- 1, 0, 0, 0, 679, 123, 1, 0, 0, 0, 680, 681, 5, 30, 0, 0, 681, 682, 5, 29, 0, 0, 682, 683,
4061
- 3, 64, 32, 0, 683, 684, 5, 1, 0, 0, 684, 685, 3, 10, 5, 0, 685, 125, 1, 0, 0, 0, 686, 687,
4062
- 5, 30, 0, 0, 687, 688, 5, 1, 0, 0, 688, 689, 3, 10, 5, 0, 689, 127, 1, 0, 0, 0, 690, 691,
4063
- 5, 27, 0, 0, 691, 692, 3, 64, 32, 0, 692, 693, 5, 1, 0, 0, 693, 694, 3, 10, 5, 0, 694,
4064
- 129, 1, 0, 0, 0, 695, 696, 5, 25, 0, 0, 696, 701, 5, 57, 0, 0, 697, 698, 5, 2, 0, 0, 698,
4065
- 700, 5, 57, 0, 0, 699, 697, 1, 0, 0, 0, 700, 703, 1, 0, 0, 0, 701, 699, 1, 0, 0, 0, 701,
4066
- 702, 1, 0, 0, 0, 702, 704, 1, 0, 0, 0, 703, 701, 1, 0, 0, 0, 704, 705, 5, 26, 0, 0, 705,
4067
- 706, 3, 64, 32, 0, 706, 707, 5, 1, 0, 0, 707, 708, 3, 10, 5, 0, 708, 131, 1, 0, 0, 0, 709,
4068
- 710, 5, 52, 0, 0, 710, 711, 5, 57, 0, 0, 711, 133, 1, 0, 0, 0, 78, 136, 138, 143, 145,
4069
- 162, 169, 173, 181, 187, 189, 203, 205, 220, 224, 229, 233, 241, 254, 265, 273,
4070
- 275, 286, 296, 298, 304, 309, 315, 319, 325, 343, 350, 358, 361, 379, 389, 409,
4071
- 411, 419, 427, 435, 437, 443, 450, 459, 471, 474, 480, 485, 489, 497, 500, 506,
4072
- 509, 513, 529, 531, 539, 541, 550, 563, 565, 573, 575, 581, 589, 597, 605, 619,
4073
- 622, 627, 630, 636, 645, 650, 658, 674, 678, 701
4074
- ];
4075
- static __ATN;
4076
- static get _ATN() {
4077
- if (!CircuitScriptParser.__ATN) {
4078
- CircuitScriptParser.__ATN = new antlr.ATNDeserializer().deserialize(CircuitScriptParser._serializedATN);
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
+ }
4079
3868
  }
4080
- return CircuitScriptParser.__ATN;
4081
- }
4082
- static vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4083
- get vocabulary() {
4084
- return CircuitScriptParser.vocabulary;
4085
- }
4086
- static decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
4087
- }
4088
- export class ScriptContext extends antlr.ParserRuleContext {
4089
- constructor(parent, invokingState) {
4090
- super(parent, invokingState);
4091
- }
4092
- EOF() {
4093
- return this.getToken(CircuitScriptParser.EOF, 0);
4094
- }
4095
- import_expr(i) {
4096
- if (i === undefined) {
4097
- return this.getRuleContexts(Import_exprContext);
3869
+ finally {
3870
+ this.exitRule();
4098
3871
  }
4099
- return this.getRuleContext(i, Import_exprContext);
3872
+ return localContext;
3873
+ }
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() {
4533
+ return CircuitScriptParser.vocabulary;
4534
+ }
4535
+ static decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
4536
+ }
4537
+ export class ScriptContext extends antlr.ParserRuleContext {
4538
+ constructor(parent, invokingState) {
4539
+ super(parent, invokingState);
4540
+ }
4541
+ EOF() {
4542
+ return this.getToken(CircuitScriptParser.EOF, 0);
4543
+ }
4544
+ import_expr(i) {
4545
+ if (i === undefined) {
4546
+ return this.getRuleContexts(Import_exprContext);
4547
+ }
4548
+ return this.getRuleContext(i, Import_exprContext);
4100
4549
  }
4101
4550
  NEWLINE(i) {
4102
4551
  if (i === undefined) {
@@ -4167,6 +4616,9 @@ export class ExpressionContext extends antlr.ParserRuleContext {
4167
4616
  annotation_comment_expr() {
4168
4617
  return this.getRuleContext(0, Annotation_comment_exprContext);
4169
4618
  }
4619
+ part_set_expr() {
4620
+ return this.getRuleContext(0, Part_set_exprContext);
4621
+ }
4170
4622
  get ruleIndex() {
4171
4623
  return CircuitScriptParser.RULE_expression;
4172
4624
  }
@@ -4756,8 +5208,11 @@ export class At_block_headerContext extends antlr.ParserRuleContext {
4756
5208
  at_component_expr() {
4757
5209
  return this.getRuleContext(0, At_component_exprContext);
4758
5210
  }
4759
- annotation_comment_expr() {
4760
- return this.getRuleContext(0, Annotation_comment_exprContext);
5211
+ annotation_comment_expr(i) {
5212
+ if (i === undefined) {
5213
+ return this.getRuleContexts(Annotation_comment_exprContext);
5214
+ }
5215
+ return this.getRuleContext(i, Annotation_comment_exprContext);
4761
5216
  }
4762
5217
  get ruleIndex() {
4763
5218
  return CircuitScriptParser.RULE_at_block_header;
@@ -6300,6 +6755,207 @@ export class For_exprContext extends antlr.ParserRuleContext {
6300
6755
  }
6301
6756
  }
6302
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
+ }
6303
6959
  export class Annotation_comment_exprContext extends antlr.ParserRuleContext {
6304
6960
  constructor(parent, invokingState) {
6305
6961
  super(parent, invokingState);