circuitscript 0.1.15 → 0.1.17

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 (49) hide show
  1. package/dist/cjs/BaseVisitor.js +98 -35
  2. package/dist/cjs/antlr/CircuitScriptLexer.js +3 -3
  3. package/dist/cjs/antlr/CircuitScriptParser.js +868 -757
  4. package/dist/cjs/builtinMethods.js +11 -1
  5. package/dist/cjs/draw_symbols.js +18 -17
  6. package/dist/cjs/execute.js +58 -31
  7. package/dist/cjs/globals.js +4 -1
  8. package/dist/cjs/graph.js +372 -0
  9. package/dist/cjs/helpers.js +6 -2
  10. package/dist/cjs/layout.js +18 -259
  11. package/dist/cjs/objects/ClassComponent.js +27 -20
  12. package/dist/cjs/objects/ExecutionScope.js +7 -2
  13. package/dist/cjs/objects/Net.js +1 -1
  14. package/dist/cjs/objects/PinDefinition.js +55 -3
  15. package/dist/cjs/objects/types.js +42 -6
  16. package/dist/cjs/visitor.js +88 -48
  17. package/dist/esm/BaseVisitor.js +98 -35
  18. package/dist/esm/antlr/CircuitScriptLexer.js +3 -3
  19. package/dist/esm/antlr/CircuitScriptParser.js +864 -755
  20. package/dist/esm/antlr/CircuitScriptVisitor.js +2 -0
  21. package/dist/esm/builtinMethods.js +11 -1
  22. package/dist/esm/draw_symbols.js +18 -17
  23. package/dist/esm/execute.js +60 -33
  24. package/dist/esm/globals.js +3 -0
  25. package/dist/esm/graph.js +344 -0
  26. package/dist/esm/helpers.js +6 -2
  27. package/dist/esm/layout.js +14 -235
  28. package/dist/esm/objects/ClassComponent.js +28 -21
  29. package/dist/esm/objects/ExecutionScope.js +7 -2
  30. package/dist/esm/objects/Net.js +1 -1
  31. package/dist/esm/objects/PinDefinition.js +53 -2
  32. package/dist/esm/objects/types.js +42 -6
  33. package/dist/esm/visitor.js +90 -50
  34. package/dist/libs/std.cst +3 -2
  35. package/dist/types/BaseVisitor.d.ts +5 -2
  36. package/dist/types/antlr/CircuitScriptParser.d.ts +42 -26
  37. package/dist/types/antlr/CircuitScriptVisitor.d.ts +4 -0
  38. package/dist/types/draw_symbols.d.ts +13 -7
  39. package/dist/types/execute.d.ts +12 -12
  40. package/dist/types/globals.d.ts +4 -1
  41. package/dist/types/graph.d.ts +29 -0
  42. package/dist/types/layout.d.ts +4 -9
  43. package/dist/types/objects/ClassComponent.d.ts +8 -8
  44. package/dist/types/objects/ExecutionScope.d.ts +8 -7
  45. package/dist/types/objects/Net.d.ts +2 -2
  46. package/dist/types/objects/PinDefinition.d.ts +17 -2
  47. package/dist/types/objects/types.d.ts +31 -7
  48. package/libs/std.cst +3 -2
  49. package/package.json +2 -1
