circuitscript 0.0.26 → 0.0.28

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.
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.Unary_operatorContext = exports.Binary_operatorContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.ValueAtomExprContext = exports.UnaryOperatorExprContext = exports.DataExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.FunctionCallExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Assignment_exprContext = exports.Break_keywordContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_block_innerContext = exports.Path_blocksContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Blank_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.Graphic_exprContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = void 0;
27
+ exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Blank_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -46,12 +46,12 @@ class CircuitScriptParser extends antlr.Parser {
46
46
  try {
47
47
  this.enterOuterAlt(localContext, 1);
48
48
  {
49
- this.state = 112;
49
+ this.state = 114;
50
50
  this.errorHandler.sync(this);
51
51
  _la = this.tokenStream.LA(1);
52
52
  do {
53
53
  {
54
- this.state = 112;
54
+ this.state = 114;
55
55
  this.errorHandler.sync(this);
56
56
  switch (this.tokenStream.LA(1)) {
57
57
  case CircuitScriptParser.T__3:
@@ -72,13 +72,13 @@ class CircuitScriptParser extends antlr.Parser {
72
72
  case CircuitScriptParser.Divide:
73
73
  case CircuitScriptParser.ID:
74
74
  {
75
- this.state = 110;
75
+ this.state = 112;
76
76
  this.expression();
77
77
  }
78
78
  break;
79
79
  case CircuitScriptParser.NEWLINE:
80
80
  {
81
- this.state = 111;
81
+ this.state = 113;
82
82
  this.match(CircuitScriptParser.NEWLINE);
83
83
  }
84
84
  break;
@@ -86,11 +86,11 @@ class CircuitScriptParser extends antlr.Parser {
86
86
  throw new antlr.NoViableAltException(this);
87
87
  }
88
88
  }
89
- this.state = 114;
89
+ this.state = 116;
90
90
  this.errorHandler.sync(this);
91
91
  _la = this.tokenStream.LA(1);
92
92
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
93
- this.state = 116;
93
+ this.state = 118;
94
94
  this.match(CircuitScriptParser.EOF);
95
95
  }
96
96
  }
@@ -112,132 +112,132 @@ class CircuitScriptParser extends antlr.Parser {
112
112
  let localContext = new ExpressionContext(this.context, this.state);
113
113
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
114
114
  try {
115
- this.state = 136;
115
+ this.state = 138;
116
116
  this.errorHandler.sync(this);
117
117
  switch (this.interpreter.adaptivePredict(this.tokenStream, 2, this.context)) {
118
118
  case 1:
119
119
  this.enterOuterAlt(localContext, 1);
120
120
  {
121
- this.state = 118;
121
+ this.state = 120;
122
122
  this.add_component_expr();
123
123
  }
124
124
  break;
125
125
  case 2:
126
126
  this.enterOuterAlt(localContext, 2);
127
127
  {
128
- this.state = 119;
128
+ this.state = 121;
129
129
  this.to_component_expr();
130
130
  }
131
131
  break;
132
132
  case 3:
133
133
  this.enterOuterAlt(localContext, 3);
134
134
  {
135
- this.state = 120;
135
+ this.state = 122;
136
136
  this.at_component_expr();
137
137
  }
138
138
  break;
139
139
  case 4:
140
140
  this.enterOuterAlt(localContext, 4);
141
141
  {
142
- this.state = 121;
142
+ this.state = 123;
143
143
  this.assignment_expr();
144
144
  }
145
145
  break;
146
146
  case 5:
147
147
  this.enterOuterAlt(localContext, 5);
148
148
  {
149
- this.state = 122;
149
+ this.state = 124;
150
150
  this.property_set_expr();
151
151
  }
152
152
  break;
153
153
  case 6:
154
154
  this.enterOuterAlt(localContext, 6);
155
155
  {
156
- this.state = 123;
156
+ this.state = 125;
157
157
  this.property_set_expr2();
158
158
  }
159
159
  break;
160
160
  case 7:
161
161
  this.enterOuterAlt(localContext, 7);
162
162
  {
163
- this.state = 124;
163
+ this.state = 126;
164
164
  this.double_dot_property_set_expr();
165
165
  }
166
166
  break;
167
167
  case 8:
168
168
  this.enterOuterAlt(localContext, 8);
169
169
  {
170
- this.state = 125;
170
+ this.state = 127;
171
171
  this.break_keyword();
172
172
  }
173
173
  break;
174
174
  case 9:
175
175
  this.enterOuterAlt(localContext, 9);
176
176
  {
177
- this.state = 126;
177
+ this.state = 128;
178
178
  this.function_def_expr();
179
179
  }
180
180
  break;
181
181
  case 10:
182
182
  this.enterOuterAlt(localContext, 10);
183
183
  {
184
- this.state = 127;
184
+ this.state = 129;
185
185
  this.function_call_expr();
186
186
  }
187
187
  break;
188
188
  case 11:
189
189
  this.enterOuterAlt(localContext, 11);
190
190
  {
191
- this.state = 128;
191
+ this.state = 130;
192
192
  this.wire_expr();
193
193
  }
194
194
  break;
195
195
  case 12:
196
196
  this.enterOuterAlt(localContext, 12);
197
197
  {
198
- this.state = 129;
198
+ this.state = 131;
199
199
  this.import_expr();
200
200
  }
201
201
  break;
202
202
  case 13:
203
203
  this.enterOuterAlt(localContext, 13);
204
204
  {
205
- this.state = 130;
205
+ this.state = 132;
206
206
  this.frame_expr();
207
207
  }
208
208
  break;
209
209
  case 14:
210
210
  this.enterOuterAlt(localContext, 14);
211
211
  {
212
- this.state = 131;
212
+ this.state = 133;
213
213
  this.atom_expr();
214
214
  }
215
215
  break;
216
216
  case 15:
217
217
  this.enterOuterAlt(localContext, 15);
218
218
  {
219
- this.state = 132;
219
+ this.state = 134;
220
220
  this.at_block();
221
221
  }
222
222
  break;
223
223
  case 16:
224
224
  this.enterOuterAlt(localContext, 16);
225
225
  {
226
- this.state = 133;
226
+ this.state = 135;
227
227
  this.path_blocks();
228
228
  }
229
229
  break;
230
230
  case 17:
231
231
  this.enterOuterAlt(localContext, 17);
232
232
  {
233
- this.state = 134;
233
+ this.state = 136;
234
234
  this.point_expr();
235
235
  }
236
236
  break;
237
237
  case 18:
238
238
  this.enterOuterAlt(localContext, 18);
239
239
  {
240
- this.state = 135;
240
+ this.state = 137;
241
241
  this.if_expr();
242
242
  }
243
243
  break;
@@ -264,7 +264,7 @@ class CircuitScriptParser extends antlr.Parser {
264
264
  let alternative;
265
265
  this.enterOuterAlt(localContext, 1);
266
266
  {
267
- this.state = 139;
267
+ this.state = 141;
268
268
  this.errorHandler.sync(this);
269
269
  alternative = 1;
270
270
  do {
@@ -272,7 +272,7 @@ class CircuitScriptParser extends antlr.Parser {
272
272
  case 1:
273
273
  {
274
274
  {
275
- this.state = 138;
275
+ this.state = 140;
276
276
  this.path_block_inner();
277
277
  }
278
278
  }
@@ -280,7 +280,7 @@ class CircuitScriptParser extends antlr.Parser {
280
280
  default:
281
281
  throw new antlr.NoViableAltException(this);
282
282
  }
283
- this.state = 141;
283
+ this.state = 143;
284
284
  this.errorHandler.sync(this);
285
285
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 3, this.context);
286
286
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -307,7 +307,7 @@ class CircuitScriptParser extends antlr.Parser {
307
307
  try {
308
308
  this.enterOuterAlt(localContext, 1);
309
309
  {
310
- this.state = 143;
310
+ this.state = 145;
311
311
  _la = this.tokenStream.LA(1);
312
312
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1835520) !== 0))) {
313
313
  this.errorHandler.recoverInline(this);
@@ -316,23 +316,23 @@ class CircuitScriptParser extends antlr.Parser {
316
316
  this.errorHandler.reportMatch(this);
317
317
  this.consume();
318
318
  }
319
- this.state = 144;
319
+ this.state = 146;
320
320
  this.match(CircuitScriptParser.T__0);
321
- this.state = 145;
321
+ this.state = 147;
322
322
  this.match(CircuitScriptParser.NEWLINE);
323
- this.state = 146;
323
+ this.state = 148;
324
324
  this.match(CircuitScriptParser.INDENT);
325
- this.state = 149;
325
+ this.state = 151;
326
326
  this.errorHandler.sync(this);
327
327
  _la = this.tokenStream.LA(1);
328
328
  do {
329
329
  {
330
- this.state = 149;
330
+ this.state = 151;
331
331
  this.errorHandler.sync(this);
332
332
  switch (this.tokenStream.LA(1)) {
333
333
  case CircuitScriptParser.NEWLINE:
334
334
  {
335
- this.state = 147;
335
+ this.state = 149;
336
336
  this.match(CircuitScriptParser.NEWLINE);
337
337
  }
338
338
  break;
@@ -354,7 +354,7 @@ class CircuitScriptParser extends antlr.Parser {
354
354
  case CircuitScriptParser.Divide:
355
355
  case CircuitScriptParser.ID:
356
356
  {
357
- this.state = 148;
357
+ this.state = 150;
358
358
  this.expression();
359
359
  }
360
360
  break;
@@ -362,11 +362,11 @@ class CircuitScriptParser extends antlr.Parser {
362
362
  throw new antlr.NoViableAltException(this);
363
363
  }
364
364
  }
365
- this.state = 151;
365
+ this.state = 153;
366
366
  this.errorHandler.sync(this);
367
367
  _la = this.tokenStream.LA(1);
368
368
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
369
- this.state = 153;
369
+ this.state = 155;
370
370
  this.match(CircuitScriptParser.DEDENT);
371
371
  }
372
372
  }
@@ -391,32 +391,32 @@ class CircuitScriptParser extends antlr.Parser {
391
391
  try {
392
392
  this.enterOuterAlt(localContext, 1);
393
393
  {
394
- this.state = 155;
394
+ this.state = 157;
395
395
  this.atom_expr();
396
- this.state = 156;
396
+ this.state = 158;
397
397
  this.match(CircuitScriptParser.T__0);
398
- this.state = 157;
398
+ this.state = 159;
399
399
  this.match(CircuitScriptParser.NEWLINE);
400
- this.state = 158;
400
+ this.state = 160;
401
401
  this.match(CircuitScriptParser.INDENT);
402
- this.state = 161;
402
+ this.state = 163;
403
403
  this.errorHandler.sync(this);
404
404
  _la = this.tokenStream.LA(1);
405
405
  do {
406
406
  {
407
- this.state = 161;
407
+ this.state = 163;
408
408
  this.errorHandler.sync(this);
409
409
  switch (this.tokenStream.LA(1)) {
410
410
  case CircuitScriptParser.NEWLINE:
411
411
  {
412
- this.state = 159;
412
+ this.state = 161;
413
413
  this.match(CircuitScriptParser.NEWLINE);
414
414
  }
415
415
  break;
416
416
  case CircuitScriptParser.ID:
417
417
  case CircuitScriptParser.INTEGER_VALUE:
418
418
  {
419
- this.state = 160;
419
+ this.state = 162;
420
420
  this.assignment_expr2();
421
421
  }
422
422
  break;
@@ -424,11 +424,11 @@ class CircuitScriptParser extends antlr.Parser {
424
424
  throw new antlr.NoViableAltException(this);
425
425
  }
426
426
  }
427
- this.state = 163;
427
+ this.state = 165;
428
428
  this.errorHandler.sync(this);
429
429
  _la = this.tokenStream.LA(1);
430
430
  } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 259) !== 0));
431
- this.state = 165;
431
+ this.state = 167;
432
432
  this.match(CircuitScriptParser.DEDENT);
433
433
  }
434
434
  }
@@ -453,7 +453,7 @@ class CircuitScriptParser extends antlr.Parser {
453
453
  try {
454
454
  this.enterOuterAlt(localContext, 1);
455
455
  {
456
- this.state = 167;
456
+ this.state = 169;
457
457
  _la = this.tokenStream.LA(1);
458
458
  if (!(_la === 44 || _la === 45)) {
459
459
  this.errorHandler.recoverInline(this);
@@ -462,9 +462,9 @@ class CircuitScriptParser extends antlr.Parser {
462
462
  this.errorHandler.reportMatch(this);
463
463
  this.consume();
464
464
  }
465
- this.state = 168;
465
+ this.state = 170;
466
466
  this.match(CircuitScriptParser.T__0);
467
- this.state = 169;
467
+ this.state = 171;
468
468
  this.value_expr();
469
469
  }
470
470
  }
@@ -489,9 +489,9 @@ class CircuitScriptParser extends antlr.Parser {
489
489
  try {
490
490
  this.enterOuterAlt(localContext, 1);
491
491
  {
492
- this.state = 171;
492
+ this.state = 173;
493
493
  this.match(CircuitScriptParser.Pin);
494
- this.state = 172;
494
+ this.state = 174;
495
495
  _la = this.tokenStream.LA(1);
496
496
  if (!(_la === 45 || _la === 48)) {
497
497
  this.errorHandler.recoverInline(this);
@@ -522,11 +522,11 @@ class CircuitScriptParser extends antlr.Parser {
522
522
  try {
523
523
  this.enterOuterAlt(localContext, 1);
524
524
  {
525
- this.state = 174;
525
+ this.state = 176;
526
526
  this.match(CircuitScriptParser.ID);
527
- this.state = 175;
527
+ this.state = 177;
528
528
  this.match(CircuitScriptParser.T__0);
529
- this.state = 178;
529
+ this.state = 180;
530
530
  this.errorHandler.sync(this);
531
531
  switch (this.tokenStream.LA(1)) {
532
532
  case CircuitScriptParser.T__5:
@@ -538,13 +538,13 @@ class CircuitScriptParser extends antlr.Parser {
538
538
  case CircuitScriptParser.STRING_VALUE:
539
539
  case CircuitScriptParser.PERCENTAGE_VALUE:
540
540
  {
541
- this.state = 176;
541
+ this.state = 178;
542
542
  this.value_expr();
543
543
  }
544
544
  break;
545
545
  case CircuitScriptParser.ID:
546
546
  {
547
- this.state = 177;
547
+ this.state = 179;
548
548
  this.match(CircuitScriptParser.ID);
549
549
  }
550
550
  break;
@@ -575,44 +575,44 @@ class CircuitScriptParser extends antlr.Parser {
575
575
  let alternative;
576
576
  this.enterOuterAlt(localContext, 1);
577
577
  {
578
- this.state = 182;
578
+ this.state = 184;
579
579
  this.errorHandler.sync(this);
580
580
  switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
581
581
  case 1:
582
582
  {
583
- this.state = 180;
583
+ this.state = 182;
584
584
  this.data_expr(0);
585
585
  }
586
586
  break;
587
587
  case 2:
588
588
  {
589
- this.state = 181;
589
+ this.state = 183;
590
590
  this.assignment_expr();
591
591
  }
592
592
  break;
593
593
  }
594
- this.state = 187;
594
+ this.state = 189;
595
595
  this.errorHandler.sync(this);
596
596
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
597
597
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
598
598
  if (alternative === 1) {
599
599
  {
600
600
  {
601
- this.state = 184;
601
+ this.state = 186;
602
602
  this.component_modifier_expr();
603
603
  }
604
604
  }
605
605
  }
606
- this.state = 189;
606
+ this.state = 191;
607
607
  this.errorHandler.sync(this);
608
608
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 10, this.context);
609
609
  }
610
- this.state = 191;
610
+ this.state = 193;
611
611
  this.errorHandler.sync(this);
612
612
  _la = this.tokenStream.LA(1);
613
613
  if (_la === 14) {
614
614
  {
615
- this.state = 190;
615
+ this.state = 192;
616
616
  this.pin_select_expr();
617
617
  }
618
618
  }
@@ -638,9 +638,9 @@ class CircuitScriptParser extends antlr.Parser {
638
638
  try {
639
639
  this.enterOuterAlt(localContext, 1);
640
640
  {
641
- this.state = 193;
641
+ this.state = 195;
642
642
  this.match(CircuitScriptParser.Add);
643
- this.state = 194;
643
+ this.state = 196;
644
644
  this.data_expr_with_assignment();
645
645
  }
646
646
  }
@@ -662,7 +662,7 @@ class CircuitScriptParser extends antlr.Parser {
662
662
  let localContext = new Component_select_exprContext(this.context, this.state);
663
663
  this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_select_expr);
664
664
  try {
665
- this.state = 198;
665
+ this.state = 200;
666
666
  this.errorHandler.sync(this);
667
667
  switch (this.tokenStream.LA(1)) {
668
668
  case CircuitScriptParser.T__5:
@@ -681,14 +681,14 @@ class CircuitScriptParser extends antlr.Parser {
681
681
  case CircuitScriptParser.PERCENTAGE_VALUE:
682
682
  this.enterOuterAlt(localContext, 1);
683
683
  {
684
- this.state = 196;
684
+ this.state = 198;
685
685
  this.data_expr_with_assignment();
686
686
  }
687
687
  break;
688
688
  case CircuitScriptParser.Pin:
689
689
  this.enterOuterAlt(localContext, 2);
690
690
  {
691
- this.state = 197;
691
+ this.state = 199;
692
692
  this.pin_select_expr();
693
693
  }
694
694
  break;
@@ -717,7 +717,7 @@ class CircuitScriptParser extends antlr.Parser {
717
717
  try {
718
718
  this.enterOuterAlt(localContext, 1);
719
719
  {
720
- this.state = 200;
720
+ this.state = 202;
721
721
  _la = this.tokenStream.LA(1);
722
722
  if (!(_la === 45 || _la === 48)) {
723
723
  this.errorHandler.recoverInline(this);
@@ -748,9 +748,9 @@ class CircuitScriptParser extends antlr.Parser {
748
748
  try {
749
749
  this.enterOuterAlt(localContext, 1);
750
750
  {
751
- this.state = 202;
751
+ this.state = 204;
752
752
  this.match(CircuitScriptParser.At);
753
- this.state = 205;
753
+ this.state = 207;
754
754
  this.errorHandler.sync(this);
755
755
  switch (this.tokenStream.LA(1)) {
756
756
  case CircuitScriptParser.T__5:
@@ -769,13 +769,13 @@ class CircuitScriptParser extends antlr.Parser {
769
769
  case CircuitScriptParser.STRING_VALUE:
770
770
  case CircuitScriptParser.PERCENTAGE_VALUE:
771
771
  {
772
- this.state = 203;
772
+ this.state = 205;
773
773
  this.component_select_expr();
774
774
  }
775
775
  break;
776
776
  case CircuitScriptParser.Point:
777
777
  {
778
- this.state = 204;
778
+ this.state = 206;
779
779
  this.match(CircuitScriptParser.Point);
780
780
  }
781
781
  break;
@@ -805,9 +805,9 @@ class CircuitScriptParser extends antlr.Parser {
805
805
  try {
806
806
  this.enterOuterAlt(localContext, 1);
807
807
  {
808
- this.state = 207;
808
+ this.state = 209;
809
809
  this.match(CircuitScriptParser.To);
810
- this.state = 217;
810
+ this.state = 219;
811
811
  this.errorHandler.sync(this);
812
812
  switch (this.tokenStream.LA(1)) {
813
813
  case CircuitScriptParser.T__5:
@@ -827,21 +827,21 @@ class CircuitScriptParser extends antlr.Parser {
827
827
  case CircuitScriptParser.PERCENTAGE_VALUE:
828
828
  {
829
829
  {
830
- this.state = 208;
830
+ this.state = 210;
831
831
  this.component_select_expr();
832
- this.state = 213;
832
+ this.state = 215;
833
833
  this.errorHandler.sync(this);
834
834
  _la = this.tokenStream.LA(1);
835
835
  while (_la === 2) {
836
836
  {
837
837
  {
838
- this.state = 209;
838
+ this.state = 211;
839
839
  this.match(CircuitScriptParser.T__1);
840
- this.state = 210;
840
+ this.state = 212;
841
841
  this.component_select_expr();
842
842
  }
843
843
  }
844
- this.state = 215;
844
+ this.state = 217;
845
845
  this.errorHandler.sync(this);
846
846
  _la = this.tokenStream.LA(1);
847
847
  }
@@ -850,7 +850,7 @@ class CircuitScriptParser extends antlr.Parser {
850
850
  break;
851
851
  case CircuitScriptParser.Point:
852
852
  {
853
- this.state = 216;
853
+ this.state = 218;
854
854
  this.match(CircuitScriptParser.Point);
855
855
  }
856
856
  break;
@@ -880,54 +880,54 @@ class CircuitScriptParser extends antlr.Parser {
880
880
  try {
881
881
  this.enterOuterAlt(localContext, 1);
882
882
  {
883
- this.state = 219;
883
+ this.state = 221;
884
884
  this.match(CircuitScriptParser.At);
885
- this.state = 220;
885
+ this.state = 222;
886
886
  this.component_select_expr();
887
- this.state = 221;
887
+ this.state = 223;
888
888
  this.match(CircuitScriptParser.To);
889
- this.state = 222;
889
+ this.state = 224;
890
890
  this.component_select_expr();
891
- this.state = 227;
891
+ this.state = 229;
892
892
  this.errorHandler.sync(this);
893
893
  _la = this.tokenStream.LA(1);
894
894
  while (_la === 2) {
895
895
  {
896
896
  {
897
- this.state = 223;
897
+ this.state = 225;
898
898
  this.match(CircuitScriptParser.T__1);
899
- this.state = 224;
899
+ this.state = 226;
900
900
  this.component_select_expr();
901
901
  }
902
902
  }
903
- this.state = 229;
903
+ this.state = 231;
904
904
  this.errorHandler.sync(this);
905
905
  _la = this.tokenStream.LA(1);
906
906
  }
907
- this.state = 230;
907
+ this.state = 232;
908
908
  this.match(CircuitScriptParser.T__0);
909
- this.state = 231;
909
+ this.state = 233;
910
910
  this.match(CircuitScriptParser.NEWLINE);
911
- this.state = 232;
911
+ this.state = 234;
912
912
  this.match(CircuitScriptParser.INDENT);
913
- this.state = 235;
913
+ this.state = 237;
914
914
  this.errorHandler.sync(this);
915
915
  _la = this.tokenStream.LA(1);
916
916
  do {
917
917
  {
918
- this.state = 235;
918
+ this.state = 237;
919
919
  this.errorHandler.sync(this);
920
920
  switch (this.tokenStream.LA(1)) {
921
921
  case CircuitScriptParser.NEWLINE:
922
922
  {
923
- this.state = 233;
923
+ this.state = 235;
924
924
  this.match(CircuitScriptParser.NEWLINE);
925
925
  }
926
926
  break;
927
927
  case CircuitScriptParser.INTEGER_VALUE:
928
928
  case CircuitScriptParser.STRING_VALUE:
929
929
  {
930
- this.state = 234;
930
+ this.state = 236;
931
931
  this.at_to_multiple_line_expr();
932
932
  }
933
933
  break;
@@ -935,11 +935,11 @@ class CircuitScriptParser extends antlr.Parser {
935
935
  throw new antlr.NoViableAltException(this);
936
936
  }
937
937
  }
938
- this.state = 237;
938
+ this.state = 239;
939
939
  this.errorHandler.sync(this);
940
940
  _la = this.tokenStream.LA(1);
941
941
  } while (((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 137) !== 0));
942
- this.state = 239;
942
+ this.state = 241;
943
943
  this.match(CircuitScriptParser.DEDENT);
944
944
  }
945
945
  }
@@ -964,25 +964,25 @@ class CircuitScriptParser extends antlr.Parser {
964
964
  try {
965
965
  this.enterOuterAlt(localContext, 1);
966
966
  {
967
- this.state = 241;
967
+ this.state = 243;
968
968
  this.pin_select_expr2();
969
- this.state = 242;
969
+ this.state = 244;
970
970
  this.match(CircuitScriptParser.T__0);
971
- this.state = 243;
971
+ this.state = 245;
972
972
  this.at_to_multiple_line_expr_to_pin();
973
- this.state = 248;
973
+ this.state = 250;
974
974
  this.errorHandler.sync(this);
975
975
  _la = this.tokenStream.LA(1);
976
976
  while (_la === 2) {
977
977
  {
978
978
  {
979
- this.state = 244;
979
+ this.state = 246;
980
980
  this.match(CircuitScriptParser.T__1);
981
- this.state = 245;
981
+ this.state = 247;
982
982
  this.at_to_multiple_line_expr_to_pin();
983
983
  }
984
984
  }
985
- this.state = 250;
985
+ this.state = 252;
986
986
  this.errorHandler.sync(this);
987
987
  _la = this.tokenStream.LA(1);
988
988
  }
@@ -1009,7 +1009,7 @@ class CircuitScriptParser extends antlr.Parser {
1009
1009
  try {
1010
1010
  this.enterOuterAlt(localContext, 1);
1011
1011
  {
1012
- this.state = 251;
1012
+ this.state = 253;
1013
1013
  _la = this.tokenStream.LA(1);
1014
1014
  if (!(_la === 42 || _la === 45)) {
1015
1015
  this.errorHandler.recoverInline(this);
@@ -1041,25 +1041,25 @@ class CircuitScriptParser extends antlr.Parser {
1041
1041
  try {
1042
1042
  this.enterOuterAlt(localContext, 1);
1043
1043
  {
1044
- this.state = 253;
1044
+ this.state = 255;
1045
1045
  this.at_component_expr();
1046
- this.state = 254;
1046
+ this.state = 256;
1047
1047
  this.match(CircuitScriptParser.T__0);
1048
- this.state = 255;
1048
+ this.state = 257;
1049
1049
  this.match(CircuitScriptParser.NEWLINE);
1050
- this.state = 256;
1050
+ this.state = 258;
1051
1051
  this.match(CircuitScriptParser.INDENT);
1052
- this.state = 259;
1052
+ this.state = 261;
1053
1053
  this.errorHandler.sync(this);
1054
1054
  _la = this.tokenStream.LA(1);
1055
1055
  do {
1056
1056
  {
1057
- this.state = 259;
1057
+ this.state = 261;
1058
1058
  this.errorHandler.sync(this);
1059
1059
  switch (this.tokenStream.LA(1)) {
1060
1060
  case CircuitScriptParser.NEWLINE:
1061
1061
  {
1062
- this.state = 257;
1062
+ this.state = 259;
1063
1063
  this.match(CircuitScriptParser.NEWLINE);
1064
1064
  }
1065
1065
  break;
@@ -1083,7 +1083,7 @@ class CircuitScriptParser extends antlr.Parser {
1083
1083
  case CircuitScriptParser.INTEGER_VALUE:
1084
1084
  case CircuitScriptParser.STRING_VALUE:
1085
1085
  {
1086
- this.state = 258;
1086
+ this.state = 260;
1087
1087
  this.at_block_expressions();
1088
1088
  }
1089
1089
  break;
@@ -1091,11 +1091,11 @@ class CircuitScriptParser extends antlr.Parser {
1091
1091
  throw new antlr.NoViableAltException(this);
1092
1092
  }
1093
1093
  }
1094
- this.state = 261;
1094
+ this.state = 263;
1095
1095
  this.errorHandler.sync(this);
1096
1096
  _la = this.tokenStream.LA(1);
1097
1097
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 70405) !== 0));
1098
- this.state = 263;
1098
+ this.state = 265;
1099
1099
  this.match(CircuitScriptParser.DEDENT);
1100
1100
  }
1101
1101
  }
@@ -1117,7 +1117,7 @@ class CircuitScriptParser extends antlr.Parser {
1117
1117
  let localContext = new At_block_expressionsContext(this.context, this.state);
1118
1118
  this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions);
1119
1119
  try {
1120
- this.state = 267;
1120
+ this.state = 269;
1121
1121
  this.errorHandler.sync(this);
1122
1122
  switch (this.tokenStream.LA(1)) {
1123
1123
  case CircuitScriptParser.T__3:
@@ -1139,7 +1139,7 @@ class CircuitScriptParser extends antlr.Parser {
1139
1139
  case CircuitScriptParser.ID:
1140
1140
  this.enterOuterAlt(localContext, 1);
1141
1141
  {
1142
- this.state = 265;
1142
+ this.state = 267;
1143
1143
  this.expression();
1144
1144
  }
1145
1145
  break;
@@ -1147,7 +1147,7 @@ class CircuitScriptParser extends antlr.Parser {
1147
1147
  case CircuitScriptParser.STRING_VALUE:
1148
1148
  this.enterOuterAlt(localContext, 2);
1149
1149
  {
1150
- this.state = 266;
1150
+ this.state = 268;
1151
1151
  this.at_block_pin_expr();
1152
1152
  }
1153
1153
  break;
@@ -1175,11 +1175,11 @@ class CircuitScriptParser extends antlr.Parser {
1175
1175
  try {
1176
1176
  this.enterOuterAlt(localContext, 1);
1177
1177
  {
1178
- this.state = 269;
1178
+ this.state = 271;
1179
1179
  this.pin_select_expr2();
1180
- this.state = 270;
1180
+ this.state = 272;
1181
1181
  this.match(CircuitScriptParser.T__0);
1182
- this.state = 273;
1182
+ this.state = 275;
1183
1183
  this.errorHandler.sync(this);
1184
1184
  switch (this.tokenStream.LA(1)) {
1185
1185
  case CircuitScriptParser.T__3:
@@ -1201,13 +1201,13 @@ class CircuitScriptParser extends antlr.Parser {
1201
1201
  case CircuitScriptParser.NOT_CONNECTED:
1202
1202
  case CircuitScriptParser.ID:
1203
1203
  {
1204
- this.state = 271;
1204
+ this.state = 273;
1205
1205
  this.at_block_pin_expression_simple();
1206
1206
  }
1207
1207
  break;
1208
1208
  case CircuitScriptParser.NEWLINE:
1209
1209
  {
1210
- this.state = 272;
1210
+ this.state = 274;
1211
1211
  this.at_block_pin_expression_complex();
1212
1212
  }
1213
1213
  break;
@@ -1236,7 +1236,7 @@ class CircuitScriptParser extends antlr.Parser {
1236
1236
  try {
1237
1237
  this.enterOuterAlt(localContext, 1);
1238
1238
  {
1239
- this.state = 277;
1239
+ this.state = 279;
1240
1240
  this.errorHandler.sync(this);
1241
1241
  switch (this.tokenStream.LA(1)) {
1242
1242
  case CircuitScriptParser.T__3:
@@ -1257,13 +1257,13 @@ class CircuitScriptParser extends antlr.Parser {
1257
1257
  case CircuitScriptParser.Divide:
1258
1258
  case CircuitScriptParser.ID:
1259
1259
  {
1260
- this.state = 275;
1260
+ this.state = 277;
1261
1261
  this.expression();
1262
1262
  }
1263
1263
  break;
1264
1264
  case CircuitScriptParser.NOT_CONNECTED:
1265
1265
  {
1266
- this.state = 276;
1266
+ this.state = 278;
1267
1267
  this.match(CircuitScriptParser.NOT_CONNECTED);
1268
1268
  }
1269
1269
  break;
@@ -1293,21 +1293,21 @@ class CircuitScriptParser extends antlr.Parser {
1293
1293
  try {
1294
1294
  this.enterOuterAlt(localContext, 1);
1295
1295
  {
1296
- this.state = 279;
1296
+ this.state = 281;
1297
1297
  this.match(CircuitScriptParser.NEWLINE);
1298
- this.state = 280;
1298
+ this.state = 282;
1299
1299
  this.match(CircuitScriptParser.INDENT);
1300
- this.state = 283;
1300
+ this.state = 285;
1301
1301
  this.errorHandler.sync(this);
1302
1302
  _la = this.tokenStream.LA(1);
1303
1303
  do {
1304
1304
  {
1305
- this.state = 283;
1305
+ this.state = 285;
1306
1306
  this.errorHandler.sync(this);
1307
1307
  switch (this.tokenStream.LA(1)) {
1308
1308
  case CircuitScriptParser.NEWLINE:
1309
1309
  {
1310
- this.state = 281;
1310
+ this.state = 283;
1311
1311
  this.match(CircuitScriptParser.NEWLINE);
1312
1312
  }
1313
1313
  break;
@@ -1329,7 +1329,7 @@ class CircuitScriptParser extends antlr.Parser {
1329
1329
  case CircuitScriptParser.Divide:
1330
1330
  case CircuitScriptParser.ID:
1331
1331
  {
1332
- this.state = 282;
1332
+ this.state = 284;
1333
1333
  this.expression();
1334
1334
  }
1335
1335
  break;
@@ -1337,11 +1337,11 @@ class CircuitScriptParser extends antlr.Parser {
1337
1337
  throw new antlr.NoViableAltException(this);
1338
1338
  }
1339
1339
  }
1340
- this.state = 285;
1340
+ this.state = 287;
1341
1341
  this.errorHandler.sync(this);
1342
1342
  _la = this.tokenStream.LA(1);
1343
1343
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
1344
- this.state = 287;
1344
+ this.state = 289;
1345
1345
  this.match(CircuitScriptParser.DEDENT);
1346
1346
  }
1347
1347
  }
@@ -1365,7 +1365,7 @@ class CircuitScriptParser extends antlr.Parser {
1365
1365
  try {
1366
1366
  this.enterOuterAlt(localContext, 1);
1367
1367
  {
1368
- this.state = 289;
1368
+ this.state = 291;
1369
1369
  this.match(CircuitScriptParser.Break);
1370
1370
  }
1371
1371
  }
@@ -1389,11 +1389,11 @@ class CircuitScriptParser extends antlr.Parser {
1389
1389
  try {
1390
1390
  this.enterOuterAlt(localContext, 1);
1391
1391
  {
1392
- this.state = 291;
1392
+ this.state = 293;
1393
1393
  this.atom_expr();
1394
- this.state = 292;
1394
+ this.state = 294;
1395
1395
  this.match(CircuitScriptParser.T__2);
1396
- this.state = 293;
1396
+ this.state = 295;
1397
1397
  this.data_expr(0);
1398
1398
  }
1399
1399
  }
@@ -1417,11 +1417,11 @@ class CircuitScriptParser extends antlr.Parser {
1417
1417
  try {
1418
1418
  this.enterOuterAlt(localContext, 1);
1419
1419
  {
1420
- this.state = 295;
1420
+ this.state = 297;
1421
1421
  this.match(CircuitScriptParser.ID);
1422
- this.state = 296;
1422
+ this.state = 298;
1423
1423
  this.match(CircuitScriptParser.T__2);
1424
- this.state = 297;
1424
+ this.state = 299;
1425
1425
  this.data_expr(0);
1426
1426
  }
1427
1427
  }
@@ -1445,46 +1445,46 @@ class CircuitScriptParser extends antlr.Parser {
1445
1445
  let _la;
1446
1446
  try {
1447
1447
  let alternative;
1448
- this.state = 322;
1448
+ this.state = 324;
1449
1449
  this.errorHandler.sync(this);
1450
1450
  switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1451
1451
  case 1:
1452
1452
  this.enterOuterAlt(localContext, 1);
1453
1453
  {
1454
1454
  {
1455
- this.state = 299;
1455
+ this.state = 301;
1456
1456
  this.data_expr(0);
1457
- this.state = 304;
1457
+ this.state = 306;
1458
1458
  this.errorHandler.sync(this);
1459
1459
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1460
1460
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1461
1461
  if (alternative === 1) {
1462
1462
  {
1463
1463
  {
1464
- this.state = 300;
1464
+ this.state = 302;
1465
1465
  this.match(CircuitScriptParser.T__1);
1466
- this.state = 301;
1466
+ this.state = 303;
1467
1467
  this.data_expr(0);
1468
1468
  }
1469
1469
  }
1470
1470
  }
1471
- this.state = 306;
1471
+ this.state = 308;
1472
1472
  this.errorHandler.sync(this);
1473
1473
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 27, this.context);
1474
1474
  }
1475
- this.state = 311;
1475
+ this.state = 313;
1476
1476
  this.errorHandler.sync(this);
1477
1477
  _la = this.tokenStream.LA(1);
1478
1478
  while (_la === 2) {
1479
1479
  {
1480
1480
  {
1481
- this.state = 307;
1481
+ this.state = 309;
1482
1482
  this.match(CircuitScriptParser.T__1);
1483
- this.state = 308;
1483
+ this.state = 310;
1484
1484
  this.keyword_assignment_expr();
1485
1485
  }
1486
1486
  }
1487
- this.state = 313;
1487
+ this.state = 315;
1488
1488
  this.errorHandler.sync(this);
1489
1489
  _la = this.tokenStream.LA(1);
1490
1490
  }
@@ -1495,21 +1495,21 @@ class CircuitScriptParser extends antlr.Parser {
1495
1495
  this.enterOuterAlt(localContext, 2);
1496
1496
  {
1497
1497
  {
1498
- this.state = 314;
1498
+ this.state = 316;
1499
1499
  this.keyword_assignment_expr();
1500
- this.state = 319;
1500
+ this.state = 321;
1501
1501
  this.errorHandler.sync(this);
1502
1502
  _la = this.tokenStream.LA(1);
1503
1503
  while (_la === 2) {
1504
1504
  {
1505
1505
  {
1506
- this.state = 315;
1506
+ this.state = 317;
1507
1507
  this.match(CircuitScriptParser.T__1);
1508
- this.state = 316;
1508
+ this.state = 318;
1509
1509
  this.keyword_assignment_expr();
1510
1510
  }
1511
1511
  }
1512
- this.state = 321;
1512
+ this.state = 323;
1513
1513
  this.errorHandler.sync(this);
1514
1514
  _la = this.tokenStream.LA(1);
1515
1515
  }
@@ -1538,11 +1538,11 @@ class CircuitScriptParser extends antlr.Parser {
1538
1538
  try {
1539
1539
  this.enterOuterAlt(localContext, 1);
1540
1540
  {
1541
- this.state = 324;
1541
+ this.state = 326;
1542
1542
  this.atom_expr();
1543
- this.state = 325;
1543
+ this.state = 327;
1544
1544
  this.match(CircuitScriptParser.T__2);
1545
- this.state = 326;
1545
+ this.state = 328;
1546
1546
  this.data_expr(0);
1547
1547
  }
1548
1548
  }
@@ -1566,13 +1566,13 @@ class CircuitScriptParser extends antlr.Parser {
1566
1566
  try {
1567
1567
  this.enterOuterAlt(localContext, 1);
1568
1568
  {
1569
- this.state = 328;
1569
+ this.state = 330;
1570
1570
  this.match(CircuitScriptParser.T__3);
1571
- this.state = 329;
1571
+ this.state = 331;
1572
1572
  this.match(CircuitScriptParser.ID);
1573
- this.state = 330;
1573
+ this.state = 332;
1574
1574
  this.match(CircuitScriptParser.T__2);
1575
- this.state = 331;
1575
+ this.state = 333;
1576
1576
  this.data_expr(0);
1577
1577
  }
1578
1578
  }
@@ -1605,7 +1605,7 @@ class CircuitScriptParser extends antlr.Parser {
1605
1605
  let alternative;
1606
1606
  this.enterOuterAlt(localContext, 1);
1607
1607
  {
1608
- this.state = 348;
1608
+ this.state = 350;
1609
1609
  this.errorHandler.sync(this);
1610
1610
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1611
1611
  case 1:
@@ -1613,11 +1613,11 @@ class CircuitScriptParser extends antlr.Parser {
1613
1613
  localContext = new RoundedBracketsExprContext(localContext);
1614
1614
  this.context = localContext;
1615
1615
  previousContext = localContext;
1616
- this.state = 334;
1616
+ this.state = 336;
1617
1617
  this.match(CircuitScriptParser.OPEN_PAREN);
1618
- this.state = 335;
1618
+ this.state = 337;
1619
1619
  this.data_expr(0);
1620
- this.state = 336;
1620
+ this.state = 338;
1621
1621
  this.match(CircuitScriptParser.CLOSE_PAREN);
1622
1622
  }
1623
1623
  break;
@@ -1626,7 +1626,7 @@ class CircuitScriptParser extends antlr.Parser {
1626
1626
  localContext = new ValueAtomExprContext(localContext);
1627
1627
  this.context = localContext;
1628
1628
  previousContext = localContext;
1629
- this.state = 340;
1629
+ this.state = 342;
1630
1630
  this.errorHandler.sync(this);
1631
1631
  switch (this.tokenStream.LA(1)) {
1632
1632
  case CircuitScriptParser.T__5:
@@ -1638,13 +1638,13 @@ class CircuitScriptParser extends antlr.Parser {
1638
1638
  case CircuitScriptParser.STRING_VALUE:
1639
1639
  case CircuitScriptParser.PERCENTAGE_VALUE:
1640
1640
  {
1641
- this.state = 338;
1641
+ this.state = 340;
1642
1642
  this.value_expr();
1643
1643
  }
1644
1644
  break;
1645
1645
  case CircuitScriptParser.ID:
1646
1646
  {
1647
- this.state = 339;
1647
+ this.state = 341;
1648
1648
  this.atom_expr();
1649
1649
  }
1650
1650
  break;
@@ -1658,9 +1658,9 @@ class CircuitScriptParser extends antlr.Parser {
1658
1658
  localContext = new UnaryOperatorExprContext(localContext);
1659
1659
  this.context = localContext;
1660
1660
  previousContext = localContext;
1661
- this.state = 342;
1661
+ this.state = 344;
1662
1662
  this.unary_operator();
1663
- this.state = 343;
1663
+ this.state = 345;
1664
1664
  this.data_expr(8);
1665
1665
  }
1666
1666
  break;
@@ -1669,7 +1669,7 @@ class CircuitScriptParser extends antlr.Parser {
1669
1669
  localContext = new DataExprContext(localContext);
1670
1670
  this.context = localContext;
1671
1671
  previousContext = localContext;
1672
- this.state = 345;
1672
+ this.state = 347;
1673
1673
  this.create_component_expr();
1674
1674
  }
1675
1675
  break;
@@ -1678,7 +1678,7 @@ class CircuitScriptParser extends antlr.Parser {
1678
1678
  localContext = new DataExprContext(localContext);
1679
1679
  this.context = localContext;
1680
1680
  previousContext = localContext;
1681
- this.state = 346;
1681
+ this.state = 348;
1682
1682
  this.create_graphic_expr();
1683
1683
  }
1684
1684
  break;
@@ -1687,13 +1687,13 @@ class CircuitScriptParser extends antlr.Parser {
1687
1687
  localContext = new FunctionCallExprContext(localContext);
1688
1688
  this.context = localContext;
1689
1689
  previousContext = localContext;
1690
- this.state = 347;
1690
+ this.state = 349;
1691
1691
  this.function_call_expr();
1692
1692
  }
1693
1693
  break;
1694
1694
  }
1695
1695
  this.context.stop = this.tokenStream.LT(-1);
1696
- this.state = 365;
1696
+ this.state = 367;
1697
1697
  this.errorHandler.sync(this);
1698
1698
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1699
1699
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1703,18 +1703,18 @@ class CircuitScriptParser extends antlr.Parser {
1703
1703
  }
1704
1704
  previousContext = localContext;
1705
1705
  {
1706
- this.state = 363;
1706
+ this.state = 365;
1707
1707
  this.errorHandler.sync(this);
1708
1708
  switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1709
1709
  case 1:
1710
1710
  {
1711
1711
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1712
1712
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1713
- this.state = 350;
1713
+ this.state = 352;
1714
1714
  if (!(this.precpred(this.context, 7))) {
1715
1715
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1716
1716
  }
1717
- this.state = 351;
1717
+ this.state = 353;
1718
1718
  _la = this.tokenStream.LA(1);
1719
1719
  if (!(_la === 38 || _la === 39)) {
1720
1720
  this.errorHandler.recoverInline(this);
@@ -1723,7 +1723,7 @@ class CircuitScriptParser extends antlr.Parser {
1723
1723
  this.errorHandler.reportMatch(this);
1724
1724
  this.consume();
1725
1725
  }
1726
- this.state = 352;
1726
+ this.state = 354;
1727
1727
  this.data_expr(8);
1728
1728
  }
1729
1729
  break;
@@ -1731,11 +1731,11 @@ class CircuitScriptParser extends antlr.Parser {
1731
1731
  {
1732
1732
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1733
1733
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1734
- this.state = 353;
1734
+ this.state = 355;
1735
1735
  if (!(this.precpred(this.context, 6))) {
1736
1736
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1737
1737
  }
1738
- this.state = 354;
1738
+ this.state = 356;
1739
1739
  _la = this.tokenStream.LA(1);
1740
1740
  if (!(_la === 36 || _la === 37)) {
1741
1741
  this.errorHandler.recoverInline(this);
@@ -1744,7 +1744,7 @@ class CircuitScriptParser extends antlr.Parser {
1744
1744
  this.errorHandler.reportMatch(this);
1745
1745
  this.consume();
1746
1746
  }
1747
- this.state = 355;
1747
+ this.state = 357;
1748
1748
  this.data_expr(7);
1749
1749
  }
1750
1750
  break;
@@ -1752,13 +1752,13 @@ class CircuitScriptParser extends antlr.Parser {
1752
1752
  {
1753
1753
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1754
1754
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1755
- this.state = 356;
1755
+ this.state = 358;
1756
1756
  if (!(this.precpred(this.context, 5))) {
1757
1757
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1758
1758
  }
1759
- this.state = 357;
1759
+ this.state = 359;
1760
1760
  this.binary_operator();
1761
- this.state = 358;
1761
+ this.state = 360;
1762
1762
  this.data_expr(6);
1763
1763
  }
1764
1764
  break;
@@ -1766,11 +1766,11 @@ class CircuitScriptParser extends antlr.Parser {
1766
1766
  {
1767
1767
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1768
1768
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1769
- this.state = 360;
1769
+ this.state = 362;
1770
1770
  if (!(this.precpred(this.context, 4))) {
1771
1771
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1772
1772
  }
1773
- this.state = 361;
1773
+ this.state = 363;
1774
1774
  _la = this.tokenStream.LA(1);
1775
1775
  if (!(_la === 34 || _la === 35)) {
1776
1776
  this.errorHandler.recoverInline(this);
@@ -1779,14 +1779,14 @@ class CircuitScriptParser extends antlr.Parser {
1779
1779
  this.errorHandler.reportMatch(this);
1780
1780
  this.consume();
1781
1781
  }
1782
- this.state = 362;
1782
+ this.state = 364;
1783
1783
  this.data_expr(5);
1784
1784
  }
1785
1785
  break;
1786
1786
  }
1787
1787
  }
1788
1788
  }
1789
- this.state = 367;
1789
+ this.state = 369;
1790
1790
  this.errorHandler.sync(this);
1791
1791
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 34, this.context);
1792
1792
  }
@@ -1813,7 +1813,7 @@ class CircuitScriptParser extends antlr.Parser {
1813
1813
  try {
1814
1814
  this.enterOuterAlt(localContext, 1);
1815
1815
  {
1816
- this.state = 368;
1816
+ this.state = 370;
1817
1817
  _la = this.tokenStream.LA(1);
1818
1818
  if (!(((((_la - 28)) & ~0x1F) === 0 && ((1 << (_la - 28)) & 63) !== 0))) {
1819
1819
  this.errorHandler.recoverInline(this);
@@ -1845,7 +1845,7 @@ class CircuitScriptParser extends antlr.Parser {
1845
1845
  try {
1846
1846
  this.enterOuterAlt(localContext, 1);
1847
1847
  {
1848
- this.state = 370;
1848
+ this.state = 372;
1849
1849
  _la = this.tokenStream.LA(1);
1850
1850
  if (!(_la === 26 || _la === 37)) {
1851
1851
  this.errorHandler.recoverInline(this);
@@ -1875,7 +1875,7 @@ class CircuitScriptParser extends antlr.Parser {
1875
1875
  this.enterRule(localContext, 62, CircuitScriptParser.RULE_value_expr);
1876
1876
  let _la;
1877
1877
  try {
1878
- this.state = 377;
1878
+ this.state = 379;
1879
1879
  this.errorHandler.sync(this);
1880
1880
  switch (this.tokenStream.LA(1)) {
1881
1881
  case CircuitScriptParser.Minus:
@@ -1888,16 +1888,16 @@ class CircuitScriptParser extends antlr.Parser {
1888
1888
  this.enterOuterAlt(localContext, 1);
1889
1889
  {
1890
1890
  {
1891
- this.state = 373;
1891
+ this.state = 375;
1892
1892
  this.errorHandler.sync(this);
1893
1893
  _la = this.tokenStream.LA(1);
1894
1894
  if (_la === 37) {
1895
1895
  {
1896
- this.state = 372;
1896
+ this.state = 374;
1897
1897
  this.match(CircuitScriptParser.Minus);
1898
1898
  }
1899
1899
  }
1900
- this.state = 375;
1900
+ this.state = 377;
1901
1901
  _la = this.tokenStream.LA(1);
1902
1902
  if (!(((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 125) !== 0))) {
1903
1903
  this.errorHandler.recoverInline(this);
@@ -1912,7 +1912,7 @@ class CircuitScriptParser extends antlr.Parser {
1912
1912
  case CircuitScriptParser.T__5:
1913
1913
  this.enterOuterAlt(localContext, 2);
1914
1914
  {
1915
- this.state = 376;
1915
+ this.state = 378;
1916
1916
  this.blank_expr();
1917
1917
  }
1918
1918
  break;
@@ -1941,40 +1941,40 @@ class CircuitScriptParser extends antlr.Parser {
1941
1941
  try {
1942
1942
  this.enterOuterAlt(localContext, 1);
1943
1943
  {
1944
- this.state = 379;
1944
+ this.state = 381;
1945
1945
  this.match(CircuitScriptParser.Define);
1946
- this.state = 380;
1946
+ this.state = 382;
1947
1947
  this.match(CircuitScriptParser.ID);
1948
- this.state = 381;
1949
- this.match(CircuitScriptParser.OPEN_PAREN);
1950
1948
  this.state = 383;
1949
+ this.match(CircuitScriptParser.OPEN_PAREN);
1950
+ this.state = 385;
1951
1951
  this.errorHandler.sync(this);
1952
1952
  _la = this.tokenStream.LA(1);
1953
1953
  if (_la === 44) {
1954
1954
  {
1955
- this.state = 382;
1955
+ this.state = 384;
1956
1956
  this.function_args_expr();
1957
1957
  }
1958
1958
  }
1959
- this.state = 385;
1959
+ this.state = 387;
1960
1960
  this.match(CircuitScriptParser.CLOSE_PAREN);
1961
- this.state = 386;
1961
+ this.state = 388;
1962
1962
  this.match(CircuitScriptParser.T__0);
1963
- this.state = 387;
1963
+ this.state = 389;
1964
1964
  this.match(CircuitScriptParser.NEWLINE);
1965
- this.state = 388;
1965
+ this.state = 390;
1966
1966
  this.match(CircuitScriptParser.INDENT);
1967
- this.state = 391;
1967
+ this.state = 393;
1968
1968
  this.errorHandler.sync(this);
1969
1969
  _la = this.tokenStream.LA(1);
1970
1970
  do {
1971
1971
  {
1972
- this.state = 391;
1972
+ this.state = 393;
1973
1973
  this.errorHandler.sync(this);
1974
1974
  switch (this.tokenStream.LA(1)) {
1975
1975
  case CircuitScriptParser.NEWLINE:
1976
1976
  {
1977
- this.state = 389;
1977
+ this.state = 391;
1978
1978
  this.match(CircuitScriptParser.NEWLINE);
1979
1979
  }
1980
1980
  break;
@@ -1997,7 +1997,7 @@ class CircuitScriptParser extends antlr.Parser {
1997
1997
  case CircuitScriptParser.Divide:
1998
1998
  case CircuitScriptParser.ID:
1999
1999
  {
2000
- this.state = 390;
2000
+ this.state = 392;
2001
2001
  this.function_expr();
2002
2002
  }
2003
2003
  break;
@@ -2005,11 +2005,11 @@ class CircuitScriptParser extends antlr.Parser {
2005
2005
  throw new antlr.NoViableAltException(this);
2006
2006
  }
2007
2007
  }
2008
- this.state = 393;
2008
+ this.state = 395;
2009
2009
  this.errorHandler.sync(this);
2010
2010
  _la = this.tokenStream.LA(1);
2011
2011
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 167748368) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
2012
- this.state = 395;
2012
+ this.state = 397;
2013
2013
  this.match(CircuitScriptParser.DEDENT);
2014
2014
  }
2015
2015
  }
@@ -2031,7 +2031,7 @@ class CircuitScriptParser extends antlr.Parser {
2031
2031
  let localContext = new Function_exprContext(this.context, this.state);
2032
2032
  this.enterRule(localContext, 66, CircuitScriptParser.RULE_function_expr);
2033
2033
  try {
2034
- this.state = 399;
2034
+ this.state = 401;
2035
2035
  this.errorHandler.sync(this);
2036
2036
  switch (this.tokenStream.LA(1)) {
2037
2037
  case CircuitScriptParser.T__3:
@@ -2053,14 +2053,14 @@ class CircuitScriptParser extends antlr.Parser {
2053
2053
  case CircuitScriptParser.ID:
2054
2054
  this.enterOuterAlt(localContext, 1);
2055
2055
  {
2056
- this.state = 397;
2056
+ this.state = 399;
2057
2057
  this.expression();
2058
2058
  }
2059
2059
  break;
2060
2060
  case CircuitScriptParser.Return:
2061
2061
  this.enterOuterAlt(localContext, 2);
2062
2062
  {
2063
- this.state = 398;
2063
+ this.state = 400;
2064
2064
  this.function_return_expr();
2065
2065
  }
2066
2066
  break;
@@ -2088,49 +2088,49 @@ class CircuitScriptParser extends antlr.Parser {
2088
2088
  let _la;
2089
2089
  try {
2090
2090
  let alternative;
2091
- this.state = 430;
2091
+ this.state = 432;
2092
2092
  this.errorHandler.sync(this);
2093
2093
  switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2094
2094
  case 1:
2095
2095
  this.enterOuterAlt(localContext, 1);
2096
2096
  {
2097
- this.state = 401;
2097
+ this.state = 403;
2098
2098
  this.match(CircuitScriptParser.ID);
2099
- this.state = 406;
2099
+ this.state = 408;
2100
2100
  this.errorHandler.sync(this);
2101
2101
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2102
2102
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2103
2103
  if (alternative === 1) {
2104
2104
  {
2105
2105
  {
2106
- this.state = 402;
2106
+ this.state = 404;
2107
2107
  this.match(CircuitScriptParser.T__1);
2108
- this.state = 403;
2108
+ this.state = 405;
2109
2109
  this.match(CircuitScriptParser.ID);
2110
2110
  }
2111
2111
  }
2112
2112
  }
2113
- this.state = 408;
2113
+ this.state = 410;
2114
2114
  this.errorHandler.sync(this);
2115
2115
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2116
2116
  }
2117
- this.state = 415;
2117
+ this.state = 417;
2118
2118
  this.errorHandler.sync(this);
2119
2119
  _la = this.tokenStream.LA(1);
2120
2120
  while (_la === 2) {
2121
2121
  {
2122
2122
  {
2123
- this.state = 409;
2123
+ this.state = 411;
2124
2124
  this.match(CircuitScriptParser.T__1);
2125
- this.state = 410;
2125
+ this.state = 412;
2126
2126
  this.match(CircuitScriptParser.ID);
2127
- this.state = 411;
2127
+ this.state = 413;
2128
2128
  this.match(CircuitScriptParser.T__2);
2129
- this.state = 412;
2129
+ this.state = 414;
2130
2130
  this.value_expr();
2131
2131
  }
2132
2132
  }
2133
- this.state = 417;
2133
+ this.state = 419;
2134
2134
  this.errorHandler.sync(this);
2135
2135
  _la = this.tokenStream.LA(1);
2136
2136
  }
@@ -2139,29 +2139,29 @@ class CircuitScriptParser extends antlr.Parser {
2139
2139
  case 2:
2140
2140
  this.enterOuterAlt(localContext, 2);
2141
2141
  {
2142
- this.state = 418;
2142
+ this.state = 420;
2143
2143
  this.match(CircuitScriptParser.ID);
2144
- this.state = 419;
2144
+ this.state = 421;
2145
2145
  this.match(CircuitScriptParser.T__2);
2146
- this.state = 420;
2146
+ this.state = 422;
2147
2147
  this.value_expr();
2148
- this.state = 427;
2148
+ this.state = 429;
2149
2149
  this.errorHandler.sync(this);
2150
2150
  _la = this.tokenStream.LA(1);
2151
2151
  while (_la === 2) {
2152
2152
  {
2153
2153
  {
2154
- this.state = 421;
2154
+ this.state = 423;
2155
2155
  this.match(CircuitScriptParser.T__1);
2156
- this.state = 422;
2156
+ this.state = 424;
2157
2157
  this.match(CircuitScriptParser.ID);
2158
- this.state = 423;
2158
+ this.state = 425;
2159
2159
  this.match(CircuitScriptParser.T__2);
2160
- this.state = 424;
2160
+ this.state = 426;
2161
2161
  this.value_expr();
2162
2162
  }
2163
2163
  }
2164
- this.state = 429;
2164
+ this.state = 431;
2165
2165
  this.errorHandler.sync(this);
2166
2166
  _la = this.tokenStream.LA(1);
2167
2167
  }
@@ -2190,23 +2190,23 @@ class CircuitScriptParser extends antlr.Parser {
2190
2190
  let alternative;
2191
2191
  this.enterOuterAlt(localContext, 1);
2192
2192
  {
2193
- this.state = 432;
2193
+ this.state = 434;
2194
2194
  this.match(CircuitScriptParser.ID);
2195
- this.state = 437;
2195
+ this.state = 439;
2196
2196
  this.errorHandler.sync(this);
2197
2197
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2198
2198
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2199
2199
  if (alternative === 1) {
2200
2200
  {
2201
2201
  {
2202
- this.state = 433;
2202
+ this.state = 435;
2203
2203
  this.match(CircuitScriptParser.T__4);
2204
- this.state = 434;
2204
+ this.state = 436;
2205
2205
  this.match(CircuitScriptParser.ID);
2206
2206
  }
2207
2207
  }
2208
2208
  }
2209
- this.state = 439;
2209
+ this.state = 441;
2210
2210
  this.errorHandler.sync(this);
2211
2211
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2212
2212
  }
@@ -2231,33 +2231,33 @@ class CircuitScriptParser extends antlr.Parser {
2231
2231
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_trailer_expr);
2232
2232
  let _la;
2233
2233
  try {
2234
- this.state = 447;
2234
+ this.state = 449;
2235
2235
  this.errorHandler.sync(this);
2236
2236
  switch (this.tokenStream.LA(1)) {
2237
2237
  case CircuitScriptParser.OPEN_PAREN:
2238
2238
  this.enterOuterAlt(localContext, 1);
2239
2239
  {
2240
- this.state = 440;
2241
- this.match(CircuitScriptParser.OPEN_PAREN);
2242
2240
  this.state = 442;
2241
+ this.match(CircuitScriptParser.OPEN_PAREN);
2242
+ this.state = 444;
2243
2243
  this.errorHandler.sync(this);
2244
2244
  _la = this.tokenStream.LA(1);
2245
2245
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 67109952) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 16279) !== 0)) {
2246
2246
  {
2247
- this.state = 441;
2247
+ this.state = 443;
2248
2248
  this.parameters();
2249
2249
  }
2250
2250
  }
2251
- this.state = 444;
2251
+ this.state = 446;
2252
2252
  this.match(CircuitScriptParser.CLOSE_PAREN);
2253
2253
  }
2254
2254
  break;
2255
2255
  case CircuitScriptParser.T__4:
2256
2256
  this.enterOuterAlt(localContext, 2);
2257
2257
  {
2258
- this.state = 445;
2258
+ this.state = 447;
2259
2259
  this.match(CircuitScriptParser.T__4);
2260
- this.state = 446;
2260
+ this.state = 448;
2261
2261
  this.match(CircuitScriptParser.ID);
2262
2262
  }
2263
2263
  break;
@@ -2287,18 +2287,18 @@ class CircuitScriptParser extends antlr.Parser {
2287
2287
  let alternative;
2288
2288
  this.enterOuterAlt(localContext, 1);
2289
2289
  {
2290
- this.state = 450;
2290
+ this.state = 452;
2291
2291
  this.errorHandler.sync(this);
2292
2292
  _la = this.tokenStream.LA(1);
2293
2293
  if (_la === 36 || _la === 38) {
2294
2294
  {
2295
- this.state = 449;
2295
+ this.state = 451;
2296
2296
  this.net_namespace_expr();
2297
2297
  }
2298
2298
  }
2299
- this.state = 452;
2300
- this.match(CircuitScriptParser.ID);
2301
2299
  this.state = 454;
2300
+ this.match(CircuitScriptParser.ID);
2301
+ this.state = 456;
2302
2302
  this.errorHandler.sync(this);
2303
2303
  alternative = 1;
2304
2304
  do {
@@ -2306,7 +2306,7 @@ class CircuitScriptParser extends antlr.Parser {
2306
2306
  case 1:
2307
2307
  {
2308
2308
  {
2309
- this.state = 453;
2309
+ this.state = 455;
2310
2310
  this.trailer_expr();
2311
2311
  }
2312
2312
  }
@@ -2314,7 +2314,7 @@ class CircuitScriptParser extends antlr.Parser {
2314
2314
  default:
2315
2315
  throw new antlr.NoViableAltException(this);
2316
2316
  }
2317
- this.state = 456;
2317
+ this.state = 458;
2318
2318
  this.errorHandler.sync(this);
2319
2319
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2320
2320
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2341,23 +2341,23 @@ class CircuitScriptParser extends antlr.Parser {
2341
2341
  try {
2342
2342
  this.enterOuterAlt(localContext, 1);
2343
2343
  {
2344
- this.state = 459;
2344
+ this.state = 461;
2345
2345
  this.errorHandler.sync(this);
2346
2346
  _la = this.tokenStream.LA(1);
2347
2347
  if (_la === 36) {
2348
2348
  {
2349
- this.state = 458;
2349
+ this.state = 460;
2350
2350
  this.match(CircuitScriptParser.Addition);
2351
2351
  }
2352
2352
  }
2353
- this.state = 461;
2354
- this.match(CircuitScriptParser.Divide);
2355
2353
  this.state = 463;
2354
+ this.match(CircuitScriptParser.Divide);
2355
+ this.state = 465;
2356
2356
  this.errorHandler.sync(this);
2357
2357
  switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2358
2358
  case 1:
2359
2359
  {
2360
- this.state = 462;
2360
+ this.state = 464;
2361
2361
  this.data_expr(0);
2362
2362
  }
2363
2363
  break;
@@ -2384,9 +2384,9 @@ class CircuitScriptParser extends antlr.Parser {
2384
2384
  try {
2385
2385
  this.enterOuterAlt(localContext, 1);
2386
2386
  {
2387
- this.state = 465;
2387
+ this.state = 467;
2388
2388
  this.match(CircuitScriptParser.Return);
2389
- this.state = 466;
2389
+ this.state = 468;
2390
2390
  this.data_expr(0);
2391
2391
  }
2392
2392
  }
@@ -2411,27 +2411,27 @@ class CircuitScriptParser extends antlr.Parser {
2411
2411
  try {
2412
2412
  this.enterOuterAlt(localContext, 1);
2413
2413
  {
2414
- this.state = 468;
2414
+ this.state = 470;
2415
2415
  this.match(CircuitScriptParser.Create);
2416
- this.state = 469;
2416
+ this.state = 471;
2417
2417
  this.match(CircuitScriptParser.Component);
2418
- this.state = 470;
2418
+ this.state = 472;
2419
2419
  this.match(CircuitScriptParser.T__0);
2420
- this.state = 471;
2420
+ this.state = 473;
2421
2421
  this.match(CircuitScriptParser.NEWLINE);
2422
- this.state = 472;
2422
+ this.state = 474;
2423
2423
  this.match(CircuitScriptParser.INDENT);
2424
- this.state = 475;
2424
+ this.state = 477;
2425
2425
  this.errorHandler.sync(this);
2426
2426
  _la = this.tokenStream.LA(1);
2427
2427
  do {
2428
2428
  {
2429
- this.state = 475;
2429
+ this.state = 477;
2430
2430
  this.errorHandler.sync(this);
2431
2431
  switch (this.tokenStream.LA(1)) {
2432
2432
  case CircuitScriptParser.NEWLINE:
2433
2433
  {
2434
- this.state = 473;
2434
+ this.state = 475;
2435
2435
  this.match(CircuitScriptParser.NEWLINE);
2436
2436
  }
2437
2437
  break;
@@ -2439,7 +2439,7 @@ class CircuitScriptParser extends antlr.Parser {
2439
2439
  case CircuitScriptParser.INTEGER_VALUE:
2440
2440
  case CircuitScriptParser.STRING_VALUE:
2441
2441
  {
2442
- this.state = 474;
2442
+ this.state = 476;
2443
2443
  this.property_expr();
2444
2444
  }
2445
2445
  break;
@@ -2447,11 +2447,11 @@ class CircuitScriptParser extends antlr.Parser {
2447
2447
  throw new antlr.NoViableAltException(this);
2448
2448
  }
2449
2449
  }
2450
- this.state = 477;
2450
+ this.state = 479;
2451
2451
  this.errorHandler.sync(this);
2452
2452
  _la = this.tokenStream.LA(1);
2453
2453
  } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2454
- this.state = 479;
2454
+ this.state = 481;
2455
2455
  this.match(CircuitScriptParser.DEDENT);
2456
2456
  }
2457
2457
  }
@@ -2476,34 +2476,34 @@ class CircuitScriptParser extends antlr.Parser {
2476
2476
  try {
2477
2477
  this.enterOuterAlt(localContext, 1);
2478
2478
  {
2479
- this.state = 481;
2479
+ this.state = 483;
2480
2480
  this.match(CircuitScriptParser.Create);
2481
- this.state = 482;
2481
+ this.state = 484;
2482
2482
  this.match(CircuitScriptParser.Graphic);
2483
- this.state = 483;
2483
+ this.state = 485;
2484
2484
  this.match(CircuitScriptParser.T__0);
2485
- this.state = 484;
2485
+ this.state = 486;
2486
2486
  this.match(CircuitScriptParser.NEWLINE);
2487
- this.state = 485;
2487
+ this.state = 487;
2488
2488
  this.match(CircuitScriptParser.INDENT);
2489
- this.state = 488;
2489
+ this.state = 490;
2490
2490
  this.errorHandler.sync(this);
2491
2491
  _la = this.tokenStream.LA(1);
2492
2492
  do {
2493
2493
  {
2494
- this.state = 488;
2494
+ this.state = 490;
2495
2495
  this.errorHandler.sync(this);
2496
2496
  switch (this.tokenStream.LA(1)) {
2497
2497
  case CircuitScriptParser.NEWLINE:
2498
2498
  {
2499
- this.state = 486;
2499
+ this.state = 488;
2500
2500
  this.match(CircuitScriptParser.NEWLINE);
2501
2501
  }
2502
2502
  break;
2503
2503
  case CircuitScriptParser.Pin:
2504
2504
  case CircuitScriptParser.ID:
2505
2505
  {
2506
- this.state = 487;
2506
+ this.state = 489;
2507
2507
  this.graphic_expr();
2508
2508
  }
2509
2509
  break;
@@ -2511,11 +2511,11 @@ class CircuitScriptParser extends antlr.Parser {
2511
2511
  throw new antlr.NoViableAltException(this);
2512
2512
  }
2513
2513
  }
2514
- this.state = 490;
2514
+ this.state = 492;
2515
2515
  this.errorHandler.sync(this);
2516
2516
  _la = this.tokenStream.LA(1);
2517
2517
  } while (_la === 14 || _la === 44 || _la === 52);
2518
- this.state = 492;
2518
+ this.state = 494;
2519
2519
  this.match(CircuitScriptParser.DEDENT);
2520
2520
  }
2521
2521
  }
@@ -2533,14 +2533,75 @@ class CircuitScriptParser extends antlr.Parser {
2533
2533
  }
2534
2534
  return localContext;
2535
2535
  }
2536
+ nested_properties_inner() {
2537
+ let localContext = new Nested_properties_innerContext(this.context, this.state);
2538
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_nested_properties_inner);
2539
+ let _la;
2540
+ try {
2541
+ this.enterOuterAlt(localContext, 1);
2542
+ {
2543
+ {
2544
+ this.state = 496;
2545
+ this.match(CircuitScriptParser.NEWLINE);
2546
+ this.state = 497;
2547
+ this.match(CircuitScriptParser.INDENT);
2548
+ this.state = 500;
2549
+ this.errorHandler.sync(this);
2550
+ _la = this.tokenStream.LA(1);
2551
+ do {
2552
+ {
2553
+ this.state = 500;
2554
+ this.errorHandler.sync(this);
2555
+ switch (this.tokenStream.LA(1)) {
2556
+ case CircuitScriptParser.NEWLINE:
2557
+ {
2558
+ this.state = 498;
2559
+ this.match(CircuitScriptParser.NEWLINE);
2560
+ }
2561
+ break;
2562
+ case CircuitScriptParser.ID:
2563
+ case CircuitScriptParser.INTEGER_VALUE:
2564
+ case CircuitScriptParser.STRING_VALUE:
2565
+ {
2566
+ this.state = 499;
2567
+ this.property_expr();
2568
+ }
2569
+ break;
2570
+ default:
2571
+ throw new antlr.NoViableAltException(this);
2572
+ }
2573
+ }
2574
+ this.state = 502;
2575
+ this.errorHandler.sync(this);
2576
+ _la = this.tokenStream.LA(1);
2577
+ } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2578
+ this.state = 504;
2579
+ this.match(CircuitScriptParser.DEDENT);
2580
+ }
2581
+ }
2582
+ }
2583
+ catch (re) {
2584
+ if (re instanceof antlr.RecognitionException) {
2585
+ this.errorHandler.reportError(this, re);
2586
+ this.errorHandler.recover(this, re);
2587
+ }
2588
+ else {
2589
+ throw re;
2590
+ }
2591
+ }
2592
+ finally {
2593
+ this.exitRule();
2594
+ }
2595
+ return localContext;
2596
+ }
2536
2597
  graphic_expr() {
2537
2598
  let localContext = new Graphic_exprContext(this.context, this.state);
2538
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_graphic_expr);
2599
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_graphic_expr);
2539
2600
  let _la;
2540
2601
  try {
2541
2602
  this.enterOuterAlt(localContext, 1);
2542
2603
  {
2543
- this.state = 494;
2604
+ this.state = 506;
2544
2605
  localContext._command = this.tokenStream.LT(1);
2545
2606
  _la = this.tokenStream.LA(1);
2546
2607
  if (!(_la === 14 || _la === 44)) {
@@ -2550,34 +2611,40 @@ class CircuitScriptParser extends antlr.Parser {
2550
2611
  this.errorHandler.reportMatch(this);
2551
2612
  this.consume();
2552
2613
  }
2553
- this.state = 496;
2614
+ this.state = 508;
2554
2615
  this.errorHandler.sync(this);
2555
2616
  _la = this.tokenStream.LA(1);
2556
2617
  if (_la === 1) {
2557
2618
  {
2558
- this.state = 495;
2619
+ this.state = 507;
2559
2620
  this.match(CircuitScriptParser.T__0);
2560
2621
  }
2561
2622
  }
2562
- this.state = 503;
2623
+ this.state = 516;
2563
2624
  this.errorHandler.sync(this);
2564
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2625
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2565
2626
  case 1:
2566
2627
  {
2567
- this.state = 498;
2628
+ this.state = 510;
2568
2629
  this.parameters();
2569
2630
  }
2570
2631
  break;
2571
2632
  case 2:
2572
2633
  {
2573
- this.state = 499;
2634
+ this.state = 511;
2574
2635
  this.match(CircuitScriptParser.OPEN_PAREN);
2575
- this.state = 500;
2636
+ this.state = 512;
2576
2637
  this.parameters();
2577
- this.state = 501;
2638
+ this.state = 513;
2578
2639
  this.match(CircuitScriptParser.CLOSE_PAREN);
2579
2640
  }
2580
2641
  break;
2642
+ case 3:
2643
+ {
2644
+ this.state = 515;
2645
+ this.nested_properties_inner();
2646
+ }
2647
+ break;
2581
2648
  }
2582
2649
  }
2583
2650
  }
@@ -2597,15 +2664,15 @@ class CircuitScriptParser extends antlr.Parser {
2597
2664
  }
2598
2665
  property_expr() {
2599
2666
  let localContext = new Property_exprContext(this.context, this.state);
2600
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_expr);
2667
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_expr);
2601
2668
  try {
2602
2669
  this.enterOuterAlt(localContext, 1);
2603
2670
  {
2604
- this.state = 505;
2671
+ this.state = 518;
2605
2672
  this.property_key_expr();
2606
- this.state = 506;
2673
+ this.state = 519;
2607
2674
  this.match(CircuitScriptParser.T__0);
2608
- this.state = 507;
2675
+ this.state = 520;
2609
2676
  this.property_value_expr();
2610
2677
  }
2611
2678
  }
@@ -2625,12 +2692,12 @@ class CircuitScriptParser extends antlr.Parser {
2625
2692
  }
2626
2693
  property_key_expr() {
2627
2694
  let localContext = new Property_key_exprContext(this.context, this.state);
2628
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_key_expr);
2695
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_key_expr);
2629
2696
  let _la;
2630
2697
  try {
2631
2698
  this.enterOuterAlt(localContext, 1);
2632
2699
  {
2633
- this.state = 509;
2700
+ this.state = 522;
2634
2701
  _la = this.tokenStream.LA(1);
2635
2702
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 19) !== 0))) {
2636
2703
  this.errorHandler.recoverInline(this);
@@ -2657,52 +2724,18 @@ class CircuitScriptParser extends antlr.Parser {
2657
2724
  }
2658
2725
  property_value_expr() {
2659
2726
  let localContext = new Property_value_exprContext(this.context, this.state);
2660
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_value_expr);
2727
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_property_value_expr);
2661
2728
  let _la;
2662
2729
  try {
2663
- this.state = 528;
2730
+ this.state = 533;
2664
2731
  this.errorHandler.sync(this);
2665
2732
  switch (this.tokenStream.LA(1)) {
2666
2733
  case CircuitScriptParser.NEWLINE:
2667
2734
  localContext = new Nested_propertiesContext(localContext);
2668
2735
  this.enterOuterAlt(localContext, 1);
2669
2736
  {
2670
- this.state = 511;
2671
- this.match(CircuitScriptParser.NEWLINE);
2672
- this.state = 512;
2673
- this.match(CircuitScriptParser.INDENT);
2674
- this.state = 515;
2675
- this.errorHandler.sync(this);
2676
- _la = this.tokenStream.LA(1);
2677
- do {
2678
- {
2679
- this.state = 515;
2680
- this.errorHandler.sync(this);
2681
- switch (this.tokenStream.LA(1)) {
2682
- case CircuitScriptParser.NEWLINE:
2683
- {
2684
- this.state = 513;
2685
- this.match(CircuitScriptParser.NEWLINE);
2686
- }
2687
- break;
2688
- case CircuitScriptParser.ID:
2689
- case CircuitScriptParser.INTEGER_VALUE:
2690
- case CircuitScriptParser.STRING_VALUE:
2691
- {
2692
- this.state = 514;
2693
- this.property_expr();
2694
- }
2695
- break;
2696
- default:
2697
- throw new antlr.NoViableAltException(this);
2698
- }
2699
- }
2700
- this.state = 517;
2701
- this.errorHandler.sync(this);
2702
- _la = this.tokenStream.LA(1);
2703
- } while (((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 275) !== 0));
2704
- this.state = 519;
2705
- this.match(CircuitScriptParser.DEDENT);
2737
+ this.state = 524;
2738
+ this.nested_properties_inner();
2706
2739
  }
2707
2740
  break;
2708
2741
  case CircuitScriptParser.T__5:
@@ -2722,21 +2755,21 @@ class CircuitScriptParser extends antlr.Parser {
2722
2755
  localContext = new Single_line_propertyContext(localContext);
2723
2756
  this.enterOuterAlt(localContext, 2);
2724
2757
  {
2725
- this.state = 520;
2726
- this.data_expr(0);
2727
2758
  this.state = 525;
2759
+ this.data_expr(0);
2760
+ this.state = 530;
2728
2761
  this.errorHandler.sync(this);
2729
2762
  _la = this.tokenStream.LA(1);
2730
2763
  while (_la === 2) {
2731
2764
  {
2732
2765
  {
2733
- this.state = 521;
2766
+ this.state = 526;
2734
2767
  this.match(CircuitScriptParser.T__1);
2735
- this.state = 522;
2768
+ this.state = 527;
2736
2769
  this.data_expr(0);
2737
2770
  }
2738
2771
  }
2739
- this.state = 527;
2772
+ this.state = 532;
2740
2773
  this.errorHandler.sync(this);
2741
2774
  _la = this.tokenStream.LA(1);
2742
2775
  }
@@ -2762,15 +2795,15 @@ class CircuitScriptParser extends antlr.Parser {
2762
2795
  }
2763
2796
  blank_expr() {
2764
2797
  let localContext = new Blank_exprContext(this.context, this.state);
2765
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_blank_expr);
2798
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_blank_expr);
2766
2799
  try {
2767
2800
  this.enterOuterAlt(localContext, 1);
2768
2801
  {
2769
- this.state = 530;
2802
+ this.state = 535;
2770
2803
  this.match(CircuitScriptParser.T__5);
2771
- this.state = 531;
2804
+ this.state = 536;
2772
2805
  this.match(CircuitScriptParser.INTEGER_VALUE);
2773
- this.state = 532;
2806
+ this.state = 537;
2774
2807
  this.match(CircuitScriptParser.T__6);
2775
2808
  }
2776
2809
  }
@@ -2790,29 +2823,29 @@ class CircuitScriptParser extends antlr.Parser {
2790
2823
  }
2791
2824
  wire_atom_expr() {
2792
2825
  let localContext = new Wire_atom_exprContext(this.context, this.state);
2793
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_wire_atom_expr);
2826
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_atom_expr);
2794
2827
  try {
2795
- this.state = 540;
2828
+ this.state = 545;
2796
2829
  this.errorHandler.sync(this);
2797
2830
  switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2798
2831
  case 1:
2799
2832
  localContext = new Wire_expr_direction_valueContext(localContext);
2800
2833
  this.enterOuterAlt(localContext, 1);
2801
2834
  {
2802
- this.state = 534;
2835
+ this.state = 539;
2803
2836
  this.match(CircuitScriptParser.ID);
2804
- this.state = 537;
2837
+ this.state = 542;
2805
2838
  this.errorHandler.sync(this);
2806
2839
  switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2807
2840
  case 1:
2808
2841
  {
2809
- this.state = 535;
2842
+ this.state = 540;
2810
2843
  this.match(CircuitScriptParser.INTEGER_VALUE);
2811
2844
  }
2812
2845
  break;
2813
2846
  case 2:
2814
2847
  {
2815
- this.state = 536;
2848
+ this.state = 541;
2816
2849
  this.data_expr(0);
2817
2850
  }
2818
2851
  break;
@@ -2823,7 +2856,7 @@ class CircuitScriptParser extends antlr.Parser {
2823
2856
  localContext = new Wire_expr_direction_onlyContext(localContext);
2824
2857
  this.enterOuterAlt(localContext, 2);
2825
2858
  {
2826
- this.state = 539;
2859
+ this.state = 544;
2827
2860
  this.match(CircuitScriptParser.ID);
2828
2861
  }
2829
2862
  break;
@@ -2845,26 +2878,26 @@ class CircuitScriptParser extends antlr.Parser {
2845
2878
  }
2846
2879
  wire_expr() {
2847
2880
  let localContext = new Wire_exprContext(this.context, this.state);
2848
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_wire_expr);
2881
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_wire_expr);
2849
2882
  try {
2850
2883
  let alternative;
2851
2884
  this.enterOuterAlt(localContext, 1);
2852
2885
  {
2853
- this.state = 542;
2886
+ this.state = 547;
2854
2887
  this.match(CircuitScriptParser.Wire);
2855
- this.state = 546;
2888
+ this.state = 551;
2856
2889
  this.errorHandler.sync(this);
2857
2890
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2858
2891
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2859
2892
  if (alternative === 1) {
2860
2893
  {
2861
2894
  {
2862
- this.state = 543;
2895
+ this.state = 548;
2863
2896
  this.wire_atom_expr();
2864
2897
  }
2865
2898
  }
2866
2899
  }
2867
- this.state = 548;
2900
+ this.state = 553;
2868
2901
  this.errorHandler.sync(this);
2869
2902
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
2870
2903
  }
@@ -2886,13 +2919,13 @@ class CircuitScriptParser extends antlr.Parser {
2886
2919
  }
2887
2920
  point_expr() {
2888
2921
  let localContext = new Point_exprContext(this.context, this.state);
2889
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_point_expr);
2922
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_point_expr);
2890
2923
  try {
2891
2924
  this.enterOuterAlt(localContext, 1);
2892
2925
  {
2893
- this.state = 549;
2926
+ this.state = 554;
2894
2927
  this.match(CircuitScriptParser.Point);
2895
- this.state = 550;
2928
+ this.state = 555;
2896
2929
  this.match(CircuitScriptParser.ID);
2897
2930
  }
2898
2931
  }
@@ -2912,13 +2945,13 @@ class CircuitScriptParser extends antlr.Parser {
2912
2945
  }
2913
2946
  import_expr() {
2914
2947
  let localContext = new Import_exprContext(this.context, this.state);
2915
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_import_expr);
2948
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_import_expr);
2916
2949
  try {
2917
2950
  this.enterOuterAlt(localContext, 1);
2918
2951
  {
2919
- this.state = 552;
2952
+ this.state = 557;
2920
2953
  this.match(CircuitScriptParser.Import);
2921
- this.state = 553;
2954
+ this.state = 558;
2922
2955
  this.match(CircuitScriptParser.ID);
2923
2956
  }
2924
2957
  }
@@ -2938,30 +2971,30 @@ class CircuitScriptParser extends antlr.Parser {
2938
2971
  }
2939
2972
  frame_expr() {
2940
2973
  let localContext = new Frame_exprContext(this.context, this.state);
2941
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_frame_expr);
2974
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_frame_expr);
2942
2975
  let _la;
2943
2976
  try {
2944
2977
  this.enterOuterAlt(localContext, 1);
2945
2978
  {
2946
- this.state = 555;
2979
+ this.state = 560;
2947
2980
  this.match(CircuitScriptParser.Frame);
2948
- this.state = 556;
2981
+ this.state = 561;
2949
2982
  this.match(CircuitScriptParser.T__0);
2950
- this.state = 557;
2983
+ this.state = 562;
2951
2984
  this.match(CircuitScriptParser.NEWLINE);
2952
- this.state = 558;
2985
+ this.state = 563;
2953
2986
  this.match(CircuitScriptParser.INDENT);
2954
- this.state = 561;
2987
+ this.state = 566;
2955
2988
  this.errorHandler.sync(this);
2956
2989
  _la = this.tokenStream.LA(1);
2957
2990
  do {
2958
2991
  {
2959
- this.state = 561;
2992
+ this.state = 566;
2960
2993
  this.errorHandler.sync(this);
2961
2994
  switch (this.tokenStream.LA(1)) {
2962
2995
  case CircuitScriptParser.NEWLINE:
2963
2996
  {
2964
- this.state = 559;
2997
+ this.state = 564;
2965
2998
  this.match(CircuitScriptParser.NEWLINE);
2966
2999
  }
2967
3000
  break;
@@ -2983,7 +3016,7 @@ class CircuitScriptParser extends antlr.Parser {
2983
3016
  case CircuitScriptParser.Divide:
2984
3017
  case CircuitScriptParser.ID:
2985
3018
  {
2986
- this.state = 560;
3019
+ this.state = 565;
2987
3020
  this.expression();
2988
3021
  }
2989
3022
  break;
@@ -2991,11 +3024,11 @@ class CircuitScriptParser extends antlr.Parser {
2991
3024
  throw new antlr.NoViableAltException(this);
2992
3025
  }
2993
3026
  }
2994
- this.state = 563;
3027
+ this.state = 568;
2995
3028
  this.errorHandler.sync(this);
2996
3029
  _la = this.tokenStream.LA(1);
2997
3030
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
2998
- this.state = 565;
3031
+ this.state = 570;
2999
3032
  this.match(CircuitScriptParser.DEDENT);
3000
3033
  }
3001
3034
  }
@@ -3015,33 +3048,33 @@ class CircuitScriptParser extends antlr.Parser {
3015
3048
  }
3016
3049
  if_expr() {
3017
3050
  let localContext = new If_exprContext(this.context, this.state);
3018
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_if_expr);
3051
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_expr);
3019
3052
  let _la;
3020
3053
  try {
3021
3054
  let alternative;
3022
3055
  this.enterOuterAlt(localContext, 1);
3023
3056
  {
3024
- this.state = 567;
3057
+ this.state = 572;
3025
3058
  this.match(CircuitScriptParser.If);
3026
- this.state = 568;
3059
+ this.state = 573;
3027
3060
  this.data_expr(0);
3028
- this.state = 569;
3061
+ this.state = 574;
3029
3062
  this.match(CircuitScriptParser.T__0);
3030
- this.state = 570;
3063
+ this.state = 575;
3031
3064
  this.match(CircuitScriptParser.NEWLINE);
3032
- this.state = 571;
3065
+ this.state = 576;
3033
3066
  this.match(CircuitScriptParser.INDENT);
3034
- this.state = 574;
3067
+ this.state = 579;
3035
3068
  this.errorHandler.sync(this);
3036
3069
  _la = this.tokenStream.LA(1);
3037
3070
  do {
3038
3071
  {
3039
- this.state = 574;
3072
+ this.state = 579;
3040
3073
  this.errorHandler.sync(this);
3041
3074
  switch (this.tokenStream.LA(1)) {
3042
3075
  case CircuitScriptParser.NEWLINE:
3043
3076
  {
3044
- this.state = 572;
3077
+ this.state = 577;
3045
3078
  this.match(CircuitScriptParser.NEWLINE);
3046
3079
  }
3047
3080
  break;
@@ -3063,7 +3096,7 @@ class CircuitScriptParser extends antlr.Parser {
3063
3096
  case CircuitScriptParser.Divide:
3064
3097
  case CircuitScriptParser.ID:
3065
3098
  {
3066
- this.state = 573;
3099
+ this.state = 578;
3067
3100
  this.expression();
3068
3101
  }
3069
3102
  break;
@@ -3071,34 +3104,34 @@ class CircuitScriptParser extends antlr.Parser {
3071
3104
  throw new antlr.NoViableAltException(this);
3072
3105
  }
3073
3106
  }
3074
- this.state = 576;
3107
+ this.state = 581;
3075
3108
  this.errorHandler.sync(this);
3076
3109
  _la = this.tokenStream.LA(1);
3077
3110
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3078
- this.state = 578;
3111
+ this.state = 583;
3079
3112
  this.match(CircuitScriptParser.DEDENT);
3080
- this.state = 582;
3113
+ this.state = 587;
3081
3114
  this.errorHandler.sync(this);
3082
3115
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3083
3116
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3084
3117
  if (alternative === 1) {
3085
3118
  {
3086
3119
  {
3087
- this.state = 579;
3120
+ this.state = 584;
3088
3121
  this.if_inner_expr();
3089
3122
  }
3090
3123
  }
3091
3124
  }
3092
- this.state = 584;
3125
+ this.state = 589;
3093
3126
  this.errorHandler.sync(this);
3094
3127
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3095
3128
  }
3096
- this.state = 586;
3129
+ this.state = 591;
3097
3130
  this.errorHandler.sync(this);
3098
3131
  _la = this.tokenStream.LA(1);
3099
3132
  if (_la === 25) {
3100
3133
  {
3101
- this.state = 585;
3134
+ this.state = 590;
3102
3135
  this.else_expr();
3103
3136
  }
3104
3137
  }
@@ -3120,34 +3153,34 @@ class CircuitScriptParser extends antlr.Parser {
3120
3153
  }
3121
3154
  if_inner_expr() {
3122
3155
  let localContext = new If_inner_exprContext(this.context, this.state);
3123
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_if_inner_expr);
3156
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_if_inner_expr);
3124
3157
  let _la;
3125
3158
  try {
3126
3159
  this.enterOuterAlt(localContext, 1);
3127
3160
  {
3128
- this.state = 588;
3161
+ this.state = 593;
3129
3162
  this.match(CircuitScriptParser.Else);
3130
- this.state = 589;
3163
+ this.state = 594;
3131
3164
  this.match(CircuitScriptParser.If);
3132
- this.state = 590;
3165
+ this.state = 595;
3133
3166
  this.data_expr(0);
3134
- this.state = 591;
3167
+ this.state = 596;
3135
3168
  this.match(CircuitScriptParser.T__0);
3136
- this.state = 592;
3169
+ this.state = 597;
3137
3170
  this.match(CircuitScriptParser.NEWLINE);
3138
- this.state = 593;
3171
+ this.state = 598;
3139
3172
  this.match(CircuitScriptParser.INDENT);
3140
- this.state = 596;
3173
+ this.state = 601;
3141
3174
  this.errorHandler.sync(this);
3142
3175
  _la = this.tokenStream.LA(1);
3143
3176
  do {
3144
3177
  {
3145
- this.state = 596;
3178
+ this.state = 601;
3146
3179
  this.errorHandler.sync(this);
3147
3180
  switch (this.tokenStream.LA(1)) {
3148
3181
  case CircuitScriptParser.NEWLINE:
3149
3182
  {
3150
- this.state = 594;
3183
+ this.state = 599;
3151
3184
  this.match(CircuitScriptParser.NEWLINE);
3152
3185
  }
3153
3186
  break;
@@ -3169,7 +3202,7 @@ class CircuitScriptParser extends antlr.Parser {
3169
3202
  case CircuitScriptParser.Divide:
3170
3203
  case CircuitScriptParser.ID:
3171
3204
  {
3172
- this.state = 595;
3205
+ this.state = 600;
3173
3206
  this.expression();
3174
3207
  }
3175
3208
  break;
@@ -3177,11 +3210,11 @@ class CircuitScriptParser extends antlr.Parser {
3177
3210
  throw new antlr.NoViableAltException(this);
3178
3211
  }
3179
3212
  }
3180
- this.state = 598;
3213
+ this.state = 603;
3181
3214
  this.errorHandler.sync(this);
3182
3215
  _la = this.tokenStream.LA(1);
3183
3216
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3184
- this.state = 600;
3217
+ this.state = 605;
3185
3218
  this.match(CircuitScriptParser.DEDENT);
3186
3219
  }
3187
3220
  }
@@ -3201,30 +3234,30 @@ class CircuitScriptParser extends antlr.Parser {
3201
3234
  }
3202
3235
  else_expr() {
3203
3236
  let localContext = new Else_exprContext(this.context, this.state);
3204
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_else_expr);
3237
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_else_expr);
3205
3238
  let _la;
3206
3239
  try {
3207
3240
  this.enterOuterAlt(localContext, 1);
3208
3241
  {
3209
- this.state = 602;
3242
+ this.state = 607;
3210
3243
  this.match(CircuitScriptParser.Else);
3211
- this.state = 603;
3244
+ this.state = 608;
3212
3245
  this.match(CircuitScriptParser.T__0);
3213
- this.state = 604;
3246
+ this.state = 609;
3214
3247
  this.match(CircuitScriptParser.NEWLINE);
3215
- this.state = 605;
3248
+ this.state = 610;
3216
3249
  this.match(CircuitScriptParser.INDENT);
3217
- this.state = 608;
3250
+ this.state = 613;
3218
3251
  this.errorHandler.sync(this);
3219
3252
  _la = this.tokenStream.LA(1);
3220
3253
  do {
3221
3254
  {
3222
- this.state = 608;
3255
+ this.state = 613;
3223
3256
  this.errorHandler.sync(this);
3224
3257
  switch (this.tokenStream.LA(1)) {
3225
3258
  case CircuitScriptParser.NEWLINE:
3226
3259
  {
3227
- this.state = 606;
3260
+ this.state = 611;
3228
3261
  this.match(CircuitScriptParser.NEWLINE);
3229
3262
  }
3230
3263
  break;
@@ -3246,7 +3279,7 @@ class CircuitScriptParser extends antlr.Parser {
3246
3279
  case CircuitScriptParser.Divide:
3247
3280
  case CircuitScriptParser.ID:
3248
3281
  {
3249
- this.state = 607;
3282
+ this.state = 612;
3250
3283
  this.expression();
3251
3284
  }
3252
3285
  break;
@@ -3254,11 +3287,11 @@ class CircuitScriptParser extends antlr.Parser {
3254
3287
  throw new antlr.NoViableAltException(this);
3255
3288
  }
3256
3289
  }
3257
- this.state = 610;
3290
+ this.state = 615;
3258
3291
  this.errorHandler.sync(this);
3259
3292
  _la = this.tokenStream.LA(1);
3260
3293
  } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 165651216) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 65797) !== 0));
3261
- this.state = 612;
3294
+ this.state = 617;
3262
3295
  this.match(CircuitScriptParser.DEDENT);
3263
3296
  }
3264
3297
  }
@@ -3404,19 +3437,20 @@ CircuitScriptParser.RULE_net_namespace_expr = 38;
3404
3437
  CircuitScriptParser.RULE_function_return_expr = 39;
3405
3438
  CircuitScriptParser.RULE_create_component_expr = 40;
3406
3439
  CircuitScriptParser.RULE_create_graphic_expr = 41;
3407
- CircuitScriptParser.RULE_graphic_expr = 42;
3408
- CircuitScriptParser.RULE_property_expr = 43;
3409
- CircuitScriptParser.RULE_property_key_expr = 44;
3410
- CircuitScriptParser.RULE_property_value_expr = 45;
3411
- CircuitScriptParser.RULE_blank_expr = 46;
3412
- CircuitScriptParser.RULE_wire_atom_expr = 47;
3413
- CircuitScriptParser.RULE_wire_expr = 48;
3414
- CircuitScriptParser.RULE_point_expr = 49;
3415
- CircuitScriptParser.RULE_import_expr = 50;
3416
- CircuitScriptParser.RULE_frame_expr = 51;
3417
- CircuitScriptParser.RULE_if_expr = 52;
3418
- CircuitScriptParser.RULE_if_inner_expr = 53;
3419
- CircuitScriptParser.RULE_else_expr = 54;
3440
+ CircuitScriptParser.RULE_nested_properties_inner = 42;
3441
+ CircuitScriptParser.RULE_graphic_expr = 43;
3442
+ CircuitScriptParser.RULE_property_expr = 44;
3443
+ CircuitScriptParser.RULE_property_key_expr = 45;
3444
+ CircuitScriptParser.RULE_property_value_expr = 46;
3445
+ CircuitScriptParser.RULE_blank_expr = 47;
3446
+ CircuitScriptParser.RULE_wire_atom_expr = 48;
3447
+ CircuitScriptParser.RULE_wire_expr = 49;
3448
+ CircuitScriptParser.RULE_point_expr = 50;
3449
+ CircuitScriptParser.RULE_import_expr = 51;
3450
+ CircuitScriptParser.RULE_frame_expr = 52;
3451
+ CircuitScriptParser.RULE_if_expr = 53;
3452
+ CircuitScriptParser.RULE_if_inner_expr = 54;
3453
+ CircuitScriptParser.RULE_else_expr = 55;
3420
3454
  CircuitScriptParser.literalNames = [
3421
3455
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
3422
3456
  "'branch'", "'create'", "'component'", "'graphic'", "'wire'", "'pin'",
@@ -3448,13 +3482,13 @@ CircuitScriptParser.ruleNames = [
3448
3482
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3449
3483
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3450
3484
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
3451
- "create_component_expr", "create_graphic_expr", "graphic_expr",
3452
- "property_expr", "property_key_expr", "property_value_expr", "blank_expr",
3453
- "wire_atom_expr", "wire_expr", "point_expr", "import_expr", "frame_expr",
3454
- "if_expr", "if_inner_expr", "else_expr",
3485
+ "create_component_expr", "create_graphic_expr", "nested_properties_inner",
3486
+ "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
3487
+ "blank_expr", "wire_atom_expr", "wire_expr", "point_expr", "import_expr",
3488
+ "frame_expr", "if_expr", "if_inner_expr", "else_expr",
3455
3489
  ];
3456
3490
  CircuitScriptParser._serializedATN = [
3457
- 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,
3491
+ 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,
3458
3492
  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,
3459
3493
  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,
3460
3494
  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,
@@ -3462,225 +3496,227 @@ CircuitScriptParser._serializedATN = [
3462
3496
  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,
3463
3497
  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,
3464
3498
  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,
3465
- 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,
3466
- 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,
3467
- 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,
3468
- 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,
3469
- 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,
3470
- 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,
3471
- 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,
3472
- 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,
3473
- 5, 13, 212, 8, 13, 10, 13, 12, 13, 215, 9, 13, 1, 13, 3, 13, 218, 8, 13, 1, 14, 1, 14,
3474
- 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 226, 8, 14, 10, 14, 12, 14, 229, 9, 14, 1, 14, 1, 14,
3475
- 1, 14, 1, 14, 1, 14, 4, 14, 236, 8, 14, 11, 14, 12, 14, 237, 1, 14, 1, 14, 1, 15, 1, 15,
3476
- 1, 15, 1, 15, 1, 15, 5, 15, 247, 8, 15, 10, 15, 12, 15, 250, 9, 15, 1, 16, 1, 16, 1, 17,
3477
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 260, 8, 17, 11, 17, 12, 17, 261, 1, 17, 1, 17,
3478
- 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,
3479
- 20, 3, 20, 278, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 284, 8, 21, 11, 21, 12, 21, 285,
3480
- 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,
3481
- 1, 25, 1, 25, 5, 25, 303, 8, 25, 10, 25, 12, 25, 306, 9, 25, 1, 25, 1, 25, 5, 25, 310,
3482
- 8, 25, 10, 25, 12, 25, 313, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 318, 8, 25, 10, 25, 12,
3483
- 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,
3484
- 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,
3485
- 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,
3486
- 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 364, 8, 28, 10, 28, 12, 28, 367,
3487
- 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,
3488
- 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,
3489
- 32, 4, 32, 392, 8, 32, 11, 32, 12, 32, 393, 1, 32, 1, 32, 1, 33, 1, 33, 3, 33, 400, 8,
3490
- 33, 1, 34, 1, 34, 1, 34, 5, 34, 405, 8, 34, 10, 34, 12, 34, 408, 9, 34, 1, 34, 1, 34, 1,
3491
- 34, 1, 34, 5, 34, 414, 8, 34, 10, 34, 12, 34, 417, 9, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1,
3492
- 34, 1, 34, 1, 34, 5, 34, 426, 8, 34, 10, 34, 12, 34, 429, 9, 34, 3, 34, 431, 8, 34, 1,
3493
- 35, 1, 35, 1, 35, 5, 35, 436, 8, 35, 10, 35, 12, 35, 439, 9, 35, 1, 36, 1, 36, 3, 36, 443,
3494
- 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,
3495
- 37, 455, 8, 37, 11, 37, 12, 37, 456, 1, 38, 3, 38, 460, 8, 38, 1, 38, 1, 38, 3, 38, 464,
3496
- 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,
3497
- 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,
3498
- 4, 41, 489, 8, 41, 11, 41, 12, 41, 490, 1, 41, 1, 41, 1, 42, 1, 42, 3, 42, 497, 8, 42,
3499
- 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,
3500
- 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 516, 8, 45, 11, 45, 12, 45, 517, 1, 45, 1, 45,
3501
- 1, 45, 1, 45, 5, 45, 524, 8, 45, 10, 45, 12, 45, 527, 9, 45, 3, 45, 529, 8, 45, 1, 46,
3502
- 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,
3503
- 48, 1, 48, 5, 48, 545, 8, 48, 10, 48, 12, 48, 548, 9, 48, 1, 49, 1, 49, 1, 49, 1, 50, 1,
3504
- 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 4, 51, 562, 8, 51, 11, 51, 12, 51,
3505
- 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,
3506
- 52, 12, 52, 576, 1, 52, 1, 52, 5, 52, 581, 8, 52, 10, 52, 12, 52, 584, 9, 52, 1, 52, 3,
3507
- 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,
3508
- 11, 53, 12, 53, 598, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 4, 54, 609,
3509
- 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,
3510
- 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
3511
- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3512
- 102, 104, 106, 108, 0, 12, 2, 0, 9, 9, 18, 20, 1, 0, 44, 45, 2, 0, 45, 45, 48, 48, 2, 0,
3513
- 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,
3514
- 37, 2, 0, 43, 43, 45, 49, 2, 0, 14, 14, 44, 44, 2, 0, 44, 45, 48, 48, 656, 0, 112, 1, 0,
3515
- 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,
3516
- 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,
3517
- 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,
3518
- 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,
3519
- 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,
3520
- 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,
3521
- 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,
3522
- 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,
3523
- 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,
3524
- 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,
3525
- 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,
3526
- 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,
3527
- 0, 106, 588, 1, 0, 0, 0, 108, 602, 1, 0, 0, 0, 110, 113, 3, 2, 1, 0, 111, 113, 5, 52, 0,
3528
- 0, 112, 110, 1, 0, 0, 0, 112, 111, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 112, 1, 0, 0,
3529
- 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,
3530
- 118, 137, 3, 18, 9, 0, 119, 137, 3, 26, 13, 0, 120, 137, 3, 24, 12, 0, 121, 137, 3, 46,
3531
- 23, 0, 122, 137, 3, 52, 26, 0, 123, 137, 3, 8, 4, 0, 124, 137, 3, 54, 27, 0, 125, 137,
3532
- 3, 44, 22, 0, 126, 137, 3, 64, 32, 0, 127, 137, 3, 74, 37, 0, 128, 137, 3, 96, 48, 0,
3533
- 129, 137, 3, 100, 50, 0, 130, 137, 3, 102, 51, 0, 131, 137, 3, 70, 35, 0, 132, 137,
3534
- 3, 34, 17, 0, 133, 137, 3, 4, 2, 0, 134, 137, 3, 98, 49, 0, 135, 137, 3, 104, 52, 0, 136,
3535
- 118, 1, 0, 0, 0, 136, 119, 1, 0, 0, 0, 136, 120, 1, 0, 0, 0, 136, 121, 1, 0, 0, 0, 136,
3536
- 122, 1, 0, 0, 0, 136, 123, 1, 0, 0, 0, 136, 124, 1, 0, 0, 0, 136, 125, 1, 0, 0, 0, 136,
3537
- 126, 1, 0, 0, 0, 136, 127, 1, 0, 0, 0, 136, 128, 1, 0, 0, 0, 136, 129, 1, 0, 0, 0, 136,
3538
- 130, 1, 0, 0, 0, 136, 131, 1, 0, 0, 0, 136, 132, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, 136,
3539
- 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,
3540
- 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,
3541
- 0, 0, 0, 143, 144, 7, 0, 0, 0, 144, 145, 5, 1, 0, 0, 145, 146, 5, 52, 0, 0, 146, 149, 5,
3542
- 54, 0, 0, 147, 150, 5, 52, 0, 0, 148, 150, 3, 2, 1, 0, 149, 147, 1, 0, 0, 0, 149, 148,
3543
- 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153,
3544
- 1, 0, 0, 0, 153, 154, 5, 55, 0, 0, 154, 7, 1, 0, 0, 0, 155, 156, 3, 70, 35, 0, 156, 157,
3545
- 5, 1, 0, 0, 157, 158, 5, 52, 0, 0, 158, 161, 5, 54, 0, 0, 159, 162, 5, 52, 0, 0, 160, 162,
3546
- 3, 10, 5, 0, 161, 159, 1, 0, 0, 0, 161, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 161,
3547
- 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,
3548
- 0, 0, 0, 167, 168, 7, 1, 0, 0, 168, 169, 5, 1, 0, 0, 169, 170, 3, 62, 31, 0, 170, 11, 1,
3549
- 0, 0, 0, 171, 172, 5, 14, 0, 0, 172, 173, 7, 2, 0, 0, 173, 13, 1, 0, 0, 0, 174, 175, 5,
3550
- 44, 0, 0, 175, 178, 5, 1, 0, 0, 176, 179, 3, 62, 31, 0, 177, 179, 5, 44, 0, 0, 178, 176,
3551
- 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 15, 1, 0, 0, 0, 180, 183, 3, 56, 28, 0, 181, 183,
3552
- 3, 46, 23, 0, 182, 180, 1, 0, 0, 0, 182, 181, 1, 0, 0, 0, 183, 187, 1, 0, 0, 0, 184, 186,
3553
- 3, 14, 7, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188,
3554
- 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 192, 3, 12, 6, 0, 191, 190,
3555
- 1, 0, 0, 0, 191, 192, 1, 0, 0, 0, 192, 17, 1, 0, 0, 0, 193, 194, 5, 15, 0, 0, 194, 195,
3556
- 3, 16, 8, 0, 195, 19, 1, 0, 0, 0, 196, 199, 3, 16, 8, 0, 197, 199, 3, 12, 6, 0, 198, 196,
3557
- 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,
3558
- 0, 0, 0, 202, 205, 5, 16, 0, 0, 203, 206, 3, 20, 10, 0, 204, 206, 5, 18, 0, 0, 205, 203,
3559
- 1, 0, 0, 0, 205, 204, 1, 0, 0, 0, 206, 25, 1, 0, 0, 0, 207, 217, 5, 17, 0, 0, 208, 213,
3560
- 3, 20, 10, 0, 209, 210, 5, 2, 0, 0, 210, 212, 3, 20, 10, 0, 211, 209, 1, 0, 0, 0, 212,
3561
- 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1, 0, 0, 0, 214, 218, 1, 0, 0, 0, 215,
3562
- 213, 1, 0, 0, 0, 216, 218, 5, 18, 0, 0, 217, 208, 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218,
3563
- 27, 1, 0, 0, 0, 219, 220, 5, 16, 0, 0, 220, 221, 3, 20, 10, 0, 221, 222, 5, 17, 0, 0, 222,
3564
- 227, 3, 20, 10, 0, 223, 224, 5, 2, 0, 0, 224, 226, 3, 20, 10, 0, 225, 223, 1, 0, 0, 0,
3565
- 226, 229, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 230, 1, 0, 0, 0,
3566
- 229, 227, 1, 0, 0, 0, 230, 231, 5, 1, 0, 0, 231, 232, 5, 52, 0, 0, 232, 235, 5, 54, 0,
3567
- 0, 233, 236, 5, 52, 0, 0, 234, 236, 3, 30, 15, 0, 235, 233, 1, 0, 0, 0, 235, 234, 1, 0,
3568
- 0, 0, 236, 237, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 239, 1, 0,
3569
- 0, 0, 239, 240, 5, 55, 0, 0, 240, 29, 1, 0, 0, 0, 241, 242, 3, 22, 11, 0, 242, 243, 5,
3570
- 1, 0, 0, 243, 248, 3, 32, 16, 0, 244, 245, 5, 2, 0, 0, 245, 247, 3, 32, 16, 0, 246, 244,
3571
- 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,
3572
- 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,
3573
- 12, 0, 254, 255, 5, 1, 0, 0, 255, 256, 5, 52, 0, 0, 256, 259, 5, 54, 0, 0, 257, 260, 5,
3574
- 52, 0, 0, 258, 260, 3, 36, 18, 0, 259, 257, 1, 0, 0, 0, 259, 258, 1, 0, 0, 0, 260, 261,
3575
- 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 264,
3576
- 5, 55, 0, 0, 264, 35, 1, 0, 0, 0, 265, 268, 3, 2, 1, 0, 266, 268, 3, 38, 19, 0, 267, 265,
3577
- 1, 0, 0, 0, 267, 266, 1, 0, 0, 0, 268, 37, 1, 0, 0, 0, 269, 270, 3, 22, 11, 0, 270, 273,
3578
- 5, 1, 0, 0, 271, 274, 3, 40, 20, 0, 272, 274, 3, 42, 21, 0, 273, 271, 1, 0, 0, 0, 273,
3579
- 272, 1, 0, 0, 0, 274, 39, 1, 0, 0, 0, 275, 278, 3, 2, 1, 0, 276, 278, 5, 42, 0, 0, 277,
3580
- 275, 1, 0, 0, 0, 277, 276, 1, 0, 0, 0, 278, 41, 1, 0, 0, 0, 279, 280, 5, 52, 0, 0, 280,
3581
- 283, 5, 54, 0, 0, 281, 284, 5, 52, 0, 0, 282, 284, 3, 2, 1, 0, 283, 281, 1, 0, 0, 0, 283,
3582
- 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286,
3583
- 287, 1, 0, 0, 0, 287, 288, 5, 55, 0, 0, 288, 43, 1, 0, 0, 0, 289, 290, 5, 8, 0, 0, 290,
3584
- 45, 1, 0, 0, 0, 291, 292, 3, 70, 35, 0, 292, 293, 5, 3, 0, 0, 293, 294, 3, 56, 28, 0, 294,
3585
- 47, 1, 0, 0, 0, 295, 296, 5, 44, 0, 0, 296, 297, 5, 3, 0, 0, 297, 298, 3, 56, 28, 0, 298,
3586
- 49, 1, 0, 0, 0, 299, 304, 3, 56, 28, 0, 300, 301, 5, 2, 0, 0, 301, 303, 3, 56, 28, 0, 302,
3587
- 300, 1, 0, 0, 0, 303, 306, 1, 0, 0, 0, 304, 302, 1, 0, 0, 0, 304, 305, 1, 0, 0, 0, 305,
3588
- 311, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 307, 308, 5, 2, 0, 0, 308, 310, 3, 48, 24, 0, 309,
3589
- 307, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312,
3590
- 323, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 319, 3, 48, 24, 0, 315, 316, 5, 2, 0, 0, 316,
3591
- 318, 3, 48, 24, 0, 317, 315, 1, 0, 0, 0, 318, 321, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 319,
3592
- 320, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 322, 299, 1, 0, 0, 0, 322,
3593
- 314, 1, 0, 0, 0, 323, 51, 1, 0, 0, 0, 324, 325, 3, 70, 35, 0, 325, 326, 5, 3, 0, 0, 326,
3594
- 327, 3, 56, 28, 0, 327, 53, 1, 0, 0, 0, 328, 329, 5, 4, 0, 0, 329, 330, 5, 44, 0, 0, 330,
3595
- 331, 5, 3, 0, 0, 331, 332, 3, 56, 28, 0, 332, 55, 1, 0, 0, 0, 333, 334, 6, 28, -1, 0, 334,
3596
- 335, 5, 40, 0, 0, 335, 336, 3, 56, 28, 0, 336, 337, 5, 41, 0, 0, 337, 349, 1, 0, 0, 0,
3597
- 338, 341, 3, 62, 31, 0, 339, 341, 3, 70, 35, 0, 340, 338, 1, 0, 0, 0, 340, 339, 1, 0,
3598
- 0, 0, 341, 349, 1, 0, 0, 0, 342, 343, 3, 60, 30, 0, 343, 344, 3, 56, 28, 8, 344, 349,
3599
- 1, 0, 0, 0, 345, 349, 3, 80, 40, 0, 346, 349, 3, 82, 41, 0, 347, 349, 3, 74, 37, 0, 348,
3600
- 333, 1, 0, 0, 0, 348, 340, 1, 0, 0, 0, 348, 342, 1, 0, 0, 0, 348, 345, 1, 0, 0, 0, 348,
3601
- 346, 1, 0, 0, 0, 348, 347, 1, 0, 0, 0, 349, 365, 1, 0, 0, 0, 350, 351, 10, 7, 0, 0, 351,
3602
- 352, 7, 4, 0, 0, 352, 364, 3, 56, 28, 8, 353, 354, 10, 6, 0, 0, 354, 355, 7, 5, 0, 0, 355,
3603
- 364, 3, 56, 28, 7, 356, 357, 10, 5, 0, 0, 357, 358, 3, 58, 29, 0, 358, 359, 3, 56, 28,
3604
- 6, 359, 364, 1, 0, 0, 0, 360, 361, 10, 4, 0, 0, 361, 362, 7, 6, 0, 0, 362, 364, 3, 56,
3605
- 28, 5, 363, 350, 1, 0, 0, 0, 363, 353, 1, 0, 0, 0, 363, 356, 1, 0, 0, 0, 363, 360, 1, 0,
3606
- 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,
3607
- 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,
3608
- 371, 61, 1, 0, 0, 0, 372, 374, 5, 37, 0, 0, 373, 372, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0,
3609
- 374, 375, 1, 0, 0, 0, 375, 378, 7, 9, 0, 0, 376, 378, 3, 92, 46, 0, 377, 373, 1, 0, 0,
3610
- 0, 377, 376, 1, 0, 0, 0, 378, 63, 1, 0, 0, 0, 379, 380, 5, 22, 0, 0, 380, 381, 5, 44, 0,
3611
- 0, 381, 383, 5, 40, 0, 0, 382, 384, 3, 68, 34, 0, 383, 382, 1, 0, 0, 0, 383, 384, 1, 0,
3612
- 0, 0, 384, 385, 1, 0, 0, 0, 385, 386, 5, 41, 0, 0, 386, 387, 5, 1, 0, 0, 387, 388, 5, 52,
3613
- 0, 0, 388, 391, 5, 54, 0, 0, 389, 392, 5, 52, 0, 0, 390, 392, 3, 66, 33, 0, 391, 389,
3614
- 1, 0, 0, 0, 391, 390, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 393, 394,
3615
- 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 396, 5, 55, 0, 0, 396, 65, 1, 0, 0, 0, 397, 400,
3616
- 3, 2, 1, 0, 398, 400, 3, 78, 39, 0, 399, 397, 1, 0, 0, 0, 399, 398, 1, 0, 0, 0, 400, 67,
3617
- 1, 0, 0, 0, 401, 406, 5, 44, 0, 0, 402, 403, 5, 2, 0, 0, 403, 405, 5, 44, 0, 0, 404, 402,
3618
- 1, 0, 0, 0, 405, 408, 1, 0, 0, 0, 406, 404, 1, 0, 0, 0, 406, 407, 1, 0, 0, 0, 407, 415,
3619
- 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 410, 5, 2, 0, 0, 410, 411, 5, 44, 0, 0, 411, 412,
3620
- 5, 3, 0, 0, 412, 414, 3, 62, 31, 0, 413, 409, 1, 0, 0, 0, 414, 417, 1, 0, 0, 0, 415, 413,
3621
- 1, 0, 0, 0, 415, 416, 1, 0, 0, 0, 416, 431, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 418, 419,
3622
- 5, 44, 0, 0, 419, 420, 5, 3, 0, 0, 420, 427, 3, 62, 31, 0, 421, 422, 5, 2, 0, 0, 422, 423,
3623
- 5, 44, 0, 0, 423, 424, 5, 3, 0, 0, 424, 426, 3, 62, 31, 0, 425, 421, 1, 0, 0, 0, 426, 429,
3624
- 1, 0, 0, 0, 427, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427,
3625
- 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,
3626
- 44, 0, 0, 433, 434, 5, 5, 0, 0, 434, 436, 5, 44, 0, 0, 435, 433, 1, 0, 0, 0, 436, 439,
3627
- 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,
3628
- 0, 0, 0, 440, 442, 5, 40, 0, 0, 441, 443, 3, 50, 25, 0, 442, 441, 1, 0, 0, 0, 442, 443,
3629
- 1, 0, 0, 0, 443, 444, 1, 0, 0, 0, 444, 448, 5, 41, 0, 0, 445, 446, 5, 5, 0, 0, 446, 448,
3630
- 5, 44, 0, 0, 447, 440, 1, 0, 0, 0, 447, 445, 1, 0, 0, 0, 448, 73, 1, 0, 0, 0, 449, 451,
3631
- 3, 76, 38, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 454,
3632
- 5, 44, 0, 0, 453, 455, 3, 72, 36, 0, 454, 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 454,
3633
- 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 75, 1, 0, 0, 0, 458, 460, 5, 36, 0, 0, 459, 458,
3634
- 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 463, 5, 38, 0, 0, 462, 464,
3635
- 3, 56, 28, 0, 463, 462, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 77, 1, 0, 0, 0, 465, 466,
3636
- 5, 21, 0, 0, 466, 467, 3, 56, 28, 0, 467, 79, 1, 0, 0, 0, 468, 469, 5, 10, 0, 0, 469, 470,
3637
- 5, 11, 0, 0, 470, 471, 5, 1, 0, 0, 471, 472, 5, 52, 0, 0, 472, 475, 5, 54, 0, 0, 473, 476,
3638
- 5, 52, 0, 0, 474, 476, 3, 86, 43, 0, 475, 473, 1, 0, 0, 0, 475, 474, 1, 0, 0, 0, 476, 477,
3639
- 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480,
3640
- 5, 55, 0, 0, 480, 81, 1, 0, 0, 0, 481, 482, 5, 10, 0, 0, 482, 483, 5, 12, 0, 0, 483, 484,
3641
- 5, 1, 0, 0, 484, 485, 5, 52, 0, 0, 485, 488, 5, 54, 0, 0, 486, 489, 5, 52, 0, 0, 487, 489,
3642
- 3, 84, 42, 0, 488, 486, 1, 0, 0, 0, 488, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 488,
3643
- 1, 0, 0, 0, 490, 491, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 5, 55, 0, 0, 493, 83,
3644
- 1, 0, 0, 0, 494, 496, 7, 10, 0, 0, 495, 497, 5, 1, 0, 0, 496, 495, 1, 0, 0, 0, 496, 497,
3645
- 1, 0, 0, 0, 497, 503, 1, 0, 0, 0, 498, 504, 3, 50, 25, 0, 499, 500, 5, 40, 0, 0, 500, 501,
3646
- 3, 50, 25, 0, 501, 502, 5, 41, 0, 0, 502, 504, 1, 0, 0, 0, 503, 498, 1, 0, 0, 0, 503, 499,
3647
- 1, 0, 0, 0, 504, 85, 1, 0, 0, 0, 505, 506, 3, 88, 44, 0, 506, 507, 5, 1, 0, 0, 507, 508,
3648
- 3, 90, 45, 0, 508, 87, 1, 0, 0, 0, 509, 510, 7, 11, 0, 0, 510, 89, 1, 0, 0, 0, 511, 512,
3649
- 5, 52, 0, 0, 512, 515, 5, 54, 0, 0, 513, 516, 5, 52, 0, 0, 514, 516, 3, 86, 43, 0, 515,
3650
- 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517,
3651
- 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 529, 5, 55, 0, 0, 520, 525, 3, 56, 28, 0, 521,
3652
- 522, 5, 2, 0, 0, 522, 524, 3, 56, 28, 0, 523, 521, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525,
3653
- 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528,
3654
- 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,
3655
- 5, 45, 0, 0, 532, 533, 5, 7, 0, 0, 533, 93, 1, 0, 0, 0, 534, 537, 5, 44, 0, 0, 535, 538,
3656
- 5, 45, 0, 0, 536, 538, 3, 56, 28, 0, 537, 535, 1, 0, 0, 0, 537, 536, 1, 0, 0, 0, 538, 541,
3657
- 1, 0, 0, 0, 539, 541, 5, 44, 0, 0, 540, 534, 1, 0, 0, 0, 540, 539, 1, 0, 0, 0, 541, 95,
3658
- 1, 0, 0, 0, 542, 546, 5, 13, 0, 0, 543, 545, 3, 94, 47, 0, 544, 543, 1, 0, 0, 0, 545, 548,
3659
- 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,
3660
- 0, 0, 0, 549, 550, 5, 18, 0, 0, 550, 551, 5, 44, 0, 0, 551, 99, 1, 0, 0, 0, 552, 553, 5,
3661
- 23, 0, 0, 553, 554, 5, 44, 0, 0, 554, 101, 1, 0, 0, 0, 555, 556, 5, 27, 0, 0, 556, 557,
3662
- 5, 1, 0, 0, 557, 558, 5, 52, 0, 0, 558, 561, 5, 54, 0, 0, 559, 562, 5, 52, 0, 0, 560, 562,
3663
- 3, 2, 1, 0, 561, 559, 1, 0, 0, 0, 561, 560, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 561,
3664
- 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 5, 55, 0, 0, 566, 103,
3665
- 1, 0, 0, 0, 567, 568, 5, 24, 0, 0, 568, 569, 3, 56, 28, 0, 569, 570, 5, 1, 0, 0, 570, 571,
3666
- 5, 52, 0, 0, 571, 574, 5, 54, 0, 0, 572, 575, 5, 52, 0, 0, 573, 575, 3, 2, 1, 0, 574, 572,
3667
- 1, 0, 0, 0, 574, 573, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0, 576, 574, 1, 0, 0, 0, 576, 577,
3668
- 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 582, 5, 55, 0, 0, 579, 581, 3, 106, 53, 0, 580,
3669
- 579, 1, 0, 0, 0, 581, 584, 1, 0, 0, 0, 582, 580, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583,
3670
- 586, 1, 0, 0, 0, 584, 582, 1, 0, 0, 0, 585, 587, 3, 108, 54, 0, 586, 585, 1, 0, 0, 0, 586,
3671
- 587, 1, 0, 0, 0, 587, 105, 1, 0, 0, 0, 588, 589, 5, 25, 0, 0, 589, 590, 5, 24, 0, 0, 590,
3672
- 591, 3, 56, 28, 0, 591, 592, 5, 1, 0, 0, 592, 593, 5, 52, 0, 0, 593, 596, 5, 54, 0, 0,
3673
- 594, 597, 5, 52, 0, 0, 595, 597, 3, 2, 1, 0, 596, 594, 1, 0, 0, 0, 596, 595, 1, 0, 0, 0,
3674
- 597, 598, 1, 0, 0, 0, 598, 596, 1, 0, 0, 0, 598, 599, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0,
3675
- 600, 601, 5, 55, 0, 0, 601, 107, 1, 0, 0, 0, 602, 603, 5, 25, 0, 0, 603, 604, 5, 1, 0,
3676
- 0, 604, 605, 5, 52, 0, 0, 605, 608, 5, 54, 0, 0, 606, 609, 5, 52, 0, 0, 607, 609, 3, 2,
3677
- 1, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, 608, 1, 0,
3678
- 0, 0, 610, 611, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 613, 5, 55, 0, 0, 613, 109, 1, 0,
3679
- 0, 0, 75, 112, 114, 136, 141, 149, 151, 161, 163, 178, 182, 187, 191, 198, 205, 213,
3680
- 217, 227, 235, 237, 248, 259, 261, 267, 273, 277, 283, 285, 304, 311, 319, 322,
3681
- 340, 348, 363, 365, 373, 377, 383, 391, 393, 399, 406, 415, 427, 430, 437, 442,
3682
- 447, 450, 456, 459, 463, 475, 477, 488, 490, 496, 503, 515, 517, 525, 528, 537,
3683
- 540, 546, 561, 563, 574, 576, 582, 586, 596, 598, 608, 610
3499
+ 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,
3500
+ 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,
3501
+ 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,
3502
+ 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,
3503
+ 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,
3504
+ 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,
3505
+ 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,
3506
+ 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,
3507
+ 13, 1, 13, 5, 13, 214, 8, 13, 10, 13, 12, 13, 217, 9, 13, 1, 13, 3, 13, 220, 8, 13, 1,
3508
+ 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 228, 8, 14, 10, 14, 12, 14, 231, 9, 14, 1,
3509
+ 14, 1, 14, 1, 14, 1, 14, 1, 14, 4, 14, 238, 8, 14, 11, 14, 12, 14, 239, 1, 14, 1, 14, 1,
3510
+ 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15, 249, 8, 15, 10, 15, 12, 15, 252, 9, 15, 1, 16, 1,
3511
+ 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 262, 8, 17, 11, 17, 12, 17, 263, 1,
3512
+ 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,
3513
+ 1, 20, 1, 20, 3, 20, 280, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 4, 21, 286, 8, 21, 11, 21,
3514
+ 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,
3515
+ 1, 24, 1, 25, 1, 25, 1, 25, 5, 25, 305, 8, 25, 10, 25, 12, 25, 308, 9, 25, 1, 25, 1, 25,
3516
+ 5, 25, 312, 8, 25, 10, 25, 12, 25, 315, 9, 25, 1, 25, 1, 25, 1, 25, 5, 25, 320, 8, 25,
3517
+ 10, 25, 12, 25, 323, 9, 25, 3, 25, 325, 8, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27,
3518
+ 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,
3519
+ 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,
3520
+ 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,
3521
+ 12, 28, 369, 9, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31,
3522
+ 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,
3523
+ 32, 1, 32, 1, 32, 4, 32, 394, 8, 32, 11, 32, 12, 32, 395, 1, 32, 1, 32, 1, 33, 1, 33, 3,
3524
+ 33, 402, 8, 33, 1, 34, 1, 34, 1, 34, 5, 34, 407, 8, 34, 10, 34, 12, 34, 410, 9, 34, 1,
3525
+ 34, 1, 34, 1, 34, 1, 34, 5, 34, 416, 8, 34, 10, 34, 12, 34, 419, 9, 34, 1, 34, 1, 34, 1,
3526
+ 34, 1, 34, 1, 34, 1, 34, 1, 34, 5, 34, 428, 8, 34, 10, 34, 12, 34, 431, 9, 34, 3, 34, 433,
3527
+ 8, 34, 1, 35, 1, 35, 1, 35, 5, 35, 438, 8, 35, 10, 35, 12, 35, 441, 9, 35, 1, 36, 1, 36,
3528
+ 3, 36, 445, 8, 36, 1, 36, 1, 36, 1, 36, 3, 36, 450, 8, 36, 1, 37, 3, 37, 453, 8, 37, 1,
3529
+ 37, 1, 37, 4, 37, 457, 8, 37, 11, 37, 12, 37, 458, 1, 38, 3, 38, 462, 8, 38, 1, 38, 1,
3530
+ 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,
3531
+ 40, 4, 40, 478, 8, 40, 11, 40, 12, 40, 479, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1,
3532
+ 41, 1, 41, 1, 41, 4, 41, 491, 8, 41, 11, 41, 12, 41, 492, 1, 41, 1, 41, 1, 42, 1, 42, 1,
3533
+ 42, 1, 42, 4, 42, 501, 8, 42, 11, 42, 12, 42, 502, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 509,
3534
+ 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,
3535
+ 1, 44, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 5, 46, 529, 8, 46, 10, 46, 12, 46, 532,
3536
+ 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,
3537
+ 48, 1, 48, 3, 48, 546, 8, 48, 1, 49, 1, 49, 5, 49, 550, 8, 49, 10, 49, 12, 49, 553, 9,
3538
+ 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,
3539
+ 52, 567, 8, 52, 11, 52, 12, 52, 568, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1,
3540
+ 53, 1, 53, 4, 53, 580, 8, 53, 11, 53, 12, 53, 581, 1, 53, 1, 53, 5, 53, 586, 8, 53, 10,
3541
+ 53, 12, 53, 589, 9, 53, 1, 53, 3, 53, 592, 8, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1,
3542
+ 54, 1, 54, 1, 54, 4, 54, 602, 8, 54, 11, 54, 12, 54, 603, 1, 54, 1, 54, 1, 55, 1, 55, 1,
3543
+ 55, 1, 55, 1, 55, 1, 55, 4, 55, 614, 8, 55, 11, 55, 12, 55, 615, 1, 55, 1, 55, 1, 55, 0,
3544
+ 1, 56, 56, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
3545
+ 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
3546
+ 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 0, 12, 2, 0, 9, 9, 18, 20,
3547
+ 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,
3548
+ 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,
3549
+ 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,
3550
+ 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,
3551
+ 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,
3552
+ 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,
3553
+ 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,
3554
+ 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,
3555
+ 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,
3556
+ 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,
3557
+ 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,
3558
+ 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,
3559
+ 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,
3560
+ 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,
3561
+ 0, 0, 102, 557, 1, 0, 0, 0, 104, 560, 1, 0, 0, 0, 106, 572, 1, 0, 0, 0, 108, 593, 1, 0,
3562
+ 0, 0, 110, 607, 1, 0, 0, 0, 112, 115, 3, 2, 1, 0, 113, 115, 5, 52, 0, 0, 114, 112, 1, 0,
3563
+ 0, 0, 114, 113, 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0,
3564
+ 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,
3565
+ 0, 121, 139, 3, 26, 13, 0, 122, 139, 3, 24, 12, 0, 123, 139, 3, 46, 23, 0, 124, 139,
3566
+ 3, 52, 26, 0, 125, 139, 3, 8, 4, 0, 126, 139, 3, 54, 27, 0, 127, 139, 3, 44, 22, 0, 128,
3567
+ 139, 3, 64, 32, 0, 129, 139, 3, 74, 37, 0, 130, 139, 3, 98, 49, 0, 131, 139, 3, 102,
3568
+ 51, 0, 132, 139, 3, 104, 52, 0, 133, 139, 3, 70, 35, 0, 134, 139, 3, 34, 17, 0, 135,
3569
+ 139, 3, 4, 2, 0, 136, 139, 3, 100, 50, 0, 137, 139, 3, 106, 53, 0, 138, 120, 1, 0, 0,
3570
+ 0, 138, 121, 1, 0, 0, 0, 138, 122, 1, 0, 0, 0, 138, 123, 1, 0, 0, 0, 138, 124, 1, 0, 0,
3571
+ 0, 138, 125, 1, 0, 0, 0, 138, 126, 1, 0, 0, 0, 138, 127, 1, 0, 0, 0, 138, 128, 1, 0, 0,
3572
+ 0, 138, 129, 1, 0, 0, 0, 138, 130, 1, 0, 0, 0, 138, 131, 1, 0, 0, 0, 138, 132, 1, 0, 0,
3573
+ 0, 138, 133, 1, 0, 0, 0, 138, 134, 1, 0, 0, 0, 138, 135, 1, 0, 0, 0, 138, 136, 1, 0, 0,
3574
+ 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,
3575
+ 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,
3576
+ 146, 7, 0, 0, 0, 146, 147, 5, 1, 0, 0, 147, 148, 5, 52, 0, 0, 148, 151, 5, 54, 0, 0, 149,
3577
+ 152, 5, 52, 0, 0, 150, 152, 3, 2, 1, 0, 151, 149, 1, 0, 0, 0, 151, 150, 1, 0, 0, 0, 152,
3578
+ 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155,
3579
+ 156, 5, 55, 0, 0, 156, 7, 1, 0, 0, 0, 157, 158, 3, 70, 35, 0, 158, 159, 5, 1, 0, 0, 159,
3580
+ 160, 5, 52, 0, 0, 160, 163, 5, 54, 0, 0, 161, 164, 5, 52, 0, 0, 162, 164, 3, 10, 5, 0,
3581
+ 163, 161, 1, 0, 0, 0, 163, 162, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 163, 1, 0, 0, 0,
3582
+ 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,
3583
+ 170, 7, 1, 0, 0, 170, 171, 5, 1, 0, 0, 171, 172, 3, 62, 31, 0, 172, 11, 1, 0, 0, 0, 173,
3584
+ 174, 5, 14, 0, 0, 174, 175, 7, 2, 0, 0, 175, 13, 1, 0, 0, 0, 176, 177, 5, 44, 0, 0, 177,
3585
+ 180, 5, 1, 0, 0, 178, 181, 3, 62, 31, 0, 179, 181, 5, 44, 0, 0, 180, 178, 1, 0, 0, 0, 180,
3586
+ 179, 1, 0, 0, 0, 181, 15, 1, 0, 0, 0, 182, 185, 3, 56, 28, 0, 183, 185, 3, 46, 23, 0, 184,
3587
+ 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 189, 1, 0, 0, 0, 186, 188, 3, 14, 7, 0, 187,
3588
+ 186, 1, 0, 0, 0, 188, 191, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190,
3589
+ 193, 1, 0, 0, 0, 191, 189, 1, 0, 0, 0, 192, 194, 3, 12, 6, 0, 193, 192, 1, 0, 0, 0, 193,
3590
+ 194, 1, 0, 0, 0, 194, 17, 1, 0, 0, 0, 195, 196, 5, 15, 0, 0, 196, 197, 3, 16, 8, 0, 197,
3591
+ 19, 1, 0, 0, 0, 198, 201, 3, 16, 8, 0, 199, 201, 3, 12, 6, 0, 200, 198, 1, 0, 0, 0, 200,
3592
+ 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,
3593
+ 5, 16, 0, 0, 205, 208, 3, 20, 10, 0, 206, 208, 5, 18, 0, 0, 207, 205, 1, 0, 0, 0, 207,
3594
+ 206, 1, 0, 0, 0, 208, 25, 1, 0, 0, 0, 209, 219, 5, 17, 0, 0, 210, 215, 3, 20, 10, 0, 211,
3595
+ 212, 5, 2, 0, 0, 212, 214, 3, 20, 10, 0, 213, 211, 1, 0, 0, 0, 214, 217, 1, 0, 0, 0, 215,
3596
+ 213, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 220, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 218,
3597
+ 220, 5, 18, 0, 0, 219, 210, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220, 27, 1, 0, 0, 0, 221,
3598
+ 222, 5, 16, 0, 0, 222, 223, 3, 20, 10, 0, 223, 224, 5, 17, 0, 0, 224, 229, 3, 20, 10,
3599
+ 0, 225, 226, 5, 2, 0, 0, 226, 228, 3, 20, 10, 0, 227, 225, 1, 0, 0, 0, 228, 231, 1, 0,
3600
+ 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 232, 1, 0, 0, 0, 231, 229, 1, 0,
3601
+ 0, 0, 232, 233, 5, 1, 0, 0, 233, 234, 5, 52, 0, 0, 234, 237, 5, 54, 0, 0, 235, 238, 5,
3602
+ 52, 0, 0, 236, 238, 3, 30, 15, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 239,
3603
+ 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 242,
3604
+ 5, 55, 0, 0, 242, 29, 1, 0, 0, 0, 243, 244, 3, 22, 11, 0, 244, 245, 5, 1, 0, 0, 245, 250,
3605
+ 3, 32, 16, 0, 246, 247, 5, 2, 0, 0, 247, 249, 3, 32, 16, 0, 248, 246, 1, 0, 0, 0, 249,
3606
+ 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,
3607
+ 1, 0, 0, 0, 253, 254, 7, 3, 0, 0, 254, 33, 1, 0, 0, 0, 255, 256, 3, 24, 12, 0, 256, 257,
3608
+ 5, 1, 0, 0, 257, 258, 5, 52, 0, 0, 258, 261, 5, 54, 0, 0, 259, 262, 5, 52, 0, 0, 260, 262,
3609
+ 3, 36, 18, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 261,
3610
+ 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 265, 1, 0, 0, 0, 265, 266, 5, 55, 0, 0, 266, 35,
3611
+ 1, 0, 0, 0, 267, 270, 3, 2, 1, 0, 268, 270, 3, 38, 19, 0, 269, 267, 1, 0, 0, 0, 269, 268,
3612
+ 1, 0, 0, 0, 270, 37, 1, 0, 0, 0, 271, 272, 3, 22, 11, 0, 272, 275, 5, 1, 0, 0, 273, 276,
3613
+ 3, 40, 20, 0, 274, 276, 3, 42, 21, 0, 275, 273, 1, 0, 0, 0, 275, 274, 1, 0, 0, 0, 276,
3614
+ 39, 1, 0, 0, 0, 277, 280, 3, 2, 1, 0, 278, 280, 5, 42, 0, 0, 279, 277, 1, 0, 0, 0, 279,
3615
+ 278, 1, 0, 0, 0, 280, 41, 1, 0, 0, 0, 281, 282, 5, 52, 0, 0, 282, 285, 5, 54, 0, 0, 283,
3616
+ 286, 5, 52, 0, 0, 284, 286, 3, 2, 1, 0, 285, 283, 1, 0, 0, 0, 285, 284, 1, 0, 0, 0, 286,
3617
+ 287, 1, 0, 0, 0, 287, 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3618
+ 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,
3619
+ 3, 70, 35, 0, 294, 295, 5, 3, 0, 0, 295, 296, 3, 56, 28, 0, 296, 47, 1, 0, 0, 0, 297, 298,
3620
+ 5, 44, 0, 0, 298, 299, 5, 3, 0, 0, 299, 300, 3, 56, 28, 0, 300, 49, 1, 0, 0, 0, 301, 306,
3621
+ 3, 56, 28, 0, 302, 303, 5, 2, 0, 0, 303, 305, 3, 56, 28, 0, 304, 302, 1, 0, 0, 0, 305,
3622
+ 308, 1, 0, 0, 0, 306, 304, 1, 0, 0, 0, 306, 307, 1, 0, 0, 0, 307, 313, 1, 0, 0, 0, 308,
3623
+ 306, 1, 0, 0, 0, 309, 310, 5, 2, 0, 0, 310, 312, 3, 48, 24, 0, 311, 309, 1, 0, 0, 0, 312,
3624
+ 315, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 325, 1, 0, 0, 0, 315,
3625
+ 313, 1, 0, 0, 0, 316, 321, 3, 48, 24, 0, 317, 318, 5, 2, 0, 0, 318, 320, 3, 48, 24, 0,
3626
+ 319, 317, 1, 0, 0, 0, 320, 323, 1, 0, 0, 0, 321, 319, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0,
3627
+ 322, 325, 1, 0, 0, 0, 323, 321, 1, 0, 0, 0, 324, 301, 1, 0, 0, 0, 324, 316, 1, 0, 0, 0,
3628
+ 325, 51, 1, 0, 0, 0, 326, 327, 3, 70, 35, 0, 327, 328, 5, 3, 0, 0, 328, 329, 3, 56, 28,
3629
+ 0, 329, 53, 1, 0, 0, 0, 330, 331, 5, 4, 0, 0, 331, 332, 5, 44, 0, 0, 332, 333, 5, 3, 0,
3630
+ 0, 333, 334, 3, 56, 28, 0, 334, 55, 1, 0, 0, 0, 335, 336, 6, 28, -1, 0, 336, 337, 5, 40,
3631
+ 0, 0, 337, 338, 3, 56, 28, 0, 338, 339, 5, 41, 0, 0, 339, 351, 1, 0, 0, 0, 340, 343, 3,
3632
+ 62, 31, 0, 341, 343, 3, 70, 35, 0, 342, 340, 1, 0, 0, 0, 342, 341, 1, 0, 0, 0, 343, 351,
3633
+ 1, 0, 0, 0, 344, 345, 3, 60, 30, 0, 345, 346, 3, 56, 28, 8, 346, 351, 1, 0, 0, 0, 347,
3634
+ 351, 3, 80, 40, 0, 348, 351, 3, 82, 41, 0, 349, 351, 3, 74, 37, 0, 350, 335, 1, 0, 0,
3635
+ 0, 350, 342, 1, 0, 0, 0, 350, 344, 1, 0, 0, 0, 350, 347, 1, 0, 0, 0, 350, 348, 1, 0, 0,
3636
+ 0, 350, 349, 1, 0, 0, 0, 351, 367, 1, 0, 0, 0, 352, 353, 10, 7, 0, 0, 353, 354, 7, 4, 0,
3637
+ 0, 354, 366, 3, 56, 28, 8, 355, 356, 10, 6, 0, 0, 356, 357, 7, 5, 0, 0, 357, 366, 3, 56,
3638
+ 28, 7, 358, 359, 10, 5, 0, 0, 359, 360, 3, 58, 29, 0, 360, 361, 3, 56, 28, 6, 361, 366,
3639
+ 1, 0, 0, 0, 362, 363, 10, 4, 0, 0, 363, 364, 7, 6, 0, 0, 364, 366, 3, 56, 28, 5, 365, 352,
3640
+ 1, 0, 0, 0, 365, 355, 1, 0, 0, 0, 365, 358, 1, 0, 0, 0, 365, 362, 1, 0, 0, 0, 366, 369,
3641
+ 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,
3642
+ 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,
3643
+ 0, 0, 374, 376, 5, 37, 0, 0, 375, 374, 1, 0, 0, 0, 375, 376, 1, 0, 0, 0, 376, 377, 1, 0,
3644
+ 0, 0, 377, 380, 7, 9, 0, 0, 378, 380, 3, 94, 47, 0, 379, 375, 1, 0, 0, 0, 379, 378, 1,
3645
+ 0, 0, 0, 380, 63, 1, 0, 0, 0, 381, 382, 5, 22, 0, 0, 382, 383, 5, 44, 0, 0, 383, 385, 5,
3646
+ 40, 0, 0, 384, 386, 3, 68, 34, 0, 385, 384, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 387,
3647
+ 1, 0, 0, 0, 387, 388, 5, 41, 0, 0, 388, 389, 5, 1, 0, 0, 389, 390, 5, 52, 0, 0, 390, 393,
3648
+ 5, 54, 0, 0, 391, 394, 5, 52, 0, 0, 392, 394, 3, 66, 33, 0, 393, 391, 1, 0, 0, 0, 393,
3649
+ 392, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395, 393, 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396,
3650
+ 397, 1, 0, 0, 0, 397, 398, 5, 55, 0, 0, 398, 65, 1, 0, 0, 0, 399, 402, 3, 2, 1, 0, 400,
3651
+ 402, 3, 78, 39, 0, 401, 399, 1, 0, 0, 0, 401, 400, 1, 0, 0, 0, 402, 67, 1, 0, 0, 0, 403,
3652
+ 408, 5, 44, 0, 0, 404, 405, 5, 2, 0, 0, 405, 407, 5, 44, 0, 0, 406, 404, 1, 0, 0, 0, 407,
3653
+ 410, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 417, 1, 0, 0, 0, 410,
3654
+ 408, 1, 0, 0, 0, 411, 412, 5, 2, 0, 0, 412, 413, 5, 44, 0, 0, 413, 414, 5, 3, 0, 0, 414,
3655
+ 416, 3, 62, 31, 0, 415, 411, 1, 0, 0, 0, 416, 419, 1, 0, 0, 0, 417, 415, 1, 0, 0, 0, 417,
3656
+ 418, 1, 0, 0, 0, 418, 433, 1, 0, 0, 0, 419, 417, 1, 0, 0, 0, 420, 421, 5, 44, 0, 0, 421,
3657
+ 422, 5, 3, 0, 0, 422, 429, 3, 62, 31, 0, 423, 424, 5, 2, 0, 0, 424, 425, 5, 44, 0, 0, 425,
3658
+ 426, 5, 3, 0, 0, 426, 428, 3, 62, 31, 0, 427, 423, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429,
3659
+ 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432,
3660
+ 403, 1, 0, 0, 0, 432, 420, 1, 0, 0, 0, 433, 69, 1, 0, 0, 0, 434, 439, 5, 44, 0, 0, 435,
3661
+ 436, 5, 5, 0, 0, 436, 438, 5, 44, 0, 0, 437, 435, 1, 0, 0, 0, 438, 441, 1, 0, 0, 0, 439,
3662
+ 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,
3663
+ 5, 40, 0, 0, 443, 445, 3, 50, 25, 0, 444, 443, 1, 0, 0, 0, 444, 445, 1, 0, 0, 0, 445, 446,
3664
+ 1, 0, 0, 0, 446, 450, 5, 41, 0, 0, 447, 448, 5, 5, 0, 0, 448, 450, 5, 44, 0, 0, 449, 442,
3665
+ 1, 0, 0, 0, 449, 447, 1, 0, 0, 0, 450, 73, 1, 0, 0, 0, 451, 453, 3, 76, 38, 0, 452, 451,
3666
+ 1, 0, 0, 0, 452, 453, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 456, 5, 44, 0, 0, 455, 457,
3667
+ 3, 72, 36, 0, 456, 455, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 458, 459,
3668
+ 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 462, 5, 36, 0, 0, 461, 460, 1, 0, 0, 0, 461, 462,
3669
+ 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 465, 5, 38, 0, 0, 464, 466, 3, 56, 28, 0, 465, 464,
3670
+ 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 468, 5, 21, 0, 0, 468, 469,
3671
+ 3, 56, 28, 0, 469, 79, 1, 0, 0, 0, 470, 471, 5, 10, 0, 0, 471, 472, 5, 11, 0, 0, 472, 473,
3672
+ 5, 1, 0, 0, 473, 474, 5, 52, 0, 0, 474, 477, 5, 54, 0, 0, 475, 478, 5, 52, 0, 0, 476, 478,
3673
+ 3, 88, 44, 0, 477, 475, 1, 0, 0, 0, 477, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 477,
3674
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 482, 5, 55, 0, 0, 482, 81,
3675
+ 1, 0, 0, 0, 483, 484, 5, 10, 0, 0, 484, 485, 5, 12, 0, 0, 485, 486, 5, 1, 0, 0, 486, 487,
3676
+ 5, 52, 0, 0, 487, 490, 5, 54, 0, 0, 488, 491, 5, 52, 0, 0, 489, 491, 3, 86, 43, 0, 490,
3677
+ 488, 1, 0, 0, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490, 1, 0, 0, 0, 492,
3678
+ 493, 1, 0, 0, 0, 493, 494, 1, 0, 0, 0, 494, 495, 5, 55, 0, 0, 495, 83, 1, 0, 0, 0, 496,
3679
+ 497, 5, 52, 0, 0, 497, 500, 5, 54, 0, 0, 498, 501, 5, 52, 0, 0, 499, 501, 3, 88, 44, 0,
3680
+ 500, 498, 1, 0, 0, 0, 500, 499, 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0,
3681
+ 502, 503, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 5, 55, 0, 0, 505, 85, 1, 0, 0, 0,
3682
+ 506, 508, 7, 10, 0, 0, 507, 509, 5, 1, 0, 0, 508, 507, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0,
3683
+ 509, 516, 1, 0, 0, 0, 510, 517, 3, 50, 25, 0, 511, 512, 5, 40, 0, 0, 512, 513, 3, 50,
3684
+ 25, 0, 513, 514, 5, 41, 0, 0, 514, 517, 1, 0, 0, 0, 515, 517, 3, 84, 42, 0, 516, 510,
3685
+ 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,
3686
+ 90, 45, 0, 519, 520, 5, 1, 0, 0, 520, 521, 3, 92, 46, 0, 521, 89, 1, 0, 0, 0, 522, 523,
3687
+ 7, 11, 0, 0, 523, 91, 1, 0, 0, 0, 524, 534, 3, 84, 42, 0, 525, 530, 3, 56, 28, 0, 526,
3688
+ 527, 5, 2, 0, 0, 527, 529, 3, 56, 28, 0, 528, 526, 1, 0, 0, 0, 529, 532, 1, 0, 0, 0, 530,
3689
+ 528, 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 533,
3690
+ 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,
3691
+ 5, 45, 0, 0, 537, 538, 5, 7, 0, 0, 538, 95, 1, 0, 0, 0, 539, 542, 5, 44, 0, 0, 540, 543,
3692
+ 5, 45, 0, 0, 541, 543, 3, 56, 28, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 546,
3693
+ 1, 0, 0, 0, 544, 546, 5, 44, 0, 0, 545, 539, 1, 0, 0, 0, 545, 544, 1, 0, 0, 0, 546, 97,
3694
+ 1, 0, 0, 0, 547, 551, 5, 13, 0, 0, 548, 550, 3, 96, 48, 0, 549, 548, 1, 0, 0, 0, 550, 553,
3695
+ 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,
3696
+ 0, 0, 0, 554, 555, 5, 18, 0, 0, 555, 556, 5, 44, 0, 0, 556, 101, 1, 0, 0, 0, 557, 558,
3697
+ 5, 23, 0, 0, 558, 559, 5, 44, 0, 0, 559, 103, 1, 0, 0, 0, 560, 561, 5, 27, 0, 0, 561, 562,
3698
+ 5, 1, 0, 0, 562, 563, 5, 52, 0, 0, 563, 566, 5, 54, 0, 0, 564, 567, 5, 52, 0, 0, 565, 567,
3699
+ 3, 2, 1, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 566,
3700
+ 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 55, 0, 0, 571, 105,
3701
+ 1, 0, 0, 0, 572, 573, 5, 24, 0, 0, 573, 574, 3, 56, 28, 0, 574, 575, 5, 1, 0, 0, 575, 576,
3702
+ 5, 52, 0, 0, 576, 579, 5, 54, 0, 0, 577, 580, 5, 52, 0, 0, 578, 580, 3, 2, 1, 0, 579, 577,
3703
+ 1, 0, 0, 0, 579, 578, 1, 0, 0, 0, 580, 581, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 582,
3704
+ 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 587, 5, 55, 0, 0, 584, 586, 3, 108, 54, 0, 585,
3705
+ 584, 1, 0, 0, 0, 586, 589, 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 587, 588, 1, 0, 0, 0, 588,
3706
+ 591, 1, 0, 0, 0, 589, 587, 1, 0, 0, 0, 590, 592, 3, 110, 55, 0, 591, 590, 1, 0, 0, 0, 591,
3707
+ 592, 1, 0, 0, 0, 592, 107, 1, 0, 0, 0, 593, 594, 5, 25, 0, 0, 594, 595, 5, 24, 0, 0, 595,
3708
+ 596, 3, 56, 28, 0, 596, 597, 5, 1, 0, 0, 597, 598, 5, 52, 0, 0, 598, 601, 5, 54, 0, 0,
3709
+ 599, 602, 5, 52, 0, 0, 600, 602, 3, 2, 1, 0, 601, 599, 1, 0, 0, 0, 601, 600, 1, 0, 0, 0,
3710
+ 602, 603, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 603, 604, 1, 0, 0, 0, 604, 605, 1, 0, 0, 0,
3711
+ 605, 606, 5, 55, 0, 0, 606, 109, 1, 0, 0, 0, 607, 608, 5, 25, 0, 0, 608, 609, 5, 1, 0,
3712
+ 0, 609, 610, 5, 52, 0, 0, 610, 613, 5, 54, 0, 0, 611, 614, 5, 52, 0, 0, 612, 614, 3, 2,
3713
+ 1, 0, 613, 611, 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 613, 1, 0,
3714
+ 0, 0, 615, 616, 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 5, 55, 0, 0, 618, 111, 1, 0,
3715
+ 0, 0, 75, 114, 116, 138, 143, 151, 153, 163, 165, 180, 184, 189, 193, 200, 207, 215,
3716
+ 219, 229, 237, 239, 250, 261, 263, 269, 275, 279, 285, 287, 306, 313, 321, 324,
3717
+ 342, 350, 365, 367, 375, 379, 385, 393, 395, 401, 408, 417, 429, 432, 439, 444,
3718
+ 449, 452, 458, 461, 465, 477, 479, 490, 492, 500, 502, 508, 516, 530, 533, 542,
3719
+ 545, 551, 566, 568, 579, 581, 587, 591, 601, 603, 613, 615
3684
3720
  ];
3685
3721
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3686
3722
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -5170,6 +5206,43 @@ class Create_graphic_exprContext extends antlr.ParserRuleContext {
5170
5206
  }
5171
5207
  }
5172
5208
  exports.Create_graphic_exprContext = Create_graphic_exprContext;
5209
+ class Nested_properties_innerContext extends antlr.ParserRuleContext {
5210
+ constructor(parent, invokingState) {
5211
+ super(parent, invokingState);
5212
+ }
5213
+ NEWLINE(i) {
5214
+ if (i === undefined) {
5215
+ return this.getTokens(CircuitScriptParser.NEWLINE);
5216
+ }
5217
+ else {
5218
+ return this.getToken(CircuitScriptParser.NEWLINE, i);
5219
+ }
5220
+ }
5221
+ INDENT() {
5222
+ return this.getToken(CircuitScriptParser.INDENT, 0);
5223
+ }
5224
+ DEDENT() {
5225
+ return this.getToken(CircuitScriptParser.DEDENT, 0);
5226
+ }
5227
+ property_expr(i) {
5228
+ if (i === undefined) {
5229
+ return this.getRuleContexts(Property_exprContext);
5230
+ }
5231
+ return this.getRuleContext(i, Property_exprContext);
5232
+ }
5233
+ get ruleIndex() {
5234
+ return CircuitScriptParser.RULE_nested_properties_inner;
5235
+ }
5236
+ accept(visitor) {
5237
+ if (visitor.visitNested_properties_inner) {
5238
+ return visitor.visitNested_properties_inner(this);
5239
+ }
5240
+ else {
5241
+ return visitor.visitChildren(this);
5242
+ }
5243
+ }
5244
+ }
5245
+ exports.Nested_properties_innerContext = Nested_properties_innerContext;
5173
5246
  class Graphic_exprContext extends antlr.ParserRuleContext {
5174
5247
  constructor(parent, invokingState) {
5175
5248
  super(parent, invokingState);
@@ -5189,6 +5262,9 @@ class Graphic_exprContext extends antlr.ParserRuleContext {
5189
5262
  CLOSE_PAREN() {
5190
5263
  return this.getToken(CircuitScriptParser.CLOSE_PAREN, 0);
5191
5264
  }
5265
+ nested_properties_inner() {
5266
+ return this.getRuleContext(0, Nested_properties_innerContext);
5267
+ }
5192
5268
  get ruleIndex() {
5193
5269
  return CircuitScriptParser.RULE_graphic_expr;
5194
5270
  }
@@ -5289,25 +5365,8 @@ class Nested_propertiesContext extends Property_value_exprContext {
5289
5365
  super(ctx.parent, ctx.invokingState);
5290
5366
  super.copyFrom(ctx);
5291
5367
  }
5292
- NEWLINE(i) {
5293
- if (i === undefined) {
5294
- return this.getTokens(CircuitScriptParser.NEWLINE);
5295
- }
5296
- else {
5297
- return this.getToken(CircuitScriptParser.NEWLINE, i);
5298
- }
5299
- }
5300
- INDENT() {
5301
- return this.getToken(CircuitScriptParser.INDENT, 0);
5302
- }
5303
- DEDENT() {
5304
- return this.getToken(CircuitScriptParser.DEDENT, 0);
5305
- }
5306
- property_expr(i) {
5307
- if (i === undefined) {
5308
- return this.getRuleContexts(Property_exprContext);
5309
- }
5310
- return this.getRuleContext(i, Property_exprContext);
5368
+ nested_properties_inner() {
5369
+ return this.getRuleContext(0, Nested_properties_innerContext);
5311
5370
  }
5312
5371
  accept(visitor) {
5313
5372
  if (visitor.visitNested_properties) {