circuitscript 0.0.26 → 0.0.27

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.
@@ -97,19 +97,20 @@ export class CircuitScriptParser extends antlr.Parser {
97
97
  static RULE_function_return_expr = 39;
98
98
  static RULE_create_component_expr = 40;
99
99
  static RULE_create_graphic_expr = 41;
100
- static RULE_graphic_expr = 42;
101
- static RULE_property_expr = 43;
102
- static RULE_property_key_expr = 44;
103
- static RULE_property_value_expr = 45;
104
- static RULE_blank_expr = 46;
105
- static RULE_wire_atom_expr = 47;
106
- static RULE_wire_expr = 48;
107
- static RULE_point_expr = 49;
108
- static RULE_import_expr = 50;
109
- static RULE_frame_expr = 51;
110
- static RULE_if_expr = 52;
111
- static RULE_if_inner_expr = 53;
112
- static RULE_else_expr = 54;
100
+ static RULE_nested_properties_inner = 42;
101
+ static RULE_graphic_expr = 43;
102
+ static RULE_property_expr = 44;
103
+ static RULE_property_key_expr = 45;
104
+ static RULE_property_value_expr = 46;
105
+ static RULE_blank_expr = 47;
106
+ static RULE_wire_atom_expr = 48;
107
+ static RULE_wire_expr = 49;
108
+ static RULE_point_expr = 50;
109
+ static RULE_import_expr = 51;
110
+ static RULE_frame_expr = 52;
111
+ static RULE_if_expr = 53;
112
+ static RULE_if_inner_expr = 54;
113
+ static RULE_else_expr = 55;
113
114
  static literalNames = [
114
115
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
115
116
  "'branch'", "'create'", "'component'", "'graphic'", "'wire'", "'pin'",
@@ -141,10 +142,10 @@ export class CircuitScriptParser extends antlr.Parser {
141
142
  "data_expr", "binary_operator", "unary_operator", "value_expr",
142
143
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
143
144
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
144
- "create_component_expr", "create_graphic_expr", "graphic_expr",
145
- "property_expr", "property_key_expr", "property_value_expr", "blank_expr",
146
- "wire_atom_expr", "wire_expr", "point_expr", "import_expr", "frame_expr",
147
- "if_expr", "if_inner_expr", "else_expr",
145
+ "create_component_expr", "create_graphic_expr", "nested_properties_inner",
146
+ "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
147
+ "blank_expr", "wire_atom_expr", "wire_expr", "point_expr", "import_expr",
148
+ "frame_expr", "if_expr", "if_inner_expr", "else_expr",
148
149
  ];
149
150
  get grammarFileName() { return "CircuitScript.g4"; }
150
151
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -165,12 +166,12 @@ export class CircuitScriptParser extends antlr.Parser {
165
166
  try {
166
167
  this.enterOuterAlt(localContext, 1);
167
168
  {
168
- this.state = 112;
169
+ this.state = 114;
169
170
  this.errorHandler.sync(this);
170
171
  _la = this.tokenStream.LA(1);
171
172
  do {
172
173
  {
173
- this.state = 112;
174
+ this.state = 114;
174
175
  this.errorHandler.sync(this);
175
176
  switch (this.tokenStream.LA(1)) {
176
177
  case CircuitScriptParser.T__3:
@@ -191,13 +192,13 @@ export class CircuitScriptParser extends antlr.Parser {
191
192
  case CircuitScriptParser.Divide:
192
193
  case CircuitScriptParser.ID:
193
194
  {
194
- this.state = 110;
195
+ this.state = 112;
195
196
  this.expression();
196
197
  }
197
198
  break;
198
199
  case CircuitScriptParser.NEWLINE:
199
200
  {
200
- this.state = 111;
201
+ this.state = 113;
201
202
  this.match(CircuitScriptParser.NEWLINE);
202
203
  }
203
204
  break;
@@ -205,11 +206,11 @@ export class CircuitScriptParser extends antlr.Parser {
205
206
  throw new antlr.NoViableAltException(this);
206
207
  }
207
208
  }
208
- this.state = 114;
209
+ this.state = 116;
209
210
  this.errorHandler.sync(this);
210
211
  _la = this.tokenStream.LA(1);
211
212
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
212
- this.state = 116;
213
+ this.state = 118;
213
214
  this.match(CircuitScriptParser.EOF);
214
215
  }
215
216
  }
@@ -231,132 +232,132 @@ export class CircuitScriptParser extends antlr.Parser {
231
232
  let localContext = new ExpressionContext(this.context, this.state);
232
233
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
233
234
  try {
234
- this.state = 136;
235
+ this.state = 138;
235
236
  this.errorHandler.sync(this);
236
237
  switch (this.interpreter.adaptivePredict(this.tokenStream, 2, this.context)) {
237
238
  case 1:
238
239
  this.enterOuterAlt(localContext, 1);
239
240
  {
240
- this.state = 118;
241
+ this.state = 120;
241
242
  this.add_component_expr();
242
243
  }
243
244
  break;
244
245
  case 2:
245
246
  this.enterOuterAlt(localContext, 2);
246
247
  {
247
- this.state = 119;
248
+ this.state = 121;
248
249
  this.to_component_expr();
249
250
  }
250
251
  break;
251
252
  case 3:
252
253
  this.enterOuterAlt(localContext, 3);
253
254
  {
254
- this.state = 120;
255
+ this.state = 122;
255
256
  this.at_component_expr();
256
257
  }
257
258
  break;
258
259
  case 4:
259
260
  this.enterOuterAlt(localContext, 4);
260
261
  {
261
- this.state = 121;
262
+ this.state = 123;
262
263
  this.assignment_expr();
263
264
  }
264
265
  break;
265
266
  case 5:
266
267
  this.enterOuterAlt(localContext, 5);
267
268
  {
268
- this.state = 122;
269
+ this.state = 124;
269
270
  this.property_set_expr();
270
271
  }
271
272
  break;
272
273
  case 6:
273
274
  this.enterOuterAlt(localContext, 6);
274
275
  {
275
- this.state = 123;
276
+ this.state = 125;
276
277
  this.property_set_expr2();
277
278
  }
278
279
  break;
279
280
  case 7:
280
281
  this.enterOuterAlt(localContext, 7);
281
282
  {
282
- this.state = 124;
283
+ this.state = 126;
283
284
  this.double_dot_property_set_expr();
284
285
  }
285
286
  break;
286
287
  case 8:
287
288
  this.enterOuterAlt(localContext, 8);
288
289
  {
289
- this.state = 125;
290
+ this.state = 127;
290
291
  this.break_keyword();
291
292
  }
292
293
  break;
293
294
  case 9:
294
295
  this.enterOuterAlt(localContext, 9);
295
296
  {
296
- this.state = 126;
297
+ this.state = 128;
297
298
  this.function_def_expr();
298
299
  }
299
300
  break;
300
301
  case 10:
301
302
  this.enterOuterAlt(localContext, 10);
302
303
  {
303
- this.state = 127;
304
+ this.state = 129;
304
305
  this.function_call_expr();
305
306
  }
306
307
  break;
307
308
  case 11:
308
309
  this.enterOuterAlt(localContext, 11);
309
310
  {
310
- this.state = 128;
311
+ this.state = 130;
311
312
  this.wire_expr();
312
313
  }
313
314
  break;
314
315
  case 12:
315
316
  this.enterOuterAlt(localContext, 12);
316
317
  {
317
- this.state = 129;
318
+ this.state = 131;
318
319
  this.import_expr();
319
320
  }
320
321
  break;
321
322
  case 13:
322
323
  this.enterOuterAlt(localContext, 13);
323
324
  {
324
- this.state = 130;
325
+ this.state = 132;
325
326
  this.frame_expr();
326
327
  }
327
328
  break;
328
329
  case 14:
329
330
  this.enterOuterAlt(localContext, 14);
330
331
  {
331
- this.state = 131;
332
+ this.state = 133;
332
333
  this.atom_expr();
333
334
  }
334
335
  break;
335
336
  case 15:
336
337
  this.enterOuterAlt(localContext, 15);
337
338
  {
338
- this.state = 132;
339
+ this.state = 134;
339
340
  this.at_block();
340
341
  }
341
342
  break;
342
343
  case 16:
343
344
  this.enterOuterAlt(localContext, 16);
344
345
  {
345
- this.state = 133;
346
+ this.state = 135;
346
347
  this.path_blocks();
347
348
  }
348
349
  break;
349
350
  case 17:
350
351
  this.enterOuterAlt(localContext, 17);
351
352
  {
352
- this.state = 134;
353
+ this.state = 136;
353
354
  this.point_expr();
354
355
  }
355
356
  break;
356
357
  case 18:
357
358
  this.enterOuterAlt(localContext, 18);
358
359
  {
359
- this.state = 135;
360
+ this.state = 137;
360
361
  this.if_expr();
361
362
  }
362
363
  break;
@@ -383,7 +384,7 @@ export class CircuitScriptParser extends antlr.Parser {
383
384
  let alternative;
384
385
  this.enterOuterAlt(localContext, 1);
385
386
  {
386
- this.state = 139;
387
+ this.state = 141;
387
388
  this.errorHandler.sync(this);
388
389
  alternative = 1;
389
390
  do {
@@ -391,7 +392,7 @@ export class CircuitScriptParser extends antlr.Parser {
391
392
  case 1:
392
393
  {
393
394
  {
394
- this.state = 138;
395
+ this.state = 140;
395
396
  this.path_block_inner();
396
397
  }
397
398
  }
@@ -399,7 +400,7 @@ export class CircuitScriptParser extends antlr.Parser {
399
400
  default:
400
401
  throw new antlr.NoViableAltException(this);
401
402
  }
402
- this.state = 141;
403
+ this.state = 143;
403
404
  this.errorHandler.sync(this);
404
405
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 3, this.context);
405
406
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -426,7 +427,7 @@ export class CircuitScriptParser extends antlr.Parser {
426
427
  try {
427
428
  this.enterOuterAlt(localContext, 1);
428
429
  {
429
- this.state = 143;
430
+ this.state = 145;
430
431
  _la = this.tokenStream.LA(1);
431
432
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1835520) !== 0))) {
432
433
  this.errorHandler.recoverInline(this);
@@ -435,23 +436,23 @@ export class CircuitScriptParser extends antlr.Parser {
435
436
  this.errorHandler.reportMatch(this);
436
437
  this.consume();
437
438
  }
438
- this.state = 144;
439
+ this.state = 146;
439
440
  this.match(CircuitScriptParser.T__0);
440
- this.state = 145;
441
+ this.state = 147;
441
442
  this.match(CircuitScriptParser.NEWLINE);
442
- this.state = 146;
443
+ this.state = 148;
443
444
  this.match(CircuitScriptParser.INDENT);
444
- this.state = 149;
445
+ this.state = 151;
445
446
  this.errorHandler.sync(this);
446
447
  _la = this.tokenStream.LA(1);
447
448
  do {
448
449
  {
449
- this.state = 149;
450
+ this.state = 151;
450
451
  this.errorHandler.sync(this);
451
452
  switch (this.tokenStream.LA(1)) {
452
453
  case CircuitScriptParser.NEWLINE:
453
454
  {
454
- this.state = 147;
455
+ this.state = 149;
455
456
  this.match(CircuitScriptParser.NEWLINE);
456
457
  }
457
458
  break;
@@ -473,7 +474,7 @@ export class CircuitScriptParser extends antlr.Parser {
473
474
  case CircuitScriptParser.Divide:
474
475
  case CircuitScriptParser.ID:
475
476
  {
476
- this.state = 148;
477
+ this.state = 150;
477
478
  this.expression();
478
479
  }
479
480
  break;
@@ -481,11 +482,11 @@ export class CircuitScriptParser extends antlr.Parser {
481
482
  throw new antlr.NoViableAltException(this);
482
483
  }
483
484
  }
484
- this.state = 151;
485
+ this.state = 153;
485
486
  this.errorHandler.sync(this);
486
487
  _la = this.tokenStream.LA(1);
487
488
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
488
- this.state = 153;
489
+ this.state = 155;
489
490
  this.match(CircuitScriptParser.DEDENT);
490
491
  }
491
492
  }
@@ -510,32 +511,32 @@ export class CircuitScriptParser extends antlr.Parser {
510
511
  try {
511
512
  this.enterOuterAlt(localContext, 1);
512
513
  {
513
- this.state = 155;
514
+ this.state = 157;
514
515
  this.atom_expr();
515
- this.state = 156;
516
+ this.state = 158;
516
517
  this.match(CircuitScriptParser.T__0);
517
- this.state = 157;
518
+ this.state = 159;
518
519
  this.match(CircuitScriptParser.NEWLINE);
519
- this.state = 158;
520
+ this.state = 160;
520
521
  this.match(CircuitScriptParser.INDENT);
521
- this.state = 161;
522
+ this.state = 163;
522
523
  this.errorHandler.sync(this);
523
524
  _la = this.tokenStream.LA(1);
524
525
  do {
525
526
  {
526
- this.state = 161;
527
+ this.state = 163;
527
528
  this.errorHandler.sync(this);
528
529
  switch (this.tokenStream.LA(1)) {
529
530
  case CircuitScriptParser.NEWLINE:
530
531
  {
531
- this.state = 159;
532
+ this.state = 161;
532
533
  this.match(CircuitScriptParser.NEWLINE);
533
534
  }
534
535
  break;
535
536
  case CircuitScriptParser.ID:
536
537
  case CircuitScriptParser.INTEGER_VALUE:
537
538
  {
538
- this.state = 160;
539
+ this.state = 162;
539
540
  this.assignment_expr2();
540
541
  }
541
542
  break;
@@ -543,11 +544,11 @@ export class CircuitScriptParser extends antlr.Parser {
543
544
  throw new antlr.NoViableAltException(this);
544
545
  }
545
546
  }
546
- this.state = 163;
547
+ this.state = 165;
547
548
  this.errorHandler.sync(this);
548
549
  _la = this.tokenStream.LA(1);
549
550
  } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 259) !== 0));
550
- this.state = 165;
551
+ this.state = 167;
551
552
  this.match(CircuitScriptParser.DEDENT);
552
553
  }
553
554
  }
@@ -572,7 +573,7 @@ export class CircuitScriptParser extends antlr.Parser {
572
573
  try {
573
574
  this.enterOuterAlt(localContext, 1);
574
575
  {
575
- this.state = 167;
576
+ this.state = 169;
576
577
  _la = this.tokenStream.LA(1);
577
578
  if (!(_la === 44 || _la === 45)) {
578
579
  this.errorHandler.recoverInline(this);
@@ -581,9 +582,9 @@ export class CircuitScriptParser extends antlr.Parser {
581
582
  this.errorHandler.reportMatch(this);
582
583
  this.consume();
583
584
  }
584
- this.state = 168;
585
+ this.state = 170;
585
586
  this.match(CircuitScriptParser.T__0);
586
- this.state = 169;
587
+ this.state = 171;
587
588
  this.value_expr();
588
589
  }
589
590
  }
@@ -608,9 +609,9 @@ export class CircuitScriptParser extends antlr.Parser {
608
609
  try {
609
610
  this.enterOuterAlt(localContext, 1);
610
611
  {
611
- this.state = 171;
612
+ this.state = 173;
612
613
  this.match(CircuitScriptParser.Pin);
613
- this.state = 172;
614
+ this.state = 174;
614
615
  _la = this.tokenStream.LA(1);
615
616
  if (!(_la === 45 || _la === 48)) {
616
617
  this.errorHandler.recoverInline(this);
@@ -641,11 +642,11 @@ export class CircuitScriptParser extends antlr.Parser {
641
642
  try {
642
643
  this.enterOuterAlt(localContext, 1);
643
644
  {
644
- this.state = 174;
645
+ this.state = 176;
645
646
  this.match(CircuitScriptParser.ID);
646
- this.state = 175;
647
+ this.state = 177;
647
648
  this.match(CircuitScriptParser.T__0);
648
- this.state = 178;
649
+ this.state = 180;
649
650
  this.errorHandler.sync(this);
650
651
  switch (this.tokenStream.LA(1)) {
651
652
  case CircuitScriptParser.T__5:
@@ -657,13 +658,13 @@ export class CircuitScriptParser extends antlr.Parser {
657
658
  case CircuitScriptParser.STRING_VALUE:
658
659
  case CircuitScriptParser.PERCENTAGE_VALUE:
659
660
  {
660
- this.state = 176;
661
+ this.state = 178;
661
662
  this.value_expr();
662
663
  }
663
664
  break;
664
665
  case CircuitScriptParser.ID:
665
666
  {
666
- this.state = 177;
667
+ this.state = 179;
667
668
  this.match(CircuitScriptParser.ID);
668
669
  }
669
670
  break;
@@ -694,44 +695,44 @@ export class CircuitScriptParser extends antlr.Parser {
694
695
  let alternative;
695
696
  this.enterOuterAlt(localContext, 1);
696
697
  {
697
- this.state = 182;
698
+ this.state = 184;
698
699
  this.errorHandler.sync(this);
699
700
  switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
700
701
  case 1:
701
702
  {
702
- this.state = 180;
703
+ this.state = 182;
703
704
  this.data_expr(0);
704
705
  }
705
706
  break;
706
707
  case 2:
707
708
  {
708
- this.state = 181;
709
+ this.state = 183;
709
710
  this.assignment_expr();
710
711
  }
711
712
  break;
712
713
  }
713
- this.state = 187;
714
+ this.state = 189;
714
715
  this.errorHandler.sync(this);
715
716
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
716
717
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
717
718
  if (alternative === 1) {
718
719
  {
719
720
  {
720
- this.state = 184;
721
+ this.state = 186;
721
722
  this.component_modifier_expr();
722
723
  }
723
724
  }
724
725
  }
725
- this.state = 189;
726
+ this.state = 191;
726
727
  this.errorHandler.sync(this);
727
728
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
728
729
  }
729
- this.state = 191;
730
+ this.state = 193;
730
731
  this.errorHandler.sync(this);
731
732
  _la = this.tokenStream.LA(1);
732
733
  if (_la === 14) {
733
734
  {
734
- this.state = 190;
735
+ this.state = 192;
735
736
  this.pin_select_expr();
736
737
  }
737
738
  }
@@ -757,9 +758,9 @@ export class CircuitScriptParser extends antlr.Parser {
757
758
  try {
758
759
  this.enterOuterAlt(localContext, 1);
759
760
  {
760
- this.state = 193;
761
+ this.state = 195;
761
762
  this.match(CircuitScriptParser.Add);
762
- this.state = 194;
763
+ this.state = 196;
763
764
  this.data_expr_with_assignment();
764
765
  }
765
766
  }
@@ -781,7 +782,7 @@ export class CircuitScriptParser extends antlr.Parser {
781
782
  let localContext = new Component_select_exprContext(this.context, this.state);
782
783
  this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_select_expr);
783
784
  try {
784
- this.state = 198;
785
+ this.state = 200;
785
786
  this.errorHandler.sync(this);
786
787
  switch (this.tokenStream.LA(1)) {
787
788
  case CircuitScriptParser.T__5:
@@ -800,14 +801,14 @@ export class CircuitScriptParser extends antlr.Parser {
800
801
  case CircuitScriptParser.PERCENTAGE_VALUE:
801
802
  this.enterOuterAlt(localContext, 1);
802
803
  {
803
- this.state = 196;
804
+ this.state = 198;
804
805
  this.data_expr_with_assignment();
805
806
  }
806
807
  break;
807
808
  case CircuitScriptParser.Pin:
808
809
  this.enterOuterAlt(localContext, 2);
809
810
  {
810
- this.state = 197;
811
+ this.state = 199;
811
812
  this.pin_select_expr();
812
813
  }
813
814
  break;
@@ -836,7 +837,7 @@ export class CircuitScriptParser extends antlr.Parser {
836
837
  try {
837
838
  this.enterOuterAlt(localContext, 1);
838
839
  {
839
- this.state = 200;
840
+ this.state = 202;
840
841
  _la = this.tokenStream.LA(1);
841
842
  if (!(_la === 45 || _la === 48)) {
842
843
  this.errorHandler.recoverInline(this);
@@ -867,9 +868,9 @@ export class CircuitScriptParser extends antlr.Parser {
867
868
  try {
868
869
  this.enterOuterAlt(localContext, 1);
869
870
  {
870
- this.state = 202;
871
+ this.state = 204;
871
872
  this.match(CircuitScriptParser.At);
872
- this.state = 205;
873
+ this.state = 207;
873
874
  this.errorHandler.sync(this);
874
875
  switch (this.tokenStream.LA(1)) {
875
876
  case CircuitScriptParser.T__5:
@@ -888,13 +889,13 @@ export class CircuitScriptParser extends antlr.Parser {
888
889
  case CircuitScriptParser.STRING_VALUE:
889
890
  case CircuitScriptParser.PERCENTAGE_VALUE:
890
891
  {
891
- this.state = 203;
892
+ this.state = 205;
892
893
  this.component_select_expr();
893
894
  }
894
895
  break;
895
896
  case CircuitScriptParser.Point:
896
897
  {
897
- this.state = 204;
898
+ this.state = 206;
898
899
  this.match(CircuitScriptParser.Point);
899
900
  }
900
901
  break;
@@ -924,9 +925,9 @@ export class CircuitScriptParser extends antlr.Parser {
924
925
  try {
925
926
  this.enterOuterAlt(localContext, 1);
926
927
  {
927
- this.state = 207;
928
+ this.state = 209;
928
929
  this.match(CircuitScriptParser.To);
929
- this.state = 217;
930
+ this.state = 219;
930
931
  this.errorHandler.sync(this);
931
932
  switch (this.tokenStream.LA(1)) {
932
933
  case CircuitScriptParser.T__5:
@@ -946,21 +947,21 @@ export class CircuitScriptParser extends antlr.Parser {
946
947
  case CircuitScriptParser.PERCENTAGE_VALUE:
947
948
  {
948
949
  {
949
- this.state = 208;
950
+ this.state = 210;
950
951
  this.component_select_expr();
951
- this.state = 213;
952
+ this.state = 215;
952
953
  this.errorHandler.sync(this);
953
954
  _la = this.tokenStream.LA(1);
954
955
  while (_la === 2) {
955
956
  {
956
957
  {
957
- this.state = 209;
958
+ this.state = 211;
958
959
  this.match(CircuitScriptParser.T__1);
959
- this.state = 210;
960
+ this.state = 212;
960
961
  this.component_select_expr();
961
962
  }
962
963
  }
963
- this.state = 215;
964
+ this.state = 217;
964
965
  this.errorHandler.sync(this);
965
966
  _la = this.tokenStream.LA(1);
966
967
  }
@@ -969,7 +970,7 @@ export class CircuitScriptParser extends antlr.Parser {
969
970
  break;
970
971
  case CircuitScriptParser.Point:
971
972
  {
972
- this.state = 216;
973
+ this.state = 218;
973
974
  this.match(CircuitScriptParser.Point);
974
975
  }
975
976
  break;
@@ -999,54 +1000,54 @@ export class CircuitScriptParser extends antlr.Parser {
999
1000
  try {
1000
1001
  this.enterOuterAlt(localContext, 1);
1001
1002
  {
1002
- this.state = 219;
1003
+ this.state = 221;
1003
1004
  this.match(CircuitScriptParser.At);
1004
- this.state = 220;
1005
+ this.state = 222;
1005
1006
  this.component_select_expr();
1006
- this.state = 221;
1007
+ this.state = 223;
1007
1008
  this.match(CircuitScriptParser.To);
1008
- this.state = 222;
1009
+ this.state = 224;
1009
1010
  this.component_select_expr();
1010
- this.state = 227;
1011
+ this.state = 229;
1011
1012
  this.errorHandler.sync(this);
1012
1013
  _la = this.tokenStream.LA(1);
1013
1014
  while (_la === 2) {
1014
1015
  {
1015
1016
  {
1016
- this.state = 223;
1017
+ this.state = 225;
1017
1018
  this.match(CircuitScriptParser.T__1);
1018
- this.state = 224;
1019
+ this.state = 226;
1019
1020
  this.component_select_expr();
1020
1021
  }
1021
1022
  }
1022
- this.state = 229;
1023
+ this.state = 231;
1023
1024
  this.errorHandler.sync(this);
1024
1025
  _la = this.tokenStream.LA(1);
1025
1026
  }
1026
- this.state = 230;
1027
+ this.state = 232;
1027
1028
  this.match(CircuitScriptParser.T__0);
1028
- this.state = 231;
1029
+ this.state = 233;
1029
1030
  this.match(CircuitScriptParser.NEWLINE);
1030
- this.state = 232;
1031
+ this.state = 234;
1031
1032
  this.match(CircuitScriptParser.INDENT);
1032
- this.state = 235;
1033
+ this.state = 237;
1033
1034
  this.errorHandler.sync(this);
1034
1035
  _la = this.tokenStream.LA(1);
1035
1036
  do {
1036
1037
  {
1037
- this.state = 235;
1038
+ this.state = 237;
1038
1039
  this.errorHandler.sync(this);
1039
1040
  switch (this.tokenStream.LA(1)) {
1040
1041
  case CircuitScriptParser.NEWLINE:
1041
1042
  {
1042
- this.state = 233;
1043
+ this.state = 235;
1043
1044
  this.match(CircuitScriptParser.NEWLINE);
1044
1045
  }
1045
1046
  break;
1046
1047
  case CircuitScriptParser.INTEGER_VALUE:
1047
1048
  case CircuitScriptParser.STRING_VALUE:
1048
1049
  {
1049
- this.state = 234;
1050
+ this.state = 236;
1050
1051
  this.at_to_multiple_line_expr();
1051
1052
  }
1052
1053
  break;
@@ -1054,11 +1055,11 @@ export class CircuitScriptParser extends antlr.Parser {
1054
1055
  throw new antlr.NoViableAltException(this);
1055
1056
  }
1056
1057
  }
1057
- this.state = 237;
1058
+ this.state = 239;
1058
1059
  this.errorHandler.sync(this);
1059
1060
  _la = this.tokenStream.LA(1);
1060
1061
  } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 137) !== 0));
1061
- this.state = 239;
1062
+ this.state = 241;
1062
1063
  this.match(CircuitScriptParser.DEDENT);
1063
1064
  }
1064
1065
  }
@@ -1083,25 +1084,25 @@ export class CircuitScriptParser extends antlr.Parser {
1083
1084
  try {
1084
1085
  this.enterOuterAlt(localContext, 1);
1085
1086
  {
1086
- this.state = 241;
1087
+ this.state = 243;
1087
1088
  this.pin_select_expr2();
1088
- this.state = 242;
1089
+ this.state = 244;
1089
1090
  this.match(CircuitScriptParser.T__0);
1090
- this.state = 243;
1091
+ this.state = 245;
1091
1092
  this.at_to_multiple_line_expr_to_pin();
1092
- this.state = 248;
1093
+ this.state = 250;
1093
1094
  this.errorHandler.sync(this);
1094
1095
  _la = this.tokenStream.LA(1);
1095
1096
  while (_la === 2) {
1096
1097
  {
1097
1098
  {
1098
- this.state = 244;
1099
+ this.state = 246;
1099
1100
  this.match(CircuitScriptParser.T__1);
1100
- this.state = 245;
1101
+ this.state = 247;
1101
1102
  this.at_to_multiple_line_expr_to_pin();
1102
1103
  }
1103
1104
  }
1104
- this.state = 250;
1105
+ this.state = 252;
1105
1106
  this.errorHandler.sync(this);
1106
1107
  _la = this.tokenStream.LA(1);
1107
1108
  }
@@ -1128,7 +1129,7 @@ export class CircuitScriptParser extends antlr.Parser {
1128
1129
  try {
1129
1130
  this.enterOuterAlt(localContext, 1);
1130
1131
  {
1131
- this.state = 251;
1132
+ this.state = 253;
1132
1133
  _la = this.tokenStream.LA(1);
1133
1134
  if (!(_la === 42 || _la === 45)) {
1134
1135
  this.errorHandler.recoverInline(this);
@@ -1160,25 +1161,25 @@ export class CircuitScriptParser extends antlr.Parser {
1160
1161
  try {
1161
1162
  this.enterOuterAlt(localContext, 1);
1162
1163
  {
1163
- this.state = 253;
1164
+ this.state = 255;
1164
1165
  this.at_component_expr();
1165
- this.state = 254;
1166
+ this.state = 256;
1166
1167
  this.match(CircuitScriptParser.T__0);
1167
- this.state = 255;
1168
+ this.state = 257;
1168
1169
  this.match(CircuitScriptParser.NEWLINE);
1169
- this.state = 256;
1170
+ this.state = 258;
1170
1171
  this.match(CircuitScriptParser.INDENT);
1171
- this.state = 259;
1172
+ this.state = 261;
1172
1173
  this.errorHandler.sync(this);
1173
1174
  _la = this.tokenStream.LA(1);
1174
1175
  do {
1175
1176
  {
1176
- this.state = 259;
1177
+ this.state = 261;
1177
1178
  this.errorHandler.sync(this);
1178
1179
  switch (this.tokenStream.LA(1)) {
1179
1180
  case CircuitScriptParser.NEWLINE:
1180
1181
  {
1181
- this.state = 257;
1182
+ this.state = 259;
1182
1183
  this.match(CircuitScriptParser.NEWLINE);
1183
1184
  }
1184
1185
  break;
@@ -1202,7 +1203,7 @@ export class CircuitScriptParser extends antlr.Parser {
1202
1203
  case CircuitScriptParser.INTEGER_VALUE:
1203
1204
  case CircuitScriptParser.STRING_VALUE:
1204
1205
  {
1205
- this.state = 258;
1206
+ this.state = 260;
1206
1207
  this.at_block_expressions();
1207
1208
  }
1208
1209
  break;
@@ -1210,11 +1211,11 @@ export class CircuitScriptParser extends antlr.Parser {
1210
1211
  throw new antlr.NoViableAltException(this);
1211
1212
  }
1212
1213
  }
1213
- this.state = 261;
1214
+ this.state = 263;
1214
1215
  this.errorHandler.sync(this);
1215
1216
  _la = this.tokenStream.LA(1);
1216
1217
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 70405) !== 0));
1217
- this.state = 263;
1218
+ this.state = 265;
1218
1219
  this.match(CircuitScriptParser.DEDENT);
1219
1220
  }
1220
1221
  }
@@ -1236,7 +1237,7 @@ export class CircuitScriptParser extends antlr.Parser {
1236
1237
  let localContext = new At_block_expressionsContext(this.context, this.state);
1237
1238
  this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions);
1238
1239
  try {
1239
- this.state = 267;
1240
+ this.state = 269;
1240
1241
  this.errorHandler.sync(this);
1241
1242
  switch (this.tokenStream.LA(1)) {
1242
1243
  case CircuitScriptParser.T__3:
@@ -1258,7 +1259,7 @@ export class CircuitScriptParser extends antlr.Parser {
1258
1259
  case CircuitScriptParser.ID:
1259
1260
  this.enterOuterAlt(localContext, 1);
1260
1261
  {
1261
- this.state = 265;
1262
+ this.state = 267;
1262
1263
  this.expression();
1263
1264
  }
1264
1265
  break;
@@ -1266,7 +1267,7 @@ export class CircuitScriptParser extends antlr.Parser {
1266
1267
  case CircuitScriptParser.STRING_VALUE:
1267
1268
  this.enterOuterAlt(localContext, 2);
1268
1269
  {
1269
- this.state = 266;
1270
+ this.state = 268;
1270
1271
  this.at_block_pin_expr();
1271
1272
  }
1272
1273
  break;
@@ -1294,11 +1295,11 @@ export class CircuitScriptParser extends antlr.Parser {
1294
1295
  try {
1295
1296
  this.enterOuterAlt(localContext, 1);
1296
1297
  {
1297
- this.state = 269;
1298
+ this.state = 271;
1298
1299
  this.pin_select_expr2();
1299
- this.state = 270;
1300
+ this.state = 272;
1300
1301
  this.match(CircuitScriptParser.T__0);
1301
- this.state = 273;
1302
+ this.state = 275;
1302
1303
  this.errorHandler.sync(this);
1303
1304
  switch (this.tokenStream.LA(1)) {
1304
1305
  case CircuitScriptParser.T__3:
@@ -1320,13 +1321,13 @@ export class CircuitScriptParser extends antlr.Parser {
1320
1321
  case CircuitScriptParser.NOT_CONNECTED:
1321
1322
  case CircuitScriptParser.ID:
1322
1323
  {
1323
- this.state = 271;
1324
+ this.state = 273;
1324
1325
  this.at_block_pin_expression_simple();
1325
1326
  }
1326
1327
  break;
1327
1328
  case CircuitScriptParser.NEWLINE:
1328
1329
  {
1329
- this.state = 272;
1330
+ this.state = 274;
1330
1331
  this.at_block_pin_expression_complex();
1331
1332
  }
1332
1333
  break;
@@ -1355,7 +1356,7 @@ export class CircuitScriptParser extends antlr.Parser {
1355
1356
  try {
1356
1357
  this.enterOuterAlt(localContext, 1);
1357
1358
  {
1358
- this.state = 277;
1359
+ this.state = 279;
1359
1360
  this.errorHandler.sync(this);
1360
1361
  switch (this.tokenStream.LA(1)) {
1361
1362
  case CircuitScriptParser.T__3:
@@ -1376,13 +1377,13 @@ export class CircuitScriptParser extends antlr.Parser {
1376
1377
  case CircuitScriptParser.Divide:
1377
1378
  case CircuitScriptParser.ID:
1378
1379
  {
1379
- this.state = 275;
1380
+ this.state = 277;
1380
1381
  this.expression();
1381
1382
  }
1382
1383
  break;
1383
1384
  case CircuitScriptParser.NOT_CONNECTED:
1384
1385
  {
1385
- this.state = 276;
1386
+ this.state = 278;
1386
1387
  this.match(CircuitScriptParser.NOT_CONNECTED);
1387
1388
  }
1388
1389
  break;
@@ -1412,21 +1413,21 @@ export class CircuitScriptParser extends antlr.Parser {
1412
1413
  try {
1413
1414
  this.enterOuterAlt(localContext, 1);
1414
1415
  {
1415
- this.state = 279;
1416
+ this.state = 281;
1416
1417
  this.match(CircuitScriptParser.NEWLINE);
1417
- this.state = 280;
1418
+ this.state = 282;
1418
1419
  this.match(CircuitScriptParser.INDENT);
1419
- this.state = 283;
1420
+ this.state = 285;
1420
1421
  this.errorHandler.sync(this);
1421
1422
  _la = this.tokenStream.LA(1);
1422
1423
  do {
1423
1424
  {
1424
- this.state = 283;
1425
+ this.state = 285;
1425
1426
  this.errorHandler.sync(this);
1426
1427
  switch (this.tokenStream.LA(1)) {
1427
1428
  case CircuitScriptParser.NEWLINE:
1428
1429
  {
1429
- this.state = 281;
1430
+ this.state = 283;
1430
1431
  this.match(CircuitScriptParser.NEWLINE);
1431
1432
  }
1432
1433
  break;
@@ -1448,7 +1449,7 @@ export class CircuitScriptParser extends antlr.Parser {
1448
1449
  case CircuitScriptParser.Divide:
1449
1450
  case CircuitScriptParser.ID:
1450
1451
  {
1451
- this.state = 282;
1452
+ this.state = 284;
1452
1453
  this.expression();
1453
1454
  }
1454
1455
  break;
@@ -1456,11 +1457,11 @@ export class CircuitScriptParser extends antlr.Parser {
1456
1457
  throw new antlr.NoViableAltException(this);
1457
1458
  }
1458
1459
  }
1459
- this.state = 285;
1460
+ this.state = 287;
1460
1461
  this.errorHandler.sync(this);
1461
1462
  _la = this.tokenStream.LA(1);
1462
1463
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
1463
- this.state = 287;
1464
+ this.state = 289;
1464
1465
  this.match(CircuitScriptParser.DEDENT);
1465
1466
  }
1466
1467
  }
@@ -1484,7 +1485,7 @@ export class CircuitScriptParser extends antlr.Parser {
1484
1485
  try {
1485
1486
  this.enterOuterAlt(localContext, 1);
1486
1487
  {
1487
- this.state = 289;
1488
+ this.state = 291;
1488
1489
  this.match(CircuitScriptParser.Break);
1489
1490
  }
1490
1491
  }
@@ -1508,11 +1509,11 @@ export class CircuitScriptParser extends antlr.Parser {
1508
1509
  try {
1509
1510
  this.enterOuterAlt(localContext, 1);
1510
1511
  {
1511
- this.state = 291;
1512
+ this.state = 293;
1512
1513
  this.atom_expr();
1513
- this.state = 292;
1514
+ this.state = 294;
1514
1515
  this.match(CircuitScriptParser.T__2);
1515
- this.state = 293;
1516
+ this.state = 295;
1516
1517
  this.data_expr(0);
1517
1518
  }
1518
1519
  }
@@ -1536,11 +1537,11 @@ export class CircuitScriptParser extends antlr.Parser {
1536
1537
  try {
1537
1538
  this.enterOuterAlt(localContext, 1);
1538
1539
  {
1539
- this.state = 295;
1540
+ this.state = 297;
1540
1541
  this.match(CircuitScriptParser.ID);
1541
- this.state = 296;
1542
+ this.state = 298;
1542
1543
  this.match(CircuitScriptParser.T__2);
1543
- this.state = 297;
1544
+ this.state = 299;
1544
1545
  this.data_expr(0);
1545
1546
  }
1546
1547
  }
@@ -1564,46 +1565,46 @@ export class CircuitScriptParser extends antlr.Parser {
1564
1565
  let _la;
1565
1566
  try {
1566
1567
  let alternative;
1567
- this.state = 322;
1568
+ this.state = 324;
1568
1569
  this.errorHandler.sync(this);
1569
1570
  switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1570
1571
  case 1:
1571
1572
  this.enterOuterAlt(localContext, 1);
1572
1573
  {
1573
1574
  {
1574
- this.state = 299;
1575
+ this.state = 301;
1575
1576
  this.data_expr(0);
1576
- this.state = 304;
1577
+ this.state = 306;
1577
1578
  this.errorHandler.sync(this);
1578
1579
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1579
1580
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1580
1581
  if (alternative === 1) {
1581
1582
  {
1582
1583
  {
1583
- this.state = 300;
1584
+ this.state = 302;
1584
1585
  this.match(CircuitScriptParser.T__1);
1585
- this.state = 301;
1586
+ this.state = 303;
1586
1587
  this.data_expr(0);
1587
1588
  }
1588
1589
  }
1589
1590
  }
1590
- this.state = 306;
1591
+ this.state = 308;
1591
1592
  this.errorHandler.sync(this);
1592
1593
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1593
1594
  }
1594
- this.state = 311;
1595
+ this.state = 313;
1595
1596
  this.errorHandler.sync(this);
1596
1597
  _la = this.tokenStream.LA(1);
1597
1598
  while (_la === 2) {
1598
1599
  {
1599
1600
  {
1600
- this.state = 307;
1601
+ this.state = 309;
1601
1602
  this.match(CircuitScriptParser.T__1);
1602
- this.state = 308;
1603
+ this.state = 310;
1603
1604
  this.keyword_assignment_expr();
1604
1605
  }
1605
1606
  }
1606
- this.state = 313;
1607
+ this.state = 315;
1607
1608
  this.errorHandler.sync(this);
1608
1609
  _la = this.tokenStream.LA(1);
1609
1610
  }
@@ -1614,21 +1615,21 @@ export class CircuitScriptParser extends antlr.Parser {
1614
1615
  this.enterOuterAlt(localContext, 2);
1615
1616
  {
1616
1617
  {
1617
- this.state = 314;
1618
+ this.state = 316;
1618
1619
  this.keyword_assignment_expr();
1619
- this.state = 319;
1620
+ this.state = 321;
1620
1621
  this.errorHandler.sync(this);
1621
1622
  _la = this.tokenStream.LA(1);
1622
1623
  while (_la === 2) {
1623
1624
  {
1624
1625
  {
1625
- this.state = 315;
1626
+ this.state = 317;
1626
1627
  this.match(CircuitScriptParser.T__1);
1627
- this.state = 316;
1628
+ this.state = 318;
1628
1629
  this.keyword_assignment_expr();
1629
1630
  }
1630
1631
  }
1631
- this.state = 321;
1632
+ this.state = 323;
1632
1633
  this.errorHandler.sync(this);
1633
1634
  _la = this.tokenStream.LA(1);
1634
1635
  }
@@ -1657,11 +1658,11 @@ export class CircuitScriptParser extends antlr.Parser {
1657
1658
  try {
1658
1659
  this.enterOuterAlt(localContext, 1);
1659
1660
  {
1660
- this.state = 324;
1661
+ this.state = 326;
1661
1662
  this.atom_expr();
1662
- this.state = 325;
1663
+ this.state = 327;
1663
1664
  this.match(CircuitScriptParser.T__2);
1664
- this.state = 326;
1665
+ this.state = 328;
1665
1666
  this.data_expr(0);
1666
1667
  }
1667
1668
  }
@@ -1685,13 +1686,13 @@ export class CircuitScriptParser extends antlr.Parser {
1685
1686
  try {
1686
1687
  this.enterOuterAlt(localContext, 1);
1687
1688
  {
1688
- this.state = 328;
1689
+ this.state = 330;
1689
1690
  this.match(CircuitScriptParser.T__3);
1690
- this.state = 329;
1691
+ this.state = 331;
1691
1692
  this.match(CircuitScriptParser.ID);
1692
- this.state = 330;
1693
+ this.state = 332;
1693
1694
  this.match(CircuitScriptParser.T__2);
1694
- this.state = 331;
1695
+ this.state = 333;
1695
1696
  this.data_expr(0);
1696
1697
  }
1697
1698
  }
@@ -1724,7 +1725,7 @@ export class CircuitScriptParser extends antlr.Parser {
1724
1725
  let alternative;
1725
1726
  this.enterOuterAlt(localContext, 1);
1726
1727
  {
1727
- this.state = 348;
1728
+ this.state = 350;
1728
1729
  this.errorHandler.sync(this);
1729
1730
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1730
1731
  case 1:
@@ -1732,11 +1733,11 @@ export class CircuitScriptParser extends antlr.Parser {
1732
1733
  localContext = new RoundedBracketsExprContext(localContext);
1733
1734
  this.context = localContext;
1734
1735
  previousContext = localContext;
1735
- this.state = 334;
1736
+ this.state = 336;
1736
1737
  this.match(CircuitScriptParser.OPEN_PAREN);
1737
- this.state = 335;
1738
+ this.state = 337;
1738
1739
  this.data_expr(0);
1739
- this.state = 336;
1740
+ this.state = 338;
1740
1741
  this.match(CircuitScriptParser.CLOSE_PAREN);
1741
1742
  }
1742
1743
  break;
@@ -1745,7 +1746,7 @@ export class CircuitScriptParser extends antlr.Parser {
1745
1746
  localContext = new ValueAtomExprContext(localContext);
1746
1747
  this.context = localContext;
1747
1748
  previousContext = localContext;
1748
- this.state = 340;
1749
+ this.state = 342;
1749
1750
  this.errorHandler.sync(this);
1750
1751
  switch (this.tokenStream.LA(1)) {
1751
1752
  case CircuitScriptParser.T__5:
@@ -1757,13 +1758,13 @@ export class CircuitScriptParser extends antlr.Parser {
1757
1758
  case CircuitScriptParser.STRING_VALUE:
1758
1759
  case CircuitScriptParser.PERCENTAGE_VALUE:
1759
1760
  {
1760
- this.state = 338;
1761
+ this.state = 340;
1761
1762
  this.value_expr();
1762
1763
  }
1763
1764
  break;
1764
1765
  case CircuitScriptParser.ID:
1765
1766
  {
1766
- this.state = 339;
1767
+ this.state = 341;
1767
1768
  this.atom_expr();
1768
1769
  }
1769
1770
  break;
@@ -1777,9 +1778,9 @@ export class CircuitScriptParser extends antlr.Parser {
1777
1778
  localContext = new UnaryOperatorExprContext(localContext);
1778
1779
  this.context = localContext;
1779
1780
  previousContext = localContext;
1780
- this.state = 342;
1781
+ this.state = 344;
1781
1782
  this.unary_operator();
1782
- this.state = 343;
1783
+ this.state = 345;
1783
1784
  this.data_expr(8);
1784
1785
  }
1785
1786
  break;
@@ -1788,7 +1789,7 @@ export class CircuitScriptParser extends antlr.Parser {
1788
1789
  localContext = new DataExprContext(localContext);
1789
1790
  this.context = localContext;
1790
1791
  previousContext = localContext;
1791
- this.state = 345;
1792
+ this.state = 347;
1792
1793
  this.create_component_expr();
1793
1794
  }
1794
1795
  break;
@@ -1797,7 +1798,7 @@ export class CircuitScriptParser extends antlr.Parser {
1797
1798
  localContext = new DataExprContext(localContext);
1798
1799
  this.context = localContext;
1799
1800
  previousContext = localContext;
1800
- this.state = 346;
1801
+ this.state = 348;
1801
1802
  this.create_graphic_expr();
1802
1803
  }
1803
1804
  break;
@@ -1806,13 +1807,13 @@ export class CircuitScriptParser extends antlr.Parser {
1806
1807
  localContext = new FunctionCallExprContext(localContext);
1807
1808
  this.context = localContext;
1808
1809
  previousContext = localContext;
1809
- this.state = 347;
1810
+ this.state = 349;
1810
1811
  this.function_call_expr();
1811
1812
  }
1812
1813
  break;
1813
1814
  }
1814
1815
  this.context.stop = this.tokenStream.LT(-1);
1815
- this.state = 365;
1816
+ this.state = 367;
1816
1817
  this.errorHandler.sync(this);
1817
1818
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1818
1819
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1822,18 +1823,18 @@ export class CircuitScriptParser extends antlr.Parser {
1822
1823
  }
1823
1824
  previousContext = localContext;
1824
1825
  {
1825
- this.state = 363;
1826
+ this.state = 365;
1826
1827
  this.errorHandler.sync(this);
1827
1828
  switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1828
1829
  case 1:
1829
1830
  {
1830
1831
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1831
1832
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1832
- this.state = 350;
1833
+ this.state = 352;
1833
1834
  if (!(this.precpred(this.context, 7))) {
1834
1835
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1835
1836
  }
1836
- this.state = 351;
1837
+ this.state = 353;
1837
1838
  _la = this.tokenStream.LA(1);
1838
1839
  if (!(_la === 38 || _la === 39)) {
1839
1840
  this.errorHandler.recoverInline(this);
@@ -1842,7 +1843,7 @@ export class CircuitScriptParser extends antlr.Parser {
1842
1843
  this.errorHandler.reportMatch(this);
1843
1844
  this.consume();
1844
1845
  }
1845
- this.state = 352;
1846
+ this.state = 354;
1846
1847
  this.data_expr(8);
1847
1848
  }
1848
1849
  break;
@@ -1850,11 +1851,11 @@ export class CircuitScriptParser extends antlr.Parser {
1850
1851
  {
1851
1852
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1852
1853
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1853
- this.state = 353;
1854
+ this.state = 355;
1854
1855
  if (!(this.precpred(this.context, 6))) {
1855
1856
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1856
1857
  }
1857
- this.state = 354;
1858
+ this.state = 356;
1858
1859
  _la = this.tokenStream.LA(1);
1859
1860
  if (!(_la === 36 || _la === 37)) {
1860
1861
  this.errorHandler.recoverInline(this);
@@ -1863,7 +1864,7 @@ export class CircuitScriptParser extends antlr.Parser {
1863
1864
  this.errorHandler.reportMatch(this);
1864
1865
  this.consume();
1865
1866
  }
1866
- this.state = 355;
1867
+ this.state = 357;
1867
1868
  this.data_expr(7);
1868
1869
  }
1869
1870
  break;
@@ -1871,13 +1872,13 @@ export class CircuitScriptParser extends antlr.Parser {
1871
1872
  {
1872
1873
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1873
1874
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1874
- this.state = 356;
1875
+ this.state = 358;
1875
1876
  if (!(this.precpred(this.context, 5))) {
1876
1877
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1877
1878
  }
1878
- this.state = 357;
1879
+ this.state = 359;
1879
1880
  this.binary_operator();
1880
- this.state = 358;
1881
+ this.state = 360;
1881
1882
  this.data_expr(6);
1882
1883
  }
1883
1884
  break;
@@ -1885,11 +1886,11 @@ export class CircuitScriptParser extends antlr.Parser {
1885
1886
  {
1886
1887
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1887
1888
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1888
- this.state = 360;
1889
+ this.state = 362;
1889
1890
  if (!(this.precpred(this.context, 4))) {
1890
1891
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1891
1892
  }
1892
- this.state = 361;
1893
+ this.state = 363;
1893
1894
  _la = this.tokenStream.LA(1);
1894
1895
  if (!(_la === 34 || _la === 35)) {
1895
1896
  this.errorHandler.recoverInline(this);
@@ -1898,14 +1899,14 @@ export class CircuitScriptParser extends antlr.Parser {
1898
1899
  this.errorHandler.reportMatch(this);
1899
1900
  this.consume();
1900
1901
  }
1901
- this.state = 362;
1902
+ this.state = 364;
1902
1903
  this.data_expr(5);
1903
1904
  }
1904
1905
  break;
1905
1906
  }
1906
1907
  }
1907
1908
  }
1908
- this.state = 367;
1909
+ this.state = 369;
1909
1910
  this.errorHandler.sync(this);
1910
1911
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1911
1912
  }
@@ -1932,7 +1933,7 @@ export class CircuitScriptParser extends antlr.Parser {
1932
1933
  try {
1933
1934
  this.enterOuterAlt(localContext, 1);
1934
1935
  {
1935
- this.state = 368;
1936
+ this.state = 370;
1936
1937
  _la = this.tokenStream.LA(1);
1937
1938
  if (!(((((_la - 28)) & ~0x1F) === 0 && ((1 << (_la - 28)) & 63) !== 0))) {
1938
1939
  this.errorHandler.recoverInline(this);
@@ -1964,7 +1965,7 @@ export class CircuitScriptParser extends antlr.Parser {
1964
1965
  try {
1965
1966
  this.enterOuterAlt(localContext, 1);
1966
1967
  {
1967
- this.state = 370;
1968
+ this.state = 372;
1968
1969
  _la = this.tokenStream.LA(1);
1969
1970
  if (!(_la === 26 || _la === 37)) {
1970
1971
  this.errorHandler.recoverInline(this);
@@ -1994,7 +1995,7 @@ export class CircuitScriptParser extends antlr.Parser {
1994
1995
  this.enterRule(localContext, 62, CircuitScriptParser.RULE_value_expr);
1995
1996
  let _la;
1996
1997
  try {
1997
- this.state = 377;
1998
+ this.state = 379;
1998
1999
  this.errorHandler.sync(this);
1999
2000
  switch (this.tokenStream.LA(1)) {
2000
2001
  case CircuitScriptParser.Minus:
@@ -2007,16 +2008,16 @@ export class CircuitScriptParser extends antlr.Parser {
2007
2008
  this.enterOuterAlt(localContext, 1);
2008
2009
  {
2009
2010
  {
2010
- this.state = 373;
2011
+ this.state = 375;
2011
2012
  this.errorHandler.sync(this);
2012
2013
  _la = this.tokenStream.LA(1);
2013
2014
  if (_la === 37) {
2014
2015
  {
2015
- this.state = 372;
2016
+ this.state = 374;
2016
2017
  this.match(CircuitScriptParser.Minus);
2017
2018
  }
2018
2019
  }
2019
- this.state = 375;
2020
+ this.state = 377;
2020
2021
  _la = this.tokenStream.LA(1);
2021
2022
  if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 125) !== 0))) {
2022
2023
  this.errorHandler.recoverInline(this);
@@ -2031,7 +2032,7 @@ export class CircuitScriptParser extends antlr.Parser {
2031
2032
  case CircuitScriptParser.T__5:
2032
2033
  this.enterOuterAlt(localContext, 2);
2033
2034
  {
2034
- this.state = 376;
2035
+ this.state = 378;
2035
2036
  this.blank_expr();
2036
2037
  }
2037
2038
  break;
@@ -2060,40 +2061,40 @@ export class CircuitScriptParser extends antlr.Parser {
2060
2061
  try {
2061
2062
  this.enterOuterAlt(localContext, 1);
2062
2063
  {
2063
- this.state = 379;
2064
+ this.state = 381;
2064
2065
  this.match(CircuitScriptParser.Define);
2065
- this.state = 380;
2066
+ this.state = 382;
2066
2067
  this.match(CircuitScriptParser.ID);
2067
- this.state = 381;
2068
- this.match(CircuitScriptParser.OPEN_PAREN);
2069
2068
  this.state = 383;
2069
+ this.match(CircuitScriptParser.OPEN_PAREN);
2070
+ this.state = 385;
2070
2071
  this.errorHandler.sync(this);
2071
2072
  _la = this.tokenStream.LA(1);
2072
2073
  if (_la === 44) {
2073
2074
  {
2074
- this.state = 382;
2075
+ this.state = 384;
2075
2076
  this.function_args_expr();
2076
2077
  }
2077
2078
  }
2078
- this.state = 385;
2079
+ this.state = 387;
2079
2080
  this.match(CircuitScriptParser.CLOSE_PAREN);
2080
- this.state = 386;
2081
+ this.state = 388;
2081
2082
  this.match(CircuitScriptParser.T__0);
2082
- this.state = 387;
2083
+ this.state = 389;
2083
2084
  this.match(CircuitScriptParser.NEWLINE);
2084
- this.state = 388;
2085
+ this.state = 390;
2085
2086
  this.match(CircuitScriptParser.INDENT);
2086
- this.state = 391;
2087
+ this.state = 393;
2087
2088
  this.errorHandler.sync(this);
2088
2089
  _la = this.tokenStream.LA(1);
2089
2090
  do {
2090
2091
  {
2091
- this.state = 391;
2092
+ this.state = 393;
2092
2093
  this.errorHandler.sync(this);
2093
2094
  switch (this.tokenStream.LA(1)) {
2094
2095
  case CircuitScriptParser.NEWLINE:
2095
2096
  {
2096
- this.state = 389;
2097
+ this.state = 391;
2097
2098
  this.match(CircuitScriptParser.NEWLINE);
2098
2099
  }
2099
2100
  break;
@@ -2116,7 +2117,7 @@ export class CircuitScriptParser extends antlr.Parser {
2116
2117
  case CircuitScriptParser.Divide:
2117
2118
  case CircuitScriptParser.ID:
2118
2119
  {
2119
- this.state = 390;
2120
+ this.state = 392;
2120
2121
  this.function_expr();
2121
2122
  }
2122
2123
  break;
@@ -2124,11 +2125,11 @@ export class CircuitScriptParser extends antlr.Parser {
2124
2125
  throw new antlr.NoViableAltException(this);
2125
2126
  }
2126
2127
  }
2127
- this.state = 393;
2128
+ this.state = 395;
2128
2129
  this.errorHandler.sync(this);
2129
2130
  _la = this.tokenStream.LA(1);
2130
2131
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 167748368) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
2131
- this.state = 395;
2132
+ this.state = 397;
2132
2133
  this.match(CircuitScriptParser.DEDENT);
2133
2134
  }
2134
2135
  }
@@ -2150,7 +2151,7 @@ export class CircuitScriptParser extends antlr.Parser {
2150
2151
  let localContext = new Function_exprContext(this.context, this.state);
2151
2152
  this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_expr);
2152
2153
  try {
2153
- this.state = 399;
2154
+ this.state = 401;
2154
2155
  this.errorHandler.sync(this);
2155
2156
  switch (this.tokenStream.LA(1)) {
2156
2157
  case CircuitScriptParser.T__3:
@@ -2172,14 +2173,14 @@ export class CircuitScriptParser extends antlr.Parser {
2172
2173
  case CircuitScriptParser.ID:
2173
2174
  this.enterOuterAlt(localContext, 1);
2174
2175
  {
2175
- this.state = 397;
2176
+ this.state = 399;
2176
2177
  this.expression();
2177
2178
  }
2178
2179
  break;
2179
2180
  case CircuitScriptParser.Return:
2180
2181
  this.enterOuterAlt(localContext, 2);
2181
2182
  {
2182
- this.state = 398;
2183
+ this.state = 400;
2183
2184
  this.function_return_expr();
2184
2185
  }
2185
2186
  break;
@@ -2207,49 +2208,49 @@ export class CircuitScriptParser extends antlr.Parser {
2207
2208
  let _la;
2208
2209
  try {
2209
2210
  let alternative;
2210
- this.state = 430;
2211
+ this.state = 432;
2211
2212
  this.errorHandler.sync(this);
2212
2213
  switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2213
2214
  case 1:
2214
2215
  this.enterOuterAlt(localContext, 1);
2215
2216
  {
2216
- this.state = 401;
2217
+ this.state = 403;
2217
2218
  this.match(CircuitScriptParser.ID);
2218
- this.state = 406;
2219
+ this.state = 408;
2219
2220
  this.errorHandler.sync(this);
2220
2221
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2221
2222
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2222
2223
  if (alternative === 1) {
2223
2224
  {
2224
2225
  {
2225
- this.state = 402;
2226
+ this.state = 404;
2226
2227
  this.match(CircuitScriptParser.T__1);
2227
- this.state = 403;
2228
+ this.state = 405;
2228
2229
  this.match(CircuitScriptParser.ID);
2229
2230
  }
2230
2231
  }
2231
2232
  }
2232
- this.state = 408;
2233
+ this.state = 410;
2233
2234
  this.errorHandler.sync(this);
2234
2235
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2235
2236
  }
2236
- this.state = 415;
2237
+ this.state = 417;
2237
2238
  this.errorHandler.sync(this);
2238
2239
  _la = this.tokenStream.LA(1);
2239
2240
  while (_la === 2) {
2240
2241
  {
2241
2242
  {
2242
- this.state = 409;
2243
+ this.state = 411;
2243
2244
  this.match(CircuitScriptParser.T__1);
2244
- this.state = 410;
2245
+ this.state = 412;
2245
2246
  this.match(CircuitScriptParser.ID);
2246
- this.state = 411;
2247
+ this.state = 413;
2247
2248
  this.match(CircuitScriptParser.T__2);
2248
- this.state = 412;
2249
+ this.state = 414;
2249
2250
  this.value_expr();
2250
2251
  }
2251
2252
  }
2252
- this.state = 417;
2253
+ this.state = 419;
2253
2254
  this.errorHandler.sync(this);
2254
2255
  _la = this.tokenStream.LA(1);
2255
2256
  }
@@ -2258,29 +2259,29 @@ export class CircuitScriptParser extends antlr.Parser {
2258
2259
  case 2:
2259
2260
  this.enterOuterAlt(localContext, 2);
2260
2261
  {
2261
- this.state = 418;
2262
+ this.state = 420;
2262
2263
  this.match(CircuitScriptParser.ID);
2263
- this.state = 419;
2264
+ this.state = 421;
2264
2265
  this.match(CircuitScriptParser.T__2);
2265
- this.state = 420;
2266
+ this.state = 422;
2266
2267
  this.value_expr();
2267
- this.state = 427;
2268
+ this.state = 429;
2268
2269
  this.errorHandler.sync(this);
2269
2270
  _la = this.tokenStream.LA(1);
2270
2271
  while (_la === 2) {
2271
2272
  {
2272
2273
  {
2273
- this.state = 421;
2274
+ this.state = 423;
2274
2275
  this.match(CircuitScriptParser.T__1);
2275
- this.state = 422;
2276
+ this.state = 424;
2276
2277
  this.match(CircuitScriptParser.ID);
2277
- this.state = 423;
2278
+ this.state = 425;
2278
2279
  this.match(CircuitScriptParser.T__2);
2279
- this.state = 424;
2280
+ this.state = 426;
2280
2281
  this.value_expr();
2281
2282
  }
2282
2283
  }
2283
- this.state = 429;
2284
+ this.state = 431;
2284
2285
  this.errorHandler.sync(this);
2285
2286
  _la = this.tokenStream.LA(1);
2286
2287
  }
@@ -2309,23 +2310,23 @@ export class CircuitScriptParser extends antlr.Parser {
2309
2310
  let alternative;
2310
2311
  this.enterOuterAlt(localContext, 1);
2311
2312
  {
2312
- this.state = 432;
2313
+ this.state = 434;
2313
2314
  this.match(CircuitScriptParser.ID);
2314
- this.state = 437;
2315
+ this.state = 439;
2315
2316
  this.errorHandler.sync(this);
2316
2317
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2317
2318
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2318
2319
  if (alternative === 1) {
2319
2320
  {
2320
2321
  {
2321
- this.state = 433;
2322
+ this.state = 435;
2322
2323
  this.match(CircuitScriptParser.T__4);
2323
- this.state = 434;
2324
+ this.state = 436;
2324
2325
  this.match(CircuitScriptParser.ID);
2325
2326
  }
2326
2327
  }
2327
2328
  }
2328
- this.state = 439;
2329
+ this.state = 441;
2329
2330
  this.errorHandler.sync(this);
2330
2331
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2331
2332
  }
@@ -2350,33 +2351,33 @@ export class CircuitScriptParser extends antlr.Parser {
2350
2351
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_trailer_expr);
2351
2352
  let _la;
2352
2353
  try {
2353
- this.state = 447;
2354
+ this.state = 449;
2354
2355
  this.errorHandler.sync(this);
2355
2356
  switch (this.tokenStream.LA(1)) {
2356
2357
  case CircuitScriptParser.OPEN_PAREN:
2357
2358
  this.enterOuterAlt(localContext, 1);
2358
2359
  {
2359
- this.state = 440;
2360
- this.match(CircuitScriptParser.OPEN_PAREN);
2361
2360
  this.state = 442;
2361
+ this.match(CircuitScriptParser.OPEN_PAREN);
2362
+ this.state = 444;
2362
2363
  this.errorHandler.sync(this);
2363
2364
  _la = this.tokenStream.LA(1);
2364
2365
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67109952) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 16279) !== 0)) {
2365
2366
  {
2366
- this.state = 441;
2367
+ this.state = 443;
2367
2368
  this.parameters();
2368
2369
  }
2369
2370
  }
2370
- this.state = 444;
2371
+ this.state = 446;
2371
2372
  this.match(CircuitScriptParser.CLOSE_PAREN);
2372
2373
  }
2373
2374
  break;
2374
2375
  case CircuitScriptParser.T__4:
2375
2376
  this.enterOuterAlt(localContext, 2);
2376
2377
  {
2377
- this.state = 445;
2378
+ this.state = 447;
2378
2379
  this.match(CircuitScriptParser.T__4);
2379
- this.state = 446;
2380
+ this.state = 448;
2380
2381
  this.match(CircuitScriptParser.ID);
2381
2382
  }
2382
2383
  break;
@@ -2406,18 +2407,18 @@ export class CircuitScriptParser extends antlr.Parser {
2406
2407
  let alternative;
2407
2408
  this.enterOuterAlt(localContext, 1);
2408
2409
  {
2409
- this.state = 450;
2410
+ this.state = 452;
2410
2411
  this.errorHandler.sync(this);
2411
2412
  _la = this.tokenStream.LA(1);
2412
2413
  if (_la === 36 || _la === 38) {
2413
2414
  {
2414
- this.state = 449;
2415
+ this.state = 451;
2415
2416
  this.net_namespace_expr();
2416
2417
  }
2417
2418
  }
2418
- this.state = 452;
2419
- this.match(CircuitScriptParser.ID);
2420
2419
  this.state = 454;
2420
+ this.match(CircuitScriptParser.ID);
2421
+ this.state = 456;
2421
2422
  this.errorHandler.sync(this);
2422
2423
  alternative = 1;
2423
2424
  do {
@@ -2425,7 +2426,7 @@ export class CircuitScriptParser extends antlr.Parser {
2425
2426
  case 1:
2426
2427
  {
2427
2428
  {
2428
- this.state = 453;
2429
+ this.state = 455;
2429
2430
  this.trailer_expr();
2430
2431
  }
2431
2432
  }
@@ -2433,7 +2434,7 @@ export class CircuitScriptParser extends antlr.Parser {
2433
2434
  default:
2434
2435
  throw new antlr.NoViableAltException(this);
2435
2436
  }
2436
- this.state = 456;
2437
+ this.state = 458;
2437
2438
  this.errorHandler.sync(this);
2438
2439
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2439
2440
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2460,23 +2461,23 @@ export class CircuitScriptParser extends antlr.Parser {
2460
2461
  try {
2461
2462
  this.enterOuterAlt(localContext, 1);
2462
2463
  {
2463
- this.state = 459;
2464
+ this.state = 461;
2464
2465
  this.errorHandler.sync(this);
2465
2466
  _la = this.tokenStream.LA(1);
2466
2467
  if (_la === 36) {
2467
2468
  {
2468
- this.state = 458;
2469
+ this.state = 460;
2469
2470
  this.match(CircuitScriptParser.Addition);
2470
2471
  }
2471
2472
  }
2472
- this.state = 461;
2473
- this.match(CircuitScriptParser.Divide);
2474
2473
  this.state = 463;
2474
+ this.match(CircuitScriptParser.Divide);
2475
+ this.state = 465;
2475
2476
  this.errorHandler.sync(this);
2476
2477
  switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2477
2478
  case 1:
2478
2479
  {
2479
- this.state = 462;
2480
+ this.state = 464;
2480
2481
  this.data_expr(0);
2481
2482
  }
2482
2483
  break;
@@ -2503,9 +2504,9 @@ export class CircuitScriptParser extends antlr.Parser {
2503
2504
  try {
2504
2505
  this.enterOuterAlt(localContext, 1);
2505
2506
  {
2506
- this.state = 465;
2507
+ this.state = 467;
2507
2508
  this.match(CircuitScriptParser.Return);
2508
- this.state = 466;
2509
+ this.state = 468;
2509
2510
  this.data_expr(0);
2510
2511
  }
2511
2512
  }
@@ -2530,27 +2531,27 @@ export class CircuitScriptParser extends antlr.Parser {
2530
2531
  try {
2531
2532
  this.enterOuterAlt(localContext, 1);
2532
2533
  {
2533
- this.state = 468;
2534
+ this.state = 470;
2534
2535
  this.match(CircuitScriptParser.Create);
2535
- this.state = 469;
2536
+ this.state = 471;
2536
2537
  this.match(CircuitScriptParser.Component);
2537
- this.state = 470;
2538
+ this.state = 472;
2538
2539
  this.match(CircuitScriptParser.T__0);
2539
- this.state = 471;
2540
+ this.state = 473;
2540
2541
  this.match(CircuitScriptParser.NEWLINE);
2541
- this.state = 472;
2542
+ this.state = 474;
2542
2543
  this.match(CircuitScriptParser.INDENT);
2543
- this.state = 475;
2544
+ this.state = 477;
2544
2545
  this.errorHandler.sync(this);
2545
2546
  _la = this.tokenStream.LA(1);
2546
2547
  do {
2547
2548
  {
2548
- this.state = 475;
2549
+ this.state = 477;
2549
2550
  this.errorHandler.sync(this);
2550
2551
  switch (this.tokenStream.LA(1)) {
2551
2552
  case CircuitScriptParser.NEWLINE:
2552
2553
  {
2553
- this.state = 473;
2554
+ this.state = 475;
2554
2555
  this.match(CircuitScriptParser.NEWLINE);
2555
2556
  }
2556
2557
  break;
@@ -2558,7 +2559,7 @@ export class CircuitScriptParser extends antlr.Parser {
2558
2559
  case CircuitScriptParser.INTEGER_VALUE:
2559
2560
  case CircuitScriptParser.STRING_VALUE:
2560
2561
  {
2561
- this.state = 474;
2562
+ this.state = 476;
2562
2563
  this.property_expr();
2563
2564
  }
2564
2565
  break;
@@ -2566,11 +2567,11 @@ export class CircuitScriptParser extends antlr.Parser {
2566
2567
  throw new antlr.NoViableAltException(this);
2567
2568
  }
2568
2569
  }
2569
- this.state = 477;
2570
+ this.state = 479;
2570
2571
  this.errorHandler.sync(this);
2571
2572
  _la = this.tokenStream.LA(1);
2572
2573
  } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2573
- this.state = 479;
2574
+ this.state = 481;
2574
2575
  this.match(CircuitScriptParser.DEDENT);
2575
2576
  }
2576
2577
  }
@@ -2595,34 +2596,34 @@ export class CircuitScriptParser extends antlr.Parser {
2595
2596
  try {
2596
2597
  this.enterOuterAlt(localContext, 1);
2597
2598
  {
2598
- this.state = 481;
2599
+ this.state = 483;
2599
2600
  this.match(CircuitScriptParser.Create);
2600
- this.state = 482;
2601
+ this.state = 484;
2601
2602
  this.match(CircuitScriptParser.Graphic);
2602
- this.state = 483;
2603
+ this.state = 485;
2603
2604
  this.match(CircuitScriptParser.T__0);
2604
- this.state = 484;
2605
+ this.state = 486;
2605
2606
  this.match(CircuitScriptParser.NEWLINE);
2606
- this.state = 485;
2607
+ this.state = 487;
2607
2608
  this.match(CircuitScriptParser.INDENT);
2608
- this.state = 488;
2609
+ this.state = 490;
2609
2610
  this.errorHandler.sync(this);
2610
2611
  _la = this.tokenStream.LA(1);
2611
2612
  do {
2612
2613
  {
2613
- this.state = 488;
2614
+ this.state = 490;
2614
2615
  this.errorHandler.sync(this);
2615
2616
  switch (this.tokenStream.LA(1)) {
2616
2617
  case CircuitScriptParser.NEWLINE:
2617
2618
  {
2618
- this.state = 486;
2619
+ this.state = 488;
2619
2620
  this.match(CircuitScriptParser.NEWLINE);
2620
2621
  }
2621
2622
  break;
2622
2623
  case CircuitScriptParser.Pin:
2623
2624
  case CircuitScriptParser.ID:
2624
2625
  {
2625
- this.state = 487;
2626
+ this.state = 489;
2626
2627
  this.graphic_expr();
2627
2628
  }
2628
2629
  break;
@@ -2630,11 +2631,11 @@ export class CircuitScriptParser extends antlr.Parser {
2630
2631
  throw new antlr.NoViableAltException(this);
2631
2632
  }
2632
2633
  }
2633
- this.state = 490;
2634
+ this.state = 492;
2634
2635
  this.errorHandler.sync(this);
2635
2636
  _la = this.tokenStream.LA(1);
2636
2637
  } while (_la === 14 || _la === 44 || _la === 52);
2637
- this.state = 492;
2638
+ this.state = 494;
2638
2639
  this.match(CircuitScriptParser.DEDENT);
2639
2640
  }
2640
2641
  }
@@ -2652,14 +2653,75 @@ export class CircuitScriptParser extends antlr.Parser {
2652
2653
  }
2653
2654
  return localContext;
2654
2655
  }
2656
+ nested_properties_inner() {
2657
+ let localContext = new Nested_properties_innerContext(this.context, this.state);
2658
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_nested_properties_inner);
2659
+ let _la;
2660
+ try {
2661
+ this.enterOuterAlt(localContext, 1);
2662
+ {
2663
+ {
2664
+ this.state = 496;
2665
+ this.match(CircuitScriptParser.NEWLINE);
2666
+ this.state = 497;
2667
+ this.match(CircuitScriptParser.INDENT);
2668
+ this.state = 500;
2669
+ this.errorHandler.sync(this);
2670
+ _la = this.tokenStream.LA(1);
2671
+ do {
2672
+ {
2673
+ this.state = 500;
2674
+ this.errorHandler.sync(this);
2675
+ switch (this.tokenStream.LA(1)) {
2676
+ case CircuitScriptParser.NEWLINE:
2677
+ {
2678
+ this.state = 498;
2679
+ this.match(CircuitScriptParser.NEWLINE);
2680
+ }
2681
+ break;
2682
+ case CircuitScriptParser.ID:
2683
+ case CircuitScriptParser.INTEGER_VALUE:
2684
+ case CircuitScriptParser.STRING_VALUE:
2685
+ {
2686
+ this.state = 499;
2687
+ this.property_expr();
2688
+ }
2689
+ break;
2690
+ default:
2691
+ throw new antlr.NoViableAltException(this);
2692
+ }
2693
+ }
2694
+ this.state = 502;
2695
+ this.errorHandler.sync(this);
2696
+ _la = this.tokenStream.LA(1);
2697
+ } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2698
+ this.state = 504;
2699
+ this.match(CircuitScriptParser.DEDENT);
2700
+ }
2701
+ }
2702
+ }
2703
+ catch (re) {
2704
+ if (re instanceof antlr.RecognitionException) {
2705
+ this.errorHandler.reportError(this, re);
2706
+ this.errorHandler.recover(this, re);
2707
+ }
2708
+ else {
2709
+ throw re;
2710
+ }
2711
+ }
2712
+ finally {
2713
+ this.exitRule();
2714
+ }
2715
+ return localContext;
2716
+ }
2655
2717
  graphic_expr() {
2656
2718
  let localContext = new Graphic_exprContext(this.context, this.state);
2657
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_graphic_expr);
2719
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_graphic_expr);
2658
2720
  let _la;
2659
2721
  try {
2660
2722
  this.enterOuterAlt(localContext, 1);
2661
2723
  {
2662
- this.state = 494;
2724
+ this.state = 506;
2663
2725
  localContext._command = this.tokenStream.LT(1);
2664
2726
  _la = this.tokenStream.LA(1);
2665
2727
  if (!(_la === 14 || _la === 44)) {
@@ -2669,34 +2731,40 @@ export class CircuitScriptParser extends antlr.Parser {
2669
2731
  this.errorHandler.reportMatch(this);
2670
2732
  this.consume();
2671
2733
  }
2672
- this.state = 496;
2734
+ this.state = 508;
2673
2735
  this.errorHandler.sync(this);
2674
2736
  _la = this.tokenStream.LA(1);
2675
2737
  if (_la === 1) {
2676
2738
  {
2677
- this.state = 495;
2739
+ this.state = 507;
2678
2740
  this.match(CircuitScriptParser.T__0);
2679
2741
  }
2680
2742
  }
2681
- this.state = 503;
2743
+ this.state = 516;
2682
2744
  this.errorHandler.sync(this);
2683
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2745
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2684
2746
  case 1:
2685
2747
  {
2686
- this.state = 498;
2748
+ this.state = 510;
2687
2749
  this.parameters();
2688
2750
  }
2689
2751
  break;
2690
2752
  case 2:
2691
2753
  {
2692
- this.state = 499;
2754
+ this.state = 511;
2693
2755
  this.match(CircuitScriptParser.OPEN_PAREN);
2694
- this.state = 500;
2756
+ this.state = 512;
2695
2757
  this.parameters();
2696
- this.state = 501;
2758
+ this.state = 513;
2697
2759
  this.match(CircuitScriptParser.CLOSE_PAREN);
2698
2760
  }
2699
2761
  break;
2762
+ case 3:
2763
+ {
2764
+ this.state = 515;
2765
+ this.nested_properties_inner();
2766
+ }
2767
+ break;
2700
2768
  }
2701
2769
  }
2702
2770
  }
@@ -2716,15 +2784,15 @@ export class CircuitScriptParser extends antlr.Parser {
2716
2784
  }
2717
2785
  property_expr() {
2718
2786
  let localContext = new Property_exprContext(this.context, this.state);
2719
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_expr);
2787
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_expr);
2720
2788
  try {
2721
2789
  this.enterOuterAlt(localContext, 1);
2722
2790
  {
2723
- this.state = 505;
2791
+ this.state = 518;
2724
2792
  this.property_key_expr();
2725
- this.state = 506;
2793
+ this.state = 519;
2726
2794
  this.match(CircuitScriptParser.T__0);
2727
- this.state = 507;
2795
+ this.state = 520;
2728
2796
  this.property_value_expr();
2729
2797
  }
2730
2798
  }
@@ -2744,12 +2812,12 @@ export class CircuitScriptParser extends antlr.Parser {
2744
2812
  }
2745
2813
  property_key_expr() {
2746
2814
  let localContext = new Property_key_exprContext(this.context, this.state);
2747
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_key_expr);
2815
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_key_expr);
2748
2816
  let _la;
2749
2817
  try {
2750
2818
  this.enterOuterAlt(localContext, 1);
2751
2819
  {
2752
- this.state = 509;
2820
+ this.state = 522;
2753
2821
  _la = this.tokenStream.LA(1);
2754
2822
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 19) !== 0))) {
2755
2823
  this.errorHandler.recoverInline(this);
@@ -2776,52 +2844,18 @@ export class CircuitScriptParser extends antlr.Parser {
2776
2844
  }
2777
2845
  property_value_expr() {
2778
2846
  let localContext = new Property_value_exprContext(this.context, this.state);
2779
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_value_expr);
2847
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_property_value_expr);
2780
2848
  let _la;
2781
2849
  try {
2782
- this.state = 528;
2850
+ this.state = 533;
2783
2851
  this.errorHandler.sync(this);
2784
2852
  switch (this.tokenStream.LA(1)) {
2785
2853
  case CircuitScriptParser.NEWLINE:
2786
2854
  localContext = new Nested_propertiesContext(localContext);
2787
2855
  this.enterOuterAlt(localContext, 1);
2788
2856
  {
2789
- this.state = 511;
2790
- this.match(CircuitScriptParser.NEWLINE);
2791
- this.state = 512;
2792
- this.match(CircuitScriptParser.INDENT);
2793
- this.state = 515;
2794
- this.errorHandler.sync(this);
2795
- _la = this.tokenStream.LA(1);
2796
- do {
2797
- {
2798
- this.state = 515;
2799
- this.errorHandler.sync(this);
2800
- switch (this.tokenStream.LA(1)) {
2801
- case CircuitScriptParser.NEWLINE:
2802
- {
2803
- this.state = 513;
2804
- this.match(CircuitScriptParser.NEWLINE);
2805
- }
2806
- break;
2807
- case CircuitScriptParser.ID:
2808
- case CircuitScriptParser.INTEGER_VALUE:
2809
- case CircuitScriptParser.STRING_VALUE:
2810
- {
2811
- this.state = 514;
2812
- this.property_expr();
2813
- }
2814
- break;
2815
- default:
2816
- throw new antlr.NoViableAltException(this);
2817
- }
2818
- }
2819
- this.state = 517;
2820
- this.errorHandler.sync(this);
2821
- _la = this.tokenStream.LA(1);
2822
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2823
- this.state = 519;
2824
- this.match(CircuitScriptParser.DEDENT);
2857
+ this.state = 524;
2858
+ this.nested_properties_inner();
2825
2859
  }
2826
2860
  break;
2827
2861
  case CircuitScriptParser.T__5:
@@ -2841,21 +2875,21 @@ export class CircuitScriptParser extends antlr.Parser {
2841
2875
  localContext = new Single_line_propertyContext(localContext);
2842
2876
  this.enterOuterAlt(localContext, 2);
2843
2877
  {
2844
- this.state = 520;
2845
- this.data_expr(0);
2846
2878
  this.state = 525;
2879
+ this.data_expr(0);
2880
+ this.state = 530;
2847
2881
  this.errorHandler.sync(this);
2848
2882
  _la = this.tokenStream.LA(1);
2849
2883
  while (_la === 2) {
2850
2884
  {
2851
2885
  {
2852
- this.state = 521;
2886
+ this.state = 526;
2853
2887
  this.match(CircuitScriptParser.T__1);
2854
- this.state = 522;
2888
+ this.state = 527;
2855
2889
  this.data_expr(0);
2856
2890
  }
2857
2891
  }
2858
- this.state = 527;
2892
+ this.state = 532;
2859
2893
  this.errorHandler.sync(this);
2860
2894
  _la = this.tokenStream.LA(1);
2861
2895
  }
@@ -2881,15 +2915,15 @@ export class CircuitScriptParser extends antlr.Parser {
2881
2915
  }
2882
2916
  blank_expr() {
2883
2917
  let localContext = new Blank_exprContext(this.context, this.state);
2884
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_blank_expr);
2918
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_blank_expr);
2885
2919
  try {
2886
2920
  this.enterOuterAlt(localContext, 1);
2887
2921
  {
2888
- this.state = 530;
2922
+ this.state = 535;
2889
2923
  this.match(CircuitScriptParser.T__5);
2890
- this.state = 531;
2924
+ this.state = 536;
2891
2925
  this.match(CircuitScriptParser.INTEGER_VALUE);
2892
- this.state = 532;
2926
+ this.state = 537;
2893
2927
  this.match(CircuitScriptParser.T__6);
2894
2928
  }
2895
2929
  }
@@ -2909,29 +2943,29 @@ export class CircuitScriptParser extends antlr.Parser {
2909
2943
  }
2910
2944
  wire_atom_expr() {
2911
2945
  let localContext = new Wire_atom_exprContext(this.context, this.state);
2912
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_wire_atom_expr);
2946
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_atom_expr);
2913
2947
  try {
2914
- this.state = 540;
2948
+ this.state = 545;
2915
2949
  this.errorHandler.sync(this);
2916
2950
  switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2917
2951
  case 1:
2918
2952
  localContext = new Wire_expr_direction_valueContext(localContext);
2919
2953
  this.enterOuterAlt(localContext, 1);
2920
2954
  {
2921
- this.state = 534;
2955
+ this.state = 539;
2922
2956
  this.match(CircuitScriptParser.ID);
2923
- this.state = 537;
2957
+ this.state = 542;
2924
2958
  this.errorHandler.sync(this);
2925
2959
  switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2926
2960
  case 1:
2927
2961
  {
2928
- this.state = 535;
2962
+ this.state = 540;
2929
2963
  this.match(CircuitScriptParser.INTEGER_VALUE);
2930
2964
  }
2931
2965
  break;
2932
2966
  case 2:
2933
2967
  {
2934
- this.state = 536;
2968
+ this.state = 541;
2935
2969
  this.data_expr(0);
2936
2970
  }
2937
2971
  break;
@@ -2942,7 +2976,7 @@ export class CircuitScriptParser extends antlr.Parser {
2942
2976
  localContext = new Wire_expr_direction_onlyContext(localContext);
2943
2977
  this.enterOuterAlt(localContext, 2);
2944
2978
  {
2945
- this.state = 539;
2979
+ this.state = 544;
2946
2980
  this.match(CircuitScriptParser.ID);
2947
2981
  }
2948
2982
  break;
@@ -2964,26 +2998,26 @@ export class CircuitScriptParser extends antlr.Parser {
2964
2998
  }
2965
2999
  wire_expr() {
2966
3000
  let localContext = new Wire_exprContext(this.context, this.state);
2967
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_expr);
3001
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_wire_expr);
2968
3002
  try {
2969
3003
  let alternative;
2970
3004
  this.enterOuterAlt(localContext, 1);
2971
3005
  {
2972
- this.state = 542;
3006
+ this.state = 547;
2973
3007
  this.match(CircuitScriptParser.Wire);
2974
- this.state = 546;
3008
+ this.state = 551;
2975
3009
  this.errorHandler.sync(this);
2976
3010
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2977
3011
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2978
3012
  if (alternative === 1) {
2979
3013
  {
2980
3014
  {
2981
- this.state = 543;
3015
+ this.state = 548;
2982
3016
  this.wire_atom_expr();
2983
3017
  }
2984
3018
  }
2985
3019
  }
2986
- this.state = 548;
3020
+ this.state = 553;
2987
3021
  this.errorHandler.sync(this);
2988
3022
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2989
3023
  }
@@ -3005,13 +3039,13 @@ export class CircuitScriptParser extends antlr.Parser {
3005
3039
  }
3006
3040
  point_expr() {
3007
3041
  let localContext = new Point_exprContext(this.context, this.state);
3008
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_point_expr);
3042
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_point_expr);
3009
3043
  try {
3010
3044
  this.enterOuterAlt(localContext, 1);
3011
3045
  {
3012
- this.state = 549;
3046
+ this.state = 554;
3013
3047
  this.match(CircuitScriptParser.Point);
3014
- this.state = 550;
3048
+ this.state = 555;
3015
3049
  this.match(CircuitScriptParser.ID);
3016
3050
  }
3017
3051
  }
@@ -3031,13 +3065,13 @@ export class CircuitScriptParser extends antlr.Parser {
3031
3065
  }
3032
3066
  import_expr() {
3033
3067
  let localContext = new Import_exprContext(this.context, this.state);
3034
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_import_expr);
3068
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_import_expr);
3035
3069
  try {
3036
3070
  this.enterOuterAlt(localContext, 1);
3037
3071
  {
3038
- this.state = 552;
3072
+ this.state = 557;
3039
3073
  this.match(CircuitScriptParser.Import);
3040
- this.state = 553;
3074
+ this.state = 558;
3041
3075
  this.match(CircuitScriptParser.ID);
3042
3076
  }
3043
3077
  }
@@ -3057,30 +3091,30 @@ export class CircuitScriptParser extends antlr.Parser {
3057
3091
  }
3058
3092
  frame_expr() {
3059
3093
  let localContext = new Frame_exprContext(this.context, this.state);
3060
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_frame_expr);
3094
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_frame_expr);
3061
3095
  let _la;
3062
3096
  try {
3063
3097
  this.enterOuterAlt(localContext, 1);
3064
3098
  {
3065
- this.state = 555;
3099
+ this.state = 560;
3066
3100
  this.match(CircuitScriptParser.Frame);
3067
- this.state = 556;
3101
+ this.state = 561;
3068
3102
  this.match(CircuitScriptParser.T__0);
3069
- this.state = 557;
3103
+ this.state = 562;
3070
3104
  this.match(CircuitScriptParser.NEWLINE);
3071
- this.state = 558;
3105
+ this.state = 563;
3072
3106
  this.match(CircuitScriptParser.INDENT);
3073
- this.state = 561;
3107
+ this.state = 566;
3074
3108
  this.errorHandler.sync(this);
3075
3109
  _la = this.tokenStream.LA(1);
3076
3110
  do {
3077
3111
  {
3078
- this.state = 561;
3112
+ this.state = 566;
3079
3113
  this.errorHandler.sync(this);
3080
3114
  switch (this.tokenStream.LA(1)) {
3081
3115
  case CircuitScriptParser.NEWLINE:
3082
3116
  {
3083
- this.state = 559;
3117
+ this.state = 564;
3084
3118
  this.match(CircuitScriptParser.NEWLINE);
3085
3119
  }
3086
3120
  break;
@@ -3102,7 +3136,7 @@ export class CircuitScriptParser extends antlr.Parser {
3102
3136
  case CircuitScriptParser.Divide:
3103
3137
  case CircuitScriptParser.ID:
3104
3138
  {
3105
- this.state = 560;
3139
+ this.state = 565;
3106
3140
  this.expression();
3107
3141
  }
3108
3142
  break;
@@ -3110,11 +3144,11 @@ export class CircuitScriptParser extends antlr.Parser {
3110
3144
  throw new antlr.NoViableAltException(this);
3111
3145
  }
3112
3146
  }
3113
- this.state = 563;
3147
+ this.state = 568;
3114
3148
  this.errorHandler.sync(this);
3115
3149
  _la = this.tokenStream.LA(1);
3116
3150
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3117
- this.state = 565;
3151
+ this.state = 570;
3118
3152
  this.match(CircuitScriptParser.DEDENT);
3119
3153
  }
3120
3154
  }
@@ -3134,33 +3168,33 @@ export class CircuitScriptParser extends antlr.Parser {
3134
3168
  }
3135
3169
  if_expr() {
3136
3170
  let localContext = new If_exprContext(this.context, this.state);
3137
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_if_expr);
3171
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_expr);
3138
3172
  let _la;
3139
3173
  try {
3140
3174
  let alternative;
3141
3175
  this.enterOuterAlt(localContext, 1);
3142
3176
  {
3143
- this.state = 567;
3177
+ this.state = 572;
3144
3178
  this.match(CircuitScriptParser.If);
3145
- this.state = 568;
3179
+ this.state = 573;
3146
3180
  this.data_expr(0);
3147
- this.state = 569;
3181
+ this.state = 574;
3148
3182
  this.match(CircuitScriptParser.T__0);
3149
- this.state = 570;
3183
+ this.state = 575;
3150
3184
  this.match(CircuitScriptParser.NEWLINE);
3151
- this.state = 571;
3185
+ this.state = 576;
3152
3186
  this.match(CircuitScriptParser.INDENT);
3153
- this.state = 574;
3187
+ this.state = 579;
3154
3188
  this.errorHandler.sync(this);
3155
3189
  _la = this.tokenStream.LA(1);
3156
3190
  do {
3157
3191
  {
3158
- this.state = 574;
3192
+ this.state = 579;
3159
3193
  this.errorHandler.sync(this);
3160
3194
  switch (this.tokenStream.LA(1)) {
3161
3195
  case CircuitScriptParser.NEWLINE:
3162
3196
  {
3163
- this.state = 572;
3197
+ this.state = 577;
3164
3198
  this.match(CircuitScriptParser.NEWLINE);
3165
3199
  }
3166
3200
  break;
@@ -3182,7 +3216,7 @@ export class CircuitScriptParser extends antlr.Parser {
3182
3216
  case CircuitScriptParser.Divide:
3183
3217
  case CircuitScriptParser.ID:
3184
3218
  {
3185
- this.state = 573;
3219
+ this.state = 578;
3186
3220
  this.expression();
3187
3221
  }
3188
3222
  break;
@@ -3190,34 +3224,34 @@ export class CircuitScriptParser extends antlr.Parser {
3190
3224
  throw new antlr.NoViableAltException(this);
3191
3225
  }
3192
3226
  }
3193
- this.state = 576;
3227
+ this.state = 581;
3194
3228
  this.errorHandler.sync(this);
3195
3229
  _la = this.tokenStream.LA(1);
3196
3230
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3197
- this.state = 578;
3231
+ this.state = 583;
3198
3232
  this.match(CircuitScriptParser.DEDENT);
3199
- this.state = 582;
3233
+ this.state = 587;
3200
3234
  this.errorHandler.sync(this);
3201
3235
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3202
3236
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3203
3237
  if (alternative === 1) {
3204
3238
  {
3205
3239
  {
3206
- this.state = 579;
3240
+ this.state = 584;
3207
3241
  this.if_inner_expr();
3208
3242
  }
3209
3243
  }
3210
3244
  }
3211
- this.state = 584;
3245
+ this.state = 589;
3212
3246
  this.errorHandler.sync(this);
3213
3247
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3214
3248
  }
3215
- this.state = 586;
3249
+ this.state = 591;
3216
3250
  this.errorHandler.sync(this);
3217
3251
  _la = this.tokenStream.LA(1);
3218
3252
  if (_la === 25) {
3219
3253
  {
3220
- this.state = 585;
3254
+ this.state = 590;
3221
3255
  this.else_expr();
3222
3256
  }
3223
3257
  }
@@ -3239,34 +3273,34 @@ export class CircuitScriptParser extends antlr.Parser {
3239
3273
  }
3240
3274
  if_inner_expr() {
3241
3275
  let localContext = new If_inner_exprContext(this.context, this.state);
3242
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_inner_expr);
3276
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_if_inner_expr);
3243
3277
  let _la;
3244
3278
  try {
3245
3279
  this.enterOuterAlt(localContext, 1);
3246
3280
  {
3247
- this.state = 588;
3281
+ this.state = 593;
3248
3282
  this.match(CircuitScriptParser.Else);
3249
- this.state = 589;
3283
+ this.state = 594;
3250
3284
  this.match(CircuitScriptParser.If);
3251
- this.state = 590;
3285
+ this.state = 595;
3252
3286
  this.data_expr(0);
3253
- this.state = 591;
3287
+ this.state = 596;
3254
3288
  this.match(CircuitScriptParser.T__0);
3255
- this.state = 592;
3289
+ this.state = 597;
3256
3290
  this.match(CircuitScriptParser.NEWLINE);
3257
- this.state = 593;
3291
+ this.state = 598;
3258
3292
  this.match(CircuitScriptParser.INDENT);
3259
- this.state = 596;
3293
+ this.state = 601;
3260
3294
  this.errorHandler.sync(this);
3261
3295
  _la = this.tokenStream.LA(1);
3262
3296
  do {
3263
3297
  {
3264
- this.state = 596;
3298
+ this.state = 601;
3265
3299
  this.errorHandler.sync(this);
3266
3300
  switch (this.tokenStream.LA(1)) {
3267
3301
  case CircuitScriptParser.NEWLINE:
3268
3302
  {
3269
- this.state = 594;
3303
+ this.state = 599;
3270
3304
  this.match(CircuitScriptParser.NEWLINE);
3271
3305
  }
3272
3306
  break;
@@ -3288,7 +3322,7 @@ export class CircuitScriptParser extends antlr.Parser {
3288
3322
  case CircuitScriptParser.Divide:
3289
3323
  case CircuitScriptParser.ID:
3290
3324
  {
3291
- this.state = 595;
3325
+ this.state = 600;
3292
3326
  this.expression();
3293
3327
  }
3294
3328
  break;
@@ -3296,11 +3330,11 @@ export class CircuitScriptParser extends antlr.Parser {
3296
3330
  throw new antlr.NoViableAltException(this);
3297
3331
  }
3298
3332
  }
3299
- this.state = 598;
3333
+ this.state = 603;
3300
3334
  this.errorHandler.sync(this);
3301
3335
  _la = this.tokenStream.LA(1);
3302
3336
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3303
- this.state = 600;
3337
+ this.state = 605;
3304
3338
  this.match(CircuitScriptParser.DEDENT);
3305
3339
  }
3306
3340
  }
@@ -3320,30 +3354,30 @@ export class CircuitScriptParser extends antlr.Parser {
3320
3354
  }
3321
3355
  else_expr() {
3322
3356
  let localContext = new Else_exprContext(this.context, this.state);
3323
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_else_expr);
3357
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_else_expr);
3324
3358
  let _la;
3325
3359
  try {
3326
3360
  this.enterOuterAlt(localContext, 1);
3327
3361
  {
3328
- this.state = 602;
3362
+ this.state = 607;
3329
3363
  this.match(CircuitScriptParser.Else);
3330
- this.state = 603;
3364
+ this.state = 608;
3331
3365
  this.match(CircuitScriptParser.T__0);
3332
- this.state = 604;
3366
+ this.state = 609;
3333
3367
  this.match(CircuitScriptParser.NEWLINE);
3334
- this.state = 605;
3368
+ this.state = 610;
3335
3369
  this.match(CircuitScriptParser.INDENT);
3336
- this.state = 608;
3370
+ this.state = 613;
3337
3371
  this.errorHandler.sync(this);
3338
3372
  _la = this.tokenStream.LA(1);
3339
3373
  do {
3340
3374
  {
3341
- this.state = 608;
3375
+ this.state = 613;
3342
3376
  this.errorHandler.sync(this);
3343
3377
  switch (this.tokenStream.LA(1)) {
3344
3378
  case CircuitScriptParser.NEWLINE:
3345
3379
  {
3346
- this.state = 606;
3380
+ this.state = 611;
3347
3381
  this.match(CircuitScriptParser.NEWLINE);
3348
3382
  }
3349
3383
  break;
@@ -3365,7 +3399,7 @@ export class CircuitScriptParser extends antlr.Parser {
3365
3399
  case CircuitScriptParser.Divide:
3366
3400
  case CircuitScriptParser.ID:
3367
3401
  {
3368
- this.state = 607;
3402
+ this.state = 612;
3369
3403
  this.expression();
3370
3404
  }
3371
3405
  break;
@@ -3373,11 +3407,11 @@ export class CircuitScriptParser extends antlr.Parser {
3373
3407
  throw new antlr.NoViableAltException(this);
3374
3408
  }
3375
3409
  }
3376
- this.state = 610;
3410
+ this.state = 615;
3377
3411
  this.errorHandler.sync(this);
3378
3412
  _la = this.tokenStream.LA(1);
3379
3413
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3380
- this.state = 612;
3414
+ this.state = 617;
3381
3415
  this.match(CircuitScriptParser.DEDENT);
3382
3416
  }
3383
3417
  }
@@ -3416,7 +3450,7 @@ export class CircuitScriptParser extends antlr.Parser {
3416
3450
  return true;
3417
3451
  }
3418
3452
  static _serializedATN = [
3419
- 4, 1, 55, 615, 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,
3453
+ 4, 1, 55, 620, 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,
3420
3454
  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,
3421
3455
  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,
3422
3456
  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,
@@ -3424,225 +3458,227 @@ export class CircuitScriptParser extends antlr.Parser {
3424
3458
  7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
3425
3459
  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,
3426
3460
  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,
3427
- 2, 53, 7, 53, 2, 54, 7, 54, 1, 0, 1, 0, 4, 0, 113, 8, 0, 11, 0, 12, 0, 114, 1, 0, 1, 0, 1,
3428
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3429
- 1, 1, 1, 3, 1, 137, 8, 1, 1, 2, 4, 2, 140, 8, 2, 11, 2, 12, 2, 141, 1, 3, 1, 3, 1, 3, 1, 3,
3430
- 1, 3, 1, 3, 4, 3, 150, 8, 3, 11, 3, 12, 3, 151, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1,
3431
- 4, 4, 4, 162, 8, 4, 11, 4, 12, 4, 163, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6,
3432
- 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 179, 8, 7, 1, 8, 1, 8, 3, 8, 183, 8, 8, 1, 8, 5, 8, 186, 8, 8,
3433
- 10, 8, 12, 8, 189, 9, 8, 1, 8, 3, 8, 192, 8, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 3, 10, 199,
3434
- 8, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 206, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13,
3435
- 5, 13, 212, 8, 13, 10, 13, 12, 13, 215, 9, 13, 1, 13, 3, 13, 218, 8, 13, 1, 14, 1, 14,
3436
- 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 226, 8, 14, 10, 14, 12, 14, 229, 9, 14, 1, 14, 1, 14,
3437
- 1, 14, 1, 14, 1, 14, 4, 14, 236, 8, 14, 11, 14, 12, 14, 237, 1, 14, 1, 14, 1, 15, 1, 15,
3438
- 1, 15, 1, 15, 1, 15, 5, 15, 247, 8, 15, 10, 15, 12, 15, 250, 9, 15, 1, 16, 1, 16, 1, 17,
3439
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 260, 8, 17, 11, 17, 12, 17, 261, 1, 17, 1, 17,
3440
- 1, 18, 1, 18, 3, 18, 268, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 274, 8, 19, 1, 20, 1,
3441
- 20, 3, 20, 278, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 284, 8, 21, 11, 21, 12, 21, 285,
3442
- 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25,
3443
- 1, 25, 1, 25, 5, 25, 303, 8, 25, 10, 25, 12, 25, 306, 9, 25, 1, 25, 1, 25, 5, 25, 310,
3444
- 8, 25, 10, 25, 12, 25, 313, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 318, 8, 25, 10, 25, 12,
3445
- 25, 321, 9, 25, 3, 25, 323, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27,
3446
- 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 341, 8, 28, 1, 28, 1, 28,
3447
- 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 349, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28,
3448
- 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 364, 8, 28, 10, 28, 12, 28, 367,
3449
- 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 3, 31, 374, 8, 31, 1, 31, 1, 31, 3, 31, 378, 8,
3450
- 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 384, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
3451
- 32, 4, 32, 392, 8, 32, 11, 32, 12, 32, 393, 1, 32, 1, 32, 1, 33, 1, 33, 3, 33, 400, 8,
3452
- 33, 1, 34, 1, 34, 1, 34, 5, 34, 405, 8, 34, 10, 34, 12, 34, 408, 9, 34, 1, 34, 1, 34, 1,
3453
- 34, 1, 34, 5, 34, 414, 8, 34, 10, 34, 12, 34, 417, 9, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1,
3454
- 34, 1, 34, 1, 34, 5, 34, 426, 8, 34, 10, 34, 12, 34, 429, 9, 34, 3, 34, 431, 8, 34, 1,
3455
- 35, 1, 35, 1, 35, 5, 35, 436, 8, 35, 10, 35, 12, 35, 439, 9, 35, 1, 36, 1, 36, 3, 36, 443,
3456
- 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 448, 8, 36, 1, 37, 3, 37, 451, 8, 37, 1, 37, 1, 37, 4,
3457
- 37, 455, 8, 37, 11, 37, 12, 37, 456, 1, 38, 3, 38, 460, 8, 38, 1, 38, 1, 38, 3, 38, 464,
3458
- 8, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 4, 40, 476,
3459
- 8, 40, 11, 40, 12, 40, 477, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41,
3460
- 4, 41, 489, 8, 41, 11, 41, 12, 41, 490, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42, 497, 8, 42,
3461
- 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 3, 42, 504, 8, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44,
3462
- 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 516, 8, 45, 11, 45, 12, 45, 517, 1, 45, 1, 45,
3463
- 1, 45, 1, 45, 5, 45, 524, 8, 45, 10, 45, 12, 45, 527, 9, 45, 3, 45, 529, 8, 45, 1, 46,
3464
- 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 3, 47, 538, 8, 47, 1, 47, 3, 47, 541, 8, 47, 1,
3465
- 48, 1, 48, 5, 48, 545, 8, 48, 10, 48, 12, 48, 548, 9, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1,
3466
- 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 4, 51, 562, 8, 51, 11, 51, 12, 51,
3467
- 563, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 4, 52, 575, 8, 52, 11,
3468
- 52, 12, 52, 576, 1, 52, 1, 52, 5, 52, 581, 8, 52, 10, 52, 12, 52, 584, 9, 52, 1, 52, 3,
3469
- 52, 587, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 4, 53, 597, 8, 53,
3470
- 11, 53, 12, 53, 598, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 609,
3471
- 8, 54, 11, 54, 12, 54, 610, 1, 54, 1, 54, 1, 54, 0, 1, 56, 55, 0, 2, 4, 6, 8, 10, 12, 14,
3472
- 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
3473
- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3474
- 102, 104, 106, 108, 0, 12, 2, 0, 9, 9, 18, 20, 1, 0, 44, 45, 2, 0, 45, 45, 48, 48, 2, 0,
3475
- 42, 42, 45, 45, 1, 0, 38, 39, 1, 0, 36, 37, 1, 0, 34, 35, 1, 0, 28, 33, 2, 0, 26, 26, 37,
3476
- 37, 2, 0, 43, 43, 45, 49, 2, 0, 14, 14, 44, 44, 2, 0, 44, 45, 48, 48, 656, 0, 112, 1, 0,
3477
- 0, 0, 2, 136, 1, 0, 0, 0, 4, 139, 1, 0, 0, 0, 6, 143, 1, 0, 0, 0, 8, 155, 1, 0, 0, 0, 10, 167,
3478
- 1, 0, 0, 0, 12, 171, 1, 0, 0, 0, 14, 174, 1, 0, 0, 0, 16, 182, 1, 0, 0, 0, 18, 193, 1, 0,
3479
- 0, 0, 20, 198, 1, 0, 0, 0, 22, 200, 1, 0, 0, 0, 24, 202, 1, 0, 0, 0, 26, 207, 1, 0, 0, 0,
3480
- 28, 219, 1, 0, 0, 0, 30, 241, 1, 0, 0, 0, 32, 251, 1, 0, 0, 0, 34, 253, 1, 0, 0, 0, 36, 267,
3481
- 1, 0, 0, 0, 38, 269, 1, 0, 0, 0, 40, 277, 1, 0, 0, 0, 42, 279, 1, 0, 0, 0, 44, 289, 1, 0,
3482
- 0, 0, 46, 291, 1, 0, 0, 0, 48, 295, 1, 0, 0, 0, 50, 322, 1, 0, 0, 0, 52, 324, 1, 0, 0, 0,
3483
- 54, 328, 1, 0, 0, 0, 56, 348, 1, 0, 0, 0, 58, 368, 1, 0, 0, 0, 60, 370, 1, 0, 0, 0, 62, 377,
3484
- 1, 0, 0, 0, 64, 379, 1, 0, 0, 0, 66, 399, 1, 0, 0, 0, 68, 430, 1, 0, 0, 0, 70, 432, 1, 0,
3485
- 0, 0, 72, 447, 1, 0, 0, 0, 74, 450, 1, 0, 0, 0, 76, 459, 1, 0, 0, 0, 78, 465, 1, 0, 0, 0,
3486
- 80, 468, 1, 0, 0, 0, 82, 481, 1, 0, 0, 0, 84, 494, 1, 0, 0, 0, 86, 505, 1, 0, 0, 0, 88, 509,
3487
- 1, 0, 0, 0, 90, 528, 1, 0, 0, 0, 92, 530, 1, 0, 0, 0, 94, 540, 1, 0, 0, 0, 96, 542, 1, 0,
3488
- 0, 0, 98, 549, 1, 0, 0, 0, 100, 552, 1, 0, 0, 0, 102, 555, 1, 0, 0, 0, 104, 567, 1, 0, 0,
3489
- 0, 106, 588, 1, 0, 0, 0, 108, 602, 1, 0, 0, 0, 110, 113, 3, 2, 1, 0, 111, 113, 5, 52, 0,
3490
- 0, 112, 110, 1, 0, 0, 0, 112, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 112, 1, 0, 0,
3491
- 0, 114, 115, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 117, 5, 0, 0, 1, 117, 1, 1, 0, 0, 0,
3492
- 118, 137, 3, 18, 9, 0, 119, 137, 3, 26, 13, 0, 120, 137, 3, 24, 12, 0, 121, 137, 3, 46,
3493
- 23, 0, 122, 137, 3, 52, 26, 0, 123, 137, 3, 8, 4, 0, 124, 137, 3, 54, 27, 0, 125, 137,
3494
- 3, 44, 22, 0, 126, 137, 3, 64, 32, 0, 127, 137, 3, 74, 37, 0, 128, 137, 3, 96, 48, 0,
3495
- 129, 137, 3, 100, 50, 0, 130, 137, 3, 102, 51, 0, 131, 137, 3, 70, 35, 0, 132, 137,
3496
- 3, 34, 17, 0, 133, 137, 3, 4, 2, 0, 134, 137, 3, 98, 49, 0, 135, 137, 3, 104, 52, 0, 136,
3497
- 118, 1, 0, 0, 0, 136, 119, 1, 0, 0, 0, 136, 120, 1, 0, 0, 0, 136, 121, 1, 0, 0, 0, 136,
3498
- 122, 1, 0, 0, 0, 136, 123, 1, 0, 0, 0, 136, 124, 1, 0, 0, 0, 136, 125, 1, 0, 0, 0, 136,
3499
- 126, 1, 0, 0, 0, 136, 127, 1, 0, 0, 0, 136, 128, 1, 0, 0, 0, 136, 129, 1, 0, 0, 0, 136,
3500
- 130, 1, 0, 0, 0, 136, 131, 1, 0, 0, 0, 136, 132, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, 136,
3501
- 134, 1, 0, 0, 0, 136, 135, 1, 0, 0, 0, 137, 3, 1, 0, 0, 0, 138, 140, 3, 6, 3, 0, 139, 138,
3502
- 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 5, 1,
3503
- 0, 0, 0, 143, 144, 7, 0, 0, 0, 144, 145, 5, 1, 0, 0, 145, 146, 5, 52, 0, 0, 146, 149, 5,
3504
- 54, 0, 0, 147, 150, 5, 52, 0, 0, 148, 150, 3, 2, 1, 0, 149, 147, 1, 0, 0, 0, 149, 148,
3505
- 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153,
3506
- 1, 0, 0, 0, 153, 154, 5, 55, 0, 0, 154, 7, 1, 0, 0, 0, 155, 156, 3, 70, 35, 0, 156, 157,
3507
- 5, 1, 0, 0, 157, 158, 5, 52, 0, 0, 158, 161, 5, 54, 0, 0, 159, 162, 5, 52, 0, 0, 160, 162,
3508
- 3, 10, 5, 0, 161, 159, 1, 0, 0, 0, 161, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 161,
3509
- 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 166, 5, 55, 0, 0, 166, 9, 1,
3510
- 0, 0, 0, 167, 168, 7, 1, 0, 0, 168, 169, 5, 1, 0, 0, 169, 170, 3, 62, 31, 0, 170, 11, 1,
3511
- 0, 0, 0, 171, 172, 5, 14, 0, 0, 172, 173, 7, 2, 0, 0, 173, 13, 1, 0, 0, 0, 174, 175, 5,
3512
- 44, 0, 0, 175, 178, 5, 1, 0, 0, 176, 179, 3, 62, 31, 0, 177, 179, 5, 44, 0, 0, 178, 176,
3513
- 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 15, 1, 0, 0, 0, 180, 183, 3, 56, 28, 0, 181, 183,
3514
- 3, 46, 23, 0, 182, 180, 1, 0, 0, 0, 182, 181, 1, 0, 0, 0, 183, 187, 1, 0, 0, 0, 184, 186,
3515
- 3, 14, 7, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188,
3516
- 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 192, 3, 12, 6, 0, 191, 190,
3517
- 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 17, 1, 0, 0, 0, 193, 194, 5, 15, 0, 0, 194, 195,
3518
- 3, 16, 8, 0, 195, 19, 1, 0, 0, 0, 196, 199, 3, 16, 8, 0, 197, 199, 3, 12, 6, 0, 198, 196,
3519
- 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 21, 1, 0, 0, 0, 200, 201, 7, 2, 0, 0, 201, 23, 1,
3520
- 0, 0, 0, 202, 205, 5, 16, 0, 0, 203, 206, 3, 20, 10, 0, 204, 206, 5, 18, 0, 0, 205, 203,
3521
- 1, 0, 0, 0, 205, 204, 1, 0, 0, 0, 206, 25, 1, 0, 0, 0, 207, 217, 5, 17, 0, 0, 208, 213,
3522
- 3, 20, 10, 0, 209, 210, 5, 2, 0, 0, 210, 212, 3, 20, 10, 0, 211, 209, 1, 0, 0, 0, 212,
3523
- 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 218, 1, 0, 0, 0, 215,
3524
- 213, 1, 0, 0, 0, 216, 218, 5, 18, 0, 0, 217, 208, 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218,
3525
- 27, 1, 0, 0, 0, 219, 220, 5, 16, 0, 0, 220, 221, 3, 20, 10, 0, 221, 222, 5, 17, 0, 0, 222,
3526
- 227, 3, 20, 10, 0, 223, 224, 5, 2, 0, 0, 224, 226, 3, 20, 10, 0, 225, 223, 1, 0, 0, 0,
3527
- 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 230, 1, 0, 0, 0,
3528
- 229, 227, 1, 0, 0, 0, 230, 231, 5, 1, 0, 0, 231, 232, 5, 52, 0, 0, 232, 235, 5, 54, 0,
3529
- 0, 233, 236, 5, 52, 0, 0, 234, 236, 3, 30, 15, 0, 235, 233, 1, 0, 0, 0, 235, 234, 1, 0,
3530
- 0, 0, 236, 237, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 239, 1, 0,
3531
- 0, 0, 239, 240, 5, 55, 0, 0, 240, 29, 1, 0, 0, 0, 241, 242, 3, 22, 11, 0, 242, 243, 5,
3532
- 1, 0, 0, 243, 248, 3, 32, 16, 0, 244, 245, 5, 2, 0, 0, 245, 247, 3, 32, 16, 0, 246, 244,
3533
- 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 248, 249, 1, 0, 0, 0, 249, 31, 1,
3534
- 0, 0, 0, 250, 248, 1, 0, 0, 0, 251, 252, 7, 3, 0, 0, 252, 33, 1, 0, 0, 0, 253, 254, 3, 24,
3535
- 12, 0, 254, 255, 5, 1, 0, 0, 255, 256, 5, 52, 0, 0, 256, 259, 5, 54, 0, 0, 257, 260, 5,
3536
- 52, 0, 0, 258, 260, 3, 36, 18, 0, 259, 257, 1, 0, 0, 0, 259, 258, 1, 0, 0, 0, 260, 261,
3537
- 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264,
3538
- 5, 55, 0, 0, 264, 35, 1, 0, 0, 0, 265, 268, 3, 2, 1, 0, 266, 268, 3, 38, 19, 0, 267, 265,
3539
- 1, 0, 0, 0, 267, 266, 1, 0, 0, 0, 268, 37, 1, 0, 0, 0, 269, 270, 3, 22, 11, 0, 270, 273,
3540
- 5, 1, 0, 0, 271, 274, 3, 40, 20, 0, 272, 274, 3, 42, 21, 0, 273, 271, 1, 0, 0, 0, 273,
3541
- 272, 1, 0, 0, 0, 274, 39, 1, 0, 0, 0, 275, 278, 3, 2, 1, 0, 276, 278, 5, 42, 0, 0, 277,
3542
- 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 41, 1, 0, 0, 0, 279, 280, 5, 52, 0, 0, 280,
3543
- 283, 5, 54, 0, 0, 281, 284, 5, 52, 0, 0, 282, 284, 3, 2, 1, 0, 283, 281, 1, 0, 0, 0, 283,
3544
- 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286,
3545
- 287, 1, 0, 0, 0, 287, 288, 5, 55, 0, 0, 288, 43, 1, 0, 0, 0, 289, 290, 5, 8, 0, 0, 290,
3546
- 45, 1, 0, 0, 0, 291, 292, 3, 70, 35, 0, 292, 293, 5, 3, 0, 0, 293, 294, 3, 56, 28, 0, 294,
3547
- 47, 1, 0, 0, 0, 295, 296, 5, 44, 0, 0, 296, 297, 5, 3, 0, 0, 297, 298, 3, 56, 28, 0, 298,
3548
- 49, 1, 0, 0, 0, 299, 304, 3, 56, 28, 0, 300, 301, 5, 2, 0, 0, 301, 303, 3, 56, 28, 0, 302,
3549
- 300, 1, 0, 0, 0, 303, 306, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305,
3550
- 311, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 308, 5, 2, 0, 0, 308, 310, 3, 48, 24, 0, 309,
3551
- 307, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312,
3552
- 323, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 319, 3, 48, 24, 0, 315, 316, 5, 2, 0, 0, 316,
3553
- 318, 3, 48, 24, 0, 317, 315, 1, 0, 0, 0, 318, 321, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 319,
3554
- 320, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 322, 299, 1, 0, 0, 0, 322,
3555
- 314, 1, 0, 0, 0, 323, 51, 1, 0, 0, 0, 324, 325, 3, 70, 35, 0, 325, 326, 5, 3, 0, 0, 326,
3556
- 327, 3, 56, 28, 0, 327, 53, 1, 0, 0, 0, 328, 329, 5, 4, 0, 0, 329, 330, 5, 44, 0, 0, 330,
3557
- 331, 5, 3, 0, 0, 331, 332, 3, 56, 28, 0, 332, 55, 1, 0, 0, 0, 333, 334, 6, 28, -1, 0, 334,
3558
- 335, 5, 40, 0, 0, 335, 336, 3, 56, 28, 0, 336, 337, 5, 41, 0, 0, 337, 349, 1, 0, 0, 0,
3559
- 338, 341, 3, 62, 31, 0, 339, 341, 3, 70, 35, 0, 340, 338, 1, 0, 0, 0, 340, 339, 1, 0,
3560
- 0, 0, 341, 349, 1, 0, 0, 0, 342, 343, 3, 60, 30, 0, 343, 344, 3, 56, 28, 8, 344, 349,
3561
- 1, 0, 0, 0, 345, 349, 3, 80, 40, 0, 346, 349, 3, 82, 41, 0, 347, 349, 3, 74, 37, 0, 348,
3562
- 333, 1, 0, 0, 0, 348, 340, 1, 0, 0, 0, 348, 342, 1, 0, 0, 0, 348, 345, 1, 0, 0, 0, 348,
3563
- 346, 1, 0, 0, 0, 348, 347, 1, 0, 0, 0, 349, 365, 1, 0, 0, 0, 350, 351, 10, 7, 0, 0, 351,
3564
- 352, 7, 4, 0, 0, 352, 364, 3, 56, 28, 8, 353, 354, 10, 6, 0, 0, 354, 355, 7, 5, 0, 0, 355,
3565
- 364, 3, 56, 28, 7, 356, 357, 10, 5, 0, 0, 357, 358, 3, 58, 29, 0, 358, 359, 3, 56, 28,
3566
- 6, 359, 364, 1, 0, 0, 0, 360, 361, 10, 4, 0, 0, 361, 362, 7, 6, 0, 0, 362, 364, 3, 56,
3567
- 28, 5, 363, 350, 1, 0, 0, 0, 363, 353, 1, 0, 0, 0, 363, 356, 1, 0, 0, 0, 363, 360, 1, 0,
3568
- 0, 0, 364, 367, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 57, 1, 0, 0,
3569
- 0, 367, 365, 1, 0, 0, 0, 368, 369, 7, 7, 0, 0, 369, 59, 1, 0, 0, 0, 370, 371, 7, 8, 0, 0,
3570
- 371, 61, 1, 0, 0, 0, 372, 374, 5, 37, 0, 0, 373, 372, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0,
3571
- 374, 375, 1, 0, 0, 0, 375, 378, 7, 9, 0, 0, 376, 378, 3, 92, 46, 0, 377, 373, 1, 0, 0,
3572
- 0, 377, 376, 1, 0, 0, 0, 378, 63, 1, 0, 0, 0, 379, 380, 5, 22, 0, 0, 380, 381, 5, 44, 0,
3573
- 0, 381, 383, 5, 40, 0, 0, 382, 384, 3, 68, 34, 0, 383, 382, 1, 0, 0, 0, 383, 384, 1, 0,
3574
- 0, 0, 384, 385, 1, 0, 0, 0, 385, 386, 5, 41, 0, 0, 386, 387, 5, 1, 0, 0, 387, 388, 5, 52,
3575
- 0, 0, 388, 391, 5, 54, 0, 0, 389, 392, 5, 52, 0, 0, 390, 392, 3, 66, 33, 0, 391, 389,
3576
- 1, 0, 0, 0, 391, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 393, 394,
3577
- 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 396, 5, 55, 0, 0, 396, 65, 1, 0, 0, 0, 397, 400,
3578
- 3, 2, 1, 0, 398, 400, 3, 78, 39, 0, 399, 397, 1, 0, 0, 0, 399, 398, 1, 0, 0, 0, 400, 67,
3579
- 1, 0, 0, 0, 401, 406, 5, 44, 0, 0, 402, 403, 5, 2, 0, 0, 403, 405, 5, 44, 0, 0, 404, 402,
3580
- 1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 415,
3581
- 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 410, 5, 2, 0, 0, 410, 411, 5, 44, 0, 0, 411, 412,
3582
- 5, 3, 0, 0, 412, 414, 3, 62, 31, 0, 413, 409, 1, 0, 0, 0, 414, 417, 1, 0, 0, 0, 415, 413,
3583
- 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 431, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 418, 419,
3584
- 5, 44, 0, 0, 419, 420, 5, 3, 0, 0, 420, 427, 3, 62, 31, 0, 421, 422, 5, 2, 0, 0, 422, 423,
3585
- 5, 44, 0, 0, 423, 424, 5, 3, 0, 0, 424, 426, 3, 62, 31, 0, 425, 421, 1, 0, 0, 0, 426, 429,
3586
- 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427,
3587
- 1, 0, 0, 0, 430, 401, 1, 0, 0, 0, 430, 418, 1, 0, 0, 0, 431, 69, 1, 0, 0, 0, 432, 437, 5,
3588
- 44, 0, 0, 433, 434, 5, 5, 0, 0, 434, 436, 5, 44, 0, 0, 435, 433, 1, 0, 0, 0, 436, 439,
3589
- 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 437, 438, 1, 0, 0, 0, 438, 71, 1, 0, 0, 0, 439, 437, 1,
3590
- 0, 0, 0, 440, 442, 5, 40, 0, 0, 441, 443, 3, 50, 25, 0, 442, 441, 1, 0, 0, 0, 442, 443,
3591
- 1, 0, 0, 0, 443, 444, 1, 0, 0, 0, 444, 448, 5, 41, 0, 0, 445, 446, 5, 5, 0, 0, 446, 448,
3592
- 5, 44, 0, 0, 447, 440, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 448, 73, 1, 0, 0, 0, 449, 451,
3593
- 3, 76, 38, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 454,
3594
- 5, 44, 0, 0, 453, 455, 3, 72, 36, 0, 454, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 454,
3595
- 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 75, 1, 0, 0, 0, 458, 460, 5, 36, 0, 0, 459, 458,
3596
- 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 5, 38, 0, 0, 462, 464,
3597
- 3, 56, 28, 0, 463, 462, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 77, 1, 0, 0, 0, 465, 466,
3598
- 5, 21, 0, 0, 466, 467, 3, 56, 28, 0, 467, 79, 1, 0, 0, 0, 468, 469, 5, 10, 0, 0, 469, 470,
3599
- 5, 11, 0, 0, 470, 471, 5, 1, 0, 0, 471, 472, 5, 52, 0, 0, 472, 475, 5, 54, 0, 0, 473, 476,
3600
- 5, 52, 0, 0, 474, 476, 3, 86, 43, 0, 475, 473, 1, 0, 0, 0, 475, 474, 1, 0, 0, 0, 476, 477,
3601
- 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480,
3602
- 5, 55, 0, 0, 480, 81, 1, 0, 0, 0, 481, 482, 5, 10, 0, 0, 482, 483, 5, 12, 0, 0, 483, 484,
3603
- 5, 1, 0, 0, 484, 485, 5, 52, 0, 0, 485, 488, 5, 54, 0, 0, 486, 489, 5, 52, 0, 0, 487, 489,
3604
- 3, 84, 42, 0, 488, 486, 1, 0, 0, 0, 488, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 488,
3605
- 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 5, 55, 0, 0, 493, 83,
3606
- 1, 0, 0, 0, 494, 496, 7, 10, 0, 0, 495, 497, 5, 1, 0, 0, 496, 495, 1, 0, 0, 0, 496, 497,
3607
- 1, 0, 0, 0, 497, 503, 1, 0, 0, 0, 498, 504, 3, 50, 25, 0, 499, 500, 5, 40, 0, 0, 500, 501,
3608
- 3, 50, 25, 0, 501, 502, 5, 41, 0, 0, 502, 504, 1, 0, 0, 0, 503, 498, 1, 0, 0, 0, 503, 499,
3609
- 1, 0, 0, 0, 504, 85, 1, 0, 0, 0, 505, 506, 3, 88, 44, 0, 506, 507, 5, 1, 0, 0, 507, 508,
3610
- 3, 90, 45, 0, 508, 87, 1, 0, 0, 0, 509, 510, 7, 11, 0, 0, 510, 89, 1, 0, 0, 0, 511, 512,
3611
- 5, 52, 0, 0, 512, 515, 5, 54, 0, 0, 513, 516, 5, 52, 0, 0, 514, 516, 3, 86, 43, 0, 515,
3612
- 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517,
3613
- 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 529, 5, 55, 0, 0, 520, 525, 3, 56, 28, 0, 521,
3614
- 522, 5, 2, 0, 0, 522, 524, 3, 56, 28, 0, 523, 521, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525,
3615
- 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528,
3616
- 511, 1, 0, 0, 0, 528, 520, 1, 0, 0, 0, 529, 91, 1, 0, 0, 0, 530, 531, 5, 6, 0, 0, 531, 532,
3617
- 5, 45, 0, 0, 532, 533, 5, 7, 0, 0, 533, 93, 1, 0, 0, 0, 534, 537, 5, 44, 0, 0, 535, 538,
3618
- 5, 45, 0, 0, 536, 538, 3, 56, 28, 0, 537, 535, 1, 0, 0, 0, 537, 536, 1, 0, 0, 0, 538, 541,
3619
- 1, 0, 0, 0, 539, 541, 5, 44, 0, 0, 540, 534, 1, 0, 0, 0, 540, 539, 1, 0, 0, 0, 541, 95,
3620
- 1, 0, 0, 0, 542, 546, 5, 13, 0, 0, 543, 545, 3, 94, 47, 0, 544, 543, 1, 0, 0, 0, 545, 548,
3621
- 1, 0, 0, 0, 546, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 97, 1, 0, 0, 0, 548, 546, 1,
3622
- 0, 0, 0, 549, 550, 5, 18, 0, 0, 550, 551, 5, 44, 0, 0, 551, 99, 1, 0, 0, 0, 552, 553, 5,
3623
- 23, 0, 0, 553, 554, 5, 44, 0, 0, 554, 101, 1, 0, 0, 0, 555, 556, 5, 27, 0, 0, 556, 557,
3624
- 5, 1, 0, 0, 557, 558, 5, 52, 0, 0, 558, 561, 5, 54, 0, 0, 559, 562, 5, 52, 0, 0, 560, 562,
3625
- 3, 2, 1, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 561,
3626
- 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 5, 55, 0, 0, 566, 103,
3627
- 1, 0, 0, 0, 567, 568, 5, 24, 0, 0, 568, 569, 3, 56, 28, 0, 569, 570, 5, 1, 0, 0, 570, 571,
3628
- 5, 52, 0, 0, 571, 574, 5, 54, 0, 0, 572, 575, 5, 52, 0, 0, 573, 575, 3, 2, 1, 0, 574, 572,
3629
- 1, 0, 0, 0, 574, 573, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0, 576, 574, 1, 0, 0, 0, 576, 577,
3630
- 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 582, 5, 55, 0, 0, 579, 581, 3, 106, 53, 0, 580,
3631
- 579, 1, 0, 0, 0, 581, 584, 1, 0, 0, 0, 582, 580, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583,
3632
- 586, 1, 0, 0, 0, 584, 582, 1, 0, 0, 0, 585, 587, 3, 108, 54, 0, 586, 585, 1, 0, 0, 0, 586,
3633
- 587, 1, 0, 0, 0, 587, 105, 1, 0, 0, 0, 588, 589, 5, 25, 0, 0, 589, 590, 5, 24, 0, 0, 590,
3634
- 591, 3, 56, 28, 0, 591, 592, 5, 1, 0, 0, 592, 593, 5, 52, 0, 0, 593, 596, 5, 54, 0, 0,
3635
- 594, 597, 5, 52, 0, 0, 595, 597, 3, 2, 1, 0, 596, 594, 1, 0, 0, 0, 596, 595, 1, 0, 0, 0,
3636
- 597, 598, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0,
3637
- 600, 601, 5, 55, 0, 0, 601, 107, 1, 0, 0, 0, 602, 603, 5, 25, 0, 0, 603, 604, 5, 1, 0,
3638
- 0, 604, 605, 5, 52, 0, 0, 605, 608, 5, 54, 0, 0, 606, 609, 5, 52, 0, 0, 607, 609, 3, 2,
3639
- 1, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 608, 1, 0,
3640
- 0, 0, 610, 611, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 613, 5, 55, 0, 0, 613, 109, 1, 0,
3641
- 0, 0, 75, 112, 114, 136, 141, 149, 151, 161, 163, 178, 182, 187, 191, 198, 205, 213,
3642
- 217, 227, 235, 237, 248, 259, 261, 267, 273, 277, 283, 285, 304, 311, 319, 322,
3643
- 340, 348, 363, 365, 373, 377, 383, 391, 393, 399, 406, 415, 427, 430, 437, 442,
3644
- 447, 450, 456, 459, 463, 475, 477, 488, 490, 496, 503, 515, 517, 525, 528, 537,
3645
- 540, 546, 561, 563, 574, 576, 582, 586, 596, 598, 608, 610
3461
+ 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 1, 0, 1, 0, 4, 0, 115, 8, 0, 11, 0, 12, 0, 116,
3462
+ 1, 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, 1, 1, 1, 1,
3463
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 139, 8, 1, 1, 2, 4, 2, 142, 8, 2, 11, 2, 12, 2, 143, 1, 3, 1,
3464
+ 3, 1, 3, 1, 3, 1, 3, 1, 3, 4, 3, 152, 8, 3, 11, 3, 12, 3, 153, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4,
3465
+ 1, 4, 1, 4, 1, 4, 4, 4, 164, 8, 4, 11, 4, 12, 4, 165, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1,
3466
+ 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 181, 8, 7, 1, 8, 1, 8, 3, 8, 185, 8, 8, 1, 8, 5,
3467
+ 8, 188, 8, 8, 10, 8, 12, 8, 191, 9, 8, 1, 8, 3, 8, 194, 8, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10,
3468
+ 3, 10, 201, 8, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 208, 8, 12, 1, 13, 1, 13, 1,
3469
+ 13, 1, 13, 5, 13, 214, 8, 13, 10, 13, 12, 13, 217, 9, 13, 1, 13, 3, 13, 220, 8, 13, 1,
3470
+ 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 228, 8, 14, 10, 14, 12, 14, 231, 9, 14, 1,
3471
+ 14, 1, 14, 1, 14, 1, 14, 1, 14, 4, 14, 238, 8, 14, 11, 14, 12, 14, 239, 1, 14, 1, 14, 1,
3472
+ 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 249, 8, 15, 10, 15, 12, 15, 252, 9, 15, 1, 16, 1,
3473
+ 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 262, 8, 17, 11, 17, 12, 17, 263, 1,
3474
+ 17, 1, 17, 1, 18, 1, 18, 3, 18, 270, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 276, 8, 19,
3475
+ 1, 20, 1, 20, 3, 20, 280, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 286, 8, 21, 11, 21,
3476
+ 12, 21, 287, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24,
3477
+ 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 305, 8, 25, 10, 25, 12, 25, 308, 9, 25, 1, 25, 1, 25,
3478
+ 5, 25, 312, 8, 25, 10, 25, 12, 25, 315, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 320, 8, 25,
3479
+ 10, 25, 12, 25, 323, 9, 25, 3, 25, 325, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27,
3480
+ 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 343, 8, 28,
3481
+ 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 351, 8, 28, 1, 28, 1, 28, 1, 28, 1, 28,
3482
+ 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 366, 8, 28, 10, 28,
3483
+ 12, 28, 369, 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31,
3484
+ 3, 31, 380, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 386, 8, 32, 1, 32, 1, 32, 1, 32, 1,
3485
+ 32, 1, 32, 1, 32, 4, 32, 394, 8, 32, 11, 32, 12, 32, 395, 1, 32, 1, 32, 1, 33, 1, 33, 3,
3486
+ 33, 402, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 407, 8, 34, 10, 34, 12, 34, 410, 9, 34, 1,
3487
+ 34, 1, 34, 1, 34, 1, 34, 5, 34, 416, 8, 34, 10, 34, 12, 34, 419, 9, 34, 1, 34, 1, 34, 1,
3488
+ 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 428, 8, 34, 10, 34, 12, 34, 431, 9, 34, 3, 34, 433,
3489
+ 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 438, 8, 35, 10, 35, 12, 35, 441, 9, 35, 1, 36, 1, 36,
3490
+ 3, 36, 445, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 450, 8, 36, 1, 37, 3, 37, 453, 8, 37, 1,
3491
+ 37, 1, 37, 4, 37, 457, 8, 37, 11, 37, 12, 37, 458, 1, 38, 3, 38, 462, 8, 38, 1, 38, 1,
3492
+ 38, 3, 38, 466, 8, 38, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1,
3493
+ 40, 4, 40, 478, 8, 40, 11, 40, 12, 40, 479, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1,
3494
+ 41, 1, 41, 1, 41, 4, 41, 491, 8, 41, 11, 41, 12, 41, 492, 1, 41, 1, 41, 1, 42, 1, 42, 1,
3495
+ 42, 1, 42, 4, 42, 501, 8, 42, 11, 42, 12, 42, 502, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 509,
3496
+ 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 517, 8, 43, 1, 44, 1, 44, 1, 44,
3497
+ 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 529, 8, 46, 10, 46, 12, 46, 532,
3498
+ 9, 46, 3, 46, 534, 8, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 3, 48, 543, 8,
3499
+ 48, 1, 48, 3, 48, 546, 8, 48, 1, 49, 1, 49, 5, 49, 550, 8, 49, 10, 49, 12, 49, 553, 9,
3500
+ 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 4,
3501
+ 52, 567, 8, 52, 11, 52, 12, 52, 568, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1,
3502
+ 53, 1, 53, 4, 53, 580, 8, 53, 11, 53, 12, 53, 581, 1, 53, 1, 53, 5, 53, 586, 8, 53, 10,
3503
+ 53, 12, 53, 589, 9, 53, 1, 53, 3, 53, 592, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1,
3504
+ 54, 1, 54, 1, 54, 4, 54, 602, 8, 54, 11, 54, 12, 54, 603, 1, 54, 1, 54, 1, 55, 1, 55, 1,
3505
+ 55, 1, 55, 1, 55, 1, 55, 4, 55, 614, 8, 55, 11, 55, 12, 55, 615, 1, 55, 1, 55, 1, 55, 0,
3506
+ 1, 56, 56, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
3507
+ 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
3508
+ 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 0, 12, 2, 0, 9, 9, 18, 20,
3509
+ 1, 0, 44, 45, 2, 0, 45, 45, 48, 48, 2, 0, 42, 42, 45, 45, 1, 0, 38, 39, 1, 0, 36, 37, 1,
3510
+ 0, 34, 35, 1, 0, 28, 33, 2, 0, 26, 26, 37, 37, 2, 0, 43, 43, 45, 49, 2, 0, 14, 14, 44, 44,
3511
+ 2, 0, 44, 45, 48, 48, 661, 0, 114, 1, 0, 0, 0, 2, 138, 1, 0, 0, 0, 4, 141, 1, 0, 0, 0, 6,
3512
+ 145, 1, 0, 0, 0, 8, 157, 1, 0, 0, 0, 10, 169, 1, 0, 0, 0, 12, 173, 1, 0, 0, 0, 14, 176, 1,
3513
+ 0, 0, 0, 16, 184, 1, 0, 0, 0, 18, 195, 1, 0, 0, 0, 20, 200, 1, 0, 0, 0, 22, 202, 1, 0, 0,
3514
+ 0, 24, 204, 1, 0, 0, 0, 26, 209, 1, 0, 0, 0, 28, 221, 1, 0, 0, 0, 30, 243, 1, 0, 0, 0, 32,
3515
+ 253, 1, 0, 0, 0, 34, 255, 1, 0, 0, 0, 36, 269, 1, 0, 0, 0, 38, 271, 1, 0, 0, 0, 40, 279,
3516
+ 1, 0, 0, 0, 42, 281, 1, 0, 0, 0, 44, 291, 1, 0, 0, 0, 46, 293, 1, 0, 0, 0, 48, 297, 1, 0,
3517
+ 0, 0, 50, 324, 1, 0, 0, 0, 52, 326, 1, 0, 0, 0, 54, 330, 1, 0, 0, 0, 56, 350, 1, 0, 0, 0,
3518
+ 58, 370, 1, 0, 0, 0, 60, 372, 1, 0, 0, 0, 62, 379, 1, 0, 0, 0, 64, 381, 1, 0, 0, 0, 66, 401,
3519
+ 1, 0, 0, 0, 68, 432, 1, 0, 0, 0, 70, 434, 1, 0, 0, 0, 72, 449, 1, 0, 0, 0, 74, 452, 1, 0,
3520
+ 0, 0, 76, 461, 1, 0, 0, 0, 78, 467, 1, 0, 0, 0, 80, 470, 1, 0, 0, 0, 82, 483, 1, 0, 0, 0,
3521
+ 84, 496, 1, 0, 0, 0, 86, 506, 1, 0, 0, 0, 88, 518, 1, 0, 0, 0, 90, 522, 1, 0, 0, 0, 92, 533,
3522
+ 1, 0, 0, 0, 94, 535, 1, 0, 0, 0, 96, 545, 1, 0, 0, 0, 98, 547, 1, 0, 0, 0, 100, 554, 1, 0,
3523
+ 0, 0, 102, 557, 1, 0, 0, 0, 104, 560, 1, 0, 0, 0, 106, 572, 1, 0, 0, 0, 108, 593, 1, 0,
3524
+ 0, 0, 110, 607, 1, 0, 0, 0, 112, 115, 3, 2, 1, 0, 113, 115, 5, 52, 0, 0, 114, 112, 1, 0,
3525
+ 0, 0, 114, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0,
3526
+ 0, 0, 117, 118, 1, 0, 0, 0, 118, 119, 5, 0, 0, 1, 119, 1, 1, 0, 0, 0, 120, 139, 3, 18, 9,
3527
+ 0, 121, 139, 3, 26, 13, 0, 122, 139, 3, 24, 12, 0, 123, 139, 3, 46, 23, 0, 124, 139,
3528
+ 3, 52, 26, 0, 125, 139, 3, 8, 4, 0, 126, 139, 3, 54, 27, 0, 127, 139, 3, 44, 22, 0, 128,
3529
+ 139, 3, 64, 32, 0, 129, 139, 3, 74, 37, 0, 130, 139, 3, 98, 49, 0, 131, 139, 3, 102,
3530
+ 51, 0, 132, 139, 3, 104, 52, 0, 133, 139, 3, 70, 35, 0, 134, 139, 3, 34, 17, 0, 135,
3531
+ 139, 3, 4, 2, 0, 136, 139, 3, 100, 50, 0, 137, 139, 3, 106, 53, 0, 138, 120, 1, 0, 0,
3532
+ 0, 138, 121, 1, 0, 0, 0, 138, 122, 1, 0, 0, 0, 138, 123, 1, 0, 0, 0, 138, 124, 1, 0, 0,
3533
+ 0, 138, 125, 1, 0, 0, 0, 138, 126, 1, 0, 0, 0, 138, 127, 1, 0, 0, 0, 138, 128, 1, 0, 0,
3534
+ 0, 138, 129, 1, 0, 0, 0, 138, 130, 1, 0, 0, 0, 138, 131, 1, 0, 0, 0, 138, 132, 1, 0, 0,
3535
+ 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, 135, 1, 0, 0, 0, 138, 136, 1, 0, 0,
3536
+ 0, 138, 137, 1, 0, 0, 0, 139, 3, 1, 0, 0, 0, 140, 142, 3, 6, 3, 0, 141, 140, 1, 0, 0, 0,
3537
+ 142, 143, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 5, 1, 0, 0, 0, 145,
3538
+ 146, 7, 0, 0, 0, 146, 147, 5, 1, 0, 0, 147, 148, 5, 52, 0, 0, 148, 151, 5, 54, 0, 0, 149,
3539
+ 152, 5, 52, 0, 0, 150, 152, 3, 2, 1, 0, 151, 149, 1, 0, 0, 0, 151, 150, 1, 0, 0, 0, 152,
3540
+ 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155,
3541
+ 156, 5, 55, 0, 0, 156, 7, 1, 0, 0, 0, 157, 158, 3, 70, 35, 0, 158, 159, 5, 1, 0, 0, 159,
3542
+ 160, 5, 52, 0, 0, 160, 163, 5, 54, 0, 0, 161, 164, 5, 52, 0, 0, 162, 164, 3, 10, 5, 0,
3543
+ 163, 161, 1, 0, 0, 0, 163, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0,
3544
+ 165, 166, 1, 0, 0, 0, 166, 167, 1, 0, 0, 0, 167, 168, 5, 55, 0, 0, 168, 9, 1, 0, 0, 0, 169,
3545
+ 170, 7, 1, 0, 0, 170, 171, 5, 1, 0, 0, 171, 172, 3, 62, 31, 0, 172, 11, 1, 0, 0, 0, 173,
3546
+ 174, 5, 14, 0, 0, 174, 175, 7, 2, 0, 0, 175, 13, 1, 0, 0, 0, 176, 177, 5, 44, 0, 0, 177,
3547
+ 180, 5, 1, 0, 0, 178, 181, 3, 62, 31, 0, 179, 181, 5, 44, 0, 0, 180, 178, 1, 0, 0, 0, 180,
3548
+ 179, 1, 0, 0, 0, 181, 15, 1, 0, 0, 0, 182, 185, 3, 56, 28, 0, 183, 185, 3, 46, 23, 0, 184,
3549
+ 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 3, 14, 7, 0, 187,
3550
+ 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190,
3551
+ 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 194, 3, 12, 6, 0, 193, 192, 1, 0, 0, 0, 193,
3552
+ 194, 1, 0, 0, 0, 194, 17, 1, 0, 0, 0, 195, 196, 5, 15, 0, 0, 196, 197, 3, 16, 8, 0, 197,
3553
+ 19, 1, 0, 0, 0, 198, 201, 3, 16, 8, 0, 199, 201, 3, 12, 6, 0, 200, 198, 1, 0, 0, 0, 200,
3554
+ 199, 1, 0, 0, 0, 201, 21, 1, 0, 0, 0, 202, 203, 7, 2, 0, 0, 203, 23, 1, 0, 0, 0, 204, 207,
3555
+ 5, 16, 0, 0, 205, 208, 3, 20, 10, 0, 206, 208, 5, 18, 0, 0, 207, 205, 1, 0, 0, 0, 207,
3556
+ 206, 1, 0, 0, 0, 208, 25, 1, 0, 0, 0, 209, 219, 5, 17, 0, 0, 210, 215, 3, 20, 10, 0, 211,
3557
+ 212, 5, 2, 0, 0, 212, 214, 3, 20, 10, 0, 213, 211, 1, 0, 0, 0, 214, 217, 1, 0, 0, 0, 215,
3558
+ 213, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 220, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 218,
3559
+ 220, 5, 18, 0, 0, 219, 210, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220, 27, 1, 0, 0, 0, 221,
3560
+ 222, 5, 16, 0, 0, 222, 223, 3, 20, 10, 0, 223, 224, 5, 17, 0, 0, 224, 229, 3, 20, 10,
3561
+ 0, 225, 226, 5, 2, 0, 0, 226, 228, 3, 20, 10, 0, 227, 225, 1, 0, 0, 0, 228, 231, 1, 0,
3562
+ 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 229, 1, 0,
3563
+ 0, 0, 232, 233, 5, 1, 0, 0, 233, 234, 5, 52, 0, 0, 234, 237, 5, 54, 0, 0, 235, 238, 5,
3564
+ 52, 0, 0, 236, 238, 3, 30, 15, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239,
3565
+ 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242,
3566
+ 5, 55, 0, 0, 242, 29, 1, 0, 0, 0, 243, 244, 3, 22, 11, 0, 244, 245, 5, 1, 0, 0, 245, 250,
3567
+ 3, 32, 16, 0, 246, 247, 5, 2, 0, 0, 247, 249, 3, 32, 16, 0, 248, 246, 1, 0, 0, 0, 249,
3568
+ 252, 1, 0, 0, 0, 250, 248, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 31, 1, 0, 0, 0, 252, 250,
3569
+ 1, 0, 0, 0, 253, 254, 7, 3, 0, 0, 254, 33, 1, 0, 0, 0, 255, 256, 3, 24, 12, 0, 256, 257,
3570
+ 5, 1, 0, 0, 257, 258, 5, 52, 0, 0, 258, 261, 5, 54, 0, 0, 259, 262, 5, 52, 0, 0, 260, 262,
3571
+ 3, 36, 18, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261,
3572
+ 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 266, 5, 55, 0, 0, 266, 35,
3573
+ 1, 0, 0, 0, 267, 270, 3, 2, 1, 0, 268, 270, 3, 38, 19, 0, 269, 267, 1, 0, 0, 0, 269, 268,
3574
+ 1, 0, 0, 0, 270, 37, 1, 0, 0, 0, 271, 272, 3, 22, 11, 0, 272, 275, 5, 1, 0, 0, 273, 276,
3575
+ 3, 40, 20, 0, 274, 276, 3, 42, 21, 0, 275, 273, 1, 0, 0, 0, 275, 274, 1, 0, 0, 0, 276,
3576
+ 39, 1, 0, 0, 0, 277, 280, 3, 2, 1, 0, 278, 280, 5, 42, 0, 0, 279, 277, 1, 0, 0, 0, 279,
3577
+ 278, 1, 0, 0, 0, 280, 41, 1, 0, 0, 0, 281, 282, 5, 52, 0, 0, 282, 285, 5, 54, 0, 0, 283,
3578
+ 286, 5, 52, 0, 0, 284, 286, 3, 2, 1, 0, 285, 283, 1, 0, 0, 0, 285, 284, 1, 0, 0, 0, 286,
3579
+ 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3580
+ 290, 5, 55, 0, 0, 290, 43, 1, 0, 0, 0, 291, 292, 5, 8, 0, 0, 292, 45, 1, 0, 0, 0, 293, 294,
3581
+ 3, 70, 35, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 56, 28, 0, 296, 47, 1, 0, 0, 0, 297, 298,
3582
+ 5, 44, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 56, 28, 0, 300, 49, 1, 0, 0, 0, 301, 306,
3583
+ 3, 56, 28, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 56, 28, 0, 304, 302, 1, 0, 0, 0, 305,
3584
+ 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 313, 1, 0, 0, 0, 308,
3585
+ 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 48, 24, 0, 311, 309, 1, 0, 0, 0, 312,
3586
+ 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 325, 1, 0, 0, 0, 315,
3587
+ 313, 1, 0, 0, 0, 316, 321, 3, 48, 24, 0, 317, 318, 5, 2, 0, 0, 318, 320, 3, 48, 24, 0,
3588
+ 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0,
3589
+ 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324, 316, 1, 0, 0, 0,
3590
+ 325, 51, 1, 0, 0, 0, 326, 327, 3, 70, 35, 0, 327, 328, 5, 3, 0, 0, 328, 329, 3, 56, 28,
3591
+ 0, 329, 53, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 44, 0, 0, 332, 333, 5, 3, 0,
3592
+ 0, 333, 334, 3, 56, 28, 0, 334, 55, 1, 0, 0, 0, 335, 336, 6, 28, -1, 0, 336, 337, 5, 40,
3593
+ 0, 0, 337, 338, 3, 56, 28, 0, 338, 339, 5, 41, 0, 0, 339, 351, 1, 0, 0, 0, 340, 343, 3,
3594
+ 62, 31, 0, 341, 343, 3, 70, 35, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0, 0, 0, 343, 351,
3595
+ 1, 0, 0, 0, 344, 345, 3, 60, 30, 0, 345, 346, 3, 56, 28, 8, 346, 351, 1, 0, 0, 0, 347,
3596
+ 351, 3, 80, 40, 0, 348, 351, 3, 82, 41, 0, 349, 351, 3, 74, 37, 0, 350, 335, 1, 0, 0,
3597
+ 0, 350, 342, 1, 0, 0, 0, 350, 344, 1, 0, 0, 0, 350, 347, 1, 0, 0, 0, 350, 348, 1, 0, 0,
3598
+ 0, 350, 349, 1, 0, 0, 0, 351, 367, 1, 0, 0, 0, 352, 353, 10, 7, 0, 0, 353, 354, 7, 4, 0,
3599
+ 0, 354, 366, 3, 56, 28, 8, 355, 356, 10, 6, 0, 0, 356, 357, 7, 5, 0, 0, 357, 366, 3, 56,
3600
+ 28, 7, 358, 359, 10, 5, 0, 0, 359, 360, 3, 58, 29, 0, 360, 361, 3, 56, 28, 6, 361, 366,
3601
+ 1, 0, 0, 0, 362, 363, 10, 4, 0, 0, 363, 364, 7, 6, 0, 0, 364, 366, 3, 56, 28, 5, 365, 352,
3602
+ 1, 0, 0, 0, 365, 355, 1, 0, 0, 0, 365, 358, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 366, 369,
3603
+ 1, 0, 0, 0, 367, 365, 1, 0, 0, 0, 367, 368, 1, 0, 0, 0, 368, 57, 1, 0, 0, 0, 369, 367, 1,
3604
+ 0, 0, 0, 370, 371, 7, 7, 0, 0, 371, 59, 1, 0, 0, 0, 372, 373, 7, 8, 0, 0, 373, 61, 1, 0,
3605
+ 0, 0, 374, 376, 5, 37, 0, 0, 375, 374, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 377, 1, 0,
3606
+ 0, 0, 377, 380, 7, 9, 0, 0, 378, 380, 3, 94, 47, 0, 379, 375, 1, 0, 0, 0, 379, 378, 1,
3607
+ 0, 0, 0, 380, 63, 1, 0, 0, 0, 381, 382, 5, 22, 0, 0, 382, 383, 5, 44, 0, 0, 383, 385, 5,
3608
+ 40, 0, 0, 384, 386, 3, 68, 34, 0, 385, 384, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 387,
3609
+ 1, 0, 0, 0, 387, 388, 5, 41, 0, 0, 388, 389, 5, 1, 0, 0, 389, 390, 5, 52, 0, 0, 390, 393,
3610
+ 5, 54, 0, 0, 391, 394, 5, 52, 0, 0, 392, 394, 3, 66, 33, 0, 393, 391, 1, 0, 0, 0, 393,
3611
+ 392, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396,
3612
+ 397, 1, 0, 0, 0, 397, 398, 5, 55, 0, 0, 398, 65, 1, 0, 0, 0, 399, 402, 3, 2, 1, 0, 400,
3613
+ 402, 3, 78, 39, 0, 401, 399, 1, 0, 0, 0, 401, 400, 1, 0, 0, 0, 402, 67, 1, 0, 0, 0, 403,
3614
+ 408, 5, 44, 0, 0, 404, 405, 5, 2, 0, 0, 405, 407, 5, 44, 0, 0, 406, 404, 1, 0, 0, 0, 407,
3615
+ 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 417, 1, 0, 0, 0, 410,
3616
+ 408, 1, 0, 0, 0, 411, 412, 5, 2, 0, 0, 412, 413, 5, 44, 0, 0, 413, 414, 5, 3, 0, 0, 414,
3617
+ 416, 3, 62, 31, 0, 415, 411, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417,
3618
+ 418, 1, 0, 0, 0, 418, 433, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 421, 5, 44, 0, 0, 421,
3619
+ 422, 5, 3, 0, 0, 422, 429, 3, 62, 31, 0, 423, 424, 5, 2, 0, 0, 424, 425, 5, 44, 0, 0, 425,
3620
+ 426, 5, 3, 0, 0, 426, 428, 3, 62, 31, 0, 427, 423, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429,
3621
+ 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432,
3622
+ 403, 1, 0, 0, 0, 432, 420, 1, 0, 0, 0, 433, 69, 1, 0, 0, 0, 434, 439, 5, 44, 0, 0, 435,
3623
+ 436, 5, 5, 0, 0, 436, 438, 5, 44, 0, 0, 437, 435, 1, 0, 0, 0, 438, 441, 1, 0, 0, 0, 439,
3624
+ 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 71, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 442, 444,
3625
+ 5, 40, 0, 0, 443, 445, 3, 50, 25, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 446,
3626
+ 1, 0, 0, 0, 446, 450, 5, 41, 0, 0, 447, 448, 5, 5, 0, 0, 448, 450, 5, 44, 0, 0, 449, 442,
3627
+ 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 73, 1, 0, 0, 0, 451, 453, 3, 76, 38, 0, 452, 451,
3628
+ 1, 0, 0, 0, 452, 453, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 5, 44, 0, 0, 455, 457,
3629
+ 3, 72, 36, 0, 456, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 458, 459,
3630
+ 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 462, 5, 36, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462,
3631
+ 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 5, 38, 0, 0, 464, 466, 3, 56, 28, 0, 465, 464,
3632
+ 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 468, 5, 21, 0, 0, 468, 469,
3633
+ 3, 56, 28, 0, 469, 79, 1, 0, 0, 0, 470, 471, 5, 10, 0, 0, 471, 472, 5, 11, 0, 0, 472, 473,
3634
+ 5, 1, 0, 0, 473, 474, 5, 52, 0, 0, 474, 477, 5, 54, 0, 0, 475, 478, 5, 52, 0, 0, 476, 478,
3635
+ 3, 88, 44, 0, 477, 475, 1, 0, 0, 0, 477, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 477,
3636
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 482, 5, 55, 0, 0, 482, 81,
3637
+ 1, 0, 0, 0, 483, 484, 5, 10, 0, 0, 484, 485, 5, 12, 0, 0, 485, 486, 5, 1, 0, 0, 486, 487,
3638
+ 5, 52, 0, 0, 487, 490, 5, 54, 0, 0, 488, 491, 5, 52, 0, 0, 489, 491, 3, 86, 43, 0, 490,
3639
+ 488, 1, 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 492,
3640
+ 493, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 495, 5, 55, 0, 0, 495, 83, 1, 0, 0, 0, 496,
3641
+ 497, 5, 52, 0, 0, 497, 500, 5, 54, 0, 0, 498, 501, 5, 52, 0, 0, 499, 501, 3, 88, 44, 0,
3642
+ 500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0,
3643
+ 502, 503, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 85, 1, 0, 0, 0,
3644
+ 506, 508, 7, 10, 0, 0, 507, 509, 5, 1, 0, 0, 508, 507, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0,
3645
+ 509, 516, 1, 0, 0, 0, 510, 517, 3, 50, 25, 0, 511, 512, 5, 40, 0, 0, 512, 513, 3, 50,
3646
+ 25, 0, 513, 514, 5, 41, 0, 0, 514, 517, 1, 0, 0, 0, 515, 517, 3, 84, 42, 0, 516, 510,
3647
+ 1, 0, 0, 0, 516, 511, 1, 0, 0, 0, 516, 515, 1, 0, 0, 0, 517, 87, 1, 0, 0, 0, 518, 519, 3,
3648
+ 90, 45, 0, 519, 520, 5, 1, 0, 0, 520, 521, 3, 92, 46, 0, 521, 89, 1, 0, 0, 0, 522, 523,
3649
+ 7, 11, 0, 0, 523, 91, 1, 0, 0, 0, 524, 534, 3, 84, 42, 0, 525, 530, 3, 56, 28, 0, 526,
3650
+ 527, 5, 2, 0, 0, 527, 529, 3, 56, 28, 0, 528, 526, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530,
3651
+ 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 533,
3652
+ 524, 1, 0, 0, 0, 533, 525, 1, 0, 0, 0, 534, 93, 1, 0, 0, 0, 535, 536, 5, 6, 0, 0, 536, 537,
3653
+ 5, 45, 0, 0, 537, 538, 5, 7, 0, 0, 538, 95, 1, 0, 0, 0, 539, 542, 5, 44, 0, 0, 540, 543,
3654
+ 5, 45, 0, 0, 541, 543, 3, 56, 28, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 546,
3655
+ 1, 0, 0, 0, 544, 546, 5, 44, 0, 0, 545, 539, 1, 0, 0, 0, 545, 544, 1, 0, 0, 0, 546, 97,
3656
+ 1, 0, 0, 0, 547, 551, 5, 13, 0, 0, 548, 550, 3, 96, 48, 0, 549, 548, 1, 0, 0, 0, 550, 553,
3657
+ 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 99, 1, 0, 0, 0, 553, 551, 1,
3658
+ 0, 0, 0, 554, 555, 5, 18, 0, 0, 555, 556, 5, 44, 0, 0, 556, 101, 1, 0, 0, 0, 557, 558,
3659
+ 5, 23, 0, 0, 558, 559, 5, 44, 0, 0, 559, 103, 1, 0, 0, 0, 560, 561, 5, 27, 0, 0, 561, 562,
3660
+ 5, 1, 0, 0, 562, 563, 5, 52, 0, 0, 563, 566, 5, 54, 0, 0, 564, 567, 5, 52, 0, 0, 565, 567,
3661
+ 3, 2, 1, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 566,
3662
+ 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 55, 0, 0, 571, 105,
3663
+ 1, 0, 0, 0, 572, 573, 5, 24, 0, 0, 573, 574, 3, 56, 28, 0, 574, 575, 5, 1, 0, 0, 575, 576,
3664
+ 5, 52, 0, 0, 576, 579, 5, 54, 0, 0, 577, 580, 5, 52, 0, 0, 578, 580, 3, 2, 1, 0, 579, 577,
3665
+ 1, 0, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582,
3666
+ 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 587, 5, 55, 0, 0, 584, 586, 3, 108, 54, 0, 585,
3667
+ 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588,
3668
+ 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 592, 3, 110, 55, 0, 591, 590, 1, 0, 0, 0, 591,
3669
+ 592, 1, 0, 0, 0, 592, 107, 1, 0, 0, 0, 593, 594, 5, 25, 0, 0, 594, 595, 5, 24, 0, 0, 595,
3670
+ 596, 3, 56, 28, 0, 596, 597, 5, 1, 0, 0, 597, 598, 5, 52, 0, 0, 598, 601, 5, 54, 0, 0,
3671
+ 599, 602, 5, 52, 0, 0, 600, 602, 3, 2, 1, 0, 601, 599, 1, 0, 0, 0, 601, 600, 1, 0, 0, 0,
3672
+ 602, 603, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0,
3673
+ 605, 606, 5, 55, 0, 0, 606, 109, 1, 0, 0, 0, 607, 608, 5, 25, 0, 0, 608, 609, 5, 1, 0,
3674
+ 0, 609, 610, 5, 52, 0, 0, 610, 613, 5, 54, 0, 0, 611, 614, 5, 52, 0, 0, 612, 614, 3, 2,
3675
+ 1, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0,
3676
+ 0, 0, 615, 616, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 5, 55, 0, 0, 618, 111, 1, 0,
3677
+ 0, 0, 75, 114, 116, 138, 143, 151, 153, 163, 165, 180, 184, 189, 193, 200, 207, 215,
3678
+ 219, 229, 237, 239, 250, 261, 263, 269, 275, 279, 285, 287, 306, 313, 321, 324,
3679
+ 342, 350, 365, 367, 375, 379, 385, 393, 395, 401, 408, 417, 429, 432, 439, 444,
3680
+ 449, 452, 458, 461, 465, 477, 479, 490, 492, 500, 502, 508, 516, 530, 533, 542,
3681
+ 545, 551, 566, 568, 579, 581, 587, 591, 601, 603, 613, 615
3646
3682
  ];
3647
3683
  static __ATN;
3648
3684
  static get _ATN() {
@@ -5092,6 +5128,42 @@ export class Create_graphic_exprContext extends antlr.ParserRuleContext {
5092
5128
  }
5093
5129
  }
5094
5130
  }
5131
+ export class Nested_properties_innerContext extends antlr.ParserRuleContext {
5132
+ constructor(parent, invokingState) {
5133
+ super(parent, invokingState);
5134
+ }
5135
+ NEWLINE(i) {
5136
+ if (i === undefined) {
5137
+ return this.getTokens(CircuitScriptParser.NEWLINE);
5138
+ }
5139
+ else {
5140
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
5141
+ }
5142
+ }
5143
+ INDENT() {
5144
+ return this.getToken(CircuitScriptParser.INDENT, 0);
5145
+ }
5146
+ DEDENT() {
5147
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
5148
+ }
5149
+ property_expr(i) {
5150
+ if (i === undefined) {
5151
+ return this.getRuleContexts(Property_exprContext);
5152
+ }
5153
+ return this.getRuleContext(i, Property_exprContext);
5154
+ }
5155
+ get ruleIndex() {
5156
+ return CircuitScriptParser.RULE_nested_properties_inner;
5157
+ }
5158
+ accept(visitor) {
5159
+ if (visitor.visitNested_properties_inner) {
5160
+ return visitor.visitNested_properties_inner(this);
5161
+ }
5162
+ else {
5163
+ return visitor.visitChildren(this);
5164
+ }
5165
+ }
5166
+ }
5095
5167
  export class Graphic_exprContext extends antlr.ParserRuleContext {
5096
5168
  _command;
5097
5169
  constructor(parent, invokingState) {
@@ -5112,6 +5184,9 @@ export class Graphic_exprContext extends antlr.ParserRuleContext {
5112
5184
  CLOSE_PAREN() {
5113
5185
  return this.getToken(CircuitScriptParser.CLOSE_PAREN, 0);
5114
5186
  }
5187
+ nested_properties_inner() {
5188
+ return this.getRuleContext(0, Nested_properties_innerContext);
5189
+ }
5115
5190
  get ruleIndex() {
5116
5191
  return CircuitScriptParser.RULE_graphic_expr;
5117
5192
  }
@@ -5207,25 +5282,8 @@ export class Nested_propertiesContext extends Property_value_exprContext {
5207
5282
  super(ctx.parent, ctx.invokingState);
5208
5283
  super.copyFrom(ctx);
5209
5284
  }
5210
- NEWLINE(i) {
5211
- if (i === undefined) {
5212
- return this.getTokens(CircuitScriptParser.NEWLINE);
5213
- }
5214
- else {
5215
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5216
- }
5217
- }
5218
- INDENT() {
5219
- return this.getToken(CircuitScriptParser.INDENT, 0);
5220
- }
5221
- DEDENT() {
5222
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5223
- }
5224
- property_expr(i) {
5225
- if (i === undefined) {
5226
- return this.getRuleContexts(Property_exprContext);
5227
- }
5228
- return this.getRuleContext(i, Property_exprContext);
5285
+ nested_properties_inner() {
5286
+ return this.getRuleContext(0, Nested_properties_innerContext);
5229
5287
  }
5230
5288
  accept(visitor) {
5231
5289
  if (visitor.visitNested_properties) {