@@ -107,32 +107,33 @@ export class CircuitScriptParser extends antlr.Parser {
107
107
  static RULE_function_args_expr = 37;
108
108
  static RULE_atom_expr = 38;
109
109
  static RULE_trailer_expr = 39;
110
- static RULE_function_call_expr = 40;
111
- static RULE_net_namespace_expr = 41;
112
- static RULE_function_return_expr = 42;
113
- static RULE_property_block_expr = 43;
114
- static RULE_create_component_expr = 44;
115
- static RULE_graphic_expressions_block = 45;
116
- static RULE_create_graphic_expr = 46;
117
- static RULE_create_module_expr = 47;
118
- static RULE_nested_properties_inner = 48;
119
- static RULE_graphic_expr = 49;
120
- static RULE_property_expr = 50;
121
- static RULE_property_key_expr = 51;
122
- static RULE_property_value_expr = 52;
123
- static RULE_wire_atom_expr = 53;
124
- static RULE_wire_expr = 54;
125
- static RULE_array_expr = 55;
126
- static RULE_point_expr = 56;
127
- static RULE_import_expr = 57;
128
- static RULE_frame_expr = 58;
129
- static RULE_if_expr = 59;
130
- static RULE_if_inner_expr = 60;
131
- static RULE_else_expr = 61;
132
- static RULE_while_expr = 62;
133
- static RULE_for_expr = 63;
110
+ static RULE_trailer_expr2 = 40;
111
+ static RULE_function_call_expr = 41;
112
+ static RULE_net_namespace_expr = 42;
113
+ static RULE_function_return_expr = 43;
114
+ static RULE_property_block_expr = 44;
115
+ static RULE_create_component_expr = 45;
116
+ static RULE_graphic_expressions_block = 46;
117
+ static RULE_create_graphic_expr = 47;
118
+ static RULE_create_module_expr = 48;
119
+ static RULE_nested_properties_inner = 49;
120
+ static RULE_graphic_expr = 50;
121
+ static RULE_property_expr = 51;
122
+ static RULE_property_key_expr = 52;
123
+ static RULE_property_value_expr = 53;
124
+ static RULE_wire_atom_expr = 54;
125
+ static RULE_wire_expr = 55;
126
+ static RULE_array_expr = 56;
127
+ static RULE_point_expr = 57;
128
+ static RULE_import_expr = 58;
129
+ static RULE_frame_expr = 59;
130
+ static RULE_if_expr = 60;
131
+ static RULE_if_inner_expr = 61;
132
+ static RULE_else_expr = 62;
133
+ static RULE_while_expr = 63;
134
+ static RULE_for_expr = 64;
134
135
  static literalNames = [
135
- null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
136
+ null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'break'",
136
137
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
137
138
  "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
138
139
  "'parallel'", "'return'", "'def'", "'import'", "'for'", "'in'",
@@ -166,13 +167,13 @@ export class CircuitScriptParser extends antlr.Parser {
166
167
  "keyword_assignment_expr", "parameters", "property_set_expr", "double_dot_property_set_expr",
167
168
  "data_expr", "binary_operator", "unary_operator", "value_expr",
168
169
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
169
- "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
170
- "property_block_expr", "create_component_expr", "graphic_expressions_block",
171
- "create_graphic_expr", "create_module_expr", "nested_properties_inner",
172
- "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
173
- "wire_atom_expr", "wire_expr", "array_expr", "point_expr", "import_expr",
174
- "frame_expr", "if_expr", "if_inner_expr", "else_expr", "while_expr",
175
- "for_expr",
170
+ "trailer_expr", "trailer_expr2", "function_call_expr", "net_namespace_expr",
171
+ "function_return_expr", "property_block_expr", "create_component_expr",
172
+ "graphic_expressions_block", "create_graphic_expr", "create_module_expr",
173
+ "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
174
+ "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
175
+ "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
176
+ "else_expr", "while_expr", "for_expr",
176
177
  ];
177
178
  get grammarFileName() { return "CircuitScript.g4"; }
178
179
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -194,24 +195,24 @@ export class CircuitScriptParser extends antlr.Parser {
194
195
  let alternative;
195
196
  this.enterOuterAlt(localContext, 1);
196
197
  {
197
- this.state = 132;
198
+ this.state = 134;
198
199
  this.errorHandler.sync(this);
199
200
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
200
201
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
201
202
  if (alternative === 1) {
202
203
  {
203
- this.state = 130;
204
+ this.state = 132;
204
205
  this.errorHandler.sync(this);
205
206
  switch (this.tokenStream.LA(1)) {
206
207
  case CircuitScriptParser.Import:
207
208
  {
208
- this.state = 128;
209
+ this.state = 130;
209
210
  this.import_expr();
210
211
  }
211
212
  break;
212
213
  case CircuitScriptParser.NEWLINE:
213
214
  {
214
- this.state = 129;
215
+ this.state = 131;
215
216
  this.match(CircuitScriptParser.NEWLINE);
216
217
  }
217
218
  break;
@@ -220,16 +221,16 @@ export class CircuitScriptParser extends antlr.Parser {
220
221
  }
221
222
  }
222
223
  }
223
- this.state = 134;
224
+ this.state = 136;
224
225
  this.errorHandler.sync(this);
225
226
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
226
227
  }
227
- this.state = 137;
228
+ this.state = 139;
228
229
  this.errorHandler.sync(this);
229
230
  _la = this.tokenStream.LA(1);
230
231
  do {
231
232
  {
232
- this.state = 137;
233
+ this.state = 139;
233
234
  this.errorHandler.sync(this);
234
235
  switch (this.tokenStream.LA(1)) {
235
236
  case CircuitScriptParser.T__3:
@@ -254,13 +255,13 @@ export class CircuitScriptParser extends antlr.Parser {
254
255
  case CircuitScriptParser.Divide:
255
256
  case CircuitScriptParser.ID:
256
257
  {
257
- this.state = 135;
258
+ this.state = 137;
258
259
  this.expression();
259
260
  }
260
261
  break;
261
262
  case CircuitScriptParser.NEWLINE:
262
263
  {
263
- this.state = 136;
264
+ this.state = 138;
264
265
  this.match(CircuitScriptParser.NEWLINE);
265
266
  }
266
267
  break;
@@ -268,11 +269,11 @@ export class CircuitScriptParser extends antlr.Parser {
268
269
  throw new antlr.NoViableAltException(this);
269
270
  }
270
271
  }
271
- this.state = 139;
272
+ this.state = 141;
272
273
  this.errorHandler.sync(this);
273
274
  _la = this.tokenStream.LA(1);
274
275
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
275
- this.state = 141;
276
+ this.state = 143;
276
277
  this.match(CircuitScriptParser.EOF);
277
278
  }
278
279
  }
@@ -294,90 +295,90 @@ export class CircuitScriptParser extends antlr.Parser {
294
295
  let localContext = new ExpressionContext(this.context, this.state);
295
296
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
296
297
  try {
297
- this.state = 155;
298
+ this.state = 157;
298
299
  this.errorHandler.sync(this);
299
300
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
300
301
  case 1:
301
302
  this.enterOuterAlt(localContext, 1);
302
303
  {
303
- this.state = 143;
304
+ this.state = 145;
304
305
  this.graph_expressions();
305
306
  }
306
307
  break;
307
308
  case 2:
308
309
  this.enterOuterAlt(localContext, 2);
309
310
  {
310
- this.state = 144;
311
+ this.state = 146;
311
312
  this.assignment_expr();
312
313
  }
313
314
  break;
314
315
  case 3:
315
316
  this.enterOuterAlt(localContext, 3);
316
317
  {
317
- this.state = 145;
318
+ this.state = 147;
318
319
  this.operator_assignment_expr();
319
320
  }
320
321
  break;
321
322
  case 4:
322
323
  this.enterOuterAlt(localContext, 4);
323
324
  {
324
- this.state = 146;
325
+ this.state = 148;
325
326
  this.property_set_expr();
326
327
  }
327
328
  break;
328
329
  case 5:
329
330
  this.enterOuterAlt(localContext, 5);
330
331
  {
331
- this.state = 147;
332
+ this.state = 149;
332
333
  this.property_set_expr2();
333
334
  }
334
335
  break;
335
336
  case 6:
336
337
  this.enterOuterAlt(localContext, 6);
337
338
  {
338
- this.state = 148;
339
+ this.state = 150;
339
340
  this.double_dot_property_set_expr();
340
341
  }
341
342
  break;
342
343
  case 7:
343
344
  this.enterOuterAlt(localContext, 7);
344
345
  {
345
- this.state = 149;
346
+ this.state = 151;
346
347
  this.function_def_expr();
347
348
  }
348
349
  break;
349
350
  case 8:
350
351
  this.enterOuterAlt(localContext, 8);
351
352
  {
352
- this.state = 150;
353
+ this.state = 152;
353
354
  this.function_call_expr();
354
355
  }
355
356
  break;
356
357
  case 9:
357
358
  this.enterOuterAlt(localContext, 9);
358
359
  {
359
- this.state = 151;
360
+ this.state = 153;
360
361
  this.import_expr();
361
362
  }
362
363
  break;
363
364
  case 10:
364
365
  this.enterOuterAlt(localContext, 10);
365
366
  {
366
- this.state = 152;
367
+ this.state = 154;
367
368
  this.atom_expr();
368
369
  }
369
370
  break;
370
371
  case 11:
371
372
  this.enterOuterAlt(localContext, 11);
372
373
  {
373
- this.state = 153;
374
+ this.state = 155;
374
375
  this.frame_expr();
375
376
  }
376
377
  break;
377
378
  case 12:
378
379
  this.enterOuterAlt(localContext, 12);
379
380
  {
380
- this.state = 154;
381
+ this.state = 156;
381
382
  this.flow_expressions();
382
383
  }
383
384
  break;
@@ -401,41 +402,41 @@ export class CircuitScriptParser extends antlr.Parser {
401
402
  let localContext = new Flow_expressionsContext(this.context, this.state);
402
403
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
403
404
  try {
404
- this.state = 162;
405
+ this.state = 164;
405
406
  this.errorHandler.sync(this);
406
407
  switch (this.tokenStream.LA(1)) {
407
408
  case CircuitScriptParser.If:
408
409
  this.enterOuterAlt(localContext, 1);
409
410
  {
410
- this.state = 157;
411
+ this.state = 159;
411
412
  this.if_expr();
412
413
  }
413
414
  break;
414
415
  case CircuitScriptParser.While:
415
416
  this.enterOuterAlt(localContext, 2);
416
417
  {
417
- this.state = 158;
418
+ this.state = 160;
418
419
  this.while_expr();
419
420
  }
420
421
  break;
421
422
  case CircuitScriptParser.For:
422
423
  this.enterOuterAlt(localContext, 3);
423
424
  {
424
- this.state = 159;
425
+ this.state = 161;
425
426
  this.for_expr();
426
427
  }
427
428
  break;
428
429
  case CircuitScriptParser.Break:
429
430
  this.enterOuterAlt(localContext, 4);
430
431
  {
431
- this.state = 160;
432
+ this.state = 162;
432
433
  this.match(CircuitScriptParser.Break);
433
434
  }
434
435
  break;
435
436
  case CircuitScriptParser.Continue:
436
437
  this.enterOuterAlt(localContext, 5);
437
438
  {
438
- this.state = 161;
439
+ this.state = 163;
439
440
  this.match(CircuitScriptParser.Continue);
440
441
  }
441
442
  break;
@@ -461,20 +462,20 @@ export class CircuitScriptParser extends antlr.Parser {
461
462
  let localContext = new Graph_expressionsContext(this.context, this.state);
462
463
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
463
464
  try {
464
- this.state = 166;
465
+ this.state = 168;
465
466
  this.errorHandler.sync(this);
466
467
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
467
468
  case 1:
468
469
  this.enterOuterAlt(localContext, 1);
469
470
  {
470
- this.state = 164;
471
+ this.state = 166;
471
472
  this.graph_linear_expression();
472
473
  }
473
474
  break;
474
475
  case 2:
475
476
  this.enterOuterAlt(localContext, 2);
476
477
  {
477
- this.state = 165;
478
+ this.state = 167;
478
479
  this.path_block();
479
480
  }
480
481
  break;
@@ -498,48 +499,48 @@ export class CircuitScriptParser extends antlr.Parser {
498
499
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
499
500
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
500
501
  try {
501
- this.state = 174;
502
+ this.state = 176;
502
503
  this.errorHandler.sync(this);
503
504
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
504
505
  case 1:
505
506
  this.enterOuterAlt(localContext, 1);
506
507
  {
507
- this.state = 168;
508
+ this.state = 170;
508
509
  this.add_component_expr();
509
510
  }
510
511
  break;
511
512
  case 2:
512
513
  this.enterOuterAlt(localContext, 2);
513
514
  {
514
- this.state = 169;
515
+ this.state = 171;
515
516
  this.to_component_expr();
516
517
  }
517
518
  break;
518
519
  case 3:
519
520
  this.enterOuterAlt(localContext, 3);
520
521
  {
521
- this.state = 170;
522
+ this.state = 172;
522
523
  this.at_component_expr();
523
524
  }
524
525
  break;
525
526
  case 4:
526
527
  this.enterOuterAlt(localContext, 4);
527
528
  {
528
- this.state = 171;
529
+ this.state = 173;
529
530
  this.at_block();
530
531
  }
531
532
  break;
532
533
  case 5:
533
534
  this.enterOuterAlt(localContext, 5);
534
535
  {
535
- this.state = 172;
536
+ this.state = 174;
536
537
  this.wire_expr();
537
538
  }
538
539
  break;
539
540
  case 6:
540
541
  this.enterOuterAlt(localContext, 6);
541
542
  {
542
- this.state = 173;
543
+ this.state = 175;
543
544
  this.point_expr();
544
545
  }
545
546
  break;
@@ -566,21 +567,21 @@ export class CircuitScriptParser extends antlr.Parser {
566
567
  try {
567
568
  this.enterOuterAlt(localContext, 1);
568
569
  {
569
- this.state = 176;
570
+ this.state = 178;
570
571
  this.match(CircuitScriptParser.NEWLINE);
571
- this.state = 177;
572
+ this.state = 179;
572
573
  this.match(CircuitScriptParser.INDENT);
573
- this.state = 180;
574
+ this.state = 182;
574
575
  this.errorHandler.sync(this);
575
576
  _la = this.tokenStream.LA(1);
576
577
  do {
577
578
  {
578
- this.state = 180;
579
+ this.state = 182;
579
580
  this.errorHandler.sync(this);
580
581
  switch (this.tokenStream.LA(1)) {
581
582
  case CircuitScriptParser.NEWLINE:
582
583
  {
583
- this.state = 178;
584
+ this.state = 180;
584
585
  this.match(CircuitScriptParser.NEWLINE);
585
586
  }
586
587
  break;
@@ -606,7 +607,7 @@ export class CircuitScriptParser extends antlr.Parser {
606
607
  case CircuitScriptParser.Divide:
607
608
  case CircuitScriptParser.ID:
608
609
  {
609
- this.state = 179;
610
+ this.state = 181;
610
611
  this.expression();
611
612
  }
612
613
  break;
@@ -614,11 +615,11 @@ export class CircuitScriptParser extends antlr.Parser {
614
615
  throw new antlr.NoViableAltException(this);
615
616
  }
616
617
  }
617
- this.state = 182;
618
+ this.state = 184;
618
619
  this.errorHandler.sync(this);
619
620
  _la = this.tokenStream.LA(1);
620
621
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
621
- this.state = 184;
622
+ this.state = 186;
622
623
  this.match(CircuitScriptParser.DEDENT);
623
624
  }
624
625
  }
@@ -643,7 +644,7 @@ export class CircuitScriptParser extends antlr.Parser {
643
644
  try {
644
645
  this.enterOuterAlt(localContext, 1);
645
646
  {
646
- this.state = 186;
647
+ this.state = 188;
647
648
  _la = this.tokenStream.LA(1);
648
649
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
649
650
  this.errorHandler.recoverInline(this);
@@ -652,9 +653,9 @@ export class CircuitScriptParser extends antlr.Parser {
652
653
  this.errorHandler.reportMatch(this);
653
654
  this.consume();
654
655
  }
655
- this.state = 187;
656
+ this.state = 189;
656
657
  this.match(CircuitScriptParser.T__0);
657
- this.state = 188;
658
+ this.state = 190;
658
659
  this.expressions_block();
659
660
  }
660
661
  }
@@ -679,32 +680,32 @@ export class CircuitScriptParser extends antlr.Parser {
679
680
  try {
680
681
  this.enterOuterAlt(localContext, 1);
681
682
  {
682
- this.state = 190;
683
+ this.state = 192;
683
684
  this.atom_expr();
684
- this.state = 191;
685
+ this.state = 193;
685
686
  this.match(CircuitScriptParser.T__0);
686
- this.state = 192;
687
+ this.state = 194;
687
688
  this.match(CircuitScriptParser.NEWLINE);
688
- this.state = 193;
689
+ this.state = 195;
689
690
  this.match(CircuitScriptParser.INDENT);
690
- this.state = 196;
691
+ this.state = 198;
691
692
  this.errorHandler.sync(this);
692
693
  _la = this.tokenStream.LA(1);
693
694
  do {
694
695
  {
695
- this.state = 196;
696
+ this.state = 198;
696
697
  this.errorHandler.sync(this);
697
698
  switch (this.tokenStream.LA(1)) {
698
699
  case CircuitScriptParser.NEWLINE:
699
700
  {
700
- this.state = 194;
701
+ this.state = 196;
701
702
  this.match(CircuitScriptParser.NEWLINE);
702
703
  }
703
704
  break;
704
705
  case CircuitScriptParser.ID:
705
706
  case CircuitScriptParser.INTEGER_VALUE:
706
707
  {
707
- this.state = 195;
708
+ this.state = 197;
708
709
  this.assignment_expr2();
709
710
  }
710
711
  break;
@@ -712,11 +713,11 @@ export class CircuitScriptParser extends antlr.Parser {
712
713
  throw new antlr.NoViableAltException(this);
713
714
  }
714
715
  }
715
- this.state = 198;
716
+ this.state = 200;
716
717
  this.errorHandler.sync(this);
717
718
  _la = this.tokenStream.LA(1);
718
719
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 259) !== 0));
719
- this.state = 200;
720
+ this.state = 202;
720
721
  this.match(CircuitScriptParser.DEDENT);
721
722
  }
722
723
  }
@@ -741,7 +742,7 @@ export class CircuitScriptParser extends antlr.Parser {
741
742
  try {
742
743
  this.enterOuterAlt(localContext, 1);
743
744
  {
744
- this.state = 202;
745
+ this.state = 204;
745
746
  _la = this.tokenStream.LA(1);
746
747
  if (!(_la === 56 || _la === 57)) {
747
748
  this.errorHandler.recoverInline(this);
@@ -750,9 +751,9 @@ export class CircuitScriptParser extends antlr.Parser {
750
751
  this.errorHandler.reportMatch(this);
751
752
  this.consume();
752
753
  }
753
- this.state = 203;
754
+ this.state = 205;
754
755
  this.match(CircuitScriptParser.T__0);
755
- this.state = 204;
756
+ this.state = 206;
756
757
  this.value_expr();
757
758
  }
758
759
  }
@@ -776,9 +777,9 @@ export class CircuitScriptParser extends antlr.Parser {
776
777
  try {
777
778
  this.enterOuterAlt(localContext, 1);
778
779
  {
779
- this.state = 206;
780
+ this.state = 208;
780
781
  this.match(CircuitScriptParser.Pin);
781
- this.state = 207;
782
+ this.state = 209;
782
783
  this.data_expr(0);
783
784
  }
784
785
  }
@@ -802,11 +803,11 @@ export class CircuitScriptParser extends antlr.Parser {
802
803
  try {
803
804
  this.enterOuterAlt(localContext, 1);
804
805
  {
805
- this.state = 209;
806
+ this.state = 211;
806
807
  this.match(CircuitScriptParser.ID);
807
- this.state = 210;
808
+ this.state = 212;
808
809
  this.match(CircuitScriptParser.T__0);
809
- this.state = 213;
810
+ this.state = 215;
810
811
  this.errorHandler.sync(this);
811
812
  switch (this.tokenStream.LA(1)) {
812
813
  case CircuitScriptParser.Minus:
@@ -817,13 +818,13 @@ export class CircuitScriptParser extends antlr.Parser {
817
818
  case CircuitScriptParser.STRING_VALUE:
818
819
  case CircuitScriptParser.PERCENTAGE_VALUE:
819
820
  {
820
- this.state = 211;
821
+ this.state = 213;
821
822
  this.value_expr();
822
823
  }
823
824
  break;
824
825
  case CircuitScriptParser.ID:
825
826
  {
826
- this.state = 212;
827
+ this.state = 214;
827
828
  this.match(CircuitScriptParser.ID);
828
829
  }
829
830
  break;
@@ -854,44 +855,44 @@ export class CircuitScriptParser extends antlr.Parser {
854
855
  let alternative;
855
856
  this.enterOuterAlt(localContext, 1);
856
857
  {
857
- this.state = 217;
858
+ this.state = 219;
858
859
  this.errorHandler.sync(this);
859
860
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
860
861
  case 1:
861
862
  {
862
- this.state = 215;
863
+ this.state = 217;
863
864
  this.data_expr(0);
864
865
  }
865
866
  break;
866
867
  case 2:
867
868
  {
868
- this.state = 216;
869
+ this.state = 218;
869
870
  this.assignment_expr();
870
871
  }
871
872
  break;
872
873
  }
873
- this.state = 222;
874
+ this.state = 224;
874
875
  this.errorHandler.sync(this);
875
876
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
876
877
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
877
878
  if (alternative === 1) {
878
879
  {
879
880
  {
880
- this.state = 219;
881
+ this.state = 221;
881
882
  this.component_modifier_expr();
882
883
  }
883
884
  }
884
885
  }
885
- this.state = 224;
886
+ this.state = 226;
886
887
  this.errorHandler.sync(this);
887
888
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
888
889
  }
889
- this.state = 226;
890
+ this.state = 228;
890
891
  this.errorHandler.sync(this);
891
892
  _la = this.tokenStream.LA(1);
892
893
  if (_la === 15) {
893
894
  {
894
- this.state = 225;
895
+ this.state = 227;
895
896
  this.pin_select_expr();
896
897
  }
897
898
  }
@@ -917,9 +918,9 @@ export class CircuitScriptParser extends antlr.Parser {
917
918
  try {
918
919
  this.enterOuterAlt(localContext, 1);
919
920
  {
920
- this.state = 228;
921
+ this.state = 230;
921
922
  this.match(CircuitScriptParser.Add);
922
- this.state = 229;
923
+ this.state = 231;
923
924
  this.data_expr_with_assignment();
924
925
  }
925
926
  }
@@ -941,10 +942,10 @@ export class CircuitScriptParser extends antlr.Parser {
941
942
  let localContext = new Component_select_exprContext(this.context, this.state);
942
943
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
943
944
  try {
944
- this.state = 234;
945
+ this.state = 236;
945
946
  this.errorHandler.sync(this);
946
947
  switch (this.tokenStream.LA(1)) {
947
- case CircuitScriptParser.T__5:
948
+ case CircuitScriptParser.T__4:
948
949
  case CircuitScriptParser.Create:
949
950
  case CircuitScriptParser.Not:
950
951
  case CircuitScriptParser.Addition:
@@ -960,21 +961,21 @@ export class CircuitScriptParser extends antlr.Parser {
960
961
  case CircuitScriptParser.PERCENTAGE_VALUE:
961
962
  this.enterOuterAlt(localContext, 1);
962
963
  {
963
- this.state = 231;
964
+ this.state = 233;
964
965
  this.data_expr_with_assignment();
965
966
  }
966
967
  break;
967
968
  case CircuitScriptParser.Pin:
968
969
  this.enterOuterAlt(localContext, 2);
969
970
  {
970
- this.state = 232;
971
+ this.state = 234;
971
972
  this.pin_select_expr();
972
973
  }
973
974
  break;
974
975
  case CircuitScriptParser.Point:
975
976
  this.enterOuterAlt(localContext, 3);
976
977
  {
977
- this.state = 233;
978
+ this.state = 235;
978
979
  this.match(CircuitScriptParser.Point);
979
980
  }
980
981
  break;
@@ -1003,7 +1004,7 @@ export class CircuitScriptParser extends antlr.Parser {
1003
1004
  try {
1004
1005
  this.enterOuterAlt(localContext, 1);
1005
1006
  {
1006
- this.state = 236;
1007
+ this.state = 238;
1007
1008
  _la = this.tokenStream.LA(1);
1008
1009
  if (!(_la === 57 || _la === 60)) {
1009
1010
  this.errorHandler.recoverInline(this);
@@ -1034,9 +1035,9 @@ export class CircuitScriptParser extends antlr.Parser {
1034
1035
  try {
1035
1036
  this.enterOuterAlt(localContext, 1);
1036
1037
  {
1037
- this.state = 238;
1038
+ this.state = 240;
1038
1039
  this.match(CircuitScriptParser.At);
1039
- this.state = 239;
1040
+ this.state = 241;
1040
1041
  this.component_select_expr();
1041
1042
  }
1042
1043
  }
@@ -1061,24 +1062,24 @@ export class CircuitScriptParser extends antlr.Parser {
1061
1062
  try {
1062
1063
  this.enterOuterAlt(localContext, 1);
1063
1064
  {
1064
- this.state = 241;
1065
+ this.state = 243;
1065
1066
  this.match(CircuitScriptParser.To);
1066
1067
  {
1067
- this.state = 242;
1068
+ this.state = 244;
1068
1069
  this.component_select_expr();
1069
- this.state = 247;
1070
+ this.state = 249;
1070
1071
  this.errorHandler.sync(this);
1071
1072
  _la = this.tokenStream.LA(1);
1072
1073
  while (_la === 2) {
1073
1074
  {
1074
1075
  {
1075
- this.state = 243;
1076
+ this.state = 245;
1076
1077
  this.match(CircuitScriptParser.T__1);
1077
- this.state = 244;
1078
+ this.state = 246;
1078
1079
  this.component_select_expr();
1079
1080
  }
1080
1081
  }
1081
- this.state = 249;
1082
+ this.state = 251;
1082
1083
  this.errorHandler.sync(this);
1083
1084
  _la = this.tokenStream.LA(1);
1084
1085
  }
@@ -1106,54 +1107,54 @@ export class CircuitScriptParser extends antlr.Parser {
1106
1107
  try {
1107
1108
  this.enterOuterAlt(localContext, 1);
1108
1109
  {
1109
- this.state = 250;
1110
+ this.state = 252;
1110
1111
  this.match(CircuitScriptParser.At);
1111
- this.state = 251;
1112
+ this.state = 253;
1112
1113
  this.component_select_expr();
1113
- this.state = 252;
1114
+ this.state = 254;
1114
1115
  this.match(CircuitScriptParser.To);
1115
- this.state = 253;
1116
+ this.state = 255;
1116
1117
  this.component_select_expr();
1117
- this.state = 258;
1118
+ this.state = 260;
1118
1119
  this.errorHandler.sync(this);
1119
1120
  _la = this.tokenStream.LA(1);
1120
1121
  while (_la === 2) {
1121
1122
  {
1122
1123
  {
1123
- this.state = 254;
1124
+ this.state = 256;
1124
1125
  this.match(CircuitScriptParser.T__1);
1125
- this.state = 255;
1126
+ this.state = 257;
1126
1127
  this.component_select_expr();
1127
1128
  }
1128
1129
  }
1129
- this.state = 260;
1130
+ this.state = 262;
1130
1131
  this.errorHandler.sync(this);
1131
1132
  _la = this.tokenStream.LA(1);
1132
1133
  }
1133
- this.state = 261;
1134
+ this.state = 263;
1134
1135
  this.match(CircuitScriptParser.T__0);
1135
- this.state = 262;
1136
+ this.state = 264;
1136
1137
  this.match(CircuitScriptParser.NEWLINE);
1137
- this.state = 263;
1138
+ this.state = 265;
1138
1139
  this.match(CircuitScriptParser.INDENT);
1139
- this.state = 266;
1140
+ this.state = 268;
1140
1141
  this.errorHandler.sync(this);
1141
1142
  _la = this.tokenStream.LA(1);
1142
1143
  do {
1143
1144
  {
1144
- this.state = 266;
1145
+ this.state = 268;
1145
1146
  this.errorHandler.sync(this);
1146
1147
  switch (this.tokenStream.LA(1)) {
1147
1148
  case CircuitScriptParser.NEWLINE:
1148
1149
  {
1149
- this.state = 264;
1150
+ this.state = 266;
1150
1151
  this.match(CircuitScriptParser.NEWLINE);
1151
1152
  }
1152
1153
  break;
1153
1154
  case CircuitScriptParser.INTEGER_VALUE:
1154
1155
  case CircuitScriptParser.STRING_VALUE:
1155
1156
  {
1156
- this.state = 265;
1157
+ this.state = 267;
1157
1158
  this.at_to_multiple_line_expr();
1158
1159
  }
1159
1160
  break;
@@ -1161,11 +1162,11 @@ export class CircuitScriptParser extends antlr.Parser {
1161
1162
  throw new antlr.NoViableAltException(this);
1162
1163
  }
1163
1164
  }
1164
- this.state = 268;
1165
+ this.state = 270;
1165
1166
  this.errorHandler.sync(this);
1166
1167
  _la = this.tokenStream.LA(1);
1167
1168
  } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
1168
- this.state = 270;
1169
+ this.state = 272;
1169
1170
  this.match(CircuitScriptParser.DEDENT);
1170
1171
  }
1171
1172
  }
@@ -1190,25 +1191,25 @@ export class CircuitScriptParser extends antlr.Parser {
1190
1191
  try {
1191
1192
  this.enterOuterAlt(localContext, 1);
1192
1193
  {
1193
- this.state = 272;
1194
+ this.state = 274;
1194
1195
  this.pin_select_expr2();
1195
- this.state = 273;
1196
+ this.state = 275;
1196
1197
  this.match(CircuitScriptParser.T__0);
1197
- this.state = 274;
1198
+ this.state = 276;
1198
1199
  this.at_to_multiple_line_expr_to_pin();
1199
- this.state = 279;
1200
+ this.state = 281;
1200
1201
  this.errorHandler.sync(this);
1201
1202
  _la = this.tokenStream.LA(1);
1202
1203
  while (_la === 2) {
1203
1204
  {
1204
1205
  {
1205
- this.state = 275;
1206
+ this.state = 277;
1206
1207
  this.match(CircuitScriptParser.T__1);
1207
- this.state = 276;
1208
+ this.state = 278;
1208
1209
  this.at_to_multiple_line_expr_to_pin();
1209
1210
  }
1210
1211
  }
1211
- this.state = 281;
1212
+ this.state = 283;
1212
1213
  this.errorHandler.sync(this);
1213
1214
  _la = this.tokenStream.LA(1);
1214
1215
  }
@@ -1235,7 +1236,7 @@ export class CircuitScriptParser extends antlr.Parser {
1235
1236
  try {
1236
1237
  this.enterOuterAlt(localContext, 1);
1237
1238
  {
1238
- this.state = 282;
1239
+ this.state = 284;
1239
1240
  _la = this.tokenStream.LA(1);
1240
1241
  if (!(_la === 54 || _la === 57)) {
1241
1242
  this.errorHandler.recoverInline(this);
@@ -1267,25 +1268,25 @@ export class CircuitScriptParser extends antlr.Parser {
1267
1268
  try {
1268
1269
  this.enterOuterAlt(localContext, 1);
1269
1270
  {
1270
- this.state = 284;
1271
+ this.state = 286;
1271
1272
  this.at_component_expr();
1272
- this.state = 285;
1273
+ this.state = 287;
1273
1274
  this.match(CircuitScriptParser.T__0);
1274
- this.state = 286;
1275
+ this.state = 288;
1275
1276
  this.match(CircuitScriptParser.NEWLINE);
1276
- this.state = 287;
1277
+ this.state = 289;
1277
1278
  this.match(CircuitScriptParser.INDENT);
1278
- this.state = 290;
1279
+ this.state = 292;
1279
1280
  this.errorHandler.sync(this);
1280
1281
  _la = this.tokenStream.LA(1);
1281
1282
  do {
1282
1283
  {
1283
- this.state = 290;
1284
+ this.state = 292;
1284
1285
  this.errorHandler.sync(this);
1285
1286
  switch (this.tokenStream.LA(1)) {
1286
1287
  case CircuitScriptParser.NEWLINE:
1287
1288
  {
1288
- this.state = 288;
1289
+ this.state = 290;
1289
1290
  this.match(CircuitScriptParser.NEWLINE);
1290
1291
  }
1291
1292
  break;
@@ -1313,7 +1314,7 @@ export class CircuitScriptParser extends antlr.Parser {
1313
1314
  case CircuitScriptParser.INTEGER_VALUE:
1314
1315
  case CircuitScriptParser.STRING_VALUE:
1315
1316
  {
1316
- this.state = 289;
1317
+ this.state = 291;
1317
1318
  this.at_block_expressions();
1318
1319
  }
1319
1320
  break;
@@ -1321,11 +1322,11 @@ export class CircuitScriptParser extends antlr.Parser {
1321
1322
  throw new antlr.NoViableAltException(this);
1322
1323
  }
1323
1324
  }
1324
- this.state = 292;
1325
+ this.state = 294;
1325
1326
  this.errorHandler.sync(this);
1326
1327
  _la = this.tokenStream.LA(1);
1327
1328
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1328
- this.state = 294;
1329
+ this.state = 296;
1329
1330
  this.match(CircuitScriptParser.DEDENT);
1330
1331
  }
1331
1332
  }
@@ -1347,7 +1348,7 @@ export class CircuitScriptParser extends antlr.Parser {
1347
1348
  let localContext = new At_block_expressionsContext(this.context, this.state);
1348
1349
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1349
1350
  try {
1350
- this.state = 298;
1351
+ this.state = 300;
1351
1352
  this.errorHandler.sync(this);
1352
1353
  switch (this.tokenStream.LA(1)) {
1353
1354
  case CircuitScriptParser.T__3:
@@ -1373,7 +1374,7 @@ export class CircuitScriptParser extends antlr.Parser {
1373
1374
  case CircuitScriptParser.ID:
1374
1375
  this.enterOuterAlt(localContext, 1);
1375
1376
  {
1376
- this.state = 296;
1377
+ this.state = 298;
1377
1378
  this.expression();
1378
1379
  }
1379
1380
  break;
@@ -1381,7 +1382,7 @@ export class CircuitScriptParser extends antlr.Parser {
1381
1382
  case CircuitScriptParser.STRING_VALUE:
1382
1383
  this.enterOuterAlt(localContext, 2);
1383
1384
  {
1384
- this.state = 297;
1385
+ this.state = 299;
1385
1386
  this.at_block_pin_expr();
1386
1387
  }
1387
1388
  break;
@@ -1409,11 +1410,11 @@ export class CircuitScriptParser extends antlr.Parser {
1409
1410
  try {
1410
1411
  this.enterOuterAlt(localContext, 1);
1411
1412
  {
1412
- this.state = 300;
1413
+ this.state = 302;
1413
1414
  this.pin_select_expr2();
1414
- this.state = 301;
1415
+ this.state = 303;
1415
1416
  this.match(CircuitScriptParser.T__0);
1416
- this.state = 304;
1417
+ this.state = 306;
1417
1418
  this.errorHandler.sync(this);
1418
1419
  switch (this.tokenStream.LA(1)) {
1419
1420
  case CircuitScriptParser.T__3:
@@ -1439,13 +1440,13 @@ export class CircuitScriptParser extends antlr.Parser {
1439
1440
  case CircuitScriptParser.NOT_CONNECTED:
1440
1441
  case CircuitScriptParser.ID:
1441
1442
  {
1442
- this.state = 302;
1443
+ this.state = 304;
1443
1444
  this.at_block_pin_expression_simple();
1444
1445
  }
1445
1446
  break;
1446
1447
  case CircuitScriptParser.NEWLINE:
1447
1448
  {
1448
- this.state = 303;
1449
+ this.state = 305;
1449
1450
  this.at_block_pin_expression_complex();
1450
1451
  }
1451
1452
  break;
@@ -1474,7 +1475,7 @@ export class CircuitScriptParser extends antlr.Parser {
1474
1475
  try {
1475
1476
  this.enterOuterAlt(localContext, 1);
1476
1477
  {
1477
- this.state = 308;
1478
+ this.state = 310;
1478
1479
  this.errorHandler.sync(this);
1479
1480
  switch (this.tokenStream.LA(1)) {
1480
1481
  case CircuitScriptParser.T__3:
@@ -1499,13 +1500,13 @@ export class CircuitScriptParser extends antlr.Parser {
1499
1500
  case CircuitScriptParser.Divide:
1500
1501
  case CircuitScriptParser.ID:
1501
1502
  {
1502
- this.state = 306;
1503
+ this.state = 308;
1503
1504
  this.expression();
1504
1505
  }
1505
1506
  break;
1506
1507
  case CircuitScriptParser.NOT_CONNECTED:
1507
1508
  {
1508
- this.state = 307;
1509
+ this.state = 309;
1509
1510
  this.match(CircuitScriptParser.NOT_CONNECTED);
1510
1511
  }
1511
1512
  break;
@@ -1534,7 +1535,7 @@ export class CircuitScriptParser extends antlr.Parser {
1534
1535
  try {
1535
1536
  this.enterOuterAlt(localContext, 1);
1536
1537
  {
1537
- this.state = 310;
1538
+ this.state = 312;
1538
1539
  this.expressions_block();
1539
1540
  }
1540
1541
  }
@@ -1558,25 +1559,25 @@ export class CircuitScriptParser extends antlr.Parser {
1558
1559
  try {
1559
1560
  this.enterOuterAlt(localContext, 1);
1560
1561
  {
1561
- this.state = 314;
1562
+ this.state = 316;
1562
1563
  this.errorHandler.sync(this);
1563
1564
  switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1564
1565
  case 1:
1565
1566
  {
1566
- this.state = 312;
1567
+ this.state = 314;
1567
1568
  this.atom_expr();
1568
1569
  }
1569
1570
  break;
1570
1571
  case 2:
1571
1572
  {
1572
- this.state = 313;
1573
+ this.state = 315;
1573
1574
  this.function_call_expr();
1574
1575
  }
1575
1576
  break;
1576
1577
  }
1577
- this.state = 316;
1578
+ this.state = 318;
1578
1579
  this.match(CircuitScriptParser.T__2);
1579
- this.state = 317;
1580
+ this.state = 319;
1580
1581
  this.data_expr(0);
1581
1582
  }
1582
1583
  }
@@ -1601,9 +1602,9 @@ export class CircuitScriptParser extends antlr.Parser {
1601
1602
  try {
1602
1603
  this.enterOuterAlt(localContext, 1);
1603
1604
  {
1604
- this.state = 319;
1605
+ this.state = 321;
1605
1606
  this.atom_expr();
1606
- this.state = 320;
1607
+ this.state = 322;
1607
1608
  _la = this.tokenStream.LA(1);
1608
1609
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1609
1610
  this.errorHandler.recoverInline(this);
@@ -1612,7 +1613,7 @@ export class CircuitScriptParser extends antlr.Parser {
1612
1613
  this.errorHandler.reportMatch(this);
1613
1614
  this.consume();
1614
1615
  }
1615
- this.state = 321;
1616
+ this.state = 323;
1616
1617
  this.data_expr(0);
1617
1618
  }
1618
1619
  }
@@ -1636,11 +1637,11 @@ export class CircuitScriptParser extends antlr.Parser {
1636
1637
  try {
1637
1638
  this.enterOuterAlt(localContext, 1);
1638
1639
  {
1639
- this.state = 323;
1640
+ this.state = 325;
1640
1641
  this.match(CircuitScriptParser.ID);
1641
- this.state = 324;
1642
+ this.state = 326;
1642
1643
  this.match(CircuitScriptParser.T__2);
1643
- this.state = 325;
1644
+ this.state = 327;
1644
1645
  this.data_expr(0);
1645
1646
  }
1646
1647
  }
@@ -1664,46 +1665,46 @@ export class CircuitScriptParser extends antlr.Parser {
1664
1665
  let _la;
1665
1666
  try {
1666
1667
  let alternative;
1667
- this.state = 350;
1668
+ this.state = 352;
1668
1669
  this.errorHandler.sync(this);
1669
1670
  switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1670
1671
  case 1:
1671
1672
  this.enterOuterAlt(localContext, 1);
1672
1673
  {
1673
1674
  {
1674
- this.state = 327;
1675
+ this.state = 329;
1675
1676
  this.data_expr(0);
1676
- this.state = 332;
1677
+ this.state = 334;
1677
1678
  this.errorHandler.sync(this);
1678
1679
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1679
1680
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1680
1681
  if (alternative === 1) {
1681
1682
  {
1682
1683
  {
1683
- this.state = 328;
1684
+ this.state = 330;
1684
1685
  this.match(CircuitScriptParser.T__1);
1685
- this.state = 329;
1686
+ this.state = 331;
1686
1687
  this.data_expr(0);
1687
1688
  }
1688
1689
  }
1689
1690
  }
1690
- this.state = 334;
1691
+ this.state = 336;
1691
1692
  this.errorHandler.sync(this);
1692
1693
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1693
1694
  }
1694
- this.state = 339;
1695
+ this.state = 341;
1695
1696
  this.errorHandler.sync(this);
1696
1697
  _la = this.tokenStream.LA(1);
1697
1698
  while (_la === 2) {
1698
1699
  {
1699
1700
  {
1700
- this.state = 335;
1701
+ this.state = 337;
1701
1702
  this.match(CircuitScriptParser.T__1);
1702
- this.state = 336;
1703
+ this.state = 338;
1703
1704
  this.keyword_assignment_expr();
1704
1705
  }
1705
1706
  }
1706
- this.state = 341;
1707
+ this.state = 343;
1707
1708
  this.errorHandler.sync(this);
1708
1709
  _la = this.tokenStream.LA(1);
1709
1710
  }
@@ -1714,21 +1715,21 @@ export class CircuitScriptParser extends antlr.Parser {
1714
1715
  this.enterOuterAlt(localContext, 2);
1715
1716
  {
1716
1717
  {
1717
- this.state = 342;
1718
+ this.state = 344;
1718
1719
  this.keyword_assignment_expr();
1719
- this.state = 347;
1720
+ this.state = 349;
1720
1721
  this.errorHandler.sync(this);
1721
1722
  _la = this.tokenStream.LA(1);
1722
1723
  while (_la === 2) {
1723
1724
  {
1724
1725
  {
1725
- this.state = 343;
1726
+ this.state = 345;
1726
1727
  this.match(CircuitScriptParser.T__1);
1727
- this.state = 344;
1728
+ this.state = 346;
1728
1729
  this.keyword_assignment_expr();
1729
1730
  }
1730
1731
  }
1731
- this.state = 349;
1732
+ this.state = 351;
1732
1733
  this.errorHandler.sync(this);
1733
1734
  _la = this.tokenStream.LA(1);
1734
1735
  }
@@ -1757,11 +1758,11 @@ export class CircuitScriptParser extends antlr.Parser {
1757
1758
  try {
1758
1759
  this.enterOuterAlt(localContext, 1);
1759
1760
  {
1760
- this.state = 352;
1761
+ this.state = 354;
1761
1762
  this.atom_expr();
1762
- this.state = 353;
1763
+ this.state = 355;
1763
1764
  this.match(CircuitScriptParser.T__2);
1764
- this.state = 354;
1765
+ this.state = 356;
1765
1766
  this.data_expr(0);
1766
1767
  }
1767
1768
  }
@@ -1785,13 +1786,13 @@ export class CircuitScriptParser extends antlr.Parser {
1785
1786
  try {
1786
1787
  this.enterOuterAlt(localContext, 1);
1787
1788
  {
1788
- this.state = 356;
1789
+ this.state = 358;
1789
1790
  this.match(CircuitScriptParser.T__3);
1790
- this.state = 357;
1791
+ this.state = 359;
1791
1792
  this.match(CircuitScriptParser.ID);
1792
- this.state = 358;
1793
+ this.state = 360;
1793
1794
  this.match(CircuitScriptParser.T__2);
1794
- this.state = 359;
1795
+ this.state = 361;
1795
1796
  this.data_expr(0);
1796
1797
  }
1797
1798
  }
@@ -1824,7 +1825,7 @@ export class CircuitScriptParser extends antlr.Parser {
1824
1825
  let alternative;
1825
1826
  this.enterOuterAlt(localContext, 1);
1826
1827
  {
1827
- this.state = 378;
1828
+ this.state = 380;
1828
1829
  this.errorHandler.sync(this);
1829
1830
  switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1830
1831
  case 1:
@@ -1832,11 +1833,11 @@ export class CircuitScriptParser extends antlr.Parser {
1832
1833
  localContext = new RoundedBracketsExprContext(localContext);
1833
1834
  this.context = localContext;
1834
1835
  previousContext = localContext;
1835
- this.state = 362;
1836
+ this.state = 364;
1836
1837
  this.match(CircuitScriptParser.OPEN_PAREN);
1837
- this.state = 363;
1838
+ this.state = 365;
1838
1839
  this.data_expr(0);
1839
- this.state = 364;
1840
+ this.state = 366;
1840
1841
  this.match(CircuitScriptParser.CLOSE_PAREN);
1841
1842
  }
1842
1843
  break;
@@ -1845,7 +1846,7 @@ export class CircuitScriptParser extends antlr.Parser {
1845
1846
  localContext = new ValueAtomExprContext(localContext);
1846
1847
  this.context = localContext;
1847
1848
  previousContext = localContext;
1848
- this.state = 368;
1849
+ this.state = 370;
1849
1850
  this.errorHandler.sync(this);
1850
1851
  switch (this.tokenStream.LA(1)) {
1851
1852
  case CircuitScriptParser.Minus:
@@ -1856,13 +1857,13 @@ export class CircuitScriptParser extends antlr.Parser {
1856
1857
  case CircuitScriptParser.STRING_VALUE:
1857
1858
  case CircuitScriptParser.PERCENTAGE_VALUE:
1858
1859
  {
1859
- this.state = 366;
1860
+ this.state = 368;
1860
1861
  this.value_expr();
1861
1862
  }
1862
1863
  break;
1863
1864
  case CircuitScriptParser.ID:
1864
1865
  {
1865
- this.state = 367;
1866
+ this.state = 369;
1866
1867
  this.atom_expr();
1867
1868
  }
1868
1869
  break;
@@ -1876,10 +1877,10 @@ export class CircuitScriptParser extends antlr.Parser {
1876
1877
  localContext = new UnaryOperatorExprContext(localContext);
1877
1878
  this.context = localContext;
1878
1879
  previousContext = localContext;
1879
- this.state = 370;
1880
+ this.state = 372;
1880
1881
  this.unary_operator();
1881
- this.state = 371;
1882
- this.data_expr(10);
1882
+ this.state = 373;
1883
+ this.data_expr(11);
1883
1884
  }
1884
1885
  break;
1885
1886
  case 4:
@@ -1887,7 +1888,7 @@ export class CircuitScriptParser extends antlr.Parser {
1887
1888
  localContext = new DataExprContext(localContext);
1888
1889
  this.context = localContext;
1889
1890
  previousContext = localContext;
1890
- this.state = 373;
1891
+ this.state = 375;
1891
1892
  this.create_component_expr();
1892
1893
  }
1893
1894
  break;
@@ -1896,7 +1897,7 @@ export class CircuitScriptParser extends antlr.Parser {
1896
1897
  localContext = new DataExprContext(localContext);
1897
1898
  this.context = localContext;
1898
1899
  previousContext = localContext;
1899
- this.state = 374;
1900
+ this.state = 376;
1900
1901
  this.create_graphic_expr();
1901
1902
  }
1902
1903
  break;
@@ -1905,7 +1906,7 @@ export class CircuitScriptParser extends antlr.Parser {
1905
1906
  localContext = new DataExprContext(localContext);
1906
1907
  this.context = localContext;
1907
1908
  previousContext = localContext;
1908
- this.state = 375;
1909
+ this.state = 377;
1909
1910
  this.create_module_expr();
1910
1911
  }
1911
1912
  break;
@@ -1914,7 +1915,7 @@ export class CircuitScriptParser extends antlr.Parser {
1914
1915
  localContext = new FunctionCallExprContext(localContext);
1915
1916
  this.context = localContext;
1916
1917
  previousContext = localContext;
1917
- this.state = 376;
1918
+ this.state = 378;
1918
1919
  this.function_call_expr();
1919
1920
  }
1920
1921
  break;
@@ -1923,13 +1924,13 @@ export class CircuitScriptParser extends antlr.Parser {
1923
1924
  localContext = new ArrayExprContext(localContext);
1924
1925
  this.context = localContext;
1925
1926
  previousContext = localContext;
1926
- this.state = 377;
1927
+ this.state = 379;
1927
1928
  this.array_expr();
1928
1929
  }
1929
1930
  break;
1930
1931
  }
1931
1932
  this.context.stop = this.tokenStream.LT(-1);
1932
- this.state = 395;
1933
+ this.state = 402;
1933
1934
  this.errorHandler.sync(this);
1934
1935
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1935
1936
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1939,18 +1940,18 @@ export class CircuitScriptParser extends antlr.Parser {
1939
1940
  }
1940
1941
  previousContext = localContext;
1941
1942
  {
1942
- this.state = 393;
1943
+ this.state = 400;
1943
1944
  this.errorHandler.sync(this);
1944
1945
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1945
1946
  case 1:
1946
1947
  {
1947
1948
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1948
1949
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1949
- this.state = 380;
1950
- if (!(this.precpred(this.context, 9))) {
1951
- throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1950
+ this.state = 382;
1951
+ if (!(this.precpred(this.context, 10))) {
1952
+ throw this.createFailedPredicateException("this.precpred(this.context, 10)");
1952
1953
  }
1953
- this.state = 381;
1954
+ this.state = 383;
1954
1955
  _la = this.tokenStream.LA(1);
1955
1956
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1956
1957
  this.errorHandler.recoverInline(this);
@@ -1959,19 +1960,19 @@ export class CircuitScriptParser extends antlr.Parser {
1959
1960
  this.errorHandler.reportMatch(this);
1960
1961
  this.consume();
1961
1962
  }
1962
- this.state = 382;
1963
- this.data_expr(10);
1963
+ this.state = 384;
1964
+ this.data_expr(11);
1964
1965
  }
1965
1966
  break;
1966
1967
  case 2:
1967
1968
  {
1968
1969
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1969
1970
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1970
- this.state = 383;
1971
- if (!(this.precpred(this.context, 8))) {
1972
- throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1971
+ this.state = 385;
1972
+ if (!(this.precpred(this.context, 9))) {
1973
+ throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1973
1974
  }
1974
- this.state = 384;
1975
+ this.state = 386;
1975
1976
  _la = this.tokenStream.LA(1);
1976
1977
  if (!(_la === 42 || _la === 43)) {
1977
1978
  this.errorHandler.recoverInline(this);
@@ -1980,33 +1981,33 @@ export class CircuitScriptParser extends antlr.Parser {
1980
1981
  this.errorHandler.reportMatch(this);
1981
1982
  this.consume();
1982
1983
  }
1983
- this.state = 385;
1984
- this.data_expr(9);
1984
+ this.state = 387;
1985
+ this.data_expr(10);
1985
1986
  }
1986
1987
  break;
1987
1988
  case 3:
1988
1989
  {
1989
1990
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1990
1991
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1991
- this.state = 386;
1992
- if (!(this.precpred(this.context, 7))) {
1993
- throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1992
+ this.state = 388;
1993
+ if (!(this.precpred(this.context, 8))) {
1994
+ throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1994
1995
  }
1995
- this.state = 387;
1996
+ this.state = 389;
1996
1997
  this.binary_operator();
1997
- this.state = 388;
1998
- this.data_expr(8);
1998
+ this.state = 390;
1999
+ this.data_expr(9);
1999
2000
  }
2000
2001
  break;
2001
2002
  case 4:
2002
2003
  {
2003
2004
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
2004
2005
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2005
- this.state = 390;
2006
- if (!(this.precpred(this.context, 6))) {
2007
- throw this.createFailedPredicateException("this.precpred(this.context, 6)");
2006
+ this.state = 392;
2007
+ if (!(this.precpred(this.context, 7))) {
2008
+ throw this.createFailedPredicateException("this.precpred(this.context, 7)");
2008
2009
  }
2009
- this.state = 391;
2010
+ this.state = 393;
2010
2011
  _la = this.tokenStream.LA(1);
2011
2012
  if (!(_la === 40 || _la === 41)) {
2012
2013
  this.errorHandler.recoverInline(this);
@@ -2015,14 +2016,30 @@ export class CircuitScriptParser extends antlr.Parser {
2015
2016
  this.errorHandler.reportMatch(this);
2016
2017
  this.consume();
2017
2018
  }
2018
- this.state = 392;
2019
- this.data_expr(7);
2019
+ this.state = 394;
2020
+ this.data_expr(8);
2021
+ }
2022
+ break;
2023
+ case 5:
2024
+ {
2025
+ localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
2026
+ this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
2027
+ this.state = 395;
2028
+ if (!(this.precpred(this.context, 1))) {
2029
+ throw this.createFailedPredicateException("this.precpred(this.context, 1)");
2030
+ }
2031
+ this.state = 396;
2032
+ this.match(CircuitScriptParser.T__4);
2033
+ this.state = 397;
2034
+ this.data_expr(0);
2035
+ this.state = 398;
2036
+ this.match(CircuitScriptParser.T__5);
2020
2037
  }
2021
2038
  break;
2022
2039
  }
2023
2040
  }
2024
2041
  }
2025
- this.state = 397;
2042
+ this.state = 404;
2026
2043
  this.errorHandler.sync(this);
2027
2044
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
2028
2045
  }
@@ -2049,7 +2066,7 @@ export class CircuitScriptParser extends antlr.Parser {
2049
2066
  try {
2050
2067
  this.enterOuterAlt(localContext, 1);
2051
2068
  {
2052
- this.state = 398;
2069
+ this.state = 405;
2053
2070
  _la = this.tokenStream.LA(1);
2054
2071
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
2055
2072
  this.errorHandler.recoverInline(this);
@@ -2081,7 +2098,7 @@ export class CircuitScriptParser extends antlr.Parser {
2081
2098
  try {
2082
2099
  this.enterOuterAlt(localContext, 1);
2083
2100
  {
2084
- this.state = 400;
2101
+ this.state = 407;
2085
2102
  _la = this.tokenStream.LA(1);
2086
2103
  if (!(_la === 31 || _la === 43)) {
2087
2104
  this.errorHandler.recoverInline(this);
@@ -2114,16 +2131,16 @@ export class CircuitScriptParser extends antlr.Parser {
2114
2131
  this.enterOuterAlt(localContext, 1);
2115
2132
  {
2116
2133
  {
2117
- this.state = 403;
2134
+ this.state = 410;
2118
2135
  this.errorHandler.sync(this);
2119
2136
  _la = this.tokenStream.LA(1);
2120
2137
  if (_la === 43) {
2121
2138
  {
2122
- this.state = 402;
2139
+ this.state = 409;
2123
2140
  this.match(CircuitScriptParser.Minus);
2124
2141
  }
2125
2142
  }
2126
- this.state = 405;
2143
+ this.state = 412;
2127
2144
  _la = this.tokenStream.LA(1);
2128
2145
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
2129
2146
  this.errorHandler.recoverInline(this);
@@ -2156,40 +2173,40 @@ export class CircuitScriptParser extends antlr.Parser {
2156
2173
  try {
2157
2174
  this.enterOuterAlt(localContext, 1);
2158
2175
  {
2159
- this.state = 407;
2176
+ this.state = 414;
2160
2177
  this.match(CircuitScriptParser.Define);
2161
- this.state = 408;
2178
+ this.state = 415;
2162
2179
  this.match(CircuitScriptParser.ID);
2163
- this.state = 409;
2180
+ this.state = 416;
2164
2181
  this.match(CircuitScriptParser.OPEN_PAREN);
2165
- this.state = 411;
2182
+ this.state = 418;
2166
2183
  this.errorHandler.sync(this);
2167
2184
  _la = this.tokenStream.LA(1);
2168
2185
  if (_la === 56) {
2169
2186
  {
2170
- this.state = 410;
2187
+ this.state = 417;
2171
2188
  this.function_args_expr();
2172
2189
  }
2173
2190
  }
2174
- this.state = 413;
2191
+ this.state = 420;
2175
2192
  this.match(CircuitScriptParser.CLOSE_PAREN);
2176
- this.state = 414;
2193
+ this.state = 421;
2177
2194
  this.match(CircuitScriptParser.T__0);
2178
- this.state = 415;
2195
+ this.state = 422;
2179
2196
  this.match(CircuitScriptParser.NEWLINE);
2180
- this.state = 416;
2197
+ this.state = 423;
2181
2198
  this.match(CircuitScriptParser.INDENT);
2182
- this.state = 419;
2199
+ this.state = 426;
2183
2200
  this.errorHandler.sync(this);
2184
2201
  _la = this.tokenStream.LA(1);
2185
2202
  do {
2186
2203
  {
2187
- this.state = 419;
2204
+ this.state = 426;
2188
2205
  this.errorHandler.sync(this);
2189
2206
  switch (this.tokenStream.LA(1)) {
2190
2207
  case CircuitScriptParser.NEWLINE:
2191
2208
  {
2192
- this.state = 417;
2209
+ this.state = 424;
2193
2210
  this.match(CircuitScriptParser.NEWLINE);
2194
2211
  }
2195
2212
  break;
@@ -2216,7 +2233,7 @@ export class CircuitScriptParser extends antlr.Parser {
2216
2233
  case CircuitScriptParser.Divide:
2217
2234
  case CircuitScriptParser.ID:
2218
2235
  {
2219
- this.state = 418;
2236
+ this.state = 425;
2220
2237
  this.function_expr();
2221
2238
  }
2222
2239
  break;
@@ -2224,11 +2241,11 @@ export class CircuitScriptParser extends antlr.Parser {
2224
2241
  throw new antlr.NoViableAltException(this);
2225
2242
  }
2226
2243
  }
2227
- this.state = 421;
2244
+ this.state = 428;
2228
2245
  this.errorHandler.sync(this);
2229
2246
  _la = this.tokenStream.LA(1);
2230
2247
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2231
- this.state = 423;
2248
+ this.state = 430;
2232
2249
  this.match(CircuitScriptParser.DEDENT);
2233
2250
  }
2234
2251
  }
@@ -2250,7 +2267,7 @@ export class CircuitScriptParser extends antlr.Parser {
2250
2267
  let localContext = new Function_exprContext(this.context, this.state);
2251
2268
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2252
2269
  try {
2253
- this.state = 427;
2270
+ this.state = 434;
2254
2271
  this.errorHandler.sync(this);
2255
2272
  switch (this.tokenStream.LA(1)) {
2256
2273
  case CircuitScriptParser.T__3:
@@ -2276,14 +2293,14 @@ export class CircuitScriptParser extends antlr.Parser {
2276
2293
  case CircuitScriptParser.ID:
2277
2294
  this.enterOuterAlt(localContext, 1);
2278
2295
  {
2279
- this.state = 425;
2296
+ this.state = 432;
2280
2297
  this.expression();
2281
2298
  }
2282
2299
  break;
2283
2300
  case CircuitScriptParser.Return:
2284
2301
  this.enterOuterAlt(localContext, 2);
2285
2302
  {
2286
- this.state = 426;
2303
+ this.state = 433;
2287
2304
  this.function_return_expr();
2288
2305
  }
2289
2306
  break;
@@ -2311,49 +2328,49 @@ export class CircuitScriptParser extends antlr.Parser {
2311
2328
  let _la;
2312
2329
  try {
2313
2330
  let alternative;
2314
- this.state = 458;
2331
+ this.state = 465;
2315
2332
  this.errorHandler.sync(this);
2316
2333
  switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2317
2334
  case 1:
2318
2335
  this.enterOuterAlt(localContext, 1);
2319
2336
  {
2320
- this.state = 429;
2337
+ this.state = 436;
2321
2338
  this.match(CircuitScriptParser.ID);
2322
- this.state = 434;
2339
+ this.state = 441;
2323
2340
  this.errorHandler.sync(this);
2324
2341
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2325
2342
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2326
2343
  if (alternative === 1) {
2327
2344
  {
2328
2345
  {
2329
- this.state = 430;
2346
+ this.state = 437;
2330
2347
  this.match(CircuitScriptParser.T__1);
2331
- this.state = 431;
2348
+ this.state = 438;
2332
2349
  this.match(CircuitScriptParser.ID);
2333
2350
  }
2334
2351
  }
2335
2352
  }
2336
- this.state = 436;
2353
+ this.state = 443;
2337
2354
  this.errorHandler.sync(this);
2338
2355
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2339
2356
  }
2340
- this.state = 443;
2357
+ this.state = 450;
2341
2358
  this.errorHandler.sync(this);
2342
2359
  _la = this.tokenStream.LA(1);
2343
2360
  while (_la === 2) {
2344
2361
  {
2345
2362
  {
2346
- this.state = 437;
2363
+ this.state = 444;
2347
2364
  this.match(CircuitScriptParser.T__1);
2348
- this.state = 438;
2365
+ this.state = 445;
2349
2366
  this.match(CircuitScriptParser.ID);
2350
- this.state = 439;
2367
+ this.state = 446;
2351
2368
  this.match(CircuitScriptParser.T__2);
2352
- this.state = 440;
2369
+ this.state = 447;
2353
2370
  this.value_expr();
2354
2371
  }
2355
2372
  }
2356
- this.state = 445;
2373
+ this.state = 452;
2357
2374
  this.errorHandler.sync(this);
2358
2375
  _la = this.tokenStream.LA(1);
2359
2376
  }
@@ -2362,29 +2379,29 @@ export class CircuitScriptParser extends antlr.Parser {
2362
2379
  case 2:
2363
2380
  this.enterOuterAlt(localContext, 2);
2364
2381
  {
2365
- this.state = 446;
2382
+ this.state = 453;
2366
2383
  this.match(CircuitScriptParser.ID);
2367
- this.state = 447;
2384
+ this.state = 454;
2368
2385
  this.match(CircuitScriptParser.T__2);
2369
- this.state = 448;
2370
- this.value_expr();
2371
2386
  this.state = 455;
2387
+ this.value_expr();
2388
+ this.state = 462;
2372
2389
  this.errorHandler.sync(this);
2373
2390
  _la = this.tokenStream.LA(1);
2374
2391
  while (_la === 2) {
2375
2392
  {
2376
2393
  {
2377
- this.state = 449;
2394
+ this.state = 456;
2378
2395
  this.match(CircuitScriptParser.T__1);
2379
- this.state = 450;
2396
+ this.state = 457;
2380
2397
  this.match(CircuitScriptParser.ID);
2381
- this.state = 451;
2398
+ this.state = 458;
2382
2399
  this.match(CircuitScriptParser.T__2);
2383
- this.state = 452;
2400
+ this.state = 459;
2384
2401
  this.value_expr();
2385
2402
  }
2386
2403
  }
2387
- this.state = 457;
2404
+ this.state = 464;
2388
2405
  this.errorHandler.sync(this);
2389
2406
  _la = this.tokenStream.LA(1);
2390
2407
  }
@@ -2413,23 +2430,21 @@ export class CircuitScriptParser extends antlr.Parser {
2413
2430
  let alternative;
2414
2431
  this.enterOuterAlt(localContext, 1);
2415
2432
  {
2416
- this.state = 460;
2433
+ this.state = 467;
2417
2434
  this.match(CircuitScriptParser.ID);
2418
- this.state = 465;
2435
+ this.state = 471;
2419
2436
  this.errorHandler.sync(this);
2420
2437
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2421
2438
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2422
2439
  if (alternative === 1) {
2423
2440
  {
2424
2441
  {
2425
- this.state = 461;
2426
- this.match(CircuitScriptParser.T__4);
2427
- this.state = 462;
2428
- this.match(CircuitScriptParser.ID);
2442
+ this.state = 468;
2443
+ this.trailer_expr2();
2429
2444
  }
2430
2445
  }
2431
2446
  }
2432
- this.state = 467;
2447
+ this.state = 473;
2433
2448
  this.errorHandler.sync(this);
2434
2449
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2435
2450
  }
@@ -2454,36 +2469,80 @@ export class CircuitScriptParser extends antlr.Parser {
2454
2469
  this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2455
2470
  let _la;
2456
2471
  try {
2457
- this.state = 475;
2472
+ this.state = 480;
2458
2473
  this.errorHandler.sync(this);
2459
2474
  switch (this.tokenStream.LA(1)) {
2460
2475
  case CircuitScriptParser.OPEN_PAREN:
2461
2476
  this.enterOuterAlt(localContext, 1);
2462
2477
  {
2463
- this.state = 468;
2478
+ this.state = 474;
2464
2479
  this.match(CircuitScriptParser.OPEN_PAREN);
2465
- this.state = 470;
2480
+ this.state = 476;
2466
2481
  this.errorHandler.sync(this);
2467
2482
  _la = this.tokenStream.LA(1);
2468
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2483
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2469
2484
  {
2470
- this.state = 469;
2485
+ this.state = 475;
2471
2486
  this.parameters();
2472
2487
  }
2473
2488
  }
2474
- this.state = 472;
2489
+ this.state = 478;
2475
2490
  this.match(CircuitScriptParser.CLOSE_PAREN);
2476
2491
  }
2477
2492
  break;
2478
2493
  case CircuitScriptParser.T__4:
2494
+ case CircuitScriptParser.T__6:
2479
2495
  this.enterOuterAlt(localContext, 2);
2480
2496
  {
2481
- this.state = 473;
2482
- this.match(CircuitScriptParser.T__4);
2483
- this.state = 474;
2497
+ this.state = 479;
2498
+ this.trailer_expr2();
2499
+ }
2500
+ break;
2501
+ default:
2502
+ throw new antlr.NoViableAltException(this);
2503
+ }
2504
+ }
2505
+ catch (re) {
2506
+ if (re instanceof antlr.RecognitionException) {
2507
+ this.errorHandler.reportError(this, re);
2508
+ this.errorHandler.recover(this, re);
2509
+ }
2510
+ else {
2511
+ throw re;
2512
+ }
2513
+ }
2514
+ finally {
2515
+ this.exitRule();
2516
+ }
2517
+ return localContext;
2518
+ }
2519
+ trailer_expr2() {
2520
+ let localContext = new Trailer_expr2Context(this.context, this.state);
2521
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr2);
2522
+ try {
2523
+ this.state = 488;
2524
+ this.errorHandler.sync(this);
2525
+ switch (this.tokenStream.LA(1)) {
2526
+ case CircuitScriptParser.T__6:
2527
+ this.enterOuterAlt(localContext, 1);
2528
+ {
2529
+ this.state = 482;
2530
+ this.match(CircuitScriptParser.T__6);
2531
+ this.state = 483;
2484
2532
  this.match(CircuitScriptParser.ID);
2485
2533
  }
2486
2534
  break;
2535
+ case CircuitScriptParser.T__4:
2536
+ this.enterOuterAlt(localContext, 2);
2537
+ {
2538
+ this.state = 484;
2539
+ this.match(CircuitScriptParser.T__4);
2540
+ this.state = 485;
2541
+ this.data_expr(0);
2542
+ this.state = 486;
2543
+ this.match(CircuitScriptParser.T__5);
2544
+ }
2545
+ break;
2487
2546
  default:
2488
2547
  throw new antlr.NoViableAltException(this);
2489
2548
  }
@@ -2504,24 +2563,24 @@ export class CircuitScriptParser extends antlr.Parser {
2504
2563
  }
2505
2564
  function_call_expr() {
2506
2565
  let localContext = new Function_call_exprContext(this.context, this.state);
2507
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_call_expr);
2566
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_function_call_expr);
2508
2567
  let _la;
2509
2568
  try {
2510
2569
  let alternative;
2511
2570
  this.enterOuterAlt(localContext, 1);
2512
2571
  {
2513
- this.state = 478;
2572
+ this.state = 491;
2514
2573
  this.errorHandler.sync(this);
2515
2574
  _la = this.tokenStream.LA(1);
2516
2575
  if (_la === 42 || _la === 44) {
2517
2576
  {
2518
- this.state = 477;
2577
+ this.state = 490;
2519
2578
  this.net_namespace_expr();
2520
2579
  }
2521
2580
  }
2522
- this.state = 480;
2581
+ this.state = 493;
2523
2582
  this.match(CircuitScriptParser.ID);
2524
- this.state = 482;
2583
+ this.state = 495;
2525
2584
  this.errorHandler.sync(this);
2526
2585
  alternative = 1;
2527
2586
  do {
@@ -2529,7 +2588,7 @@ export class CircuitScriptParser extends antlr.Parser {
2529
2588
  case 1:
2530
2589
  {
2531
2590
  {
2532
- this.state = 481;
2591
+ this.state = 494;
2533
2592
  this.trailer_expr();
2534
2593
  }
2535
2594
  }
@@ -2537,9 +2596,9 @@ export class CircuitScriptParser extends antlr.Parser {
2537
2596
  default:
2538
2597
  throw new antlr.NoViableAltException(this);
2539
2598
  }
2540
- this.state = 484;
2599
+ this.state = 497;
2541
2600
  this.errorHandler.sync(this);
2542
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2601
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 50, this.context);
2543
2602
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2544
2603
  }
2545
2604
  }
@@ -2559,28 +2618,28 @@ export class CircuitScriptParser extends antlr.Parser {
2559
2618
  }
2560
2619
  net_namespace_expr() {
2561
2620
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2562
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_net_namespace_expr);
2621
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_net_namespace_expr);
2563
2622
  let _la;
2564
2623
  try {
2565
2624
  this.enterOuterAlt(localContext, 1);
2566
2625
  {
2567
- this.state = 487;
2626
+ this.state = 500;
2568
2627
  this.errorHandler.sync(this);
2569
2628
  _la = this.tokenStream.LA(1);
2570
2629
  if (_la === 42) {
2571
2630
  {
2572
- this.state = 486;
2631
+ this.state = 499;
2573
2632
  this.match(CircuitScriptParser.Addition);
2574
2633
  }
2575
2634
  }
2576
- this.state = 489;
2635
+ this.state = 502;
2577
2636
  this.match(CircuitScriptParser.Divide);
2578
- this.state = 491;
2637
+ this.state = 504;
2579
2638
  this.errorHandler.sync(this);
2580
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2639
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context)) {
2581
2640
  case 1:
2582
2641
  {
2583
- this.state = 490;
2642
+ this.state = 503;
2584
2643
  this.data_expr(0);
2585
2644
  }
2586
2645
  break;
@@ -2603,13 +2662,13 @@ export class CircuitScriptParser extends antlr.Parser {
2603
2662
  }
2604
2663
  function_return_expr() {
2605
2664
  let localContext = new Function_return_exprContext(this.context, this.state);
2606
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_return_expr);
2665
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_function_return_expr);
2607
2666
  try {
2608
2667
  this.enterOuterAlt(localContext, 1);
2609
2668
  {
2610
- this.state = 493;
2669
+ this.state = 506;
2611
2670
  this.match(CircuitScriptParser.Return);
2612
- this.state = 494;
2671
+ this.state = 507;
2613
2672
  this.data_expr(0);
2614
2673
  }
2615
2674
  }
@@ -2629,15 +2688,15 @@ export class CircuitScriptParser extends antlr.Parser {
2629
2688
  }
2630
2689
  property_block_expr() {
2631
2690
  let localContext = new Property_block_exprContext(this.context, this.state);
2632
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_block_expr);
2691
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_block_expr);
2633
2692
  try {
2634
2693
  this.enterOuterAlt(localContext, 1);
2635
2694
  {
2636
- this.state = 496;
2695
+ this.state = 509;
2637
2696
  this.property_key_expr();
2638
- this.state = 497;
2697
+ this.state = 510;
2639
2698
  this.match(CircuitScriptParser.T__0);
2640
- this.state = 498;
2699
+ this.state = 511;
2641
2700
  this.expressions_block();
2642
2701
  }
2643
2702
  }
@@ -2657,32 +2716,32 @@ export class CircuitScriptParser extends antlr.Parser {
2657
2716
  }
2658
2717
  create_component_expr() {
2659
2718
  let localContext = new Create_component_exprContext(this.context, this.state);
2660
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_component_expr);
2719
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_create_component_expr);
2661
2720
  let _la;
2662
2721
  try {
2663
2722
  this.enterOuterAlt(localContext, 1);
2664
2723
  {
2665
- this.state = 500;
2724
+ this.state = 513;
2666
2725
  this.match(CircuitScriptParser.Create);
2667
- this.state = 501;
2726
+ this.state = 514;
2668
2727
  this.match(CircuitScriptParser.Component);
2669
- this.state = 502;
2728
+ this.state = 515;
2670
2729
  this.match(CircuitScriptParser.T__0);
2671
- this.state = 503;
2730
+ this.state = 516;
2672
2731
  this.match(CircuitScriptParser.NEWLINE);
2673
- this.state = 504;
2732
+ this.state = 517;
2674
2733
  this.match(CircuitScriptParser.INDENT);
2675
- this.state = 507;
2734
+ this.state = 520;
2676
2735
  this.errorHandler.sync(this);
2677
2736
  _la = this.tokenStream.LA(1);
2678
2737
  do {
2679
2738
  {
2680
- this.state = 507;
2739
+ this.state = 520;
2681
2740
  this.errorHandler.sync(this);
2682
2741
  switch (this.tokenStream.LA(1)) {
2683
2742
  case CircuitScriptParser.NEWLINE:
2684
2743
  {
2685
- this.state = 505;
2744
+ this.state = 518;
2686
2745
  this.match(CircuitScriptParser.NEWLINE);
2687
2746
  }
2688
2747
  break;
@@ -2690,7 +2749,7 @@ export class CircuitScriptParser extends antlr.Parser {
2690
2749
  case CircuitScriptParser.INTEGER_VALUE:
2691
2750
  case CircuitScriptParser.STRING_VALUE:
2692
2751
  {
2693
- this.state = 506;
2752
+ this.state = 519;
2694
2753
  this.property_expr();
2695
2754
  }
2696
2755
  break;
@@ -2698,11 +2757,11 @@ export class CircuitScriptParser extends antlr.Parser {
2698
2757
  throw new antlr.NoViableAltException(this);
2699
2758
  }
2700
2759
  }
2701
- this.state = 509;
2760
+ this.state = 522;
2702
2761
  this.errorHandler.sync(this);
2703
2762
  _la = this.tokenStream.LA(1);
2704
2763
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2705
- this.state = 511;
2764
+ this.state = 524;
2706
2765
  this.match(CircuitScriptParser.DEDENT);
2707
2766
  }
2708
2767
  }
@@ -2722,26 +2781,26 @@ export class CircuitScriptParser extends antlr.Parser {
2722
2781
  }
2723
2782
  graphic_expressions_block() {
2724
2783
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2725
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_graphic_expressions_block);
2784
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_graphic_expressions_block);
2726
2785
  let _la;
2727
2786
  try {
2728
2787
  this.enterOuterAlt(localContext, 1);
2729
2788
  {
2730
- this.state = 513;
2789
+ this.state = 526;
2731
2790
  this.match(CircuitScriptParser.NEWLINE);
2732
- this.state = 514;
2791
+ this.state = 527;
2733
2792
  this.match(CircuitScriptParser.INDENT);
2734
- this.state = 517;
2793
+ this.state = 530;
2735
2794
  this.errorHandler.sync(this);
2736
2795
  _la = this.tokenStream.LA(1);
2737
2796
  do {
2738
2797
  {
2739
- this.state = 517;
2798
+ this.state = 530;
2740
2799
  this.errorHandler.sync(this);
2741
2800
  switch (this.tokenStream.LA(1)) {
2742
2801
  case CircuitScriptParser.NEWLINE:
2743
2802
  {
2744
- this.state = 515;
2803
+ this.state = 528;
2745
2804
  this.match(CircuitScriptParser.NEWLINE);
2746
2805
  }
2747
2806
  break;
@@ -2749,7 +2808,7 @@ export class CircuitScriptParser extends antlr.Parser {
2749
2808
  case CircuitScriptParser.For:
2750
2809
  case CircuitScriptParser.ID:
2751
2810
  {
2752
- this.state = 516;
2811
+ this.state = 529;
2753
2812
  this.graphic_expr();
2754
2813
  }
2755
2814
  break;
@@ -2757,11 +2816,11 @@ export class CircuitScriptParser extends antlr.Parser {
2757
2816
  throw new antlr.NoViableAltException(this);
2758
2817
  }
2759
2818
  }
2760
- this.state = 519;
2819
+ this.state = 532;
2761
2820
  this.errorHandler.sync(this);
2762
2821
  _la = this.tokenStream.LA(1);
2763
2822
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2764
- this.state = 521;
2823
+ this.state = 534;
2765
2824
  this.match(CircuitScriptParser.DEDENT);
2766
2825
  }
2767
2826
  }
@@ -2781,31 +2840,31 @@ export class CircuitScriptParser extends antlr.Parser {
2781
2840
  }
2782
2841
  create_graphic_expr() {
2783
2842
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2784
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2843
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_graphic_expr);
2785
2844
  let _la;
2786
2845
  try {
2787
2846
  this.enterOuterAlt(localContext, 1);
2788
2847
  {
2789
- this.state = 523;
2848
+ this.state = 536;
2790
2849
  this.match(CircuitScriptParser.Create);
2791
- this.state = 524;
2850
+ this.state = 537;
2792
2851
  this.match(CircuitScriptParser.Graphic);
2793
- this.state = 528;
2852
+ this.state = 541;
2794
2853
  this.errorHandler.sync(this);
2795
2854
  _la = this.tokenStream.LA(1);
2796
2855
  if (_la === 52) {
2797
2856
  {
2798
- this.state = 525;
2857
+ this.state = 538;
2799
2858
  this.match(CircuitScriptParser.OPEN_PAREN);
2800
- this.state = 526;
2859
+ this.state = 539;
2801
2860
  this.match(CircuitScriptParser.ID);
2802
- this.state = 527;
2861
+ this.state = 540;
2803
2862
  this.match(CircuitScriptParser.CLOSE_PAREN);
2804
2863
  }
2805
2864
  }
2806
- this.state = 530;
2865
+ this.state = 543;
2807
2866
  this.match(CircuitScriptParser.T__0);
2808
- this.state = 531;
2867
+ this.state = 544;
2809
2868
  this.graphic_expressions_block();
2810
2869
  }
2811
2870
  }
@@ -2825,54 +2884,54 @@ export class CircuitScriptParser extends antlr.Parser {
2825
2884
  }
2826
2885
  create_module_expr() {
2827
2886
  let localContext = new Create_module_exprContext(this.context, this.state);
2828
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_module_expr);
2887
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_module_expr);
2829
2888
  let _la;
2830
2889
  try {
2831
2890
  this.enterOuterAlt(localContext, 1);
2832
2891
  {
2833
- this.state = 533;
2892
+ this.state = 546;
2834
2893
  this.match(CircuitScriptParser.Create);
2835
- this.state = 534;
2894
+ this.state = 547;
2836
2895
  this.match(CircuitScriptParser.Module);
2837
- this.state = 535;
2896
+ this.state = 548;
2838
2897
  this.match(CircuitScriptParser.T__0);
2839
- this.state = 536;
2898
+ this.state = 549;
2840
2899
  this.match(CircuitScriptParser.NEWLINE);
2841
- this.state = 537;
2900
+ this.state = 550;
2842
2901
  this.match(CircuitScriptParser.INDENT);
2843
- this.state = 541;
2902
+ this.state = 554;
2844
2903
  this.errorHandler.sync(this);
2845
2904
  _la = this.tokenStream.LA(1);
2846
2905
  do {
2847
2906
  {
2848
- this.state = 541;
2907
+ this.state = 554;
2849
2908
  this.errorHandler.sync(this);
2850
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2909
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2851
2910
  case 1:
2852
2911
  {
2853
- this.state = 538;
2912
+ this.state = 551;
2854
2913
  this.match(CircuitScriptParser.NEWLINE);
2855
2914
  }
2856
2915
  break;
2857
2916
  case 2:
2858
2917
  {
2859
- this.state = 539;
2918
+ this.state = 552;
2860
2919
  this.property_expr();
2861
2920
  }
2862
2921
  break;
2863
2922
  case 3:
2864
2923
  {
2865
- this.state = 540;
2924
+ this.state = 553;
2866
2925
  this.property_block_expr();
2867
2926
  }
2868
2927
  break;
2869
2928
  }
2870
2929
  }
2871
- this.state = 543;
2930
+ this.state = 556;
2872
2931
  this.errorHandler.sync(this);
2873
2932
  _la = this.tokenStream.LA(1);
2874
2933
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2875
- this.state = 545;
2934
+ this.state = 558;
2876
2935
  this.match(CircuitScriptParser.DEDENT);
2877
2936
  }
2878
2937
  }
@@ -2892,27 +2951,27 @@ export class CircuitScriptParser extends antlr.Parser {
2892
2951
  }
2893
2952
  nested_properties_inner() {
2894
2953
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2895
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_nested_properties_inner);
2954
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_nested_properties_inner);
2896
2955
  let _la;
2897
2956
  try {
2898
2957
  this.enterOuterAlt(localContext, 1);
2899
2958
  {
2900
2959
  {
2901
- this.state = 547;
2960
+ this.state = 560;
2902
2961
  this.match(CircuitScriptParser.NEWLINE);
2903
- this.state = 548;
2962
+ this.state = 561;
2904
2963
  this.match(CircuitScriptParser.INDENT);
2905
- this.state = 551;
2964
+ this.state = 564;
2906
2965
  this.errorHandler.sync(this);
2907
2966
  _la = this.tokenStream.LA(1);
2908
2967
  do {
2909
2968
  {
2910
- this.state = 551;
2969
+ this.state = 564;
2911
2970
  this.errorHandler.sync(this);
2912
2971
  switch (this.tokenStream.LA(1)) {
2913
2972
  case CircuitScriptParser.NEWLINE:
2914
2973
  {
2915
- this.state = 549;
2974
+ this.state = 562;
2916
2975
  this.match(CircuitScriptParser.NEWLINE);
2917
2976
  }
2918
2977
  break;
@@ -2920,7 +2979,7 @@ export class CircuitScriptParser extends antlr.Parser {
2920
2979
  case CircuitScriptParser.INTEGER_VALUE:
2921
2980
  case CircuitScriptParser.STRING_VALUE:
2922
2981
  {
2923
- this.state = 550;
2982
+ this.state = 563;
2924
2983
  this.property_expr();
2925
2984
  }
2926
2985
  break;
@@ -2928,11 +2987,11 @@ export class CircuitScriptParser extends antlr.Parser {
2928
2987
  throw new antlr.NoViableAltException(this);
2929
2988
  }
2930
2989
  }
2931
- this.state = 553;
2990
+ this.state = 566;
2932
2991
  this.errorHandler.sync(this);
2933
2992
  _la = this.tokenStream.LA(1);
2934
2993
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2935
- this.state = 555;
2994
+ this.state = 568;
2936
2995
  this.match(CircuitScriptParser.DEDENT);
2937
2996
  }
2938
2997
  }
@@ -2953,10 +3012,10 @@ export class CircuitScriptParser extends antlr.Parser {
2953
3012
  }
2954
3013
  graphic_expr() {
2955
3014
  let localContext = new Graphic_exprContext(this.context, this.state);
2956
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
3015
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_graphic_expr);
2957
3016
  let _la;
2958
3017
  try {
2959
- this.state = 583;
3018
+ this.state = 596;
2960
3019
  this.errorHandler.sync(this);
2961
3020
  switch (this.tokenStream.LA(1)) {
2962
3021
  case CircuitScriptParser.Pin:
@@ -2964,7 +3023,7 @@ export class CircuitScriptParser extends antlr.Parser {
2964
3023
  localContext = new GraphicCommandExprContext(localContext);
2965
3024
  this.enterOuterAlt(localContext, 1);
2966
3025
  {
2967
- this.state = 557;
3026
+ this.state = 570;
2968
3027
  localContext._command = this.tokenStream.LT(1);
2969
3028
  _la = this.tokenStream.LA(1);
2970
3029
  if (!(_la === 15 || _la === 56)) {
@@ -2974,37 +3033,37 @@ export class CircuitScriptParser extends antlr.Parser {
2974
3033
  this.errorHandler.reportMatch(this);
2975
3034
  this.consume();
2976
3035
  }
2977
- this.state = 559;
3036
+ this.state = 572;
2978
3037
  this.errorHandler.sync(this);
2979
3038
  _la = this.tokenStream.LA(1);
2980
3039
  if (_la === 1) {
2981
3040
  {
2982
- this.state = 558;
3041
+ this.state = 571;
2983
3042
  this.match(CircuitScriptParser.T__0);
2984
3043
  }
2985
3044
  }
2986
- this.state = 567;
3045
+ this.state = 580;
2987
3046
  this.errorHandler.sync(this);
2988
- switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
3047
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2989
3048
  case 1:
2990
3049
  {
2991
- this.state = 561;
3050
+ this.state = 574;
2992
3051
  this.parameters();
2993
3052
  }
2994
3053
  break;
2995
3054
  case 2:
2996
3055
  {
2997
- this.state = 562;
3056
+ this.state = 575;
2998
3057
  this.match(CircuitScriptParser.OPEN_PAREN);
2999
- this.state = 563;
3058
+ this.state = 576;
3000
3059
  this.parameters();
3001
- this.state = 564;
3060
+ this.state = 577;
3002
3061
  this.match(CircuitScriptParser.CLOSE_PAREN);
3003
3062
  }
3004
3063
  break;
3005
3064
  case 3:
3006
3065
  {
3007
- this.state = 566;
3066
+ this.state = 579;
3008
3067
  this.nested_properties_inner();
3009
3068
  }
3010
3069
  break;
@@ -3015,33 +3074,33 @@ export class CircuitScriptParser extends antlr.Parser {
3015
3074
  localContext = new GraphicForExprContext(localContext);
3016
3075
  this.enterOuterAlt(localContext, 2);
3017
3076
  {
3018
- this.state = 569;
3077
+ this.state = 582;
3019
3078
  this.match(CircuitScriptParser.For);
3020
- this.state = 570;
3079
+ this.state = 583;
3021
3080
  this.match(CircuitScriptParser.ID);
3022
- this.state = 575;
3081
+ this.state = 588;
3023
3082
  this.errorHandler.sync(this);
3024
3083
  _la = this.tokenStream.LA(1);
3025
3084
  while (_la === 2) {
3026
3085
  {
3027
3086
  {
3028
- this.state = 571;
3087
+ this.state = 584;
3029
3088
  this.match(CircuitScriptParser.T__1);
3030
- this.state = 572;
3089
+ this.state = 585;
3031
3090
  this.match(CircuitScriptParser.ID);
3032
3091
  }
3033
3092
  }
3034
- this.state = 577;
3093
+ this.state = 590;
3035
3094
  this.errorHandler.sync(this);
3036
3095
  _la = this.tokenStream.LA(1);
3037
3096
  }
3038
- this.state = 578;
3097
+ this.state = 591;
3039
3098
  this.match(CircuitScriptParser.In);
3040
- this.state = 579;
3099
+ this.state = 592;
3041
3100
  this.data_expr(0);
3042
- this.state = 580;
3101
+ this.state = 593;
3043
3102
  this.match(CircuitScriptParser.T__0);
3044
- this.state = 581;
3103
+ this.state = 594;
3045
3104
  this.graphic_expressions_block();
3046
3105
  }
3047
3106
  break;
@@ -3065,15 +3124,15 @@ export class CircuitScriptParser extends antlr.Parser {
3065
3124
  }
3066
3125
  property_expr() {
3067
3126
  let localContext = new Property_exprContext(this.context, this.state);
3068
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_property_expr);
3127
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_expr);
3069
3128
  try {
3070
3129
  this.enterOuterAlt(localContext, 1);
3071
3130
  {
3072
- this.state = 585;
3131
+ this.state = 598;
3073
3132
  this.property_key_expr();
3074
- this.state = 586;
3133
+ this.state = 599;
3075
3134
  this.match(CircuitScriptParser.T__0);
3076
- this.state = 587;
3135
+ this.state = 600;
3077
3136
  this.property_value_expr();
3078
3137
  }
3079
3138
  }
@@ -3093,12 +3152,12 @@ export class CircuitScriptParser extends antlr.Parser {
3093
3152
  }
3094
3153
  property_key_expr() {
3095
3154
  let localContext = new Property_key_exprContext(this.context, this.state);
3096
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_key_expr);
3155
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_key_expr);
3097
3156
  let _la;
3098
3157
  try {
3099
3158
  this.enterOuterAlt(localContext, 1);
3100
3159
  {
3101
- this.state = 589;
3160
+ this.state = 602;
3102
3161
  _la = this.tokenStream.LA(1);
3103
3162
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
3104
3163
  this.errorHandler.recoverInline(this);
@@ -3125,21 +3184,21 @@ export class CircuitScriptParser extends antlr.Parser {
3125
3184
  }
3126
3185
  property_value_expr() {
3127
3186
  let localContext = new Property_value_exprContext(this.context, this.state);
3128
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
3187
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_value_expr);
3129
3188
  let _la;
3130
3189
  try {
3131
- this.state = 600;
3190
+ this.state = 613;
3132
3191
  this.errorHandler.sync(this);
3133
3192
  switch (this.tokenStream.LA(1)) {
3134
3193
  case CircuitScriptParser.NEWLINE:
3135
3194
  localContext = new Nested_propertiesContext(localContext);
3136
3195
  this.enterOuterAlt(localContext, 1);
3137
3196
  {
3138
- this.state = 591;
3197
+ this.state = 604;
3139
3198
  this.nested_properties_inner();
3140
3199
  }
3141
3200
  break;
3142
- case CircuitScriptParser.T__5:
3201
+ case CircuitScriptParser.T__4:
3143
3202
  case CircuitScriptParser.Create:
3144
3203
  case CircuitScriptParser.Not:
3145
3204
  case CircuitScriptParser.Addition:
@@ -3156,21 +3215,21 @@ export class CircuitScriptParser extends antlr.Parser {
3156
3215
  localContext = new Single_line_propertyContext(localContext);
3157
3216
  this.enterOuterAlt(localContext, 2);
3158
3217
  {
3159
- this.state = 592;
3218
+ this.state = 605;
3160
3219
  this.data_expr(0);
3161
- this.state = 597;
3220
+ this.state = 610;
3162
3221
  this.errorHandler.sync(this);
3163
3222
  _la = this.tokenStream.LA(1);
3164
3223
  while (_la === 2) {
3165
3224
  {
3166
3225
  {
3167
- this.state = 593;
3226
+ this.state = 606;
3168
3227
  this.match(CircuitScriptParser.T__1);
3169
- this.state = 594;
3228
+ this.state = 607;
3170
3229
  this.data_expr(0);
3171
3230
  }
3172
3231
  }
3173
- this.state = 599;
3232
+ this.state = 612;
3174
3233
  this.errorHandler.sync(this);
3175
3234
  _la = this.tokenStream.LA(1);
3176
3235
  }
@@ -3196,29 +3255,29 @@ export class CircuitScriptParser extends antlr.Parser {
3196
3255
  }
3197
3256
  wire_atom_expr() {
3198
3257
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3199
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3258
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_atom_expr);
3200
3259
  try {
3201
- this.state = 608;
3260
+ this.state = 621;
3202
3261
  this.errorHandler.sync(this);
3203
- switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3262
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3204
3263
  case 1:
3205
3264
  localContext = new Wire_expr_direction_valueContext(localContext);
3206
3265
  this.enterOuterAlt(localContext, 1);
3207
3266
  {
3208
- this.state = 602;
3267
+ this.state = 615;
3209
3268
  this.match(CircuitScriptParser.ID);
3210
- this.state = 605;
3269
+ this.state = 618;
3211
3270
  this.errorHandler.sync(this);
3212
- switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3271
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3213
3272
  case 1:
3214
3273
  {
3215
- this.state = 603;
3274
+ this.state = 616;
3216
3275
  this.match(CircuitScriptParser.INTEGER_VALUE);
3217
3276
  }
3218
3277
  break;
3219
3278
  case 2:
3220
3279
  {
3221
- this.state = 604;
3280
+ this.state = 617;
3222
3281
  this.data_expr(0);
3223
3282
  }
3224
3283
  break;
@@ -3229,7 +3288,7 @@ export class CircuitScriptParser extends antlr.Parser {
3229
3288
  localContext = new Wire_expr_direction_onlyContext(localContext);
3230
3289
  this.enterOuterAlt(localContext, 2);
3231
3290
  {
3232
- this.state = 607;
3291
+ this.state = 620;
3233
3292
  this.match(CircuitScriptParser.ID);
3234
3293
  }
3235
3294
  break;
@@ -3251,28 +3310,28 @@ export class CircuitScriptParser extends antlr.Parser {
3251
3310
  }
3252
3311
  wire_expr() {
3253
3312
  let localContext = new Wire_exprContext(this.context, this.state);
3254
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_expr);
3313
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_expr);
3255
3314
  try {
3256
3315
  let alternative;
3257
3316
  this.enterOuterAlt(localContext, 1);
3258
3317
  {
3259
- this.state = 610;
3318
+ this.state = 623;
3260
3319
  this.match(CircuitScriptParser.Wire);
3261
- this.state = 614;
3320
+ this.state = 627;
3262
3321
  this.errorHandler.sync(this);
3263
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3322
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3264
3323
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3265
3324
  if (alternative === 1) {
3266
3325
  {
3267
3326
  {
3268
- this.state = 611;
3327
+ this.state = 624;
3269
3328
  this.wire_atom_expr();
3270
3329
  }
3271
3330
  }
3272
3331
  }
3273
- this.state = 616;
3332
+ this.state = 629;
3274
3333
  this.errorHandler.sync(this);
3275
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3334
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3276
3335
  }
3277
3336
  }
3278
3337
  }
@@ -3292,45 +3351,45 @@ export class CircuitScriptParser extends antlr.Parser {
3292
3351
  }
3293
3352
  array_expr() {
3294
3353
  let localContext = new Array_exprContext(this.context, this.state);
3295
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_array_expr);
3354
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_array_expr);
3296
3355
  let _la;
3297
3356
  try {
3298
3357
  this.enterOuterAlt(localContext, 1);
3299
3358
  {
3300
- this.state = 617;
3301
- this.match(CircuitScriptParser.T__5);
3302
- this.state = 628;
3359
+ this.state = 630;
3360
+ this.match(CircuitScriptParser.T__4);
3361
+ this.state = 641;
3303
3362
  this.errorHandler.sync(this);
3304
3363
  _la = this.tokenStream.LA(1);
3305
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3364
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3306
3365
  {
3307
3366
  {
3308
- this.state = 618;
3367
+ this.state = 631;
3309
3368
  this.data_expr(0);
3310
- this.state = 623;
3369
+ this.state = 636;
3311
3370
  this.errorHandler.sync(this);
3312
3371
  _la = this.tokenStream.LA(1);
3313
3372
  while (_la === 2) {
3314
3373
  {
3315
3374
  {
3316
- this.state = 619;
3375
+ this.state = 632;
3317
3376
  this.match(CircuitScriptParser.T__1);
3318
- this.state = 620;
3377
+ this.state = 633;
3319
3378
  this.data_expr(0);
3320
3379
  }
3321
3380
  }
3322
- this.state = 625;
3381
+ this.state = 638;
3323
3382
  this.errorHandler.sync(this);
3324
3383
  _la = this.tokenStream.LA(1);
3325
3384
  }
3326
3385
  }
3327
3386
  }
3328
- this.state = 630;
3387
+ this.state = 643;
3329
3388
  this.errorHandler.sync(this);
3330
3389
  _la = this.tokenStream.LA(1);
3331
3390
  }
3332
- this.state = 631;
3333
- this.match(CircuitScriptParser.T__6);
3391
+ this.state = 644;
3392
+ this.match(CircuitScriptParser.T__5);
3334
3393
  }
3335
3394
  }
3336
3395
  catch (re) {
@@ -3349,24 +3408,24 @@ export class CircuitScriptParser extends antlr.Parser {
3349
3408
  }
3350
3409
  point_expr() {
3351
3410
  let localContext = new Point_exprContext(this.context, this.state);
3352
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_point_expr);
3411
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_point_expr);
3353
3412
  try {
3354
3413
  this.enterOuterAlt(localContext, 1);
3355
3414
  {
3356
- this.state = 633;
3415
+ this.state = 646;
3357
3416
  this.match(CircuitScriptParser.Point);
3358
- this.state = 636;
3417
+ this.state = 649;
3359
3418
  this.errorHandler.sync(this);
3360
- switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3419
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
3361
3420
  case 1:
3362
3421
  {
3363
- this.state = 634;
3422
+ this.state = 647;
3364
3423
  this.match(CircuitScriptParser.ID);
3365
3424
  }
3366
3425
  break;
3367
3426
  case 2:
3368
3427
  {
3369
- this.state = 635;
3428
+ this.state = 648;
3370
3429
  this.data_expr(0);
3371
3430
  }
3372
3431
  break;
@@ -3389,13 +3448,13 @@ export class CircuitScriptParser extends antlr.Parser {
3389
3448
  }
3390
3449
  import_expr() {
3391
3450
  let localContext = new Import_exprContext(this.context, this.state);
3392
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_import_expr);
3451
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_import_expr);
3393
3452
  try {
3394
3453
  this.enterOuterAlt(localContext, 1);
3395
3454
  {
3396
- this.state = 638;
3455
+ this.state = 651;
3397
3456
  this.match(CircuitScriptParser.Import);
3398
- this.state = 639;
3457
+ this.state = 652;
3399
3458
  this.match(CircuitScriptParser.ID);
3400
3459
  }
3401
3460
  }
@@ -3415,12 +3474,12 @@ export class CircuitScriptParser extends antlr.Parser {
3415
3474
  }
3416
3475
  frame_expr() {
3417
3476
  let localContext = new Frame_exprContext(this.context, this.state);
3418
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_frame_expr);
3477
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_frame_expr);
3419
3478
  let _la;
3420
3479
  try {
3421
3480
  this.enterOuterAlt(localContext, 1);
3422
3481
  {
3423
- this.state = 641;
3482
+ this.state = 654;
3424
3483
  _la = this.tokenStream.LA(1);
3425
3484
  if (!(_la === 32 || _la === 33)) {
3426
3485
  this.errorHandler.recoverInline(this);
@@ -3429,9 +3488,9 @@ export class CircuitScriptParser extends antlr.Parser {
3429
3488
  this.errorHandler.reportMatch(this);
3430
3489
  this.consume();
3431
3490
  }
3432
- this.state = 642;
3491
+ this.state = 655;
3433
3492
  this.match(CircuitScriptParser.T__0);
3434
- this.state = 643;
3493
+ this.state = 656;
3435
3494
  this.expressions_block();
3436
3495
  }
3437
3496
  }
@@ -3451,42 +3510,42 @@ export class CircuitScriptParser extends antlr.Parser {
3451
3510
  }
3452
3511
  if_expr() {
3453
3512
  let localContext = new If_exprContext(this.context, this.state);
3454
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_if_expr);
3513
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_expr);
3455
3514
  let _la;
3456
3515
  try {
3457
3516
  let alternative;
3458
3517
  this.enterOuterAlt(localContext, 1);
3459
3518
  {
3460
- this.state = 645;
3519
+ this.state = 658;
3461
3520
  this.match(CircuitScriptParser.If);
3462
- this.state = 646;
3521
+ this.state = 659;
3463
3522
  this.data_expr(0);
3464
- this.state = 647;
3523
+ this.state = 660;
3465
3524
  this.match(CircuitScriptParser.T__0);
3466
- this.state = 648;
3525
+ this.state = 661;
3467
3526
  this.expressions_block();
3468
- this.state = 652;
3527
+ this.state = 665;
3469
3528
  this.errorHandler.sync(this);
3470
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3529
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3471
3530
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3472
3531
  if (alternative === 1) {
3473
3532
  {
3474
3533
  {
3475
- this.state = 649;
3534
+ this.state = 662;
3476
3535
  this.if_inner_expr();
3477
3536
  }
3478
3537
  }
3479
3538
  }
3480
- this.state = 654;
3539
+ this.state = 667;
3481
3540
  this.errorHandler.sync(this);
3482
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3541
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3483
3542
  }
3484
- this.state = 656;
3543
+ this.state = 669;
3485
3544
  this.errorHandler.sync(this);
3486
3545
  _la = this.tokenStream.LA(1);
3487
3546
  if (_la === 30) {
3488
3547
  {
3489
- this.state = 655;
3548
+ this.state = 668;
3490
3549
  this.else_expr();
3491
3550
  }
3492
3551
  }
@@ -3508,19 +3567,19 @@ export class CircuitScriptParser extends antlr.Parser {
3508
3567
  }
3509
3568
  if_inner_expr() {
3510
3569
  let localContext = new If_inner_exprContext(this.context, this.state);
3511
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_inner_expr);
3570
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_inner_expr);
3512
3571
  try {
3513
3572
  this.enterOuterAlt(localContext, 1);
3514
3573
  {
3515
- this.state = 658;
3574
+ this.state = 671;
3516
3575
  this.match(CircuitScriptParser.Else);
3517
- this.state = 659;
3576
+ this.state = 672;
3518
3577
  this.match(CircuitScriptParser.If);
3519
- this.state = 660;
3578
+ this.state = 673;
3520
3579
  this.data_expr(0);
3521
- this.state = 661;
3580
+ this.state = 674;
3522
3581
  this.match(CircuitScriptParser.T__0);
3523
- this.state = 662;
3582
+ this.state = 675;
3524
3583
  this.expressions_block();
3525
3584
  }
3526
3585
  }
@@ -3540,15 +3599,15 @@ export class CircuitScriptParser extends antlr.Parser {
3540
3599
  }
3541
3600
  else_expr() {
3542
3601
  let localContext = new Else_exprContext(this.context, this.state);
3543
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_else_expr);
3602
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_else_expr);
3544
3603
  try {
3545
3604
  this.enterOuterAlt(localContext, 1);
3546
3605
  {
3547
- this.state = 664;
3606
+ this.state = 677;
3548
3607
  this.match(CircuitScriptParser.Else);
3549
- this.state = 665;
3608
+ this.state = 678;
3550
3609
  this.match(CircuitScriptParser.T__0);
3551
- this.state = 666;
3610
+ this.state = 679;
3552
3611
  this.expressions_block();
3553
3612
  }
3554
3613
  }
@@ -3568,17 +3627,17 @@ export class CircuitScriptParser extends antlr.Parser {
3568
3627
  }
3569
3628
  while_expr() {
3570
3629
  let localContext = new While_exprContext(this.context, this.state);
3571
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_while_expr);
3630
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_while_expr);
3572
3631
  try {
3573
3632
  this.enterOuterAlt(localContext, 1);
3574
3633
  {
3575
- this.state = 668;
3634
+ this.state = 681;
3576
3635
  this.match(CircuitScriptParser.While);
3577
- this.state = 669;
3636
+ this.state = 682;
3578
3637
  this.data_expr(0);
3579
- this.state = 670;
3638
+ this.state = 683;
3580
3639
  this.match(CircuitScriptParser.T__0);
3581
- this.state = 671;
3640
+ this.state = 684;
3582
3641
  this.expressions_block();
3583
3642
  }
3584
3643
  }
@@ -3598,38 +3657,38 @@ export class CircuitScriptParser extends antlr.Parser {
3598
3657
  }
3599
3658
  for_expr() {
3600
3659
  let localContext = new For_exprContext(this.context, this.state);
3601
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_for_expr);
3660
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_for_expr);
3602
3661
  let _la;
3603
3662
  try {
3604
3663
  this.enterOuterAlt(localContext, 1);
3605
3664
  {
3606
- this.state = 673;
3665
+ this.state = 686;
3607
3666
  this.match(CircuitScriptParser.For);
3608
- this.state = 674;
3667
+ this.state = 687;
3609
3668
  this.match(CircuitScriptParser.ID);
3610
- this.state = 679;
3669
+ this.state = 692;
3611
3670
  this.errorHandler.sync(this);
3612
3671
  _la = this.tokenStream.LA(1);
3613
3672
  while (_la === 2) {
3614
3673
  {
3615
3674
  {
3616
- this.state = 675;
3675
+ this.state = 688;
3617
3676
  this.match(CircuitScriptParser.T__1);
3618
- this.state = 676;
3677
+ this.state = 689;
3619
3678
  this.match(CircuitScriptParser.ID);
3620
3679
  }
3621
3680
  }
3622
- this.state = 681;
3681
+ this.state = 694;
3623
3682
  this.errorHandler.sync(this);
3624
3683
  _la = this.tokenStream.LA(1);
3625
3684
  }
3626
- this.state = 682;
3685
+ this.state = 695;
3627
3686
  this.match(CircuitScriptParser.In);
3628
- this.state = 683;
3687
+ this.state = 696;
3629
3688
  this.data_expr(0);
3630
- this.state = 684;
3689
+ this.state = 697;
3631
3690
  this.match(CircuitScriptParser.T__0);
3632
- this.state = 685;
3691
+ this.state = 698;
3633
3692
  this.expressions_block();
3634
3693
  }
3635
3694
  }
@@ -3657,18 +3716,20 @@ export class CircuitScriptParser extends antlr.Parser {
3657
3716
  data_expr_sempred(localContext, predIndex) {
3658
3717
  switch (predIndex) {
3659
3718
  case 0:
3660
- return this.precpred(this.context, 9);
3719
+ return this.precpred(this.context, 10);
3661
3720
  case 1:
3662
- return this.precpred(this.context, 8);
3721
+ return this.precpred(this.context, 9);
3663
3722
  case 2:
3664
- return this.precpred(this.context, 7);
3723
+ return this.precpred(this.context, 8);
3665
3724
  case 3:
3666
- return this.precpred(this.context, 6);
3725
+ return this.precpred(this.context, 7);
3726
+ case 4:
3727
+ return this.precpred(this.context, 1);
3667
3728
  }
3668
3729
  return true;
3669
3730
  }
3670
3731
  static _serializedATN = [
3671
- 4, 1, 67, 688, 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,
3732
+ 4, 1, 67, 701, 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,
3672
3733
  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,
3673
3734
  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,
3674
3735
  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,
@@ -3677,250 +3738,255 @@ export class CircuitScriptParser extends antlr.Parser {
3677
3738
  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,
3678
3739
  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,
3679
3740
  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,
3680
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 1, 0, 1, 0, 5, 0, 131, 8, 0,
3681
- 10, 0, 12, 0, 134, 9, 0, 1, 0, 1, 0, 4, 0, 138, 8, 0, 11, 0, 12, 0, 139, 1, 0, 1, 0, 1, 1,
3682
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 156, 8, 1, 1, 2, 1, 2,
3683
- 1, 2, 1, 2, 1, 2, 3, 2, 163, 8, 2, 1, 3, 1, 3, 3, 3, 167, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4,
3684
- 1, 4, 3, 4, 175, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 181, 8, 5, 11, 5, 12, 5, 182, 1, 5, 1,
3685
- 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 197, 8, 7, 11, 7, 12, 7,
3686
- 198, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10,
3687
- 214, 8, 10, 1, 11, 1, 11, 3, 11, 218, 8, 11, 1, 11, 5, 11, 221, 8, 11, 10, 11, 12, 11,
3688
- 224, 9, 11, 1, 11, 3, 11, 227, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 235,
3689
- 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 246, 8, 16,
3690
- 10, 16, 12, 16, 249, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 257, 8, 17,
3691
- 10, 17, 12, 17, 260, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 267, 8, 17, 11, 17,
3692
- 12, 17, 268, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 278, 8, 18, 10, 18,
3693
- 12, 18, 281, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 291,
3694
- 8, 20, 11, 20, 12, 20, 292, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 299, 8, 21, 1, 22, 1, 22,
3695
- 1, 22, 1, 22, 3, 22, 305, 8, 22, 1, 23, 1, 23, 3, 23, 309, 8, 23, 1, 24, 1, 24, 1, 25, 1,
3696
- 25, 3, 25, 315, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1,
3697
- 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 331, 8, 28, 10, 28, 12, 28, 334, 9, 28, 1, 28, 1,
3698
- 28, 5, 28, 338, 8, 28, 10, 28, 12, 28, 341, 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 346, 8,
3699
- 28, 10, 28, 12, 28, 349, 9, 28, 3, 28, 351, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1,
3700
- 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 369, 8,
3701
- 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 379, 8, 31, 1, 31, 1,
3702
- 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 394,
3703
- 8, 31, 10, 31, 12, 31, 397, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 404, 8, 34,
3704
- 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 412, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3705
- 1, 35, 1, 35, 4, 35, 420, 8, 35, 11, 35, 12, 35, 421, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36,
3706
- 428, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37, 433, 8, 37, 10, 37, 12, 37, 436, 9, 37, 1, 37,
3707
- 1, 37, 1, 37, 1, 37, 5, 37, 442, 8, 37, 10, 37, 12, 37, 445, 9, 37, 1, 37, 1, 37, 1, 37,
3708
- 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 454, 8, 37, 10, 37, 12, 37, 457, 9, 37, 3, 37, 459,
3709
- 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 464, 8, 38, 10, 38, 12, 38, 467, 9, 38, 1, 39, 1, 39,
3710
- 3, 39, 471, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 476, 8, 39, 1, 40, 3, 40, 479, 8, 40, 1,
3711
- 40, 1, 40, 4, 40, 483, 8, 40, 11, 40, 12, 40, 484, 1, 41, 3, 41, 488, 8, 41, 1, 41, 1,
3712
- 41, 3, 41, 492, 8, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1,
3713
- 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 508, 8, 44, 11, 44, 12, 44, 509, 1, 44, 1, 44, 1,
3714
- 45, 1, 45, 1, 45, 1, 45, 4, 45, 518, 8, 45, 11, 45, 12, 45, 519, 1, 45, 1, 45, 1, 46, 1,
3715
- 46, 1, 46, 1, 46, 1, 46, 3, 46, 529, 8, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1,
3716
- 47, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 542, 8, 47, 11, 47, 12, 47, 543, 1, 47, 1, 47, 1,
3717
- 48, 1, 48, 1, 48, 1, 48, 4, 48, 552, 8, 48, 11, 48, 12, 48, 553, 1, 48, 1, 48, 1, 49, 1,
3718
- 49, 3, 49, 560, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 568, 8, 49, 1, 49,
3719
- 1, 49, 1, 49, 1, 49, 5, 49, 574, 8, 49, 10, 49, 12, 49, 577, 9, 49, 1, 49, 1, 49, 1, 49,
3720
- 1, 49, 1, 49, 3, 49, 584, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52,
3721
- 1, 52, 1, 52, 5, 52, 596, 8, 52, 10, 52, 12, 52, 599, 9, 52, 3, 52, 601, 8, 52, 1, 53,
3722
- 1, 53, 1, 53, 3, 53, 606, 8, 53, 1, 53, 3, 53, 609, 8, 53, 1, 54, 1, 54, 5, 54, 613, 8,
3723
- 54, 10, 54, 12, 54, 616, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 622, 8, 55, 10, 55,
3724
- 12, 55, 625, 9, 55, 5, 55, 627, 8, 55, 10, 55, 12, 55, 630, 9, 55, 1, 55, 1, 55, 1, 56,
3725
- 1, 56, 1, 56, 3, 56, 637, 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59,
3726
- 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 651, 8, 59, 10, 59, 12, 59, 654, 9, 59, 1, 59, 3, 59,
3727
- 657, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62,
3728
- 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 678, 8, 63, 10, 63, 12, 63,
3729
- 681, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12,
3741
+ 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 1, 0, 1, 0, 5,
3742
+ 0, 133, 8, 0, 10, 0, 12, 0, 136, 9, 0, 1, 0, 1, 0, 4, 0, 140, 8, 0, 11, 0, 12, 0, 141, 1,
3743
+ 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 158, 8,
3744
+ 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 165, 8, 2, 1, 3, 1, 3, 3, 3, 169, 8, 3, 1, 4, 1, 4, 1,
3745
+ 4, 1, 4, 1, 4, 1, 4, 3, 4, 177, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 183, 8, 5, 11, 5, 12, 5,
3746
+ 184, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 199, 8, 7,
3747
+ 11, 7, 12, 7, 200, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10,
3748
+ 1, 10, 3, 10, 216, 8, 10, 1, 11, 1, 11, 3, 11, 220, 8, 11, 1, 11, 5, 11, 223, 8, 11, 10,
3749
+ 11, 12, 11, 226, 9, 11, 1, 11, 3, 11, 229, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1,
3750
+ 13, 3, 13, 237, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3751
+ 16, 248, 8, 16, 10, 16, 12, 16, 251, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5,
3752
+ 17, 259, 8, 17, 10, 17, 12, 17, 262, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 269,
3753
+ 8, 17, 11, 17, 12, 17, 270, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 280,
3754
+ 8, 18, 10, 18, 12, 18, 283, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
3755
+ 4, 20, 293, 8, 20, 11, 20, 12, 20, 294, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 301, 8, 21,
3756
+ 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 307, 8, 22, 1, 23, 1, 23, 3, 23, 311, 8, 23, 1, 24, 1,
3757
+ 24, 1, 25, 1, 25, 3, 25, 317, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1,
3758
+ 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 333, 8, 28, 10, 28, 12, 28, 336, 9,
3759
+ 28, 1, 28, 1, 28, 5, 28, 340, 8, 28, 10, 28, 12, 28, 343, 9, 28, 1, 28, 1, 28, 1, 28, 5,
3760
+ 28, 348, 8, 28, 10, 28, 12, 28, 351, 9, 28, 3, 28, 353, 8, 28, 1, 29, 1, 29, 1, 29, 1,
3761
+ 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3,
3762
+ 31, 371, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 381, 8, 31,
3763
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3764
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 401, 8, 31, 10, 31, 12, 31, 404, 9, 31, 1, 32,
3765
+ 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 411, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35,
3766
+ 3, 35, 419, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 427, 8, 35, 11, 35,
3767
+ 12, 35, 428, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 435, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37,
3768
+ 440, 8, 37, 10, 37, 12, 37, 443, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 449, 8, 37,
3769
+ 10, 37, 12, 37, 452, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 461,
3770
+ 8, 37, 10, 37, 12, 37, 464, 9, 37, 3, 37, 466, 8, 37, 1, 38, 1, 38, 5, 38, 470, 8, 38,
3771
+ 10, 38, 12, 38, 473, 9, 38, 1, 39, 1, 39, 3, 39, 477, 8, 39, 1, 39, 1, 39, 3, 39, 481,
3772
+ 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 489, 8, 40, 1, 41, 3, 41, 492, 8,
3773
+ 41, 1, 41, 1, 41, 4, 41, 496, 8, 41, 11, 41, 12, 41, 497, 1, 42, 3, 42, 501, 8, 42, 1,
3774
+ 42, 1, 42, 3, 42, 505, 8, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1,
3775
+ 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 521, 8, 45, 11, 45, 12, 45, 522, 1, 45, 1,
3776
+ 45, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 531, 8, 46, 11, 46, 12, 46, 532, 1, 46, 1, 46, 1,
3777
+ 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 542, 8, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1,
3778
+ 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 4, 48, 555, 8, 48, 11, 48, 12, 48, 556, 1, 48, 1,
3779
+ 48, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 565, 8, 49, 11, 49, 12, 49, 566, 1, 49, 1, 49, 1,
3780
+ 50, 1, 50, 3, 50, 573, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 581, 8, 50,
3781
+ 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 587, 8, 50, 10, 50, 12, 50, 590, 9, 50, 1, 50, 1, 50,
3782
+ 1, 50, 1, 50, 1, 50, 3, 50, 597, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53,
3783
+ 1, 53, 1, 53, 1, 53, 5, 53, 609, 8, 53, 10, 53, 12, 53, 612, 9, 53, 3, 53, 614, 8, 53,
3784
+ 1, 54, 1, 54, 1, 54, 3, 54, 619, 8, 54, 1, 54, 3, 54, 622, 8, 54, 1, 55, 1, 55, 5, 55, 626,
3785
+ 8, 55, 10, 55, 12, 55, 629, 9, 55, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 635, 8, 56, 10, 56,
3786
+ 12, 56, 638, 9, 56, 5, 56, 640, 8, 56, 10, 56, 12, 56, 643, 9, 56, 1, 56, 1, 56, 1, 57,
3787
+ 1, 57, 1, 57, 3, 57, 650, 8, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60,
3788
+ 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 664, 8, 60, 10, 60, 12, 60, 667, 9, 60, 1, 60, 3, 60,
3789
+ 670, 8, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63,
3790
+ 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 5, 64, 691, 8, 64, 10, 64, 12, 64,
3791
+ 694, 9, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 0, 1, 62, 65, 0, 2, 4, 6, 8, 10, 12,
3730
3792
  14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3731
3793
  58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3732
- 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9,
3733
- 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44,
3734
- 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61,
3735
- 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 727, 0, 132, 1, 0, 0, 0, 2, 155,
3736
- 1, 0, 0, 0, 4, 162, 1, 0, 0, 0, 6, 166, 1, 0, 0, 0, 8, 174, 1, 0, 0, 0, 10, 176, 1, 0, 0, 0,
3737
- 12, 186, 1, 0, 0, 0, 14, 190, 1, 0, 0, 0, 16, 202, 1, 0, 0, 0, 18, 206, 1, 0, 0, 0, 20, 209,
3738
- 1, 0, 0, 0, 22, 217, 1, 0, 0, 0, 24, 228, 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 236, 1, 0,
3739
- 0, 0, 30, 238, 1, 0, 0, 0, 32, 241, 1, 0, 0, 0, 34, 250, 1, 0, 0, 0, 36, 272, 1, 0, 0, 0,
3740
- 38, 282, 1, 0, 0, 0, 40, 284, 1, 0, 0, 0, 42, 298, 1, 0, 0, 0, 44, 300, 1, 0, 0, 0, 46, 308,
3741
- 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 314, 1, 0, 0, 0, 52, 319, 1, 0, 0, 0, 54, 323, 1, 0,
3742
- 0, 0, 56, 350, 1, 0, 0, 0, 58, 352, 1, 0, 0, 0, 60, 356, 1, 0, 0, 0, 62, 378, 1, 0, 0, 0,
3743
- 64, 398, 1, 0, 0, 0, 66, 400, 1, 0, 0, 0, 68, 403, 1, 0, 0, 0, 70, 407, 1, 0, 0, 0, 72, 427,
3744
- 1, 0, 0, 0, 74, 458, 1, 0, 0, 0, 76, 460, 1, 0, 0, 0, 78, 475, 1, 0, 0, 0, 80, 478, 1, 0,
3745
- 0, 0, 82, 487, 1, 0, 0, 0, 84, 493, 1, 0, 0, 0, 86, 496, 1, 0, 0, 0, 88, 500, 1, 0, 0, 0,
3746
- 90, 513, 1, 0, 0, 0, 92, 523, 1, 0, 0, 0, 94, 533, 1, 0, 0, 0, 96, 547, 1, 0, 0, 0, 98, 583,
3747
- 1, 0, 0, 0, 100, 585, 1, 0, 0, 0, 102, 589, 1, 0, 0, 0, 104, 600, 1, 0, 0, 0, 106, 608,
3748
- 1, 0, 0, 0, 108, 610, 1, 0, 0, 0, 110, 617, 1, 0, 0, 0, 112, 633, 1, 0, 0, 0, 114, 638,
3749
- 1, 0, 0, 0, 116, 641, 1, 0, 0, 0, 118, 645, 1, 0, 0, 0, 120, 658, 1, 0, 0, 0, 122, 664,
3750
- 1, 0, 0, 0, 124, 668, 1, 0, 0, 0, 126, 673, 1, 0, 0, 0, 128, 131, 3, 114, 57, 0, 129, 131,
3751
- 5, 64, 0, 0, 130, 128, 1, 0, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130,
3752
- 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 137, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 138,
3753
- 3, 2, 1, 0, 136, 138, 5, 64, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 139,
3754
- 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142,
3755
- 5, 0, 0, 1, 142, 1, 1, 0, 0, 0, 143, 156, 3, 6, 3, 0, 144, 156, 3, 50, 25, 0, 145, 156,
3756
- 3, 52, 26, 0, 146, 156, 3, 58, 29, 0, 147, 156, 3, 14, 7, 0, 148, 156, 3, 60, 30, 0, 149,
3757
- 156, 3, 70, 35, 0, 150, 156, 3, 80, 40, 0, 151, 156, 3, 114, 57, 0, 152, 156, 3, 76,
3758
- 38, 0, 153, 156, 3, 116, 58, 0, 154, 156, 3, 4, 2, 0, 155, 143, 1, 0, 0, 0, 155, 144,
3759
- 1, 0, 0, 0, 155, 145, 1, 0, 0, 0, 155, 146, 1, 0, 0, 0, 155, 147, 1, 0, 0, 0, 155, 148,
3760
- 1, 0, 0, 0, 155, 149, 1, 0, 0, 0, 155, 150, 1, 0, 0, 0, 155, 151, 1, 0, 0, 0, 155, 152,
3761
- 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 154, 1, 0, 0, 0, 156, 3, 1, 0, 0, 0, 157, 163, 3,
3762
- 118, 59, 0, 158, 163, 3, 124, 62, 0, 159, 163, 3, 126, 63, 0, 160, 163, 5, 8, 0, 0, 161,
3763
- 163, 5, 28, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0, 0, 162,
3764
- 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 5, 1, 0, 0, 0, 164, 167, 3, 8, 4, 0, 165, 167,
3765
- 3, 12, 6, 0, 166, 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 7, 1, 0, 0, 0, 168, 175, 3,
3766
- 24, 12, 0, 169, 175, 3, 32, 16, 0, 170, 175, 3, 30, 15, 0, 171, 175, 3, 40, 20, 0, 172,
3767
- 175, 3, 108, 54, 0, 173, 175, 3, 112, 56, 0, 174, 168, 1, 0, 0, 0, 174, 169, 1, 0, 0,
3768
- 0, 174, 170, 1, 0, 0, 0, 174, 171, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 174, 173, 1, 0, 0,
3769
- 0, 175, 9, 1, 0, 0, 0, 176, 177, 5, 64, 0, 0, 177, 180, 5, 66, 0, 0, 178, 181, 5, 64, 0,
3770
- 0, 179, 181, 3, 2, 1, 0, 180, 178, 1, 0, 0, 0, 180, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0,
3771
- 0, 182, 180, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 185, 5, 67, 0,
3772
- 0, 185, 11, 1, 0, 0, 0, 186, 187, 7, 0, 0, 0, 187, 188, 5, 1, 0, 0, 188, 189, 3, 10, 5,
3773
- 0, 189, 13, 1, 0, 0, 0, 190, 191, 3, 76, 38, 0, 191, 192, 5, 1, 0, 0, 192, 193, 5, 64,
3774
- 0, 0, 193, 196, 5, 66, 0, 0, 194, 197, 5, 64, 0, 0, 195, 197, 3, 16, 8, 0, 196, 194, 1,
3775
- 0, 0, 0, 196, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198, 199, 1,
3776
- 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0, 201, 15, 1, 0, 0, 0, 202, 203, 7,
3777
- 1, 0, 0, 203, 204, 5, 1, 0, 0, 204, 205, 3, 68, 34, 0, 205, 17, 1, 0, 0, 0, 206, 207, 5,
3778
- 15, 0, 0, 207, 208, 3, 62, 31, 0, 208, 19, 1, 0, 0, 0, 209, 210, 5, 56, 0, 0, 210, 213,
3779
- 5, 1, 0, 0, 211, 214, 3, 68, 34, 0, 212, 214, 5, 56, 0, 0, 213, 211, 1, 0, 0, 0, 213, 212,
3780
- 1, 0, 0, 0, 214, 21, 1, 0, 0, 0, 215, 218, 3, 62, 31, 0, 216, 218, 3, 50, 25, 0, 217, 215,
3781
- 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 222, 1, 0, 0, 0, 219, 221, 3, 20, 10, 0, 220, 219,
3782
- 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 226,
3783
- 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 227, 3, 18, 9, 0, 226, 225, 1, 0, 0, 0, 226, 227,
3784
- 1, 0, 0, 0, 227, 23, 1, 0, 0, 0, 228, 229, 5, 16, 0, 0, 229, 230, 3, 22, 11, 0, 230, 25,
3785
- 1, 0, 0, 0, 231, 235, 3, 22, 11, 0, 232, 235, 3, 18, 9, 0, 233, 235, 5, 19, 0, 0, 234,
3786
- 231, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 27, 1, 0, 0, 0, 236, 237,
3787
- 7, 2, 0, 0, 237, 29, 1, 0, 0, 0, 238, 239, 5, 17, 0, 0, 239, 240, 3, 26, 13, 0, 240, 31,
3788
- 1, 0, 0, 0, 241, 242, 5, 18, 0, 0, 242, 247, 3, 26, 13, 0, 243, 244, 5, 2, 0, 0, 244, 246,
3789
- 3, 26, 13, 0, 245, 243, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248,
3790
- 1, 0, 0, 0, 248, 33, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 5, 17, 0, 0, 251, 252,
3791
- 3, 26, 13, 0, 252, 253, 5, 18, 0, 0, 253, 258, 3, 26, 13, 0, 254, 255, 5, 2, 0, 0, 255,
3792
- 257, 3, 26, 13, 0, 256, 254, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258,
3793
- 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 262, 5, 1, 0, 0, 262,
3794
- 263, 5, 64, 0, 0, 263, 266, 5, 66, 0, 0, 264, 267, 5, 64, 0, 0, 265, 267, 3, 36, 18, 0,
3795
- 266, 264, 1, 0, 0, 0, 266, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0,
3796
- 268, 269, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 271, 5, 67, 0, 0, 271, 35, 1, 0, 0, 0,
3797
- 272, 273, 3, 28, 14, 0, 273, 274, 5, 1, 0, 0, 274, 279, 3, 38, 19, 0, 275, 276, 5, 2,
3798
- 0, 0, 276, 278, 3, 38, 19, 0, 277, 275, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1,
3799
- 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 37, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 283, 7, 3,
3800
- 0, 0, 283, 39, 1, 0, 0, 0, 284, 285, 3, 30, 15, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 64,
3801
- 0, 0, 287, 290, 5, 66, 0, 0, 288, 291, 5, 64, 0, 0, 289, 291, 3, 42, 21, 0, 290, 288,
3802
- 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293,
3803
- 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 295, 5, 67, 0, 0, 295, 41, 1, 0, 0, 0, 296, 299,
3804
- 3, 2, 1, 0, 297, 299, 3, 44, 22, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 43,
3805
- 1, 0, 0, 0, 300, 301, 3, 28, 14, 0, 301, 304, 5, 1, 0, 0, 302, 305, 3, 46, 23, 0, 303,
3806
- 305, 3, 48, 24, 0, 304, 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 45, 1, 0, 0, 0, 306,
3807
- 309, 3, 2, 1, 0, 307, 309, 5, 54, 0, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3808
- 47, 1, 0, 0, 0, 310, 311, 3, 10, 5, 0, 311, 49, 1, 0, 0, 0, 312, 315, 3, 76, 38, 0, 313,
3809
- 315, 3, 80, 40, 0, 314, 312, 1, 0, 0, 0, 314, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316,
3810
- 317, 5, 3, 0, 0, 317, 318, 3, 62, 31, 0, 318, 51, 1, 0, 0, 0, 319, 320, 3, 76, 38, 0, 320,
3811
- 321, 7, 4, 0, 0, 321, 322, 3, 62, 31, 0, 322, 53, 1, 0, 0, 0, 323, 324, 5, 56, 0, 0, 324,
3812
- 325, 5, 3, 0, 0, 325, 326, 3, 62, 31, 0, 326, 55, 1, 0, 0, 0, 327, 332, 3, 62, 31, 0, 328,
3813
- 329, 5, 2, 0, 0, 329, 331, 3, 62, 31, 0, 330, 328, 1, 0, 0, 0, 331, 334, 1, 0, 0, 0, 332,
3814
- 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 339, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 335,
3815
- 336, 5, 2, 0, 0, 336, 338, 3, 54, 27, 0, 337, 335, 1, 0, 0, 0, 338, 341, 1, 0, 0, 0, 339,
3816
- 337, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 351, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 342,
3817
- 347, 3, 54, 27, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 54, 27, 0, 345, 343, 1, 0, 0, 0,
3818
- 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0,
3819
- 349, 347, 1, 0, 0, 0, 350, 327, 1, 0, 0, 0, 350, 342, 1, 0, 0, 0, 351, 57, 1, 0, 0, 0, 352,
3820
- 353, 3, 76, 38, 0, 353, 354, 5, 3, 0, 0, 354, 355, 3, 62, 31, 0, 355, 59, 1, 0, 0, 0, 356,
3821
- 357, 5, 4, 0, 0, 357, 358, 5, 56, 0, 0, 358, 359, 5, 3, 0, 0, 359, 360, 3, 62, 31, 0, 360,
3822
- 61, 1, 0, 0, 0, 361, 362, 6, 31, -1, 0, 362, 363, 5, 52, 0, 0, 363, 364, 3, 62, 31, 0,
3823
- 364, 365, 5, 53, 0, 0, 365, 379, 1, 0, 0, 0, 366, 369, 3, 68, 34, 0, 367, 369, 3, 76,
3824
- 38, 0, 368, 366, 1, 0, 0, 0, 368, 367, 1, 0, 0, 0, 369, 379, 1, 0, 0, 0, 370, 371, 3, 66,
3825
- 33, 0, 371, 372, 3, 62, 31, 10, 372, 379, 1, 0, 0, 0, 373, 379, 3, 88, 44, 0, 374, 379,
3826
- 3, 92, 46, 0, 375, 379, 3, 94, 47, 0, 376, 379, 3, 80, 40, 0, 377, 379, 3, 110, 55, 0,
3827
- 378, 361, 1, 0, 0, 0, 378, 368, 1, 0, 0, 0, 378, 370, 1, 0, 0, 0, 378, 373, 1, 0, 0, 0,
3828
- 378, 374, 1, 0, 0, 0, 378, 375, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 377, 1, 0, 0, 0,
3829
- 379, 395, 1, 0, 0, 0, 380, 381, 10, 9, 0, 0, 381, 382, 7, 5, 0, 0, 382, 394, 3, 62, 31,
3830
- 10, 383, 384, 10, 8, 0, 0, 384, 385, 7, 6, 0, 0, 385, 394, 3, 62, 31, 9, 386, 387, 10,
3831
- 7, 0, 0, 387, 388, 3, 64, 32, 0, 388, 389, 3, 62, 31, 8, 389, 394, 1, 0, 0, 0, 390, 391,
3832
- 10, 6, 0, 0, 391, 392, 7, 7, 0, 0, 392, 394, 3, 62, 31, 7, 393, 380, 1, 0, 0, 0, 393, 383,
3833
- 1, 0, 0, 0, 393, 386, 1, 0, 0, 0, 393, 390, 1, 0, 0, 0, 394, 397, 1, 0, 0, 0, 395, 393,
3834
- 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396, 63, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 398, 399, 7,
3835
- 8, 0, 0, 399, 65, 1, 0, 0, 0, 400, 401, 7, 9, 0, 0, 401, 67, 1, 0, 0, 0, 402, 404, 5, 43,
3836
- 0, 0, 403, 402, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 406, 7, 10,
3837
- 0, 0, 406, 69, 1, 0, 0, 0, 407, 408, 5, 23, 0, 0, 408, 409, 5, 56, 0, 0, 409, 411, 5, 52,
3838
- 0, 0, 410, 412, 3, 74, 37, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3839
- 0, 0, 0, 413, 414, 5, 53, 0, 0, 414, 415, 5, 1, 0, 0, 415, 416, 5, 64, 0, 0, 416, 419,
3840
- 5, 66, 0, 0, 417, 420, 5, 64, 0, 0, 418, 420, 3, 72, 36, 0, 419, 417, 1, 0, 0, 0, 419,
3841
- 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422,
3842
- 423, 1, 0, 0, 0, 423, 424, 5, 67, 0, 0, 424, 71, 1, 0, 0, 0, 425, 428, 3, 2, 1, 0, 426,
3843
- 428, 3, 84, 42, 0, 427, 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 73, 1, 0, 0, 0, 429,
3844
- 434, 5, 56, 0, 0, 430, 431, 5, 2, 0, 0, 431, 433, 5, 56, 0, 0, 432, 430, 1, 0, 0, 0, 433,
3845
- 436, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 434, 435, 1, 0, 0, 0, 435, 443, 1, 0, 0, 0, 436,
3846
- 434, 1, 0, 0, 0, 437, 438, 5, 2, 0, 0, 438, 439, 5, 56, 0, 0, 439, 440, 5, 3, 0, 0, 440,
3847
- 442, 3, 68, 34, 0, 441, 437, 1, 0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 443,
3848
- 444, 1, 0, 0, 0, 444, 459, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3849
- 448, 5, 3, 0, 0, 448, 455, 3, 68, 34, 0, 449, 450, 5, 2, 0, 0, 450, 451, 5, 56, 0, 0, 451,
3850
- 452, 5, 3, 0, 0, 452, 454, 3, 68, 34, 0, 453, 449, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455,
3851
- 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 459, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458,
3852
- 429, 1, 0, 0, 0, 458, 446, 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 465, 5, 56, 0, 0, 461,
3853
- 462, 5, 5, 0, 0, 462, 464, 5, 56, 0, 0, 463, 461, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3854
- 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 465, 1, 0, 0, 0, 468, 470,
3855
- 5, 52, 0, 0, 469, 471, 3, 56, 28, 0, 470, 469, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 472,
3856
- 1, 0, 0, 0, 472, 476, 5, 53, 0, 0, 473, 474, 5, 5, 0, 0, 474, 476, 5, 56, 0, 0, 475, 468,
3857
- 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 476, 79, 1, 0, 0, 0, 477, 479, 3, 82, 41, 0, 478, 477,
3858
- 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 482, 5, 56, 0, 0, 481, 483,
3859
- 3, 78, 39, 0, 482, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485,
3860
- 1, 0, 0, 0, 485, 81, 1, 0, 0, 0, 486, 488, 5, 42, 0, 0, 487, 486, 1, 0, 0, 0, 487, 488,
3861
- 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 491, 5, 44, 0, 0, 490, 492, 3, 62, 31, 0, 491, 490,
3862
- 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 83, 1, 0, 0, 0, 493, 494, 5, 22, 0, 0, 494, 495,
3863
- 3, 62, 31, 0, 495, 85, 1, 0, 0, 0, 496, 497, 3, 102, 51, 0, 497, 498, 5, 1, 0, 0, 498,
3864
- 499, 3, 10, 5, 0, 499, 87, 1, 0, 0, 0, 500, 501, 5, 10, 0, 0, 501, 502, 5, 11, 0, 0, 502,
3865
- 503, 5, 1, 0, 0, 503, 504, 5, 64, 0, 0, 504, 507, 5, 66, 0, 0, 505, 508, 5, 64, 0, 0, 506,
3866
- 508, 3, 100, 50, 0, 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509,
3867
- 507, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 512, 5, 67, 0, 0, 512,
3868
- 89, 1, 0, 0, 0, 513, 514, 5, 64, 0, 0, 514, 517, 5, 66, 0, 0, 515, 518, 5, 64, 0, 0, 516,
3869
- 518, 3, 98, 49, 0, 517, 515, 1, 0, 0, 0, 517, 516, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519,
3870
- 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 5, 67, 0, 0, 522,
3871
- 91, 1, 0, 0, 0, 523, 524, 5, 10, 0, 0, 524, 528, 5, 12, 0, 0, 525, 526, 5, 52, 0, 0, 526,
3872
- 527, 5, 56, 0, 0, 527, 529, 5, 53, 0, 0, 528, 525, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529,
3873
- 530, 1, 0, 0, 0, 530, 531, 5, 1, 0, 0, 531, 532, 3, 90, 45, 0, 532, 93, 1, 0, 0, 0, 533,
3874
- 534, 5, 10, 0, 0, 534, 535, 5, 13, 0, 0, 535, 536, 5, 1, 0, 0, 536, 537, 5, 64, 0, 0, 537,
3875
- 541, 5, 66, 0, 0, 538, 542, 5, 64, 0, 0, 539, 542, 3, 100, 50, 0, 540, 542, 3, 86, 43,
3876
- 0, 541, 538, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 541, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0,
3877
- 0, 543, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 5, 67, 0,
3878
- 0, 546, 95, 1, 0, 0, 0, 547, 548, 5, 64, 0, 0, 548, 551, 5, 66, 0, 0, 549, 552, 5, 64,
3879
- 0, 0, 550, 552, 3, 100, 50, 0, 551, 549, 1, 0, 0, 0, 551, 550, 1, 0, 0, 0, 552, 553, 1,
3880
- 0, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 5,
3881
- 67, 0, 0, 556, 97, 1, 0, 0, 0, 557, 559, 7, 11, 0, 0, 558, 560, 5, 1, 0, 0, 559, 558, 1,
3882
- 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 567, 1, 0, 0, 0, 561, 568, 3, 56, 28, 0, 562, 563,
3883
- 5, 52, 0, 0, 563, 564, 3, 56, 28, 0, 564, 565, 5, 53, 0, 0, 565, 568, 1, 0, 0, 0, 566,
3884
- 568, 3, 96, 48, 0, 567, 561, 1, 0, 0, 0, 567, 562, 1, 0, 0, 0, 567, 566, 1, 0, 0, 0, 568,
3885
- 584, 1, 0, 0, 0, 569, 570, 5, 25, 0, 0, 570, 575, 5, 56, 0, 0, 571, 572, 5, 2, 0, 0, 572,
3886
- 574, 5, 56, 0, 0, 573, 571, 1, 0, 0, 0, 574, 577, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 575,
3887
- 576, 1, 0, 0, 0, 576, 578, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 578, 579, 5, 26, 0, 0, 579,
3888
- 580, 3, 62, 31, 0, 580, 581, 5, 1, 0, 0, 581, 582, 3, 90, 45, 0, 582, 584, 1, 0, 0, 0,
3889
- 583, 557, 1, 0, 0, 0, 583, 569, 1, 0, 0, 0, 584, 99, 1, 0, 0, 0, 585, 586, 3, 102, 51,
3890
- 0, 586, 587, 5, 1, 0, 0, 587, 588, 3, 104, 52, 0, 588, 101, 1, 0, 0, 0, 589, 590, 7, 12,
3891
- 0, 0, 590, 103, 1, 0, 0, 0, 591, 601, 3, 96, 48, 0, 592, 597, 3, 62, 31, 0, 593, 594,
3892
- 5, 2, 0, 0, 594, 596, 3, 62, 31, 0, 595, 593, 1, 0, 0, 0, 596, 599, 1, 0, 0, 0, 597, 595,
3893
- 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 601, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 600, 591,
3894
- 1, 0, 0, 0, 600, 592, 1, 0, 0, 0, 601, 105, 1, 0, 0, 0, 602, 605, 5, 56, 0, 0, 603, 606,
3895
- 5, 57, 0, 0, 604, 606, 3, 62, 31, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609,
3896
- 1, 0, 0, 0, 607, 609, 5, 56, 0, 0, 608, 602, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 107,
3897
- 1, 0, 0, 0, 610, 614, 5, 14, 0, 0, 611, 613, 3, 106, 53, 0, 612, 611, 1, 0, 0, 0, 613,
3898
- 616, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 109, 1, 0, 0, 0, 616,
3899
- 614, 1, 0, 0, 0, 617, 628, 5, 6, 0, 0, 618, 623, 3, 62, 31, 0, 619, 620, 5, 2, 0, 0, 620,
3900
- 622, 3, 62, 31, 0, 621, 619, 1, 0, 0, 0, 622, 625, 1, 0, 0, 0, 623, 621, 1, 0, 0, 0, 623,
3901
- 624, 1, 0, 0, 0, 624, 627, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 626, 618, 1, 0, 0, 0, 627,
3902
- 630, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 631, 1, 0, 0, 0, 630,
3903
- 628, 1, 0, 0, 0, 631, 632, 5, 7, 0, 0, 632, 111, 1, 0, 0, 0, 633, 636, 5, 19, 0, 0, 634,
3904
- 637, 5, 56, 0, 0, 635, 637, 3, 62, 31, 0, 636, 634, 1, 0, 0, 0, 636, 635, 1, 0, 0, 0, 637,
3905
- 113, 1, 0, 0, 0, 638, 639, 5, 24, 0, 0, 639, 640, 5, 56, 0, 0, 640, 115, 1, 0, 0, 0, 641,
3906
- 642, 7, 13, 0, 0, 642, 643, 5, 1, 0, 0, 643, 644, 3, 10, 5, 0, 644, 117, 1, 0, 0, 0, 645,
3907
- 646, 5, 29, 0, 0, 646, 647, 3, 62, 31, 0, 647, 648, 5, 1, 0, 0, 648, 652, 3, 10, 5, 0,
3908
- 649, 651, 3, 120, 60, 0, 650, 649, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0,
3909
- 0, 652, 653, 1, 0, 0, 0, 653, 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 655, 657, 3, 122,
3910
- 61, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 119, 1, 0, 0, 0, 658, 659, 5, 30,
3911
- 0, 0, 659, 660, 5, 29, 0, 0, 660, 661, 3, 62, 31, 0, 661, 662, 5, 1, 0, 0, 662, 663, 3,
3912
- 10, 5, 0, 663, 121, 1, 0, 0, 0, 664, 665, 5, 30, 0, 0, 665, 666, 5, 1, 0, 0, 666, 667,
3913
- 3, 10, 5, 0, 667, 123, 1, 0, 0, 0, 668, 669, 5, 27, 0, 0, 669, 670, 3, 62, 31, 0, 670,
3914
- 671, 5, 1, 0, 0, 671, 672, 3, 10, 5, 0, 672, 125, 1, 0, 0, 0, 673, 674, 5, 25, 0, 0, 674,
3915
- 679, 5, 56, 0, 0, 675, 676, 5, 2, 0, 0, 676, 678, 5, 56, 0, 0, 677, 675, 1, 0, 0, 0, 678,
3916
- 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 682, 1, 0, 0, 0, 681,
3917
- 679, 1, 0, 0, 0, 682, 683, 5, 26, 0, 0, 683, 684, 3, 62, 31, 0, 684, 685, 5, 1, 0, 0, 685,
3918
- 686, 3, 10, 5, 0, 686, 127, 1, 0, 0, 0, 76, 130, 132, 137, 139, 155, 162, 166, 174,
3919
- 180, 182, 196, 198, 213, 217, 222, 226, 234, 247, 258, 266, 268, 279, 290, 292,
3920
- 298, 304, 308, 314, 332, 339, 347, 350, 368, 378, 393, 395, 403, 411, 419, 421,
3921
- 427, 434, 443, 455, 458, 465, 470, 475, 478, 484, 487, 491, 507, 509, 517, 519,
3922
- 528, 541, 543, 551, 553, 559, 567, 575, 583, 597, 600, 605, 608, 614, 623, 628,
3923
- 636, 652, 656, 679
3794
+ 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 0, 14, 2, 0,
3795
+ 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1,
3796
+ 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55,
3797
+ 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 741, 0, 134, 1, 0, 0,
3798
+ 0, 2, 157, 1, 0, 0, 0, 4, 164, 1, 0, 0, 0, 6, 168, 1, 0, 0, 0, 8, 176, 1, 0, 0, 0, 10, 178,
3799
+ 1, 0, 0, 0, 12, 188, 1, 0, 0, 0, 14, 192, 1, 0, 0, 0, 16, 204, 1, 0, 0, 0, 18, 208, 1, 0,
3800
+ 0, 0, 20, 211, 1, 0, 0, 0, 22, 219, 1, 0, 0, 0, 24, 230, 1, 0, 0, 0, 26, 236, 1, 0, 0, 0,
3801
+ 28, 238, 1, 0, 0, 0, 30, 240, 1, 0, 0, 0, 32, 243, 1, 0, 0, 0, 34, 252, 1, 0, 0, 0, 36, 274,
3802
+ 1, 0, 0, 0, 38, 284, 1, 0, 0, 0, 40, 286, 1, 0, 0, 0, 42, 300, 1, 0, 0, 0, 44, 302, 1, 0,
3803
+ 0, 0, 46, 310, 1, 0, 0, 0, 48, 312, 1, 0, 0, 0, 50, 316, 1, 0, 0, 0, 52, 321, 1, 0, 0, 0,
3804
+ 54, 325, 1, 0, 0, 0, 56, 352, 1, 0, 0, 0, 58, 354, 1, 0, 0, 0, 60, 358, 1, 0, 0, 0, 62, 380,
3805
+ 1, 0, 0, 0, 64, 405, 1, 0, 0, 0, 66, 407, 1, 0, 0, 0, 68, 410, 1, 0, 0, 0, 70, 414, 1, 0,
3806
+ 0, 0, 72, 434, 1, 0, 0, 0, 74, 465, 1, 0, 0, 0, 76, 467, 1, 0, 0, 0, 78, 480, 1, 0, 0, 0,
3807
+ 80, 488, 1, 0, 0, 0, 82, 491, 1, 0, 0, 0, 84, 500, 1, 0, 0, 0, 86, 506, 1, 0, 0, 0, 88, 509,
3808
+ 1, 0, 0, 0, 90, 513, 1, 0, 0, 0, 92, 526, 1, 0, 0, 0, 94, 536, 1, 0, 0, 0, 96, 546, 1, 0,
3809
+ 0, 0, 98, 560, 1, 0, 0, 0, 100, 596, 1, 0, 0, 0, 102, 598, 1, 0, 0, 0, 104, 602, 1, 0, 0,
3810
+ 0, 106, 613, 1, 0, 0, 0, 108, 621, 1, 0, 0, 0, 110, 623, 1, 0, 0, 0, 112, 630, 1, 0, 0,
3811
+ 0, 114, 646, 1, 0, 0, 0, 116, 651, 1, 0, 0, 0, 118, 654, 1, 0, 0, 0, 120, 658, 1, 0, 0,
3812
+ 0, 122, 671, 1, 0, 0, 0, 124, 677, 1, 0, 0, 0, 126, 681, 1, 0, 0, 0, 128, 686, 1, 0, 0,
3813
+ 0, 130, 133, 3, 116, 58, 0, 131, 133, 5, 64, 0, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1,
3814
+ 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 139, 1,
3815
+ 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 140, 3, 2, 1, 0, 138, 140, 5, 64, 0, 0, 139, 137, 1,
3816
+ 0, 0, 0, 139, 138, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 142, 1,
3817
+ 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 5, 0, 0, 1, 144, 1, 1, 0, 0, 0, 145, 158, 3, 6,
3818
+ 3, 0, 146, 158, 3, 50, 25, 0, 147, 158, 3, 52, 26, 0, 148, 158, 3, 58, 29, 0, 149, 158,
3819
+ 3, 14, 7, 0, 150, 158, 3, 60, 30, 0, 151, 158, 3, 70, 35, 0, 152, 158, 3, 82, 41, 0, 153,
3820
+ 158, 3, 116, 58, 0, 154, 158, 3, 76, 38, 0, 155, 158, 3, 118, 59, 0, 156, 158, 3, 4,
3821
+ 2, 0, 157, 145, 1, 0, 0, 0, 157, 146, 1, 0, 0, 0, 157, 147, 1, 0, 0, 0, 157, 148, 1, 0,
3822
+ 0, 0, 157, 149, 1, 0, 0, 0, 157, 150, 1, 0, 0, 0, 157, 151, 1, 0, 0, 0, 157, 152, 1, 0,
3823
+ 0, 0, 157, 153, 1, 0, 0, 0, 157, 154, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0,
3824
+ 0, 0, 158, 3, 1, 0, 0, 0, 159, 165, 3, 120, 60, 0, 160, 165, 3, 126, 63, 0, 161, 165,
3825
+ 3, 128, 64, 0, 162, 165, 5, 8, 0, 0, 163, 165, 5, 28, 0, 0, 164, 159, 1, 0, 0, 0, 164,
3826
+ 160, 1, 0, 0, 0, 164, 161, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 164, 163, 1, 0, 0, 0, 165,
3827
+ 5, 1, 0, 0, 0, 166, 169, 3, 8, 4, 0, 167, 169, 3, 12, 6, 0, 168, 166, 1, 0, 0, 0, 168, 167,
3828
+ 1, 0, 0, 0, 169, 7, 1, 0, 0, 0, 170, 177, 3, 24, 12, 0, 171, 177, 3, 32, 16, 0, 172, 177,
3829
+ 3, 30, 15, 0, 173, 177, 3, 40, 20, 0, 174, 177, 3, 110, 55, 0, 175, 177, 3, 114, 57,
3830
+ 0, 176, 170, 1, 0, 0, 0, 176, 171, 1, 0, 0, 0, 176, 172, 1, 0, 0, 0, 176, 173, 1, 0, 0,
3831
+ 0, 176, 174, 1, 0, 0, 0, 176, 175, 1, 0, 0, 0, 177, 9, 1, 0, 0, 0, 178, 179, 5, 64, 0, 0,
3832
+ 179, 182, 5, 66, 0, 0, 180, 183, 5, 64, 0, 0, 181, 183, 3, 2, 1, 0, 182, 180, 1, 0, 0,
3833
+ 0, 182, 181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0,
3834
+ 0, 185, 186, 1, 0, 0, 0, 186, 187, 5, 67, 0, 0, 187, 11, 1, 0, 0, 0, 188, 189, 7, 0, 0,
3835
+ 0, 189, 190, 5, 1, 0, 0, 190, 191, 3, 10, 5, 0, 191, 13, 1, 0, 0, 0, 192, 193, 3, 76, 38,
3836
+ 0, 193, 194, 5, 1, 0, 0, 194, 195, 5, 64, 0, 0, 195, 198, 5, 66, 0, 0, 196, 199, 5, 64,
3837
+ 0, 0, 197, 199, 3, 16, 8, 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 200, 1, 0,
3838
+ 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203, 5, 67,
3839
+ 0, 0, 203, 15, 1, 0, 0, 0, 204, 205, 7, 1, 0, 0, 205, 206, 5, 1, 0, 0, 206, 207, 3, 68,
3840
+ 34, 0, 207, 17, 1, 0, 0, 0, 208, 209, 5, 15, 0, 0, 209, 210, 3, 62, 31, 0, 210, 19, 1,
3841
+ 0, 0, 0, 211, 212, 5, 56, 0, 0, 212, 215, 5, 1, 0, 0, 213, 216, 3, 68, 34, 0, 214, 216,
3842
+ 5, 56, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 21, 1, 0, 0, 0, 217, 220,
3843
+ 3, 62, 31, 0, 218, 220, 3, 50, 25, 0, 219, 217, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220,
3844
+ 224, 1, 0, 0, 0, 221, 223, 3, 20, 10, 0, 222, 221, 1, 0, 0, 0, 223, 226, 1, 0, 0, 0, 224,
3845
+ 222, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 227,
3846
+ 229, 3, 18, 9, 0, 228, 227, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 23, 1, 0, 0, 0, 230,
3847
+ 231, 5, 16, 0, 0, 231, 232, 3, 22, 11, 0, 232, 25, 1, 0, 0, 0, 233, 237, 3, 22, 11, 0,
3848
+ 234, 237, 3, 18, 9, 0, 235, 237, 5, 19, 0, 0, 236, 233, 1, 0, 0, 0, 236, 234, 1, 0, 0,
3849
+ 0, 236, 235, 1, 0, 0, 0, 237, 27, 1, 0, 0, 0, 238, 239, 7, 2, 0, 0, 239, 29, 1, 0, 0, 0,
3850
+ 240, 241, 5, 17, 0, 0, 241, 242, 3, 26, 13, 0, 242, 31, 1, 0, 0, 0, 243, 244, 5, 18, 0,
3851
+ 0, 244, 249, 3, 26, 13, 0, 245, 246, 5, 2, 0, 0, 246, 248, 3, 26, 13, 0, 247, 245, 1,
3852
+ 0, 0, 0, 248, 251, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 33, 1, 0,
3853
+ 0, 0, 251, 249, 1, 0, 0, 0, 252, 253, 5, 17, 0, 0, 253, 254, 3, 26, 13, 0, 254, 255, 5,
3854
+ 18, 0, 0, 255, 260, 3, 26, 13, 0, 256, 257, 5, 2, 0, 0, 257, 259, 3, 26, 13, 0, 258, 256,
3855
+ 1, 0, 0, 0, 259, 262, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 263,
3856
+ 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 263, 264, 5, 1, 0, 0, 264, 265, 5, 64, 0, 0, 265, 268,
3857
+ 5, 66, 0, 0, 266, 269, 5, 64, 0, 0, 267, 269, 3, 36, 18, 0, 268, 266, 1, 0, 0, 0, 268,
3858
+ 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271,
3859
+ 272, 1, 0, 0, 0, 272, 273, 5, 67, 0, 0, 273, 35, 1, 0, 0, 0, 274, 275, 3, 28, 14, 0, 275,
3860
+ 276, 5, 1, 0, 0, 276, 281, 3, 38, 19, 0, 277, 278, 5, 2, 0, 0, 278, 280, 3, 38, 19, 0,
3861
+ 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0,
3862
+ 282, 37, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 7, 3, 0, 0, 285, 39, 1, 0, 0, 0, 286,
3863
+ 287, 3, 30, 15, 0, 287, 288, 5, 1, 0, 0, 288, 289, 5, 64, 0, 0, 289, 292, 5, 66, 0, 0,
3864
+ 290, 293, 5, 64, 0, 0, 291, 293, 3, 42, 21, 0, 292, 290, 1, 0, 0, 0, 292, 291, 1, 0, 0,
3865
+ 0, 293, 294, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0,
3866
+ 0, 296, 297, 5, 67, 0, 0, 297, 41, 1, 0, 0, 0, 298, 301, 3, 2, 1, 0, 299, 301, 3, 44, 22,
3867
+ 0, 300, 298, 1, 0, 0, 0, 300, 299, 1, 0, 0, 0, 301, 43, 1, 0, 0, 0, 302, 303, 3, 28, 14,
3868
+ 0, 303, 306, 5, 1, 0, 0, 304, 307, 3, 46, 23, 0, 305, 307, 3, 48, 24, 0, 306, 304, 1,
3869
+ 0, 0, 0, 306, 305, 1, 0, 0, 0, 307, 45, 1, 0, 0, 0, 308, 311, 3, 2, 1, 0, 309, 311, 5, 54,
3870
+ 0, 0, 310, 308, 1, 0, 0, 0, 310, 309, 1, 0, 0, 0, 311, 47, 1, 0, 0, 0, 312, 313, 3, 10,
3871
+ 5, 0, 313, 49, 1, 0, 0, 0, 314, 317, 3, 76, 38, 0, 315, 317, 3, 82, 41, 0, 316, 314, 1,
3872
+ 0, 0, 0, 316, 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 319, 5, 3, 0, 0, 319, 320, 3,
3873
+ 62, 31, 0, 320, 51, 1, 0, 0, 0, 321, 322, 3, 76, 38, 0, 322, 323, 7, 4, 0, 0, 323, 324,
3874
+ 3, 62, 31, 0, 324, 53, 1, 0, 0, 0, 325, 326, 5, 56, 0, 0, 326, 327, 5, 3, 0, 0, 327, 328,
3875
+ 3, 62, 31, 0, 328, 55, 1, 0, 0, 0, 329, 334, 3, 62, 31, 0, 330, 331, 5, 2, 0, 0, 331, 333,
3876
+ 3, 62, 31, 0, 332, 330, 1, 0, 0, 0, 333, 336, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 334, 335,
3877
+ 1, 0, 0, 0, 335, 341, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337, 338, 5, 2, 0, 0, 338, 340,
3878
+ 3, 54, 27, 0, 339, 337, 1, 0, 0, 0, 340, 343, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 341, 342,
3879
+ 1, 0, 0, 0, 342, 353, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 344, 349, 3, 54, 27, 0, 345, 346,
3880
+ 5, 2, 0, 0, 346, 348, 3, 54, 27, 0, 347, 345, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347,
3881
+ 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 353, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 329,
3882
+ 1, 0, 0, 0, 352, 344, 1, 0, 0, 0, 353, 57, 1, 0, 0, 0, 354, 355, 3, 76, 38, 0, 355, 356,
3883
+ 5, 3, 0, 0, 356, 357, 3, 62, 31, 0, 357, 59, 1, 0, 0, 0, 358, 359, 5, 4, 0, 0, 359, 360,
3884
+ 5, 56, 0, 0, 360, 361, 5, 3, 0, 0, 361, 362, 3, 62, 31, 0, 362, 61, 1, 0, 0, 0, 363, 364,
3885
+ 6, 31, -1, 0, 364, 365, 5, 52, 0, 0, 365, 366, 3, 62, 31, 0, 366, 367, 5, 53, 0, 0, 367,
3886
+ 381, 1, 0, 0, 0, 368, 371, 3, 68, 34, 0, 369, 371, 3, 76, 38, 0, 370, 368, 1, 0, 0, 0,
3887
+ 370, 369, 1, 0, 0, 0, 371, 381, 1, 0, 0, 0, 372, 373, 3, 66, 33, 0, 373, 374, 3, 62, 31,
3888
+ 11, 374, 381, 1, 0, 0, 0, 375, 381, 3, 90, 45, 0, 376, 381, 3, 94, 47, 0, 377, 381, 3,
3889
+ 96, 48, 0, 378, 381, 3, 82, 41, 0, 379, 381, 3, 112, 56, 0, 380, 363, 1, 0, 0, 0, 380,
3890
+ 370, 1, 0, 0, 0, 380, 372, 1, 0, 0, 0, 380, 375, 1, 0, 0, 0, 380, 376, 1, 0, 0, 0, 380,
3891
+ 377, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 379, 1, 0, 0, 0, 381, 402, 1, 0, 0, 0, 382,
3892
+ 383, 10, 10, 0, 0, 383, 384, 7, 5, 0, 0, 384, 401, 3, 62, 31, 11, 385, 386, 10, 9, 0,
3893
+ 0, 386, 387, 7, 6, 0, 0, 387, 401, 3, 62, 31, 10, 388, 389, 10, 8, 0, 0, 389, 390, 3,
3894
+ 64, 32, 0, 390, 391, 3, 62, 31, 9, 391, 401, 1, 0, 0, 0, 392, 393, 10, 7, 0, 0, 393, 394,
3895
+ 7, 7, 0, 0, 394, 401, 3, 62, 31, 8, 395, 396, 10, 1, 0, 0, 396, 397, 5, 5, 0, 0, 397, 398,
3896
+ 3, 62, 31, 0, 398, 399, 5, 6, 0, 0, 399, 401, 1, 0, 0, 0, 400, 382, 1, 0, 0, 0, 400, 385,
3897
+ 1, 0, 0, 0, 400, 388, 1, 0, 0, 0, 400, 392, 1, 0, 0, 0, 400, 395, 1, 0, 0, 0, 401, 404,
3898
+ 1, 0, 0, 0, 402, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 63, 1, 0, 0, 0, 404, 402, 1,
3899
+ 0, 0, 0, 405, 406, 7, 8, 0, 0, 406, 65, 1, 0, 0, 0, 407, 408, 7, 9, 0, 0, 408, 67, 1, 0,
3900
+ 0, 0, 409, 411, 5, 43, 0, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 1, 0,
3901
+ 0, 0, 412, 413, 7, 10, 0, 0, 413, 69, 1, 0, 0, 0, 414, 415, 5, 23, 0, 0, 415, 416, 5, 56,
3902
+ 0, 0, 416, 418, 5, 52, 0, 0, 417, 419, 3, 74, 37, 0, 418, 417, 1, 0, 0, 0, 418, 419, 1,
3903
+ 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421, 5, 53, 0, 0, 421, 422, 5, 1, 0, 0, 422, 423, 5,
3904
+ 64, 0, 0, 423, 426, 5, 66, 0, 0, 424, 427, 5, 64, 0, 0, 425, 427, 3, 72, 36, 0, 426, 424,
3905
+ 1, 0, 0, 0, 426, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 429,
3906
+ 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 431, 5, 67, 0, 0, 431, 71, 1, 0, 0, 0, 432, 435,
3907
+ 3, 2, 1, 0, 433, 435, 3, 86, 43, 0, 434, 432, 1, 0, 0, 0, 434, 433, 1, 0, 0, 0, 435, 73,
3908
+ 1, 0, 0, 0, 436, 441, 5, 56, 0, 0, 437, 438, 5, 2, 0, 0, 438, 440, 5, 56, 0, 0, 439, 437,
3909
+ 1, 0, 0, 0, 440, 443, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 450,
3910
+ 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 444, 445, 5, 2, 0, 0, 445, 446, 5, 56, 0, 0, 446, 447,
3911
+ 5, 3, 0, 0, 447, 449, 3, 68, 34, 0, 448, 444, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 448,
3912
+ 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 466, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454,
3913
+ 5, 56, 0, 0, 454, 455, 5, 3, 0, 0, 455, 462, 3, 68, 34, 0, 456, 457, 5, 2, 0, 0, 457, 458,
3914
+ 5, 56, 0, 0, 458, 459, 5, 3, 0, 0, 459, 461, 3, 68, 34, 0, 460, 456, 1, 0, 0, 0, 461, 464,
3915
+ 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462,
3916
+ 1, 0, 0, 0, 465, 436, 1, 0, 0, 0, 465, 453, 1, 0, 0, 0, 466, 75, 1, 0, 0, 0, 467, 471, 5,
3917
+ 56, 0, 0, 468, 470, 3, 80, 40, 0, 469, 468, 1, 0, 0, 0, 470, 473, 1, 0, 0, 0, 471, 469,
3918
+ 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 77, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 476, 5,
3919
+ 52, 0, 0, 475, 477, 3, 56, 28, 0, 476, 475, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478,
3920
+ 1, 0, 0, 0, 478, 481, 5, 53, 0, 0, 479, 481, 3, 80, 40, 0, 480, 474, 1, 0, 0, 0, 480, 479,
3921
+ 1, 0, 0, 0, 481, 79, 1, 0, 0, 0, 482, 483, 5, 7, 0, 0, 483, 489, 5, 56, 0, 0, 484, 485,
3922
+ 5, 5, 0, 0, 485, 486, 3, 62, 31, 0, 486, 487, 5, 6, 0, 0, 487, 489, 1, 0, 0, 0, 488, 482,
3923
+ 1, 0, 0, 0, 488, 484, 1, 0, 0, 0, 489, 81, 1, 0, 0, 0, 490, 492, 3, 84, 42, 0, 491, 490,
3924
+ 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 495, 5, 56, 0, 0, 494, 496,
3925
+ 3, 78, 39, 0, 495, 494, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 498,
3926
+ 1, 0, 0, 0, 498, 83, 1, 0, 0, 0, 499, 501, 5, 42, 0, 0, 500, 499, 1, 0, 0, 0, 500, 501,
3927
+ 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504, 5, 44, 0, 0, 503, 505, 3, 62, 31, 0, 504, 503,
3928
+ 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 85, 1, 0, 0, 0, 506, 507, 5, 22, 0, 0, 507, 508,
3929
+ 3, 62, 31, 0, 508, 87, 1, 0, 0, 0, 509, 510, 3, 104, 52, 0, 510, 511, 5, 1, 0, 0, 511,
3930
+ 512, 3, 10, 5, 0, 512, 89, 1, 0, 0, 0, 513, 514, 5, 10, 0, 0, 514, 515, 5, 11, 0, 0, 515,
3931
+ 516, 5, 1, 0, 0, 516, 517, 5, 64, 0, 0, 517, 520, 5, 66, 0, 0, 518, 521, 5, 64, 0, 0, 519,
3932
+ 521, 3, 102, 51, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522,
3933
+ 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 67, 0, 0, 525,
3934
+ 91, 1, 0, 0, 0, 526, 527, 5, 64, 0, 0, 527, 530, 5, 66, 0, 0, 528, 531, 5, 64, 0, 0, 529,
3935
+ 531, 3, 100, 50, 0, 530, 528, 1, 0, 0, 0, 530, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532,
3936
+ 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 535, 5, 67, 0, 0, 535,
3937
+ 93, 1, 0, 0, 0, 536, 537, 5, 10, 0, 0, 537, 541, 5, 12, 0, 0, 538, 539, 5, 52, 0, 0, 539,
3938
+ 540, 5, 56, 0, 0, 540, 542, 5, 53, 0, 0, 541, 538, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542,
3939
+ 543, 1, 0, 0, 0, 543, 544, 5, 1, 0, 0, 544, 545, 3, 92, 46, 0, 545, 95, 1, 0, 0, 0, 546,
3940
+ 547, 5, 10, 0, 0, 547, 548, 5, 13, 0, 0, 548, 549, 5, 1, 0, 0, 549, 550, 5, 64, 0, 0, 550,
3941
+ 554, 5, 66, 0, 0, 551, 555, 5, 64, 0, 0, 552, 555, 3, 102, 51, 0, 553, 555, 3, 88, 44,
3942
+ 0, 554, 551, 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 554, 553, 1, 0, 0, 0, 555, 556, 1, 0, 0,
3943
+ 0, 556, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 559, 5, 67, 0,
3944
+ 0, 559, 97, 1, 0, 0, 0, 560, 561, 5, 64, 0, 0, 561, 564, 5, 66, 0, 0, 562, 565, 5, 64,
3945
+ 0, 0, 563, 565, 3, 102, 51, 0, 564, 562, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 566, 1,
3946
+ 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 567, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 5,
3947
+ 67, 0, 0, 569, 99, 1, 0, 0, 0, 570, 572, 7, 11, 0, 0, 571, 573, 5, 1, 0, 0, 572, 571, 1,
3948
+ 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 580, 1, 0, 0, 0, 574, 581, 3, 56, 28, 0, 575, 576,
3949
+ 5, 52, 0, 0, 576, 577, 3, 56, 28, 0, 577, 578, 5, 53, 0, 0, 578, 581, 1, 0, 0, 0, 579,
3950
+ 581, 3, 98, 49, 0, 580, 574, 1, 0, 0, 0, 580, 575, 1, 0, 0, 0, 580, 579, 1, 0, 0, 0, 581,
3951
+ 597, 1, 0, 0, 0, 582, 583, 5, 25, 0, 0, 583, 588, 5, 56, 0, 0, 584, 585, 5, 2, 0, 0, 585,
3952
+ 587, 5, 56, 0, 0, 586, 584, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588,
3953
+ 589, 1, 0, 0, 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 26, 0, 0, 592,
3954
+ 593, 3, 62, 31, 0, 593, 594, 5, 1, 0, 0, 594, 595, 3, 92, 46, 0, 595, 597, 1, 0, 0, 0,
3955
+ 596, 570, 1, 0, 0, 0, 596, 582, 1, 0, 0, 0, 597, 101, 1, 0, 0, 0, 598, 599, 3, 104, 52,
3956
+ 0, 599, 600, 5, 1, 0, 0, 600, 601, 3, 106, 53, 0, 601, 103, 1, 0, 0, 0, 602, 603, 7, 12,
3957
+ 0, 0, 603, 105, 1, 0, 0, 0, 604, 614, 3, 98, 49, 0, 605, 610, 3, 62, 31, 0, 606, 607,
3958
+ 5, 2, 0, 0, 607, 609, 3, 62, 31, 0, 608, 606, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608,
3959
+ 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 604,
3960
+ 1, 0, 0, 0, 613, 605, 1, 0, 0, 0, 614, 107, 1, 0, 0, 0, 615, 618, 5, 56, 0, 0, 616, 619,
3961
+ 5, 57, 0, 0, 617, 619, 3, 62, 31, 0, 618, 616, 1, 0, 0, 0, 618, 617, 1, 0, 0, 0, 619, 622,
3962
+ 1, 0, 0, 0, 620, 622, 5, 56, 0, 0, 621, 615, 1, 0, 0, 0, 621, 620, 1, 0, 0, 0, 622, 109,
3963
+ 1, 0, 0, 0, 623, 627, 5, 14, 0, 0, 624, 626, 3, 108, 54, 0, 625, 624, 1, 0, 0, 0, 626,
3964
+ 629, 1, 0, 0, 0, 627, 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 111, 1, 0, 0, 0, 629,
3965
+ 627, 1, 0, 0, 0, 630, 641, 5, 5, 0, 0, 631, 636, 3, 62, 31, 0, 632, 633, 5, 2, 0, 0, 633,
3966
+ 635, 3, 62, 31, 0, 634, 632, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
3967
+ 637, 1, 0, 0, 0, 637, 640, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 631, 1, 0, 0, 0, 640,
3968
+ 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 644, 1, 0, 0, 0, 643,
3969
+ 641, 1, 0, 0, 0, 644, 645, 5, 6, 0, 0, 645, 113, 1, 0, 0, 0, 646, 649, 5, 19, 0, 0, 647,
3970
+ 650, 5, 56, 0, 0, 648, 650, 3, 62, 31, 0, 649, 647, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650,
3971
+ 115, 1, 0, 0, 0, 651, 652, 5, 24, 0, 0, 652, 653, 5, 56, 0, 0, 653, 117, 1, 0, 0, 0, 654,
3972
+ 655, 7, 13, 0, 0, 655, 656, 5, 1, 0, 0, 656, 657, 3, 10, 5, 0, 657, 119, 1, 0, 0, 0, 658,
3973
+ 659, 5, 29, 0, 0, 659, 660, 3, 62, 31, 0, 660, 661, 5, 1, 0, 0, 661, 665, 3, 10, 5, 0,
3974
+ 662, 664, 3, 122, 61, 0, 663, 662, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0,
3975
+ 0, 665, 666, 1, 0, 0, 0, 666, 669, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 670, 3, 124,
3976
+ 62, 0, 669, 668, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 121, 1, 0, 0, 0, 671, 672, 5, 30,
3977
+ 0, 0, 672, 673, 5, 29, 0, 0, 673, 674, 3, 62, 31, 0, 674, 675, 5, 1, 0, 0, 675, 676, 3,
3978
+ 10, 5, 0, 676, 123, 1, 0, 0, 0, 677, 678, 5, 30, 0, 0, 678, 679, 5, 1, 0, 0, 679, 680,
3979
+ 3, 10, 5, 0, 680, 125, 1, 0, 0, 0, 681, 682, 5, 27, 0, 0, 682, 683, 3, 62, 31, 0, 683,
3980
+ 684, 5, 1, 0, 0, 684, 685, 3, 10, 5, 0, 685, 127, 1, 0, 0, 0, 686, 687, 5, 25, 0, 0, 687,
3981
+ 692, 5, 56, 0, 0, 688, 689, 5, 2, 0, 0, 689, 691, 5, 56, 0, 0, 690, 688, 1, 0, 0, 0, 691,
3982
+ 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 695, 1, 0, 0, 0, 694,
3983
+ 692, 1, 0, 0, 0, 695, 696, 5, 26, 0, 0, 696, 697, 3, 62, 31, 0, 697, 698, 5, 1, 0, 0, 698,
3984
+ 699, 3, 10, 5, 0, 699, 129, 1, 0, 0, 0, 77, 132, 134, 139, 141, 157, 164, 168, 176,
3985
+ 182, 184, 198, 200, 215, 219, 224, 228, 236, 249, 260, 268, 270, 281, 292, 294,
3986
+ 300, 306, 310, 316, 334, 341, 349, 352, 370, 380, 400, 402, 410, 418, 426, 428,
3987
+ 434, 441, 450, 462, 465, 471, 476, 480, 488, 491, 497, 500, 504, 520, 522, 530,
3988
+ 532, 541, 554, 556, 564, 566, 572, 580, 588, 596, 610, 613, 618, 621, 627, 636,
3989
+ 641, 649, 665, 669, 692
3924
3990
  ];
3925
3991
  static __ATN;
3926
3992
  static get _ATN() {
@@ -4846,6 +4912,26 @@ export class ArrayExprContext extends Data_exprContext {
4846
4912
  }
4847
4913
  }
4848
4914
  }
4915
+ export class ArrayIndexExprContext extends Data_exprContext {
4916
+ constructor(ctx) {
4917
+ super(ctx.parent, ctx.invokingState);
4918
+ super.copyFrom(ctx);
4919
+ }
4920
+ data_expr(i) {
4921
+ if (i === undefined) {
4922
+ return this.getRuleContexts(Data_exprContext);
4923
+ }
4924
+ return this.getRuleContext(i, Data_exprContext);
4925
+ }
4926
+ accept(visitor) {
4927
+ if (visitor.visitArrayIndexExpr) {
4928
+ return visitor.visitArrayIndexExpr(this);
4929
+ }
4930
+ else {
4931
+ return visitor.visitChildren(this);
4932
+ }
4933
+ }
4934
+ }
4849
4935
  export class FunctionCallExprContext extends Data_exprContext {
4850
4936
  constructor(ctx) {
4851
4937
  super(ctx.parent, ctx.invokingState);
@@ -5253,13 +5339,14 @@ export class Atom_exprContext extends antlr.ParserRuleContext {
5253
5339
  constructor(parent, invokingState) {
5254
5340
  super(parent, invokingState);
5255
5341
  }
5256
- ID(i) {
5342
+ ID() {
5343
+ return this.getToken(CircuitScriptParser.ID, 0);
5344
+ }
5345
+ trailer_expr2(i) {
5257
5346
  if (i === undefined) {
5258
- return this.getTokens(CircuitScriptParser.ID);
5259
- }
5260
- else {
5261
- return this.getToken(CircuitScriptParser.ID, i);
5347
+ return this.getRuleContexts(Trailer_expr2Context);
5262
5348
  }
5349
+ return this.getRuleContext(i, Trailer_expr2Context);
5263
5350
  }
5264
5351
  get ruleIndex() {
5265
5352
  return CircuitScriptParser.RULE_atom_expr;
@@ -5286,8 +5373,8 @@ export class Trailer_exprContext extends antlr.ParserRuleContext {
5286
5373
  parameters() {
5287
5374
  return this.getRuleContext(0, ParametersContext);
5288
5375
  }
5289
- ID() {
5290
- return this.getToken(CircuitScriptParser.ID, 0);
5376
+ trailer_expr2() {
5377
+ return this.getRuleContext(0, Trailer_expr2Context);
5291
5378
  }
5292
5379
  get ruleIndex() {
5293
5380
  return CircuitScriptParser.RULE_trailer_expr;
@@ -5301,6 +5388,28 @@ export class Trailer_exprContext extends antlr.ParserRuleContext {
5301
5388
  }
5302
5389
  }
5303
5390
  }
5391
+ export class Trailer_expr2Context extends antlr.ParserRuleContext {
5392
+ constructor(parent, invokingState) {
5393
+ super(parent, invokingState);
5394
+ }
5395
+ ID() {
5396
+ return this.getToken(CircuitScriptParser.ID, 0);
5397
+ }
5398
+ data_expr() {
5399
+ return this.getRuleContext(0, Data_exprContext);
5400
+ }
5401
+ get ruleIndex() {
5402
+ return CircuitScriptParser.RULE_trailer_expr2;
5403
+ }
5404
+ accept(visitor) {
5405
+ if (visitor.visitTrailer_expr2) {
5406
+ return visitor.visitTrailer_expr2(this);
5407
+ }
5408
+ else {
5409
+ return visitor.visitChildren(this);
5410
+ }
5411
+ }
5412
+ }
5304
5413
  export class Function_call_exprContext extends antlr.ParserRuleContext {
5305
5414
  constructor(parent, invokingState) {
5306
5415
  super(parent, invokingState);