circuitscript 0.1.15 → 0.1.16

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.
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- 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.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = 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_blockContext = exports.Expressions_blockContext = exports.Graph_linear_expressionContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_exprContext = void 0;
26
+ 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.ArrayIndexExprContext = exports.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = 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_blockContext = exports.Expressions_blockContext = exports.Graph_linear_expressionContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
+ exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_expr2Context = exports.Trailer_exprContext = exports.Atom_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -47,24 +47,24 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 132;
50
+ this.state = 134;
51
51
  this.errorHandler.sync(this);
52
52
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
53
53
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
54
54
  if (alternative === 1) {
55
55
  {
56
- this.state = 130;
56
+ this.state = 132;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  {
61
- this.state = 128;
61
+ this.state = 130;
62
62
  this.import_expr();
63
63
  }
64
64
  break;
65
65
  case CircuitScriptParser.NEWLINE:
66
66
  {
67
- this.state = 129;
67
+ this.state = 131;
68
68
  this.match(CircuitScriptParser.NEWLINE);
69
69
  }
70
70
  break;
@@ -73,16 +73,16 @@ class CircuitScriptParser extends antlr.Parser {
73
73
  }
74
74
  }
75
75
  }
76
- this.state = 134;
76
+ this.state = 136;
77
77
  this.errorHandler.sync(this);
78
78
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
79
79
  }
80
- this.state = 137;
80
+ this.state = 139;
81
81
  this.errorHandler.sync(this);
82
82
  _la = this.tokenStream.LA(1);
83
83
  do {
84
84
  {
85
- this.state = 137;
85
+ this.state = 139;
86
86
  this.errorHandler.sync(this);
87
87
  switch (this.tokenStream.LA(1)) {
88
88
  case CircuitScriptParser.T__3:
@@ -107,13 +107,13 @@ class CircuitScriptParser extends antlr.Parser {
107
107
  case CircuitScriptParser.Divide:
108
108
  case CircuitScriptParser.ID:
109
109
  {
110
- this.state = 135;
110
+ this.state = 137;
111
111
  this.expression();
112
112
  }
113
113
  break;
114
114
  case CircuitScriptParser.NEWLINE:
115
115
  {
116
- this.state = 136;
116
+ this.state = 138;
117
117
  this.match(CircuitScriptParser.NEWLINE);
118
118
  }
119
119
  break;
@@ -121,11 +121,11 @@ class CircuitScriptParser extends antlr.Parser {
121
121
  throw new antlr.NoViableAltException(this);
122
122
  }
123
123
  }
124
- this.state = 139;
124
+ this.state = 141;
125
125
  this.errorHandler.sync(this);
126
126
  _la = this.tokenStream.LA(1);
127
127
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
128
- this.state = 141;
128
+ this.state = 143;
129
129
  this.match(CircuitScriptParser.EOF);
130
130
  }
131
131
  }
@@ -147,90 +147,90 @@ class CircuitScriptParser extends antlr.Parser {
147
147
  let localContext = new ExpressionContext(this.context, this.state);
148
148
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
149
149
  try {
150
- this.state = 155;
150
+ this.state = 157;
151
151
  this.errorHandler.sync(this);
152
152
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
153
153
  case 1:
154
154
  this.enterOuterAlt(localContext, 1);
155
155
  {
156
- this.state = 143;
156
+ this.state = 145;
157
157
  this.graph_expressions();
158
158
  }
159
159
  break;
160
160
  case 2:
161
161
  this.enterOuterAlt(localContext, 2);
162
162
  {
163
- this.state = 144;
163
+ this.state = 146;
164
164
  this.assignment_expr();
165
165
  }
166
166
  break;
167
167
  case 3:
168
168
  this.enterOuterAlt(localContext, 3);
169
169
  {
170
- this.state = 145;
170
+ this.state = 147;
171
171
  this.operator_assignment_expr();
172
172
  }
173
173
  break;
174
174
  case 4:
175
175
  this.enterOuterAlt(localContext, 4);
176
176
  {
177
- this.state = 146;
177
+ this.state = 148;
178
178
  this.property_set_expr();
179
179
  }
180
180
  break;
181
181
  case 5:
182
182
  this.enterOuterAlt(localContext, 5);
183
183
  {
184
- this.state = 147;
184
+ this.state = 149;
185
185
  this.property_set_expr2();
186
186
  }
187
187
  break;
188
188
  case 6:
189
189
  this.enterOuterAlt(localContext, 6);
190
190
  {
191
- this.state = 148;
191
+ this.state = 150;
192
192
  this.double_dot_property_set_expr();
193
193
  }
194
194
  break;
195
195
  case 7:
196
196
  this.enterOuterAlt(localContext, 7);
197
197
  {
198
- this.state = 149;
198
+ this.state = 151;
199
199
  this.function_def_expr();
200
200
  }
201
201
  break;
202
202
  case 8:
203
203
  this.enterOuterAlt(localContext, 8);
204
204
  {
205
- this.state = 150;
205
+ this.state = 152;
206
206
  this.function_call_expr();
207
207
  }
208
208
  break;
209
209
  case 9:
210
210
  this.enterOuterAlt(localContext, 9);
211
211
  {
212
- this.state = 151;
212
+ this.state = 153;
213
213
  this.import_expr();
214
214
  }
215
215
  break;
216
216
  case 10:
217
217
  this.enterOuterAlt(localContext, 10);
218
218
  {
219
- this.state = 152;
219
+ this.state = 154;
220
220
  this.atom_expr();
221
221
  }
222
222
  break;
223
223
  case 11:
224
224
  this.enterOuterAlt(localContext, 11);
225
225
  {
226
- this.state = 153;
226
+ this.state = 155;
227
227
  this.frame_expr();
228
228
  }
229
229
  break;
230
230
  case 12:
231
231
  this.enterOuterAlt(localContext, 12);
232
232
  {
233
- this.state = 154;
233
+ this.state = 156;
234
234
  this.flow_expressions();
235
235
  }
236
236
  break;
@@ -254,41 +254,41 @@ class CircuitScriptParser extends antlr.Parser {
254
254
  let localContext = new Flow_expressionsContext(this.context, this.state);
255
255
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
256
256
  try {
257
- this.state = 162;
257
+ this.state = 164;
258
258
  this.errorHandler.sync(this);
259
259
  switch (this.tokenStream.LA(1)) {
260
260
  case CircuitScriptParser.If:
261
261
  this.enterOuterAlt(localContext, 1);
262
262
  {
263
- this.state = 157;
263
+ this.state = 159;
264
264
  this.if_expr();
265
265
  }
266
266
  break;
267
267
  case CircuitScriptParser.While:
268
268
  this.enterOuterAlt(localContext, 2);
269
269
  {
270
- this.state = 158;
270
+ this.state = 160;
271
271
  this.while_expr();
272
272
  }
273
273
  break;
274
274
  case CircuitScriptParser.For:
275
275
  this.enterOuterAlt(localContext, 3);
276
276
  {
277
- this.state = 159;
277
+ this.state = 161;
278
278
  this.for_expr();
279
279
  }
280
280
  break;
281
281
  case CircuitScriptParser.Break:
282
282
  this.enterOuterAlt(localContext, 4);
283
283
  {
284
- this.state = 160;
284
+ this.state = 162;
285
285
  this.match(CircuitScriptParser.Break);
286
286
  }
287
287
  break;
288
288
  case CircuitScriptParser.Continue:
289
289
  this.enterOuterAlt(localContext, 5);
290
290
  {
291
- this.state = 161;
291
+ this.state = 163;
292
292
  this.match(CircuitScriptParser.Continue);
293
293
  }
294
294
  break;
@@ -314,20 +314,20 @@ class CircuitScriptParser extends antlr.Parser {
314
314
  let localContext = new Graph_expressionsContext(this.context, this.state);
315
315
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
316
316
  try {
317
- this.state = 166;
317
+ this.state = 168;
318
318
  this.errorHandler.sync(this);
319
319
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
320
320
  case 1:
321
321
  this.enterOuterAlt(localContext, 1);
322
322
  {
323
- this.state = 164;
323
+ this.state = 166;
324
324
  this.graph_linear_expression();
325
325
  }
326
326
  break;
327
327
  case 2:
328
328
  this.enterOuterAlt(localContext, 2);
329
329
  {
330
- this.state = 165;
330
+ this.state = 167;
331
331
  this.path_block();
332
332
  }
333
333
  break;
@@ -351,48 +351,48 @@ class CircuitScriptParser extends antlr.Parser {
351
351
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
352
352
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
353
353
  try {
354
- this.state = 174;
354
+ this.state = 176;
355
355
  this.errorHandler.sync(this);
356
356
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
357
357
  case 1:
358
358
  this.enterOuterAlt(localContext, 1);
359
359
  {
360
- this.state = 168;
360
+ this.state = 170;
361
361
  this.add_component_expr();
362
362
  }
363
363
  break;
364
364
  case 2:
365
365
  this.enterOuterAlt(localContext, 2);
366
366
  {
367
- this.state = 169;
367
+ this.state = 171;
368
368
  this.to_component_expr();
369
369
  }
370
370
  break;
371
371
  case 3:
372
372
  this.enterOuterAlt(localContext, 3);
373
373
  {
374
- this.state = 170;
374
+ this.state = 172;
375
375
  this.at_component_expr();
376
376
  }
377
377
  break;
378
378
  case 4:
379
379
  this.enterOuterAlt(localContext, 4);
380
380
  {
381
- this.state = 171;
381
+ this.state = 173;
382
382
  this.at_block();
383
383
  }
384
384
  break;
385
385
  case 5:
386
386
  this.enterOuterAlt(localContext, 5);
387
387
  {
388
- this.state = 172;
388
+ this.state = 174;
389
389
  this.wire_expr();
390
390
  }
391
391
  break;
392
392
  case 6:
393
393
  this.enterOuterAlt(localContext, 6);
394
394
  {
395
- this.state = 173;
395
+ this.state = 175;
396
396
  this.point_expr();
397
397
  }
398
398
  break;
@@ -419,21 +419,21 @@ class CircuitScriptParser extends antlr.Parser {
419
419
  try {
420
420
  this.enterOuterAlt(localContext, 1);
421
421
  {
422
- this.state = 176;
422
+ this.state = 178;
423
423
  this.match(CircuitScriptParser.NEWLINE);
424
- this.state = 177;
424
+ this.state = 179;
425
425
  this.match(CircuitScriptParser.INDENT);
426
- this.state = 180;
426
+ this.state = 182;
427
427
  this.errorHandler.sync(this);
428
428
  _la = this.tokenStream.LA(1);
429
429
  do {
430
430
  {
431
- this.state = 180;
431
+ this.state = 182;
432
432
  this.errorHandler.sync(this);
433
433
  switch (this.tokenStream.LA(1)) {
434
434
  case CircuitScriptParser.NEWLINE:
435
435
  {
436
- this.state = 178;
436
+ this.state = 180;
437
437
  this.match(CircuitScriptParser.NEWLINE);
438
438
  }
439
439
  break;
@@ -459,7 +459,7 @@ class CircuitScriptParser extends antlr.Parser {
459
459
  case CircuitScriptParser.Divide:
460
460
  case CircuitScriptParser.ID:
461
461
  {
462
- this.state = 179;
462
+ this.state = 181;
463
463
  this.expression();
464
464
  }
465
465
  break;
@@ -467,11 +467,11 @@ class CircuitScriptParser extends antlr.Parser {
467
467
  throw new antlr.NoViableAltException(this);
468
468
  }
469
469
  }
470
- this.state = 182;
470
+ this.state = 184;
471
471
  this.errorHandler.sync(this);
472
472
  _la = this.tokenStream.LA(1);
473
473
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
474
- this.state = 184;
474
+ this.state = 186;
475
475
  this.match(CircuitScriptParser.DEDENT);
476
476
  }
477
477
  }
@@ -496,7 +496,7 @@ class CircuitScriptParser extends antlr.Parser {
496
496
  try {
497
497
  this.enterOuterAlt(localContext, 1);
498
498
  {
499
- this.state = 186;
499
+ this.state = 188;
500
500
  _la = this.tokenStream.LA(1);
501
501
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
502
502
  this.errorHandler.recoverInline(this);
@@ -505,9 +505,9 @@ class CircuitScriptParser extends antlr.Parser {
505
505
  this.errorHandler.reportMatch(this);
506
506
  this.consume();
507
507
  }
508
- this.state = 187;
508
+ this.state = 189;
509
509
  this.match(CircuitScriptParser.T__0);
510
- this.state = 188;
510
+ this.state = 190;
511
511
  this.expressions_block();
512
512
  }
513
513
  }
@@ -532,32 +532,32 @@ class CircuitScriptParser extends antlr.Parser {
532
532
  try {
533
533
  this.enterOuterAlt(localContext, 1);
534
534
  {
535
- this.state = 190;
535
+ this.state = 192;
536
536
  this.atom_expr();
537
- this.state = 191;
537
+ this.state = 193;
538
538
  this.match(CircuitScriptParser.T__0);
539
- this.state = 192;
539
+ this.state = 194;
540
540
  this.match(CircuitScriptParser.NEWLINE);
541
- this.state = 193;
541
+ this.state = 195;
542
542
  this.match(CircuitScriptParser.INDENT);
543
- this.state = 196;
543
+ this.state = 198;
544
544
  this.errorHandler.sync(this);
545
545
  _la = this.tokenStream.LA(1);
546
546
  do {
547
547
  {
548
- this.state = 196;
548
+ this.state = 198;
549
549
  this.errorHandler.sync(this);
550
550
  switch (this.tokenStream.LA(1)) {
551
551
  case CircuitScriptParser.NEWLINE:
552
552
  {
553
- this.state = 194;
553
+ this.state = 196;
554
554
  this.match(CircuitScriptParser.NEWLINE);
555
555
  }
556
556
  break;
557
557
  case CircuitScriptParser.ID:
558
558
  case CircuitScriptParser.INTEGER_VALUE:
559
559
  {
560
- this.state = 195;
560
+ this.state = 197;
561
561
  this.assignment_expr2();
562
562
  }
563
563
  break;
@@ -565,11 +565,11 @@ class CircuitScriptParser extends antlr.Parser {
565
565
  throw new antlr.NoViableAltException(this);
566
566
  }
567
567
  }
568
- this.state = 198;
568
+ this.state = 200;
569
569
  this.errorHandler.sync(this);
570
570
  _la = this.tokenStream.LA(1);
571
571
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 259) !== 0));
572
- this.state = 200;
572
+ this.state = 202;
573
573
  this.match(CircuitScriptParser.DEDENT);
574
574
  }
575
575
  }
@@ -594,7 +594,7 @@ class CircuitScriptParser extends antlr.Parser {
594
594
  try {
595
595
  this.enterOuterAlt(localContext, 1);
596
596
  {
597
- this.state = 202;
597
+ this.state = 204;
598
598
  _la = this.tokenStream.LA(1);
599
599
  if (!(_la === 56 || _la === 57)) {
600
600
  this.errorHandler.recoverInline(this);
@@ -603,9 +603,9 @@ class CircuitScriptParser extends antlr.Parser {
603
603
  this.errorHandler.reportMatch(this);
604
604
  this.consume();
605
605
  }
606
- this.state = 203;
606
+ this.state = 205;
607
607
  this.match(CircuitScriptParser.T__0);
608
- this.state = 204;
608
+ this.state = 206;
609
609
  this.value_expr();
610
610
  }
611
611
  }
@@ -629,9 +629,9 @@ class CircuitScriptParser extends antlr.Parser {
629
629
  try {
630
630
  this.enterOuterAlt(localContext, 1);
631
631
  {
632
- this.state = 206;
632
+ this.state = 208;
633
633
  this.match(CircuitScriptParser.Pin);
634
- this.state = 207;
634
+ this.state = 209;
635
635
  this.data_expr(0);
636
636
  }
637
637
  }
@@ -655,11 +655,11 @@ class CircuitScriptParser extends antlr.Parser {
655
655
  try {
656
656
  this.enterOuterAlt(localContext, 1);
657
657
  {
658
- this.state = 209;
658
+ this.state = 211;
659
659
  this.match(CircuitScriptParser.ID);
660
- this.state = 210;
660
+ this.state = 212;
661
661
  this.match(CircuitScriptParser.T__0);
662
- this.state = 213;
662
+ this.state = 215;
663
663
  this.errorHandler.sync(this);
664
664
  switch (this.tokenStream.LA(1)) {
665
665
  case CircuitScriptParser.Minus:
@@ -670,13 +670,13 @@ class CircuitScriptParser extends antlr.Parser {
670
670
  case CircuitScriptParser.STRING_VALUE:
671
671
  case CircuitScriptParser.PERCENTAGE_VALUE:
672
672
  {
673
- this.state = 211;
673
+ this.state = 213;
674
674
  this.value_expr();
675
675
  }
676
676
  break;
677
677
  case CircuitScriptParser.ID:
678
678
  {
679
- this.state = 212;
679
+ this.state = 214;
680
680
  this.match(CircuitScriptParser.ID);
681
681
  }
682
682
  break;
@@ -707,44 +707,44 @@ class CircuitScriptParser extends antlr.Parser {
707
707
  let alternative;
708
708
  this.enterOuterAlt(localContext, 1);
709
709
  {
710
- this.state = 217;
710
+ this.state = 219;
711
711
  this.errorHandler.sync(this);
712
712
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
713
713
  case 1:
714
714
  {
715
- this.state = 215;
715
+ this.state = 217;
716
716
  this.data_expr(0);
717
717
  }
718
718
  break;
719
719
  case 2:
720
720
  {
721
- this.state = 216;
721
+ this.state = 218;
722
722
  this.assignment_expr();
723
723
  }
724
724
  break;
725
725
  }
726
- this.state = 222;
726
+ this.state = 224;
727
727
  this.errorHandler.sync(this);
728
728
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
729
729
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
730
730
  if (alternative === 1) {
731
731
  {
732
732
  {
733
- this.state = 219;
733
+ this.state = 221;
734
734
  this.component_modifier_expr();
735
735
  }
736
736
  }
737
737
  }
738
- this.state = 224;
738
+ this.state = 226;
739
739
  this.errorHandler.sync(this);
740
740
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
741
741
  }
742
- this.state = 226;
742
+ this.state = 228;
743
743
  this.errorHandler.sync(this);
744
744
  _la = this.tokenStream.LA(1);
745
745
  if (_la === 15) {
746
746
  {
747
- this.state = 225;
747
+ this.state = 227;
748
748
  this.pin_select_expr();
749
749
  }
750
750
  }
@@ -770,9 +770,9 @@ class CircuitScriptParser extends antlr.Parser {
770
770
  try {
771
771
  this.enterOuterAlt(localContext, 1);
772
772
  {
773
- this.state = 228;
773
+ this.state = 230;
774
774
  this.match(CircuitScriptParser.Add);
775
- this.state = 229;
775
+ this.state = 231;
776
776
  this.data_expr_with_assignment();
777
777
  }
778
778
  }
@@ -794,10 +794,10 @@ class CircuitScriptParser extends antlr.Parser {
794
794
  let localContext = new Component_select_exprContext(this.context, this.state);
795
795
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
796
796
  try {
797
- this.state = 234;
797
+ this.state = 236;
798
798
  this.errorHandler.sync(this);
799
799
  switch (this.tokenStream.LA(1)) {
800
- case CircuitScriptParser.T__5:
800
+ case CircuitScriptParser.T__4:
801
801
  case CircuitScriptParser.Create:
802
802
  case CircuitScriptParser.Not:
803
803
  case CircuitScriptParser.Addition:
@@ -813,21 +813,21 @@ class CircuitScriptParser extends antlr.Parser {
813
813
  case CircuitScriptParser.PERCENTAGE_VALUE:
814
814
  this.enterOuterAlt(localContext, 1);
815
815
  {
816
- this.state = 231;
816
+ this.state = 233;
817
817
  this.data_expr_with_assignment();
818
818
  }
819
819
  break;
820
820
  case CircuitScriptParser.Pin:
821
821
  this.enterOuterAlt(localContext, 2);
822
822
  {
823
- this.state = 232;
823
+ this.state = 234;
824
824
  this.pin_select_expr();
825
825
  }
826
826
  break;
827
827
  case CircuitScriptParser.Point:
828
828
  this.enterOuterAlt(localContext, 3);
829
829
  {
830
- this.state = 233;
830
+ this.state = 235;
831
831
  this.match(CircuitScriptParser.Point);
832
832
  }
833
833
  break;
@@ -856,7 +856,7 @@ class CircuitScriptParser extends antlr.Parser {
856
856
  try {
857
857
  this.enterOuterAlt(localContext, 1);
858
858
  {
859
- this.state = 236;
859
+ this.state = 238;
860
860
  _la = this.tokenStream.LA(1);
861
861
  if (!(_la === 57 || _la === 60)) {
862
862
  this.errorHandler.recoverInline(this);
@@ -887,9 +887,9 @@ class CircuitScriptParser extends antlr.Parser {
887
887
  try {
888
888
  this.enterOuterAlt(localContext, 1);
889
889
  {
890
- this.state = 238;
890
+ this.state = 240;
891
891
  this.match(CircuitScriptParser.At);
892
- this.state = 239;
892
+ this.state = 241;
893
893
  this.component_select_expr();
894
894
  }
895
895
  }
@@ -914,24 +914,24 @@ class CircuitScriptParser extends antlr.Parser {
914
914
  try {
915
915
  this.enterOuterAlt(localContext, 1);
916
916
  {
917
- this.state = 241;
917
+ this.state = 243;
918
918
  this.match(CircuitScriptParser.To);
919
919
  {
920
- this.state = 242;
920
+ this.state = 244;
921
921
  this.component_select_expr();
922
- this.state = 247;
922
+ this.state = 249;
923
923
  this.errorHandler.sync(this);
924
924
  _la = this.tokenStream.LA(1);
925
925
  while (_la === 2) {
926
926
  {
927
927
  {
928
- this.state = 243;
928
+ this.state = 245;
929
929
  this.match(CircuitScriptParser.T__1);
930
- this.state = 244;
930
+ this.state = 246;
931
931
  this.component_select_expr();
932
932
  }
933
933
  }
934
- this.state = 249;
934
+ this.state = 251;
935
935
  this.errorHandler.sync(this);
936
936
  _la = this.tokenStream.LA(1);
937
937
  }
@@ -959,54 +959,54 @@ class CircuitScriptParser extends antlr.Parser {
959
959
  try {
960
960
  this.enterOuterAlt(localContext, 1);
961
961
  {
962
- this.state = 250;
962
+ this.state = 252;
963
963
  this.match(CircuitScriptParser.At);
964
- this.state = 251;
964
+ this.state = 253;
965
965
  this.component_select_expr();
966
- this.state = 252;
966
+ this.state = 254;
967
967
  this.match(CircuitScriptParser.To);
968
- this.state = 253;
968
+ this.state = 255;
969
969
  this.component_select_expr();
970
- this.state = 258;
970
+ this.state = 260;
971
971
  this.errorHandler.sync(this);
972
972
  _la = this.tokenStream.LA(1);
973
973
  while (_la === 2) {
974
974
  {
975
975
  {
976
- this.state = 254;
976
+ this.state = 256;
977
977
  this.match(CircuitScriptParser.T__1);
978
- this.state = 255;
978
+ this.state = 257;
979
979
  this.component_select_expr();
980
980
  }
981
981
  }
982
- this.state = 260;
982
+ this.state = 262;
983
983
  this.errorHandler.sync(this);
984
984
  _la = this.tokenStream.LA(1);
985
985
  }
986
- this.state = 261;
986
+ this.state = 263;
987
987
  this.match(CircuitScriptParser.T__0);
988
- this.state = 262;
988
+ this.state = 264;
989
989
  this.match(CircuitScriptParser.NEWLINE);
990
- this.state = 263;
990
+ this.state = 265;
991
991
  this.match(CircuitScriptParser.INDENT);
992
- this.state = 266;
992
+ this.state = 268;
993
993
  this.errorHandler.sync(this);
994
994
  _la = this.tokenStream.LA(1);
995
995
  do {
996
996
  {
997
- this.state = 266;
997
+ this.state = 268;
998
998
  this.errorHandler.sync(this);
999
999
  switch (this.tokenStream.LA(1)) {
1000
1000
  case CircuitScriptParser.NEWLINE:
1001
1001
  {
1002
- this.state = 264;
1002
+ this.state = 266;
1003
1003
  this.match(CircuitScriptParser.NEWLINE);
1004
1004
  }
1005
1005
  break;
1006
1006
  case CircuitScriptParser.INTEGER_VALUE:
1007
1007
  case CircuitScriptParser.STRING_VALUE:
1008
1008
  {
1009
- this.state = 265;
1009
+ this.state = 267;
1010
1010
  this.at_to_multiple_line_expr();
1011
1011
  }
1012
1012
  break;
@@ -1014,11 +1014,11 @@ class CircuitScriptParser extends antlr.Parser {
1014
1014
  throw new antlr.NoViableAltException(this);
1015
1015
  }
1016
1016
  }
1017
- this.state = 268;
1017
+ this.state = 270;
1018
1018
  this.errorHandler.sync(this);
1019
1019
  _la = this.tokenStream.LA(1);
1020
1020
  } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
1021
- this.state = 270;
1021
+ this.state = 272;
1022
1022
  this.match(CircuitScriptParser.DEDENT);
1023
1023
  }
1024
1024
  }
@@ -1043,25 +1043,25 @@ class CircuitScriptParser extends antlr.Parser {
1043
1043
  try {
1044
1044
  this.enterOuterAlt(localContext, 1);
1045
1045
  {
1046
- this.state = 272;
1046
+ this.state = 274;
1047
1047
  this.pin_select_expr2();
1048
- this.state = 273;
1048
+ this.state = 275;
1049
1049
  this.match(CircuitScriptParser.T__0);
1050
- this.state = 274;
1050
+ this.state = 276;
1051
1051
  this.at_to_multiple_line_expr_to_pin();
1052
- this.state = 279;
1052
+ this.state = 281;
1053
1053
  this.errorHandler.sync(this);
1054
1054
  _la = this.tokenStream.LA(1);
1055
1055
  while (_la === 2) {
1056
1056
  {
1057
1057
  {
1058
- this.state = 275;
1058
+ this.state = 277;
1059
1059
  this.match(CircuitScriptParser.T__1);
1060
- this.state = 276;
1060
+ this.state = 278;
1061
1061
  this.at_to_multiple_line_expr_to_pin();
1062
1062
  }
1063
1063
  }
1064
- this.state = 281;
1064
+ this.state = 283;
1065
1065
  this.errorHandler.sync(this);
1066
1066
  _la = this.tokenStream.LA(1);
1067
1067
  }
@@ -1088,7 +1088,7 @@ class CircuitScriptParser extends antlr.Parser {
1088
1088
  try {
1089
1089
  this.enterOuterAlt(localContext, 1);
1090
1090
  {
1091
- this.state = 282;
1091
+ this.state = 284;
1092
1092
  _la = this.tokenStream.LA(1);
1093
1093
  if (!(_la === 54 || _la === 57)) {
1094
1094
  this.errorHandler.recoverInline(this);
@@ -1120,25 +1120,25 @@ class CircuitScriptParser extends antlr.Parser {
1120
1120
  try {
1121
1121
  this.enterOuterAlt(localContext, 1);
1122
1122
  {
1123
- this.state = 284;
1123
+ this.state = 286;
1124
1124
  this.at_component_expr();
1125
- this.state = 285;
1125
+ this.state = 287;
1126
1126
  this.match(CircuitScriptParser.T__0);
1127
- this.state = 286;
1127
+ this.state = 288;
1128
1128
  this.match(CircuitScriptParser.NEWLINE);
1129
- this.state = 287;
1129
+ this.state = 289;
1130
1130
  this.match(CircuitScriptParser.INDENT);
1131
- this.state = 290;
1131
+ this.state = 292;
1132
1132
  this.errorHandler.sync(this);
1133
1133
  _la = this.tokenStream.LA(1);
1134
1134
  do {
1135
1135
  {
1136
- this.state = 290;
1136
+ this.state = 292;
1137
1137
  this.errorHandler.sync(this);
1138
1138
  switch (this.tokenStream.LA(1)) {
1139
1139
  case CircuitScriptParser.NEWLINE:
1140
1140
  {
1141
- this.state = 288;
1141
+ this.state = 290;
1142
1142
  this.match(CircuitScriptParser.NEWLINE);
1143
1143
  }
1144
1144
  break;
@@ -1166,7 +1166,7 @@ class CircuitScriptParser extends antlr.Parser {
1166
1166
  case CircuitScriptParser.INTEGER_VALUE:
1167
1167
  case CircuitScriptParser.STRING_VALUE:
1168
1168
  {
1169
- this.state = 289;
1169
+ this.state = 291;
1170
1170
  this.at_block_expressions();
1171
1171
  }
1172
1172
  break;
@@ -1174,11 +1174,11 @@ class CircuitScriptParser extends antlr.Parser {
1174
1174
  throw new antlr.NoViableAltException(this);
1175
1175
  }
1176
1176
  }
1177
- this.state = 292;
1177
+ this.state = 294;
1178
1178
  this.errorHandler.sync(this);
1179
1179
  _la = this.tokenStream.LA(1);
1180
1180
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1181
- this.state = 294;
1181
+ this.state = 296;
1182
1182
  this.match(CircuitScriptParser.DEDENT);
1183
1183
  }
1184
1184
  }
@@ -1200,7 +1200,7 @@ class CircuitScriptParser extends antlr.Parser {
1200
1200
  let localContext = new At_block_expressionsContext(this.context, this.state);
1201
1201
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1202
1202
  try {
1203
- this.state = 298;
1203
+ this.state = 300;
1204
1204
  this.errorHandler.sync(this);
1205
1205
  switch (this.tokenStream.LA(1)) {
1206
1206
  case CircuitScriptParser.T__3:
@@ -1226,7 +1226,7 @@ class CircuitScriptParser extends antlr.Parser {
1226
1226
  case CircuitScriptParser.ID:
1227
1227
  this.enterOuterAlt(localContext, 1);
1228
1228
  {
1229
- this.state = 296;
1229
+ this.state = 298;
1230
1230
  this.expression();
1231
1231
  }
1232
1232
  break;
@@ -1234,7 +1234,7 @@ class CircuitScriptParser extends antlr.Parser {
1234
1234
  case CircuitScriptParser.STRING_VALUE:
1235
1235
  this.enterOuterAlt(localContext, 2);
1236
1236
  {
1237
- this.state = 297;
1237
+ this.state = 299;
1238
1238
  this.at_block_pin_expr();
1239
1239
  }
1240
1240
  break;
@@ -1262,11 +1262,11 @@ class CircuitScriptParser extends antlr.Parser {
1262
1262
  try {
1263
1263
  this.enterOuterAlt(localContext, 1);
1264
1264
  {
1265
- this.state = 300;
1265
+ this.state = 302;
1266
1266
  this.pin_select_expr2();
1267
- this.state = 301;
1267
+ this.state = 303;
1268
1268
  this.match(CircuitScriptParser.T__0);
1269
- this.state = 304;
1269
+ this.state = 306;
1270
1270
  this.errorHandler.sync(this);
1271
1271
  switch (this.tokenStream.LA(1)) {
1272
1272
  case CircuitScriptParser.T__3:
@@ -1292,13 +1292,13 @@ class CircuitScriptParser extends antlr.Parser {
1292
1292
  case CircuitScriptParser.NOT_CONNECTED:
1293
1293
  case CircuitScriptParser.ID:
1294
1294
  {
1295
- this.state = 302;
1295
+ this.state = 304;
1296
1296
  this.at_block_pin_expression_simple();
1297
1297
  }
1298
1298
  break;
1299
1299
  case CircuitScriptParser.NEWLINE:
1300
1300
  {
1301
- this.state = 303;
1301
+ this.state = 305;
1302
1302
  this.at_block_pin_expression_complex();
1303
1303
  }
1304
1304
  break;
@@ -1327,7 +1327,7 @@ class CircuitScriptParser extends antlr.Parser {
1327
1327
  try {
1328
1328
  this.enterOuterAlt(localContext, 1);
1329
1329
  {
1330
- this.state = 308;
1330
+ this.state = 310;
1331
1331
  this.errorHandler.sync(this);
1332
1332
  switch (this.tokenStream.LA(1)) {
1333
1333
  case CircuitScriptParser.T__3:
@@ -1352,13 +1352,13 @@ class CircuitScriptParser extends antlr.Parser {
1352
1352
  case CircuitScriptParser.Divide:
1353
1353
  case CircuitScriptParser.ID:
1354
1354
  {
1355
- this.state = 306;
1355
+ this.state = 308;
1356
1356
  this.expression();
1357
1357
  }
1358
1358
  break;
1359
1359
  case CircuitScriptParser.NOT_CONNECTED:
1360
1360
  {
1361
- this.state = 307;
1361
+ this.state = 309;
1362
1362
  this.match(CircuitScriptParser.NOT_CONNECTED);
1363
1363
  }
1364
1364
  break;
@@ -1387,7 +1387,7 @@ class CircuitScriptParser extends antlr.Parser {
1387
1387
  try {
1388
1388
  this.enterOuterAlt(localContext, 1);
1389
1389
  {
1390
- this.state = 310;
1390
+ this.state = 312;
1391
1391
  this.expressions_block();
1392
1392
  }
1393
1393
  }
@@ -1411,25 +1411,25 @@ class CircuitScriptParser extends antlr.Parser {
1411
1411
  try {
1412
1412
  this.enterOuterAlt(localContext, 1);
1413
1413
  {
1414
- this.state = 314;
1414
+ this.state = 316;
1415
1415
  this.errorHandler.sync(this);
1416
1416
  switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1417
1417
  case 1:
1418
1418
  {
1419
- this.state = 312;
1419
+ this.state = 314;
1420
1420
  this.atom_expr();
1421
1421
  }
1422
1422
  break;
1423
1423
  case 2:
1424
1424
  {
1425
- this.state = 313;
1425
+ this.state = 315;
1426
1426
  this.function_call_expr();
1427
1427
  }
1428
1428
  break;
1429
1429
  }
1430
- this.state = 316;
1430
+ this.state = 318;
1431
1431
  this.match(CircuitScriptParser.T__2);
1432
- this.state = 317;
1432
+ this.state = 319;
1433
1433
  this.data_expr(0);
1434
1434
  }
1435
1435
  }
@@ -1454,9 +1454,9 @@ class CircuitScriptParser extends antlr.Parser {
1454
1454
  try {
1455
1455
  this.enterOuterAlt(localContext, 1);
1456
1456
  {
1457
- this.state = 319;
1457
+ this.state = 321;
1458
1458
  this.atom_expr();
1459
- this.state = 320;
1459
+ this.state = 322;
1460
1460
  _la = this.tokenStream.LA(1);
1461
1461
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1462
1462
  this.errorHandler.recoverInline(this);
@@ -1465,7 +1465,7 @@ class CircuitScriptParser extends antlr.Parser {
1465
1465
  this.errorHandler.reportMatch(this);
1466
1466
  this.consume();
1467
1467
  }
1468
- this.state = 321;
1468
+ this.state = 323;
1469
1469
  this.data_expr(0);
1470
1470
  }
1471
1471
  }
@@ -1489,11 +1489,11 @@ class CircuitScriptParser extends antlr.Parser {
1489
1489
  try {
1490
1490
  this.enterOuterAlt(localContext, 1);
1491
1491
  {
1492
- this.state = 323;
1492
+ this.state = 325;
1493
1493
  this.match(CircuitScriptParser.ID);
1494
- this.state = 324;
1494
+ this.state = 326;
1495
1495
  this.match(CircuitScriptParser.T__2);
1496
- this.state = 325;
1496
+ this.state = 327;
1497
1497
  this.data_expr(0);
1498
1498
  }
1499
1499
  }
@@ -1517,46 +1517,46 @@ class CircuitScriptParser extends antlr.Parser {
1517
1517
  let _la;
1518
1518
  try {
1519
1519
  let alternative;
1520
- this.state = 350;
1520
+ this.state = 352;
1521
1521
  this.errorHandler.sync(this);
1522
1522
  switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1523
1523
  case 1:
1524
1524
  this.enterOuterAlt(localContext, 1);
1525
1525
  {
1526
1526
  {
1527
- this.state = 327;
1527
+ this.state = 329;
1528
1528
  this.data_expr(0);
1529
- this.state = 332;
1529
+ this.state = 334;
1530
1530
  this.errorHandler.sync(this);
1531
1531
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1532
1532
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1533
1533
  if (alternative === 1) {
1534
1534
  {
1535
1535
  {
1536
- this.state = 328;
1536
+ this.state = 330;
1537
1537
  this.match(CircuitScriptParser.T__1);
1538
- this.state = 329;
1538
+ this.state = 331;
1539
1539
  this.data_expr(0);
1540
1540
  }
1541
1541
  }
1542
1542
  }
1543
- this.state = 334;
1543
+ this.state = 336;
1544
1544
  this.errorHandler.sync(this);
1545
1545
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1546
1546
  }
1547
- this.state = 339;
1547
+ this.state = 341;
1548
1548
  this.errorHandler.sync(this);
1549
1549
  _la = this.tokenStream.LA(1);
1550
1550
  while (_la === 2) {
1551
1551
  {
1552
1552
  {
1553
- this.state = 335;
1553
+ this.state = 337;
1554
1554
  this.match(CircuitScriptParser.T__1);
1555
- this.state = 336;
1555
+ this.state = 338;
1556
1556
  this.keyword_assignment_expr();
1557
1557
  }
1558
1558
  }
1559
- this.state = 341;
1559
+ this.state = 343;
1560
1560
  this.errorHandler.sync(this);
1561
1561
  _la = this.tokenStream.LA(1);
1562
1562
  }
@@ -1567,21 +1567,21 @@ class CircuitScriptParser extends antlr.Parser {
1567
1567
  this.enterOuterAlt(localContext, 2);
1568
1568
  {
1569
1569
  {
1570
- this.state = 342;
1570
+ this.state = 344;
1571
1571
  this.keyword_assignment_expr();
1572
- this.state = 347;
1572
+ this.state = 349;
1573
1573
  this.errorHandler.sync(this);
1574
1574
  _la = this.tokenStream.LA(1);
1575
1575
  while (_la === 2) {
1576
1576
  {
1577
1577
  {
1578
- this.state = 343;
1578
+ this.state = 345;
1579
1579
  this.match(CircuitScriptParser.T__1);
1580
- this.state = 344;
1580
+ this.state = 346;
1581
1581
  this.keyword_assignment_expr();
1582
1582
  }
1583
1583
  }
1584
- this.state = 349;
1584
+ this.state = 351;
1585
1585
  this.errorHandler.sync(this);
1586
1586
  _la = this.tokenStream.LA(1);
1587
1587
  }
@@ -1610,11 +1610,11 @@ class CircuitScriptParser extends antlr.Parser {
1610
1610
  try {
1611
1611
  this.enterOuterAlt(localContext, 1);
1612
1612
  {
1613
- this.state = 352;
1613
+ this.state = 354;
1614
1614
  this.atom_expr();
1615
- this.state = 353;
1615
+ this.state = 355;
1616
1616
  this.match(CircuitScriptParser.T__2);
1617
- this.state = 354;
1617
+ this.state = 356;
1618
1618
  this.data_expr(0);
1619
1619
  }
1620
1620
  }
@@ -1638,13 +1638,13 @@ class CircuitScriptParser extends antlr.Parser {
1638
1638
  try {
1639
1639
  this.enterOuterAlt(localContext, 1);
1640
1640
  {
1641
- this.state = 356;
1641
+ this.state = 358;
1642
1642
  this.match(CircuitScriptParser.T__3);
1643
- this.state = 357;
1643
+ this.state = 359;
1644
1644
  this.match(CircuitScriptParser.ID);
1645
- this.state = 358;
1645
+ this.state = 360;
1646
1646
  this.match(CircuitScriptParser.T__2);
1647
- this.state = 359;
1647
+ this.state = 361;
1648
1648
  this.data_expr(0);
1649
1649
  }
1650
1650
  }
@@ -1677,7 +1677,7 @@ class CircuitScriptParser extends antlr.Parser {
1677
1677
  let alternative;
1678
1678
  this.enterOuterAlt(localContext, 1);
1679
1679
  {
1680
- this.state = 378;
1680
+ this.state = 380;
1681
1681
  this.errorHandler.sync(this);
1682
1682
  switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1683
1683
  case 1:
@@ -1685,11 +1685,11 @@ class CircuitScriptParser extends antlr.Parser {
1685
1685
  localContext = new RoundedBracketsExprContext(localContext);
1686
1686
  this.context = localContext;
1687
1687
  previousContext = localContext;
1688
- this.state = 362;
1688
+ this.state = 364;
1689
1689
  this.match(CircuitScriptParser.OPEN_PAREN);
1690
- this.state = 363;
1690
+ this.state = 365;
1691
1691
  this.data_expr(0);
1692
- this.state = 364;
1692
+ this.state = 366;
1693
1693
  this.match(CircuitScriptParser.CLOSE_PAREN);
1694
1694
  }
1695
1695
  break;
@@ -1698,7 +1698,7 @@ class CircuitScriptParser extends antlr.Parser {
1698
1698
  localContext = new ValueAtomExprContext(localContext);
1699
1699
  this.context = localContext;
1700
1700
  previousContext = localContext;
1701
- this.state = 368;
1701
+ this.state = 370;
1702
1702
  this.errorHandler.sync(this);
1703
1703
  switch (this.tokenStream.LA(1)) {
1704
1704
  case CircuitScriptParser.Minus:
@@ -1709,13 +1709,13 @@ class CircuitScriptParser extends antlr.Parser {
1709
1709
  case CircuitScriptParser.STRING_VALUE:
1710
1710
  case CircuitScriptParser.PERCENTAGE_VALUE:
1711
1711
  {
1712
- this.state = 366;
1712
+ this.state = 368;
1713
1713
  this.value_expr();
1714
1714
  }
1715
1715
  break;
1716
1716
  case CircuitScriptParser.ID:
1717
1717
  {
1718
- this.state = 367;
1718
+ this.state = 369;
1719
1719
  this.atom_expr();
1720
1720
  }
1721
1721
  break;
@@ -1729,10 +1729,10 @@ class CircuitScriptParser extends antlr.Parser {
1729
1729
  localContext = new UnaryOperatorExprContext(localContext);
1730
1730
  this.context = localContext;
1731
1731
  previousContext = localContext;
1732
- this.state = 370;
1732
+ this.state = 372;
1733
1733
  this.unary_operator();
1734
- this.state = 371;
1735
- this.data_expr(10);
1734
+ this.state = 373;
1735
+ this.data_expr(11);
1736
1736
  }
1737
1737
  break;
1738
1738
  case 4:
@@ -1740,7 +1740,7 @@ class CircuitScriptParser extends antlr.Parser {
1740
1740
  localContext = new DataExprContext(localContext);
1741
1741
  this.context = localContext;
1742
1742
  previousContext = localContext;
1743
- this.state = 373;
1743
+ this.state = 375;
1744
1744
  this.create_component_expr();
1745
1745
  }
1746
1746
  break;
@@ -1749,7 +1749,7 @@ class CircuitScriptParser extends antlr.Parser {
1749
1749
  localContext = new DataExprContext(localContext);
1750
1750
  this.context = localContext;
1751
1751
  previousContext = localContext;
1752
- this.state = 374;
1752
+ this.state = 376;
1753
1753
  this.create_graphic_expr();
1754
1754
  }
1755
1755
  break;
@@ -1758,7 +1758,7 @@ class CircuitScriptParser extends antlr.Parser {
1758
1758
  localContext = new DataExprContext(localContext);
1759
1759
  this.context = localContext;
1760
1760
  previousContext = localContext;
1761
- this.state = 375;
1761
+ this.state = 377;
1762
1762
  this.create_module_expr();
1763
1763
  }
1764
1764
  break;
@@ -1767,7 +1767,7 @@ class CircuitScriptParser extends antlr.Parser {
1767
1767
  localContext = new FunctionCallExprContext(localContext);
1768
1768
  this.context = localContext;
1769
1769
  previousContext = localContext;
1770
- this.state = 376;
1770
+ this.state = 378;
1771
1771
  this.function_call_expr();
1772
1772
  }
1773
1773
  break;
@@ -1776,13 +1776,13 @@ class CircuitScriptParser extends antlr.Parser {
1776
1776
  localContext = new ArrayExprContext(localContext);
1777
1777
  this.context = localContext;
1778
1778
  previousContext = localContext;
1779
- this.state = 377;
1779
+ this.state = 379;
1780
1780
  this.array_expr();
1781
1781
  }
1782
1782
  break;
1783
1783
  }
1784
1784
  this.context.stop = this.tokenStream.LT(-1);
1785
- this.state = 395;
1785
+ this.state = 402;
1786
1786
  this.errorHandler.sync(this);
1787
1787
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1788
1788
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1792,18 +1792,18 @@ class CircuitScriptParser extends antlr.Parser {
1792
1792
  }
1793
1793
  previousContext = localContext;
1794
1794
  {
1795
- this.state = 393;
1795
+ this.state = 400;
1796
1796
  this.errorHandler.sync(this);
1797
1797
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1798
1798
  case 1:
1799
1799
  {
1800
1800
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1801
1801
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1802
- this.state = 380;
1803
- if (!(this.precpred(this.context, 9))) {
1804
- throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1802
+ this.state = 382;
1803
+ if (!(this.precpred(this.context, 10))) {
1804
+ throw this.createFailedPredicateException("this.precpred(this.context, 10)");
1805
1805
  }
1806
- this.state = 381;
1806
+ this.state = 383;
1807
1807
  _la = this.tokenStream.LA(1);
1808
1808
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1809
1809
  this.errorHandler.recoverInline(this);
@@ -1812,19 +1812,19 @@ class CircuitScriptParser extends antlr.Parser {
1812
1812
  this.errorHandler.reportMatch(this);
1813
1813
  this.consume();
1814
1814
  }
1815
- this.state = 382;
1816
- this.data_expr(10);
1815
+ this.state = 384;
1816
+ this.data_expr(11);
1817
1817
  }
1818
1818
  break;
1819
1819
  case 2:
1820
1820
  {
1821
1821
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1822
1822
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1823
- this.state = 383;
1824
- if (!(this.precpred(this.context, 8))) {
1825
- throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1823
+ this.state = 385;
1824
+ if (!(this.precpred(this.context, 9))) {
1825
+ throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1826
1826
  }
1827
- this.state = 384;
1827
+ this.state = 386;
1828
1828
  _la = this.tokenStream.LA(1);
1829
1829
  if (!(_la === 42 || _la === 43)) {
1830
1830
  this.errorHandler.recoverInline(this);
@@ -1833,33 +1833,33 @@ class CircuitScriptParser extends antlr.Parser {
1833
1833
  this.errorHandler.reportMatch(this);
1834
1834
  this.consume();
1835
1835
  }
1836
- this.state = 385;
1837
- this.data_expr(9);
1836
+ this.state = 387;
1837
+ this.data_expr(10);
1838
1838
  }
1839
1839
  break;
1840
1840
  case 3:
1841
1841
  {
1842
1842
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1843
1843
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1844
- this.state = 386;
1845
- if (!(this.precpred(this.context, 7))) {
1846
- throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1844
+ this.state = 388;
1845
+ if (!(this.precpred(this.context, 8))) {
1846
+ throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1847
1847
  }
1848
- this.state = 387;
1848
+ this.state = 389;
1849
1849
  this.binary_operator();
1850
- this.state = 388;
1851
- this.data_expr(8);
1850
+ this.state = 390;
1851
+ this.data_expr(9);
1852
1852
  }
1853
1853
  break;
1854
1854
  case 4:
1855
1855
  {
1856
1856
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1857
1857
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1858
- this.state = 390;
1859
- if (!(this.precpred(this.context, 6))) {
1860
- throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1858
+ this.state = 392;
1859
+ if (!(this.precpred(this.context, 7))) {
1860
+ throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1861
1861
  }
1862
- this.state = 391;
1862
+ this.state = 393;
1863
1863
  _la = this.tokenStream.LA(1);
1864
1864
  if (!(_la === 40 || _la === 41)) {
1865
1865
  this.errorHandler.recoverInline(this);
@@ -1868,14 +1868,30 @@ class CircuitScriptParser extends antlr.Parser {
1868
1868
  this.errorHandler.reportMatch(this);
1869
1869
  this.consume();
1870
1870
  }
1871
- this.state = 392;
1872
- this.data_expr(7);
1871
+ this.state = 394;
1872
+ this.data_expr(8);
1873
+ }
1874
+ break;
1875
+ case 5:
1876
+ {
1877
+ localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
1878
+ this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1879
+ this.state = 395;
1880
+ if (!(this.precpred(this.context, 1))) {
1881
+ throw this.createFailedPredicateException("this.precpred(this.context, 1)");
1882
+ }
1883
+ this.state = 396;
1884
+ this.match(CircuitScriptParser.T__4);
1885
+ this.state = 397;
1886
+ this.data_expr(0);
1887
+ this.state = 398;
1888
+ this.match(CircuitScriptParser.T__5);
1873
1889
  }
1874
1890
  break;
1875
1891
  }
1876
1892
  }
1877
1893
  }
1878
- this.state = 397;
1894
+ this.state = 404;
1879
1895
  this.errorHandler.sync(this);
1880
1896
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1881
1897
  }
@@ -1902,7 +1918,7 @@ class CircuitScriptParser extends antlr.Parser {
1902
1918
  try {
1903
1919
  this.enterOuterAlt(localContext, 1);
1904
1920
  {
1905
- this.state = 398;
1921
+ this.state = 405;
1906
1922
  _la = this.tokenStream.LA(1);
1907
1923
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1908
1924
  this.errorHandler.recoverInline(this);
@@ -1934,7 +1950,7 @@ class CircuitScriptParser extends antlr.Parser {
1934
1950
  try {
1935
1951
  this.enterOuterAlt(localContext, 1);
1936
1952
  {
1937
- this.state = 400;
1953
+ this.state = 407;
1938
1954
  _la = this.tokenStream.LA(1);
1939
1955
  if (!(_la === 31 || _la === 43)) {
1940
1956
  this.errorHandler.recoverInline(this);
@@ -1967,16 +1983,16 @@ class CircuitScriptParser extends antlr.Parser {
1967
1983
  this.enterOuterAlt(localContext, 1);
1968
1984
  {
1969
1985
  {
1970
- this.state = 403;
1986
+ this.state = 410;
1971
1987
  this.errorHandler.sync(this);
1972
1988
  _la = this.tokenStream.LA(1);
1973
1989
  if (_la === 43) {
1974
1990
  {
1975
- this.state = 402;
1991
+ this.state = 409;
1976
1992
  this.match(CircuitScriptParser.Minus);
1977
1993
  }
1978
1994
  }
1979
- this.state = 405;
1995
+ this.state = 412;
1980
1996
  _la = this.tokenStream.LA(1);
1981
1997
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
1982
1998
  this.errorHandler.recoverInline(this);
@@ -2009,40 +2025,40 @@ class CircuitScriptParser extends antlr.Parser {
2009
2025
  try {
2010
2026
  this.enterOuterAlt(localContext, 1);
2011
2027
  {
2012
- this.state = 407;
2028
+ this.state = 414;
2013
2029
  this.match(CircuitScriptParser.Define);
2014
- this.state = 408;
2030
+ this.state = 415;
2015
2031
  this.match(CircuitScriptParser.ID);
2016
- this.state = 409;
2032
+ this.state = 416;
2017
2033
  this.match(CircuitScriptParser.OPEN_PAREN);
2018
- this.state = 411;
2034
+ this.state = 418;
2019
2035
  this.errorHandler.sync(this);
2020
2036
  _la = this.tokenStream.LA(1);
2021
2037
  if (_la === 56) {
2022
2038
  {
2023
- this.state = 410;
2039
+ this.state = 417;
2024
2040
  this.function_args_expr();
2025
2041
  }
2026
2042
  }
2027
- this.state = 413;
2043
+ this.state = 420;
2028
2044
  this.match(CircuitScriptParser.CLOSE_PAREN);
2029
- this.state = 414;
2045
+ this.state = 421;
2030
2046
  this.match(CircuitScriptParser.T__0);
2031
- this.state = 415;
2047
+ this.state = 422;
2032
2048
  this.match(CircuitScriptParser.NEWLINE);
2033
- this.state = 416;
2049
+ this.state = 423;
2034
2050
  this.match(CircuitScriptParser.INDENT);
2035
- this.state = 419;
2051
+ this.state = 426;
2036
2052
  this.errorHandler.sync(this);
2037
2053
  _la = this.tokenStream.LA(1);
2038
2054
  do {
2039
2055
  {
2040
- this.state = 419;
2056
+ this.state = 426;
2041
2057
  this.errorHandler.sync(this);
2042
2058
  switch (this.tokenStream.LA(1)) {
2043
2059
  case CircuitScriptParser.NEWLINE:
2044
2060
  {
2045
- this.state = 417;
2061
+ this.state = 424;
2046
2062
  this.match(CircuitScriptParser.NEWLINE);
2047
2063
  }
2048
2064
  break;
@@ -2069,7 +2085,7 @@ class CircuitScriptParser extends antlr.Parser {
2069
2085
  case CircuitScriptParser.Divide:
2070
2086
  case CircuitScriptParser.ID:
2071
2087
  {
2072
- this.state = 418;
2088
+ this.state = 425;
2073
2089
  this.function_expr();
2074
2090
  }
2075
2091
  break;
@@ -2077,11 +2093,11 @@ class CircuitScriptParser extends antlr.Parser {
2077
2093
  throw new antlr.NoViableAltException(this);
2078
2094
  }
2079
2095
  }
2080
- this.state = 421;
2096
+ this.state = 428;
2081
2097
  this.errorHandler.sync(this);
2082
2098
  _la = this.tokenStream.LA(1);
2083
2099
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2084
- this.state = 423;
2100
+ this.state = 430;
2085
2101
  this.match(CircuitScriptParser.DEDENT);
2086
2102
  }
2087
2103
  }
@@ -2103,7 +2119,7 @@ class CircuitScriptParser extends antlr.Parser {
2103
2119
  let localContext = new Function_exprContext(this.context, this.state);
2104
2120
  this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2105
2121
  try {
2106
- this.state = 427;
2122
+ this.state = 434;
2107
2123
  this.errorHandler.sync(this);
2108
2124
  switch (this.tokenStream.LA(1)) {
2109
2125
  case CircuitScriptParser.T__3:
@@ -2129,14 +2145,14 @@ class CircuitScriptParser extends antlr.Parser {
2129
2145
  case CircuitScriptParser.ID:
2130
2146
  this.enterOuterAlt(localContext, 1);
2131
2147
  {
2132
- this.state = 425;
2148
+ this.state = 432;
2133
2149
  this.expression();
2134
2150
  }
2135
2151
  break;
2136
2152
  case CircuitScriptParser.Return:
2137
2153
  this.enterOuterAlt(localContext, 2);
2138
2154
  {
2139
- this.state = 426;
2155
+ this.state = 433;
2140
2156
  this.function_return_expr();
2141
2157
  }
2142
2158
  break;
@@ -2164,49 +2180,49 @@ class CircuitScriptParser extends antlr.Parser {
2164
2180
  let _la;
2165
2181
  try {
2166
2182
  let alternative;
2167
- this.state = 458;
2183
+ this.state = 465;
2168
2184
  this.errorHandler.sync(this);
2169
2185
  switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2170
2186
  case 1:
2171
2187
  this.enterOuterAlt(localContext, 1);
2172
2188
  {
2173
- this.state = 429;
2189
+ this.state = 436;
2174
2190
  this.match(CircuitScriptParser.ID);
2175
- this.state = 434;
2191
+ this.state = 441;
2176
2192
  this.errorHandler.sync(this);
2177
2193
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2178
2194
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2179
2195
  if (alternative === 1) {
2180
2196
  {
2181
2197
  {
2182
- this.state = 430;
2198
+ this.state = 437;
2183
2199
  this.match(CircuitScriptParser.T__1);
2184
- this.state = 431;
2200
+ this.state = 438;
2185
2201
  this.match(CircuitScriptParser.ID);
2186
2202
  }
2187
2203
  }
2188
2204
  }
2189
- this.state = 436;
2205
+ this.state = 443;
2190
2206
  this.errorHandler.sync(this);
2191
2207
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2192
2208
  }
2193
- this.state = 443;
2209
+ this.state = 450;
2194
2210
  this.errorHandler.sync(this);
2195
2211
  _la = this.tokenStream.LA(1);
2196
2212
  while (_la === 2) {
2197
2213
  {
2198
2214
  {
2199
- this.state = 437;
2215
+ this.state = 444;
2200
2216
  this.match(CircuitScriptParser.T__1);
2201
- this.state = 438;
2217
+ this.state = 445;
2202
2218
  this.match(CircuitScriptParser.ID);
2203
- this.state = 439;
2219
+ this.state = 446;
2204
2220
  this.match(CircuitScriptParser.T__2);
2205
- this.state = 440;
2221
+ this.state = 447;
2206
2222
  this.value_expr();
2207
2223
  }
2208
2224
  }
2209
- this.state = 445;
2225
+ this.state = 452;
2210
2226
  this.errorHandler.sync(this);
2211
2227
  _la = this.tokenStream.LA(1);
2212
2228
  }
@@ -2215,29 +2231,29 @@ class CircuitScriptParser extends antlr.Parser {
2215
2231
  case 2:
2216
2232
  this.enterOuterAlt(localContext, 2);
2217
2233
  {
2218
- this.state = 446;
2234
+ this.state = 453;
2219
2235
  this.match(CircuitScriptParser.ID);
2220
- this.state = 447;
2236
+ this.state = 454;
2221
2237
  this.match(CircuitScriptParser.T__2);
2222
- this.state = 448;
2223
- this.value_expr();
2224
2238
  this.state = 455;
2239
+ this.value_expr();
2240
+ this.state = 462;
2225
2241
  this.errorHandler.sync(this);
2226
2242
  _la = this.tokenStream.LA(1);
2227
2243
  while (_la === 2) {
2228
2244
  {
2229
2245
  {
2230
- this.state = 449;
2246
+ this.state = 456;
2231
2247
  this.match(CircuitScriptParser.T__1);
2232
- this.state = 450;
2248
+ this.state = 457;
2233
2249
  this.match(CircuitScriptParser.ID);
2234
- this.state = 451;
2250
+ this.state = 458;
2235
2251
  this.match(CircuitScriptParser.T__2);
2236
- this.state = 452;
2252
+ this.state = 459;
2237
2253
  this.value_expr();
2238
2254
  }
2239
2255
  }
2240
- this.state = 457;
2256
+ this.state = 464;
2241
2257
  this.errorHandler.sync(this);
2242
2258
  _la = this.tokenStream.LA(1);
2243
2259
  }
@@ -2266,23 +2282,21 @@ class CircuitScriptParser extends antlr.Parser {
2266
2282
  let alternative;
2267
2283
  this.enterOuterAlt(localContext, 1);
2268
2284
  {
2269
- this.state = 460;
2285
+ this.state = 467;
2270
2286
  this.match(CircuitScriptParser.ID);
2271
- this.state = 465;
2287
+ this.state = 471;
2272
2288
  this.errorHandler.sync(this);
2273
2289
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2274
2290
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2275
2291
  if (alternative === 1) {
2276
2292
  {
2277
2293
  {
2278
- this.state = 461;
2279
- this.match(CircuitScriptParser.T__4);
2280
- this.state = 462;
2281
- this.match(CircuitScriptParser.ID);
2294
+ this.state = 468;
2295
+ this.trailer_expr2();
2282
2296
  }
2283
2297
  }
2284
2298
  }
2285
- this.state = 467;
2299
+ this.state = 473;
2286
2300
  this.errorHandler.sync(this);
2287
2301
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2288
2302
  }
@@ -2307,36 +2321,80 @@ class CircuitScriptParser extends antlr.Parser {
2307
2321
  this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2308
2322
  let _la;
2309
2323
  try {
2310
- this.state = 475;
2324
+ this.state = 480;
2311
2325
  this.errorHandler.sync(this);
2312
2326
  switch (this.tokenStream.LA(1)) {
2313
2327
  case CircuitScriptParser.OPEN_PAREN:
2314
2328
  this.enterOuterAlt(localContext, 1);
2315
2329
  {
2316
- this.state = 468;
2330
+ this.state = 474;
2317
2331
  this.match(CircuitScriptParser.OPEN_PAREN);
2318
- this.state = 470;
2332
+ this.state = 476;
2319
2333
  this.errorHandler.sync(this);
2320
2334
  _la = this.tokenStream.LA(1);
2321
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2335
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2322
2336
  {
2323
- this.state = 469;
2337
+ this.state = 475;
2324
2338
  this.parameters();
2325
2339
  }
2326
2340
  }
2327
- this.state = 472;
2341
+ this.state = 478;
2328
2342
  this.match(CircuitScriptParser.CLOSE_PAREN);
2329
2343
  }
2330
2344
  break;
2331
2345
  case CircuitScriptParser.T__4:
2346
+ case CircuitScriptParser.T__6:
2332
2347
  this.enterOuterAlt(localContext, 2);
2333
2348
  {
2334
- this.state = 473;
2335
- this.match(CircuitScriptParser.T__4);
2336
- this.state = 474;
2349
+ this.state = 479;
2350
+ this.trailer_expr2();
2351
+ }
2352
+ break;
2353
+ default:
2354
+ throw new antlr.NoViableAltException(this);
2355
+ }
2356
+ }
2357
+ catch (re) {
2358
+ if (re instanceof antlr.RecognitionException) {
2359
+ this.errorHandler.reportError(this, re);
2360
+ this.errorHandler.recover(this, re);
2361
+ }
2362
+ else {
2363
+ throw re;
2364
+ }
2365
+ }
2366
+ finally {
2367
+ this.exitRule();
2368
+ }
2369
+ return localContext;
2370
+ }
2371
+ trailer_expr2() {
2372
+ let localContext = new Trailer_expr2Context(this.context, this.state);
2373
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr2);
2374
+ try {
2375
+ this.state = 488;
2376
+ this.errorHandler.sync(this);
2377
+ switch (this.tokenStream.LA(1)) {
2378
+ case CircuitScriptParser.T__6:
2379
+ this.enterOuterAlt(localContext, 1);
2380
+ {
2381
+ this.state = 482;
2382
+ this.match(CircuitScriptParser.T__6);
2383
+ this.state = 483;
2337
2384
  this.match(CircuitScriptParser.ID);
2338
2385
  }
2339
2386
  break;
2387
+ case CircuitScriptParser.T__4:
2388
+ this.enterOuterAlt(localContext, 2);
2389
+ {
2390
+ this.state = 484;
2391
+ this.match(CircuitScriptParser.T__4);
2392
+ this.state = 485;
2393
+ this.data_expr(0);
2394
+ this.state = 486;
2395
+ this.match(CircuitScriptParser.T__5);
2396
+ }
2397
+ break;
2340
2398
  default:
2341
2399
  throw new antlr.NoViableAltException(this);
2342
2400
  }
@@ -2357,24 +2415,24 @@ class CircuitScriptParser extends antlr.Parser {
2357
2415
  }
2358
2416
  function_call_expr() {
2359
2417
  let localContext = new Function_call_exprContext(this.context, this.state);
2360
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_call_expr);
2418
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_function_call_expr);
2361
2419
  let _la;
2362
2420
  try {
2363
2421
  let alternative;
2364
2422
  this.enterOuterAlt(localContext, 1);
2365
2423
  {
2366
- this.state = 478;
2424
+ this.state = 491;
2367
2425
  this.errorHandler.sync(this);
2368
2426
  _la = this.tokenStream.LA(1);
2369
2427
  if (_la === 42 || _la === 44) {
2370
2428
  {
2371
- this.state = 477;
2429
+ this.state = 490;
2372
2430
  this.net_namespace_expr();
2373
2431
  }
2374
2432
  }
2375
- this.state = 480;
2433
+ this.state = 493;
2376
2434
  this.match(CircuitScriptParser.ID);
2377
- this.state = 482;
2435
+ this.state = 495;
2378
2436
  this.errorHandler.sync(this);
2379
2437
  alternative = 1;
2380
2438
  do {
@@ -2382,7 +2440,7 @@ class CircuitScriptParser extends antlr.Parser {
2382
2440
  case 1:
2383
2441
  {
2384
2442
  {
2385
- this.state = 481;
2443
+ this.state = 494;
2386
2444
  this.trailer_expr();
2387
2445
  }
2388
2446
  }
@@ -2390,9 +2448,9 @@ class CircuitScriptParser extends antlr.Parser {
2390
2448
  default:
2391
2449
  throw new antlr.NoViableAltException(this);
2392
2450
  }
2393
- this.state = 484;
2451
+ this.state = 497;
2394
2452
  this.errorHandler.sync(this);
2395
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2453
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 50, this.context);
2396
2454
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2397
2455
  }
2398
2456
  }
@@ -2412,28 +2470,28 @@ class CircuitScriptParser extends antlr.Parser {
2412
2470
  }
2413
2471
  net_namespace_expr() {
2414
2472
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2415
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_net_namespace_expr);
2473
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_net_namespace_expr);
2416
2474
  let _la;
2417
2475
  try {
2418
2476
  this.enterOuterAlt(localContext, 1);
2419
2477
  {
2420
- this.state = 487;
2478
+ this.state = 500;
2421
2479
  this.errorHandler.sync(this);
2422
2480
  _la = this.tokenStream.LA(1);
2423
2481
  if (_la === 42) {
2424
2482
  {
2425
- this.state = 486;
2483
+ this.state = 499;
2426
2484
  this.match(CircuitScriptParser.Addition);
2427
2485
  }
2428
2486
  }
2429
- this.state = 489;
2487
+ this.state = 502;
2430
2488
  this.match(CircuitScriptParser.Divide);
2431
- this.state = 491;
2489
+ this.state = 504;
2432
2490
  this.errorHandler.sync(this);
2433
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2491
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context)) {
2434
2492
  case 1:
2435
2493
  {
2436
- this.state = 490;
2494
+ this.state = 503;
2437
2495
  this.data_expr(0);
2438
2496
  }
2439
2497
  break;
@@ -2456,13 +2514,13 @@ class CircuitScriptParser extends antlr.Parser {
2456
2514
  }
2457
2515
  function_return_expr() {
2458
2516
  let localContext = new Function_return_exprContext(this.context, this.state);
2459
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_return_expr);
2517
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_function_return_expr);
2460
2518
  try {
2461
2519
  this.enterOuterAlt(localContext, 1);
2462
2520
  {
2463
- this.state = 493;
2521
+ this.state = 506;
2464
2522
  this.match(CircuitScriptParser.Return);
2465
- this.state = 494;
2523
+ this.state = 507;
2466
2524
  this.data_expr(0);
2467
2525
  }
2468
2526
  }
@@ -2482,15 +2540,15 @@ class CircuitScriptParser extends antlr.Parser {
2482
2540
  }
2483
2541
  property_block_expr() {
2484
2542
  let localContext = new Property_block_exprContext(this.context, this.state);
2485
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_block_expr);
2543
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_block_expr);
2486
2544
  try {
2487
2545
  this.enterOuterAlt(localContext, 1);
2488
2546
  {
2489
- this.state = 496;
2547
+ this.state = 509;
2490
2548
  this.property_key_expr();
2491
- this.state = 497;
2549
+ this.state = 510;
2492
2550
  this.match(CircuitScriptParser.T__0);
2493
- this.state = 498;
2551
+ this.state = 511;
2494
2552
  this.expressions_block();
2495
2553
  }
2496
2554
  }
@@ -2510,32 +2568,32 @@ class CircuitScriptParser extends antlr.Parser {
2510
2568
  }
2511
2569
  create_component_expr() {
2512
2570
  let localContext = new Create_component_exprContext(this.context, this.state);
2513
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_component_expr);
2571
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_create_component_expr);
2514
2572
  let _la;
2515
2573
  try {
2516
2574
  this.enterOuterAlt(localContext, 1);
2517
2575
  {
2518
- this.state = 500;
2576
+ this.state = 513;
2519
2577
  this.match(CircuitScriptParser.Create);
2520
- this.state = 501;
2578
+ this.state = 514;
2521
2579
  this.match(CircuitScriptParser.Component);
2522
- this.state = 502;
2580
+ this.state = 515;
2523
2581
  this.match(CircuitScriptParser.T__0);
2524
- this.state = 503;
2582
+ this.state = 516;
2525
2583
  this.match(CircuitScriptParser.NEWLINE);
2526
- this.state = 504;
2584
+ this.state = 517;
2527
2585
  this.match(CircuitScriptParser.INDENT);
2528
- this.state = 507;
2586
+ this.state = 520;
2529
2587
  this.errorHandler.sync(this);
2530
2588
  _la = this.tokenStream.LA(1);
2531
2589
  do {
2532
2590
  {
2533
- this.state = 507;
2591
+ this.state = 520;
2534
2592
  this.errorHandler.sync(this);
2535
2593
  switch (this.tokenStream.LA(1)) {
2536
2594
  case CircuitScriptParser.NEWLINE:
2537
2595
  {
2538
- this.state = 505;
2596
+ this.state = 518;
2539
2597
  this.match(CircuitScriptParser.NEWLINE);
2540
2598
  }
2541
2599
  break;
@@ -2543,7 +2601,7 @@ class CircuitScriptParser extends antlr.Parser {
2543
2601
  case CircuitScriptParser.INTEGER_VALUE:
2544
2602
  case CircuitScriptParser.STRING_VALUE:
2545
2603
  {
2546
- this.state = 506;
2604
+ this.state = 519;
2547
2605
  this.property_expr();
2548
2606
  }
2549
2607
  break;
@@ -2551,11 +2609,11 @@ class CircuitScriptParser extends antlr.Parser {
2551
2609
  throw new antlr.NoViableAltException(this);
2552
2610
  }
2553
2611
  }
2554
- this.state = 509;
2612
+ this.state = 522;
2555
2613
  this.errorHandler.sync(this);
2556
2614
  _la = this.tokenStream.LA(1);
2557
2615
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2558
- this.state = 511;
2616
+ this.state = 524;
2559
2617
  this.match(CircuitScriptParser.DEDENT);
2560
2618
  }
2561
2619
  }
@@ -2575,26 +2633,26 @@ class CircuitScriptParser extends antlr.Parser {
2575
2633
  }
2576
2634
  graphic_expressions_block() {
2577
2635
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2578
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_graphic_expressions_block);
2636
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_graphic_expressions_block);
2579
2637
  let _la;
2580
2638
  try {
2581
2639
  this.enterOuterAlt(localContext, 1);
2582
2640
  {
2583
- this.state = 513;
2641
+ this.state = 526;
2584
2642
  this.match(CircuitScriptParser.NEWLINE);
2585
- this.state = 514;
2643
+ this.state = 527;
2586
2644
  this.match(CircuitScriptParser.INDENT);
2587
- this.state = 517;
2645
+ this.state = 530;
2588
2646
  this.errorHandler.sync(this);
2589
2647
  _la = this.tokenStream.LA(1);
2590
2648
  do {
2591
2649
  {
2592
- this.state = 517;
2650
+ this.state = 530;
2593
2651
  this.errorHandler.sync(this);
2594
2652
  switch (this.tokenStream.LA(1)) {
2595
2653
  case CircuitScriptParser.NEWLINE:
2596
2654
  {
2597
- this.state = 515;
2655
+ this.state = 528;
2598
2656
  this.match(CircuitScriptParser.NEWLINE);
2599
2657
  }
2600
2658
  break;
@@ -2602,7 +2660,7 @@ class CircuitScriptParser extends antlr.Parser {
2602
2660
  case CircuitScriptParser.For:
2603
2661
  case CircuitScriptParser.ID:
2604
2662
  {
2605
- this.state = 516;
2663
+ this.state = 529;
2606
2664
  this.graphic_expr();
2607
2665
  }
2608
2666
  break;
@@ -2610,11 +2668,11 @@ class CircuitScriptParser extends antlr.Parser {
2610
2668
  throw new antlr.NoViableAltException(this);
2611
2669
  }
2612
2670
  }
2613
- this.state = 519;
2671
+ this.state = 532;
2614
2672
  this.errorHandler.sync(this);
2615
2673
  _la = this.tokenStream.LA(1);
2616
2674
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2617
- this.state = 521;
2675
+ this.state = 534;
2618
2676
  this.match(CircuitScriptParser.DEDENT);
2619
2677
  }
2620
2678
  }
@@ -2634,31 +2692,31 @@ class CircuitScriptParser extends antlr.Parser {
2634
2692
  }
2635
2693
  create_graphic_expr() {
2636
2694
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2637
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2695
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_graphic_expr);
2638
2696
  let _la;
2639
2697
  try {
2640
2698
  this.enterOuterAlt(localContext, 1);
2641
2699
  {
2642
- this.state = 523;
2700
+ this.state = 536;
2643
2701
  this.match(CircuitScriptParser.Create);
2644
- this.state = 524;
2702
+ this.state = 537;
2645
2703
  this.match(CircuitScriptParser.Graphic);
2646
- this.state = 528;
2704
+ this.state = 541;
2647
2705
  this.errorHandler.sync(this);
2648
2706
  _la = this.tokenStream.LA(1);
2649
2707
  if (_la === 52) {
2650
2708
  {
2651
- this.state = 525;
2709
+ this.state = 538;
2652
2710
  this.match(CircuitScriptParser.OPEN_PAREN);
2653
- this.state = 526;
2711
+ this.state = 539;
2654
2712
  this.match(CircuitScriptParser.ID);
2655
- this.state = 527;
2713
+ this.state = 540;
2656
2714
  this.match(CircuitScriptParser.CLOSE_PAREN);
2657
2715
  }
2658
2716
  }
2659
- this.state = 530;
2717
+ this.state = 543;
2660
2718
  this.match(CircuitScriptParser.T__0);
2661
- this.state = 531;
2719
+ this.state = 544;
2662
2720
  this.graphic_expressions_block();
2663
2721
  }
2664
2722
  }
@@ -2678,54 +2736,54 @@ class CircuitScriptParser extends antlr.Parser {
2678
2736
  }
2679
2737
  create_module_expr() {
2680
2738
  let localContext = new Create_module_exprContext(this.context, this.state);
2681
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_module_expr);
2739
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_module_expr);
2682
2740
  let _la;
2683
2741
  try {
2684
2742
  this.enterOuterAlt(localContext, 1);
2685
2743
  {
2686
- this.state = 533;
2744
+ this.state = 546;
2687
2745
  this.match(CircuitScriptParser.Create);
2688
- this.state = 534;
2746
+ this.state = 547;
2689
2747
  this.match(CircuitScriptParser.Module);
2690
- this.state = 535;
2748
+ this.state = 548;
2691
2749
  this.match(CircuitScriptParser.T__0);
2692
- this.state = 536;
2750
+ this.state = 549;
2693
2751
  this.match(CircuitScriptParser.NEWLINE);
2694
- this.state = 537;
2752
+ this.state = 550;
2695
2753
  this.match(CircuitScriptParser.INDENT);
2696
- this.state = 541;
2754
+ this.state = 554;
2697
2755
  this.errorHandler.sync(this);
2698
2756
  _la = this.tokenStream.LA(1);
2699
2757
  do {
2700
2758
  {
2701
- this.state = 541;
2759
+ this.state = 554;
2702
2760
  this.errorHandler.sync(this);
2703
- switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2761
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2704
2762
  case 1:
2705
2763
  {
2706
- this.state = 538;
2764
+ this.state = 551;
2707
2765
  this.match(CircuitScriptParser.NEWLINE);
2708
2766
  }
2709
2767
  break;
2710
2768
  case 2:
2711
2769
  {
2712
- this.state = 539;
2770
+ this.state = 552;
2713
2771
  this.property_expr();
2714
2772
  }
2715
2773
  break;
2716
2774
  case 3:
2717
2775
  {
2718
- this.state = 540;
2776
+ this.state = 553;
2719
2777
  this.property_block_expr();
2720
2778
  }
2721
2779
  break;
2722
2780
  }
2723
2781
  }
2724
- this.state = 543;
2782
+ this.state = 556;
2725
2783
  this.errorHandler.sync(this);
2726
2784
  _la = this.tokenStream.LA(1);
2727
2785
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2728
- this.state = 545;
2786
+ this.state = 558;
2729
2787
  this.match(CircuitScriptParser.DEDENT);
2730
2788
  }
2731
2789
  }
@@ -2745,27 +2803,27 @@ class CircuitScriptParser extends antlr.Parser {
2745
2803
  }
2746
2804
  nested_properties_inner() {
2747
2805
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2748
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_nested_properties_inner);
2806
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_nested_properties_inner);
2749
2807
  let _la;
2750
2808
  try {
2751
2809
  this.enterOuterAlt(localContext, 1);
2752
2810
  {
2753
2811
  {
2754
- this.state = 547;
2812
+ this.state = 560;
2755
2813
  this.match(CircuitScriptParser.NEWLINE);
2756
- this.state = 548;
2814
+ this.state = 561;
2757
2815
  this.match(CircuitScriptParser.INDENT);
2758
- this.state = 551;
2816
+ this.state = 564;
2759
2817
  this.errorHandler.sync(this);
2760
2818
  _la = this.tokenStream.LA(1);
2761
2819
  do {
2762
2820
  {
2763
- this.state = 551;
2821
+ this.state = 564;
2764
2822
  this.errorHandler.sync(this);
2765
2823
  switch (this.tokenStream.LA(1)) {
2766
2824
  case CircuitScriptParser.NEWLINE:
2767
2825
  {
2768
- this.state = 549;
2826
+ this.state = 562;
2769
2827
  this.match(CircuitScriptParser.NEWLINE);
2770
2828
  }
2771
2829
  break;
@@ -2773,7 +2831,7 @@ class CircuitScriptParser extends antlr.Parser {
2773
2831
  case CircuitScriptParser.INTEGER_VALUE:
2774
2832
  case CircuitScriptParser.STRING_VALUE:
2775
2833
  {
2776
- this.state = 550;
2834
+ this.state = 563;
2777
2835
  this.property_expr();
2778
2836
  }
2779
2837
  break;
@@ -2781,11 +2839,11 @@ class CircuitScriptParser extends antlr.Parser {
2781
2839
  throw new antlr.NoViableAltException(this);
2782
2840
  }
2783
2841
  }
2784
- this.state = 553;
2842
+ this.state = 566;
2785
2843
  this.errorHandler.sync(this);
2786
2844
  _la = this.tokenStream.LA(1);
2787
2845
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2788
- this.state = 555;
2846
+ this.state = 568;
2789
2847
  this.match(CircuitScriptParser.DEDENT);
2790
2848
  }
2791
2849
  }
@@ -2806,10 +2864,10 @@ class CircuitScriptParser extends antlr.Parser {
2806
2864
  }
2807
2865
  graphic_expr() {
2808
2866
  let localContext = new Graphic_exprContext(this.context, this.state);
2809
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
2867
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_graphic_expr);
2810
2868
  let _la;
2811
2869
  try {
2812
- this.state = 583;
2870
+ this.state = 596;
2813
2871
  this.errorHandler.sync(this);
2814
2872
  switch (this.tokenStream.LA(1)) {
2815
2873
  case CircuitScriptParser.Pin:
@@ -2817,7 +2875,7 @@ class CircuitScriptParser extends antlr.Parser {
2817
2875
  localContext = new GraphicCommandExprContext(localContext);
2818
2876
  this.enterOuterAlt(localContext, 1);
2819
2877
  {
2820
- this.state = 557;
2878
+ this.state = 570;
2821
2879
  localContext._command = this.tokenStream.LT(1);
2822
2880
  _la = this.tokenStream.LA(1);
2823
2881
  if (!(_la === 15 || _la === 56)) {
@@ -2827,37 +2885,37 @@ class CircuitScriptParser extends antlr.Parser {
2827
2885
  this.errorHandler.reportMatch(this);
2828
2886
  this.consume();
2829
2887
  }
2830
- this.state = 559;
2888
+ this.state = 572;
2831
2889
  this.errorHandler.sync(this);
2832
2890
  _la = this.tokenStream.LA(1);
2833
2891
  if (_la === 1) {
2834
2892
  {
2835
- this.state = 558;
2893
+ this.state = 571;
2836
2894
  this.match(CircuitScriptParser.T__0);
2837
2895
  }
2838
2896
  }
2839
- this.state = 567;
2897
+ this.state = 580;
2840
2898
  this.errorHandler.sync(this);
2841
- switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2899
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2842
2900
  case 1:
2843
2901
  {
2844
- this.state = 561;
2902
+ this.state = 574;
2845
2903
  this.parameters();
2846
2904
  }
2847
2905
  break;
2848
2906
  case 2:
2849
2907
  {
2850
- this.state = 562;
2908
+ this.state = 575;
2851
2909
  this.match(CircuitScriptParser.OPEN_PAREN);
2852
- this.state = 563;
2910
+ this.state = 576;
2853
2911
  this.parameters();
2854
- this.state = 564;
2912
+ this.state = 577;
2855
2913
  this.match(CircuitScriptParser.CLOSE_PAREN);
2856
2914
  }
2857
2915
  break;
2858
2916
  case 3:
2859
2917
  {
2860
- this.state = 566;
2918
+ this.state = 579;
2861
2919
  this.nested_properties_inner();
2862
2920
  }
2863
2921
  break;
@@ -2868,33 +2926,33 @@ class CircuitScriptParser extends antlr.Parser {
2868
2926
  localContext = new GraphicForExprContext(localContext);
2869
2927
  this.enterOuterAlt(localContext, 2);
2870
2928
  {
2871
- this.state = 569;
2929
+ this.state = 582;
2872
2930
  this.match(CircuitScriptParser.For);
2873
- this.state = 570;
2931
+ this.state = 583;
2874
2932
  this.match(CircuitScriptParser.ID);
2875
- this.state = 575;
2933
+ this.state = 588;
2876
2934
  this.errorHandler.sync(this);
2877
2935
  _la = this.tokenStream.LA(1);
2878
2936
  while (_la === 2) {
2879
2937
  {
2880
2938
  {
2881
- this.state = 571;
2939
+ this.state = 584;
2882
2940
  this.match(CircuitScriptParser.T__1);
2883
- this.state = 572;
2941
+ this.state = 585;
2884
2942
  this.match(CircuitScriptParser.ID);
2885
2943
  }
2886
2944
  }
2887
- this.state = 577;
2945
+ this.state = 590;
2888
2946
  this.errorHandler.sync(this);
2889
2947
  _la = this.tokenStream.LA(1);
2890
2948
  }
2891
- this.state = 578;
2949
+ this.state = 591;
2892
2950
  this.match(CircuitScriptParser.In);
2893
- this.state = 579;
2951
+ this.state = 592;
2894
2952
  this.data_expr(0);
2895
- this.state = 580;
2953
+ this.state = 593;
2896
2954
  this.match(CircuitScriptParser.T__0);
2897
- this.state = 581;
2955
+ this.state = 594;
2898
2956
  this.graphic_expressions_block();
2899
2957
  }
2900
2958
  break;
@@ -2918,15 +2976,15 @@ class CircuitScriptParser extends antlr.Parser {
2918
2976
  }
2919
2977
  property_expr() {
2920
2978
  let localContext = new Property_exprContext(this.context, this.state);
2921
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_property_expr);
2979
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_expr);
2922
2980
  try {
2923
2981
  this.enterOuterAlt(localContext, 1);
2924
2982
  {
2925
- this.state = 585;
2983
+ this.state = 598;
2926
2984
  this.property_key_expr();
2927
- this.state = 586;
2985
+ this.state = 599;
2928
2986
  this.match(CircuitScriptParser.T__0);
2929
- this.state = 587;
2987
+ this.state = 600;
2930
2988
  this.property_value_expr();
2931
2989
  }
2932
2990
  }
@@ -2946,12 +3004,12 @@ class CircuitScriptParser extends antlr.Parser {
2946
3004
  }
2947
3005
  property_key_expr() {
2948
3006
  let localContext = new Property_key_exprContext(this.context, this.state);
2949
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_key_expr);
3007
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_key_expr);
2950
3008
  let _la;
2951
3009
  try {
2952
3010
  this.enterOuterAlt(localContext, 1);
2953
3011
  {
2954
- this.state = 589;
3012
+ this.state = 602;
2955
3013
  _la = this.tokenStream.LA(1);
2956
3014
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
2957
3015
  this.errorHandler.recoverInline(this);
@@ -2978,21 +3036,21 @@ class CircuitScriptParser extends antlr.Parser {
2978
3036
  }
2979
3037
  property_value_expr() {
2980
3038
  let localContext = new Property_value_exprContext(this.context, this.state);
2981
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
3039
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_value_expr);
2982
3040
  let _la;
2983
3041
  try {
2984
- this.state = 600;
3042
+ this.state = 613;
2985
3043
  this.errorHandler.sync(this);
2986
3044
  switch (this.tokenStream.LA(1)) {
2987
3045
  case CircuitScriptParser.NEWLINE:
2988
3046
  localContext = new Nested_propertiesContext(localContext);
2989
3047
  this.enterOuterAlt(localContext, 1);
2990
3048
  {
2991
- this.state = 591;
3049
+ this.state = 604;
2992
3050
  this.nested_properties_inner();
2993
3051
  }
2994
3052
  break;
2995
- case CircuitScriptParser.T__5:
3053
+ case CircuitScriptParser.T__4:
2996
3054
  case CircuitScriptParser.Create:
2997
3055
  case CircuitScriptParser.Not:
2998
3056
  case CircuitScriptParser.Addition:
@@ -3009,21 +3067,21 @@ class CircuitScriptParser extends antlr.Parser {
3009
3067
  localContext = new Single_line_propertyContext(localContext);
3010
3068
  this.enterOuterAlt(localContext, 2);
3011
3069
  {
3012
- this.state = 592;
3070
+ this.state = 605;
3013
3071
  this.data_expr(0);
3014
- this.state = 597;
3072
+ this.state = 610;
3015
3073
  this.errorHandler.sync(this);
3016
3074
  _la = this.tokenStream.LA(1);
3017
3075
  while (_la === 2) {
3018
3076
  {
3019
3077
  {
3020
- this.state = 593;
3078
+ this.state = 606;
3021
3079
  this.match(CircuitScriptParser.T__1);
3022
- this.state = 594;
3080
+ this.state = 607;
3023
3081
  this.data_expr(0);
3024
3082
  }
3025
3083
  }
3026
- this.state = 599;
3084
+ this.state = 612;
3027
3085
  this.errorHandler.sync(this);
3028
3086
  _la = this.tokenStream.LA(1);
3029
3087
  }
@@ -3049,29 +3107,29 @@ class CircuitScriptParser extends antlr.Parser {
3049
3107
  }
3050
3108
  wire_atom_expr() {
3051
3109
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3052
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3110
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_atom_expr);
3053
3111
  try {
3054
- this.state = 608;
3112
+ this.state = 621;
3055
3113
  this.errorHandler.sync(this);
3056
- switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3114
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3057
3115
  case 1:
3058
3116
  localContext = new Wire_expr_direction_valueContext(localContext);
3059
3117
  this.enterOuterAlt(localContext, 1);
3060
3118
  {
3061
- this.state = 602;
3119
+ this.state = 615;
3062
3120
  this.match(CircuitScriptParser.ID);
3063
- this.state = 605;
3121
+ this.state = 618;
3064
3122
  this.errorHandler.sync(this);
3065
- switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3123
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3066
3124
  case 1:
3067
3125
  {
3068
- this.state = 603;
3126
+ this.state = 616;
3069
3127
  this.match(CircuitScriptParser.INTEGER_VALUE);
3070
3128
  }
3071
3129
  break;
3072
3130
  case 2:
3073
3131
  {
3074
- this.state = 604;
3132
+ this.state = 617;
3075
3133
  this.data_expr(0);
3076
3134
  }
3077
3135
  break;
@@ -3082,7 +3140,7 @@ class CircuitScriptParser extends antlr.Parser {
3082
3140
  localContext = new Wire_expr_direction_onlyContext(localContext);
3083
3141
  this.enterOuterAlt(localContext, 2);
3084
3142
  {
3085
- this.state = 607;
3143
+ this.state = 620;
3086
3144
  this.match(CircuitScriptParser.ID);
3087
3145
  }
3088
3146
  break;
@@ -3104,28 +3162,28 @@ class CircuitScriptParser extends antlr.Parser {
3104
3162
  }
3105
3163
  wire_expr() {
3106
3164
  let localContext = new Wire_exprContext(this.context, this.state);
3107
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_expr);
3165
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_expr);
3108
3166
  try {
3109
3167
  let alternative;
3110
3168
  this.enterOuterAlt(localContext, 1);
3111
3169
  {
3112
- this.state = 610;
3170
+ this.state = 623;
3113
3171
  this.match(CircuitScriptParser.Wire);
3114
- this.state = 614;
3172
+ this.state = 627;
3115
3173
  this.errorHandler.sync(this);
3116
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3174
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3117
3175
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3118
3176
  if (alternative === 1) {
3119
3177
  {
3120
3178
  {
3121
- this.state = 611;
3179
+ this.state = 624;
3122
3180
  this.wire_atom_expr();
3123
3181
  }
3124
3182
  }
3125
3183
  }
3126
- this.state = 616;
3184
+ this.state = 629;
3127
3185
  this.errorHandler.sync(this);
3128
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3186
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3129
3187
  }
3130
3188
  }
3131
3189
  }
@@ -3145,45 +3203,45 @@ class CircuitScriptParser extends antlr.Parser {
3145
3203
  }
3146
3204
  array_expr() {
3147
3205
  let localContext = new Array_exprContext(this.context, this.state);
3148
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_array_expr);
3206
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_array_expr);
3149
3207
  let _la;
3150
3208
  try {
3151
3209
  this.enterOuterAlt(localContext, 1);
3152
3210
  {
3153
- this.state = 617;
3154
- this.match(CircuitScriptParser.T__5);
3155
- this.state = 628;
3211
+ this.state = 630;
3212
+ this.match(CircuitScriptParser.T__4);
3213
+ this.state = 641;
3156
3214
  this.errorHandler.sync(this);
3157
3215
  _la = this.tokenStream.LA(1);
3158
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3216
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3159
3217
  {
3160
3218
  {
3161
- this.state = 618;
3219
+ this.state = 631;
3162
3220
  this.data_expr(0);
3163
- this.state = 623;
3221
+ this.state = 636;
3164
3222
  this.errorHandler.sync(this);
3165
3223
  _la = this.tokenStream.LA(1);
3166
3224
  while (_la === 2) {
3167
3225
  {
3168
3226
  {
3169
- this.state = 619;
3227
+ this.state = 632;
3170
3228
  this.match(CircuitScriptParser.T__1);
3171
- this.state = 620;
3229
+ this.state = 633;
3172
3230
  this.data_expr(0);
3173
3231
  }
3174
3232
  }
3175
- this.state = 625;
3233
+ this.state = 638;
3176
3234
  this.errorHandler.sync(this);
3177
3235
  _la = this.tokenStream.LA(1);
3178
3236
  }
3179
3237
  }
3180
3238
  }
3181
- this.state = 630;
3239
+ this.state = 643;
3182
3240
  this.errorHandler.sync(this);
3183
3241
  _la = this.tokenStream.LA(1);
3184
3242
  }
3185
- this.state = 631;
3186
- this.match(CircuitScriptParser.T__6);
3243
+ this.state = 644;
3244
+ this.match(CircuitScriptParser.T__5);
3187
3245
  }
3188
3246
  }
3189
3247
  catch (re) {
@@ -3202,24 +3260,24 @@ class CircuitScriptParser extends antlr.Parser {
3202
3260
  }
3203
3261
  point_expr() {
3204
3262
  let localContext = new Point_exprContext(this.context, this.state);
3205
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_point_expr);
3263
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_point_expr);
3206
3264
  try {
3207
3265
  this.enterOuterAlt(localContext, 1);
3208
3266
  {
3209
- this.state = 633;
3267
+ this.state = 646;
3210
3268
  this.match(CircuitScriptParser.Point);
3211
- this.state = 636;
3269
+ this.state = 649;
3212
3270
  this.errorHandler.sync(this);
3213
- switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3271
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
3214
3272
  case 1:
3215
3273
  {
3216
- this.state = 634;
3274
+ this.state = 647;
3217
3275
  this.match(CircuitScriptParser.ID);
3218
3276
  }
3219
3277
  break;
3220
3278
  case 2:
3221
3279
  {
3222
- this.state = 635;
3280
+ this.state = 648;
3223
3281
  this.data_expr(0);
3224
3282
  }
3225
3283
  break;
@@ -3242,13 +3300,13 @@ class CircuitScriptParser extends antlr.Parser {
3242
3300
  }
3243
3301
  import_expr() {
3244
3302
  let localContext = new Import_exprContext(this.context, this.state);
3245
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_import_expr);
3303
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_import_expr);
3246
3304
  try {
3247
3305
  this.enterOuterAlt(localContext, 1);
3248
3306
  {
3249
- this.state = 638;
3307
+ this.state = 651;
3250
3308
  this.match(CircuitScriptParser.Import);
3251
- this.state = 639;
3309
+ this.state = 652;
3252
3310
  this.match(CircuitScriptParser.ID);
3253
3311
  }
3254
3312
  }
@@ -3268,12 +3326,12 @@ class CircuitScriptParser extends antlr.Parser {
3268
3326
  }
3269
3327
  frame_expr() {
3270
3328
  let localContext = new Frame_exprContext(this.context, this.state);
3271
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_frame_expr);
3329
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_frame_expr);
3272
3330
  let _la;
3273
3331
  try {
3274
3332
  this.enterOuterAlt(localContext, 1);
3275
3333
  {
3276
- this.state = 641;
3334
+ this.state = 654;
3277
3335
  _la = this.tokenStream.LA(1);
3278
3336
  if (!(_la === 32 || _la === 33)) {
3279
3337
  this.errorHandler.recoverInline(this);
@@ -3282,9 +3340,9 @@ class CircuitScriptParser extends antlr.Parser {
3282
3340
  this.errorHandler.reportMatch(this);
3283
3341
  this.consume();
3284
3342
  }
3285
- this.state = 642;
3343
+ this.state = 655;
3286
3344
  this.match(CircuitScriptParser.T__0);
3287
- this.state = 643;
3345
+ this.state = 656;
3288
3346
  this.expressions_block();
3289
3347
  }
3290
3348
  }
@@ -3304,42 +3362,42 @@ class CircuitScriptParser extends antlr.Parser {
3304
3362
  }
3305
3363
  if_expr() {
3306
3364
  let localContext = new If_exprContext(this.context, this.state);
3307
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_if_expr);
3365
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_expr);
3308
3366
  let _la;
3309
3367
  try {
3310
3368
  let alternative;
3311
3369
  this.enterOuterAlt(localContext, 1);
3312
3370
  {
3313
- this.state = 645;
3371
+ this.state = 658;
3314
3372
  this.match(CircuitScriptParser.If);
3315
- this.state = 646;
3373
+ this.state = 659;
3316
3374
  this.data_expr(0);
3317
- this.state = 647;
3375
+ this.state = 660;
3318
3376
  this.match(CircuitScriptParser.T__0);
3319
- this.state = 648;
3377
+ this.state = 661;
3320
3378
  this.expressions_block();
3321
- this.state = 652;
3379
+ this.state = 665;
3322
3380
  this.errorHandler.sync(this);
3323
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3381
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3324
3382
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3325
3383
  if (alternative === 1) {
3326
3384
  {
3327
3385
  {
3328
- this.state = 649;
3386
+ this.state = 662;
3329
3387
  this.if_inner_expr();
3330
3388
  }
3331
3389
  }
3332
3390
  }
3333
- this.state = 654;
3391
+ this.state = 667;
3334
3392
  this.errorHandler.sync(this);
3335
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3393
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3336
3394
  }
3337
- this.state = 656;
3395
+ this.state = 669;
3338
3396
  this.errorHandler.sync(this);
3339
3397
  _la = this.tokenStream.LA(1);
3340
3398
  if (_la === 30) {
3341
3399
  {
3342
- this.state = 655;
3400
+ this.state = 668;
3343
3401
  this.else_expr();
3344
3402
  }
3345
3403
  }
@@ -3361,19 +3419,19 @@ class CircuitScriptParser extends antlr.Parser {
3361
3419
  }
3362
3420
  if_inner_expr() {
3363
3421
  let localContext = new If_inner_exprContext(this.context, this.state);
3364
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_inner_expr);
3422
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_inner_expr);
3365
3423
  try {
3366
3424
  this.enterOuterAlt(localContext, 1);
3367
3425
  {
3368
- this.state = 658;
3426
+ this.state = 671;
3369
3427
  this.match(CircuitScriptParser.Else);
3370
- this.state = 659;
3428
+ this.state = 672;
3371
3429
  this.match(CircuitScriptParser.If);
3372
- this.state = 660;
3430
+ this.state = 673;
3373
3431
  this.data_expr(0);
3374
- this.state = 661;
3432
+ this.state = 674;
3375
3433
  this.match(CircuitScriptParser.T__0);
3376
- this.state = 662;
3434
+ this.state = 675;
3377
3435
  this.expressions_block();
3378
3436
  }
3379
3437
  }
@@ -3393,15 +3451,15 @@ class CircuitScriptParser extends antlr.Parser {
3393
3451
  }
3394
3452
  else_expr() {
3395
3453
  let localContext = new Else_exprContext(this.context, this.state);
3396
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_else_expr);
3454
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_else_expr);
3397
3455
  try {
3398
3456
  this.enterOuterAlt(localContext, 1);
3399
3457
  {
3400
- this.state = 664;
3458
+ this.state = 677;
3401
3459
  this.match(CircuitScriptParser.Else);
3402
- this.state = 665;
3460
+ this.state = 678;
3403
3461
  this.match(CircuitScriptParser.T__0);
3404
- this.state = 666;
3462
+ this.state = 679;
3405
3463
  this.expressions_block();
3406
3464
  }
3407
3465
  }
@@ -3421,17 +3479,17 @@ class CircuitScriptParser extends antlr.Parser {
3421
3479
  }
3422
3480
  while_expr() {
3423
3481
  let localContext = new While_exprContext(this.context, this.state);
3424
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_while_expr);
3482
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_while_expr);
3425
3483
  try {
3426
3484
  this.enterOuterAlt(localContext, 1);
3427
3485
  {
3428
- this.state = 668;
3486
+ this.state = 681;
3429
3487
  this.match(CircuitScriptParser.While);
3430
- this.state = 669;
3488
+ this.state = 682;
3431
3489
  this.data_expr(0);
3432
- this.state = 670;
3490
+ this.state = 683;
3433
3491
  this.match(CircuitScriptParser.T__0);
3434
- this.state = 671;
3492
+ this.state = 684;
3435
3493
  this.expressions_block();
3436
3494
  }
3437
3495
  }
@@ -3451,38 +3509,38 @@ class CircuitScriptParser extends antlr.Parser {
3451
3509
  }
3452
3510
  for_expr() {
3453
3511
  let localContext = new For_exprContext(this.context, this.state);
3454
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_for_expr);
3512
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_for_expr);
3455
3513
  let _la;
3456
3514
  try {
3457
3515
  this.enterOuterAlt(localContext, 1);
3458
3516
  {
3459
- this.state = 673;
3517
+ this.state = 686;
3460
3518
  this.match(CircuitScriptParser.For);
3461
- this.state = 674;
3519
+ this.state = 687;
3462
3520
  this.match(CircuitScriptParser.ID);
3463
- this.state = 679;
3521
+ this.state = 692;
3464
3522
  this.errorHandler.sync(this);
3465
3523
  _la = this.tokenStream.LA(1);
3466
3524
  while (_la === 2) {
3467
3525
  {
3468
3526
  {
3469
- this.state = 675;
3527
+ this.state = 688;
3470
3528
  this.match(CircuitScriptParser.T__1);
3471
- this.state = 676;
3529
+ this.state = 689;
3472
3530
  this.match(CircuitScriptParser.ID);
3473
3531
  }
3474
3532
  }
3475
- this.state = 681;
3533
+ this.state = 694;
3476
3534
  this.errorHandler.sync(this);
3477
3535
  _la = this.tokenStream.LA(1);
3478
3536
  }
3479
- this.state = 682;
3537
+ this.state = 695;
3480
3538
  this.match(CircuitScriptParser.In);
3481
- this.state = 683;
3539
+ this.state = 696;
3482
3540
  this.data_expr(0);
3483
- this.state = 684;
3541
+ this.state = 697;
3484
3542
  this.match(CircuitScriptParser.T__0);
3485
- this.state = 685;
3543
+ this.state = 698;
3486
3544
  this.expressions_block();
3487
3545
  }
3488
3546
  }
@@ -3510,13 +3568,15 @@ class CircuitScriptParser extends antlr.Parser {
3510
3568
  data_expr_sempred(localContext, predIndex) {
3511
3569
  switch (predIndex) {
3512
3570
  case 0:
3513
- return this.precpred(this.context, 9);
3571
+ return this.precpred(this.context, 10);
3514
3572
  case 1:
3515
- return this.precpred(this.context, 8);
3573
+ return this.precpred(this.context, 9);
3516
3574
  case 2:
3517
- return this.precpred(this.context, 7);
3575
+ return this.precpred(this.context, 8);
3518
3576
  case 3:
3519
- return this.precpred(this.context, 6);
3577
+ return this.precpred(this.context, 7);
3578
+ case 4:
3579
+ return this.precpred(this.context, 1);
3520
3580
  }
3521
3581
  return true;
3522
3582
  }
@@ -3638,32 +3698,33 @@ CircuitScriptParser.RULE_function_expr = 36;
3638
3698
  CircuitScriptParser.RULE_function_args_expr = 37;
3639
3699
  CircuitScriptParser.RULE_atom_expr = 38;
3640
3700
  CircuitScriptParser.RULE_trailer_expr = 39;
3641
- CircuitScriptParser.RULE_function_call_expr = 40;
3642
- CircuitScriptParser.RULE_net_namespace_expr = 41;
3643
- CircuitScriptParser.RULE_function_return_expr = 42;
3644
- CircuitScriptParser.RULE_property_block_expr = 43;
3645
- CircuitScriptParser.RULE_create_component_expr = 44;
3646
- CircuitScriptParser.RULE_graphic_expressions_block = 45;
3647
- CircuitScriptParser.RULE_create_graphic_expr = 46;
3648
- CircuitScriptParser.RULE_create_module_expr = 47;
3649
- CircuitScriptParser.RULE_nested_properties_inner = 48;
3650
- CircuitScriptParser.RULE_graphic_expr = 49;
3651
- CircuitScriptParser.RULE_property_expr = 50;
3652
- CircuitScriptParser.RULE_property_key_expr = 51;
3653
- CircuitScriptParser.RULE_property_value_expr = 52;
3654
- CircuitScriptParser.RULE_wire_atom_expr = 53;
3655
- CircuitScriptParser.RULE_wire_expr = 54;
3656
- CircuitScriptParser.RULE_array_expr = 55;
3657
- CircuitScriptParser.RULE_point_expr = 56;
3658
- CircuitScriptParser.RULE_import_expr = 57;
3659
- CircuitScriptParser.RULE_frame_expr = 58;
3660
- CircuitScriptParser.RULE_if_expr = 59;
3661
- CircuitScriptParser.RULE_if_inner_expr = 60;
3662
- CircuitScriptParser.RULE_else_expr = 61;
3663
- CircuitScriptParser.RULE_while_expr = 62;
3664
- CircuitScriptParser.RULE_for_expr = 63;
3701
+ CircuitScriptParser.RULE_trailer_expr2 = 40;
3702
+ CircuitScriptParser.RULE_function_call_expr = 41;
3703
+ CircuitScriptParser.RULE_net_namespace_expr = 42;
3704
+ CircuitScriptParser.RULE_function_return_expr = 43;
3705
+ CircuitScriptParser.RULE_property_block_expr = 44;
3706
+ CircuitScriptParser.RULE_create_component_expr = 45;
3707
+ CircuitScriptParser.RULE_graphic_expressions_block = 46;
3708
+ CircuitScriptParser.RULE_create_graphic_expr = 47;
3709
+ CircuitScriptParser.RULE_create_module_expr = 48;
3710
+ CircuitScriptParser.RULE_nested_properties_inner = 49;
3711
+ CircuitScriptParser.RULE_graphic_expr = 50;
3712
+ CircuitScriptParser.RULE_property_expr = 51;
3713
+ CircuitScriptParser.RULE_property_key_expr = 52;
3714
+ CircuitScriptParser.RULE_property_value_expr = 53;
3715
+ CircuitScriptParser.RULE_wire_atom_expr = 54;
3716
+ CircuitScriptParser.RULE_wire_expr = 55;
3717
+ CircuitScriptParser.RULE_array_expr = 56;
3718
+ CircuitScriptParser.RULE_point_expr = 57;
3719
+ CircuitScriptParser.RULE_import_expr = 58;
3720
+ CircuitScriptParser.RULE_frame_expr = 59;
3721
+ CircuitScriptParser.RULE_if_expr = 60;
3722
+ CircuitScriptParser.RULE_if_inner_expr = 61;
3723
+ CircuitScriptParser.RULE_else_expr = 62;
3724
+ CircuitScriptParser.RULE_while_expr = 63;
3725
+ CircuitScriptParser.RULE_for_expr = 64;
3665
3726
  CircuitScriptParser.literalNames = [
3666
- null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
3727
+ null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'break'",
3667
3728
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
3668
3729
  "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
3669
3730
  "'parallel'", "'return'", "'def'", "'import'", "'for'", "'in'",
@@ -3697,16 +3758,16 @@ CircuitScriptParser.ruleNames = [
3697
3758
  "keyword_assignment_expr", "parameters", "property_set_expr", "double_dot_property_set_expr",
3698
3759
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3699
3760
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3700
- "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
3701
- "property_block_expr", "create_component_expr", "graphic_expressions_block",
3702
- "create_graphic_expr", "create_module_expr", "nested_properties_inner",
3703
- "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
3704
- "wire_atom_expr", "wire_expr", "array_expr", "point_expr", "import_expr",
3705
- "frame_expr", "if_expr", "if_inner_expr", "else_expr", "while_expr",
3706
- "for_expr",
3761
+ "trailer_expr", "trailer_expr2", "function_call_expr", "net_namespace_expr",
3762
+ "function_return_expr", "property_block_expr", "create_component_expr",
3763
+ "graphic_expressions_block", "create_graphic_expr", "create_module_expr",
3764
+ "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
3765
+ "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
3766
+ "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
3767
+ "else_expr", "while_expr", "for_expr",
3707
3768
  ];
3708
3769
  CircuitScriptParser._serializedATN = [
3709
- 4, 1, 67, 688, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
3770
+ 4, 1, 67, 701, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
3710
3771
  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,
3711
3772
  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,
3712
3773
  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,
@@ -3715,250 +3776,255 @@ CircuitScriptParser._serializedATN = [
3715
3776
  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,
3716
3777
  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,
3717
3778
  2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
3718
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 1, 0, 1, 0, 5, 0, 131, 8, 0,
3719
- 10, 0, 12, 0, 134, 9, 0, 1, 0, 1, 0, 4, 0, 138, 8, 0, 11, 0, 12, 0, 139, 1, 0, 1, 0, 1, 1,
3720
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 156, 8, 1, 1, 2, 1, 2,
3721
- 1, 2, 1, 2, 1, 2, 3, 2, 163, 8, 2, 1, 3, 1, 3, 3, 3, 167, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4,
3722
- 1, 4, 3, 4, 175, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 181, 8, 5, 11, 5, 12, 5, 182, 1, 5, 1,
3723
- 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 197, 8, 7, 11, 7, 12, 7,
3724
- 198, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10,
3725
- 214, 8, 10, 1, 11, 1, 11, 3, 11, 218, 8, 11, 1, 11, 5, 11, 221, 8, 11, 10, 11, 12, 11,
3726
- 224, 9, 11, 1, 11, 3, 11, 227, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 235,
3727
- 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 246, 8, 16,
3728
- 10, 16, 12, 16, 249, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 257, 8, 17,
3729
- 10, 17, 12, 17, 260, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 267, 8, 17, 11, 17,
3730
- 12, 17, 268, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 278, 8, 18, 10, 18,
3731
- 12, 18, 281, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 291,
3732
- 8, 20, 11, 20, 12, 20, 292, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 299, 8, 21, 1, 22, 1, 22,
3733
- 1, 22, 1, 22, 3, 22, 305, 8, 22, 1, 23, 1, 23, 3, 23, 309, 8, 23, 1, 24, 1, 24, 1, 25, 1,
3734
- 25, 3, 25, 315, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1,
3735
- 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 331, 8, 28, 10, 28, 12, 28, 334, 9, 28, 1, 28, 1,
3736
- 28, 5, 28, 338, 8, 28, 10, 28, 12, 28, 341, 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 346, 8,
3737
- 28, 10, 28, 12, 28, 349, 9, 28, 3, 28, 351, 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1,
3738
- 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 369, 8,
3739
- 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 379, 8, 31, 1, 31, 1,
3740
- 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 394,
3741
- 8, 31, 10, 31, 12, 31, 397, 9, 31, 1, 32, 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 404, 8, 34,
3742
- 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 412, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35,
3743
- 1, 35, 1, 35, 4, 35, 420, 8, 35, 11, 35, 12, 35, 421, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36,
3744
- 428, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37, 433, 8, 37, 10, 37, 12, 37, 436, 9, 37, 1, 37,
3745
- 1, 37, 1, 37, 1, 37, 5, 37, 442, 8, 37, 10, 37, 12, 37, 445, 9, 37, 1, 37, 1, 37, 1, 37,
3746
- 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 454, 8, 37, 10, 37, 12, 37, 457, 9, 37, 3, 37, 459,
3747
- 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 464, 8, 38, 10, 38, 12, 38, 467, 9, 38, 1, 39, 1, 39,
3748
- 3, 39, 471, 8, 39, 1, 39, 1, 39, 1, 39, 3, 39, 476, 8, 39, 1, 40, 3, 40, 479, 8, 40, 1,
3749
- 40, 1, 40, 4, 40, 483, 8, 40, 11, 40, 12, 40, 484, 1, 41, 3, 41, 488, 8, 41, 1, 41, 1,
3750
- 41, 3, 41, 492, 8, 41, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1,
3751
- 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 508, 8, 44, 11, 44, 12, 44, 509, 1, 44, 1, 44, 1,
3752
- 45, 1, 45, 1, 45, 1, 45, 4, 45, 518, 8, 45, 11, 45, 12, 45, 519, 1, 45, 1, 45, 1, 46, 1,
3753
- 46, 1, 46, 1, 46, 1, 46, 3, 46, 529, 8, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1,
3754
- 47, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 542, 8, 47, 11, 47, 12, 47, 543, 1, 47, 1, 47, 1,
3755
- 48, 1, 48, 1, 48, 1, 48, 4, 48, 552, 8, 48, 11, 48, 12, 48, 553, 1, 48, 1, 48, 1, 49, 1,
3756
- 49, 3, 49, 560, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 568, 8, 49, 1, 49,
3757
- 1, 49, 1, 49, 1, 49, 5, 49, 574, 8, 49, 10, 49, 12, 49, 577, 9, 49, 1, 49, 1, 49, 1, 49,
3758
- 1, 49, 1, 49, 3, 49, 584, 8, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52,
3759
- 1, 52, 1, 52, 5, 52, 596, 8, 52, 10, 52, 12, 52, 599, 9, 52, 3, 52, 601, 8, 52, 1, 53,
3760
- 1, 53, 1, 53, 3, 53, 606, 8, 53, 1, 53, 3, 53, 609, 8, 53, 1, 54, 1, 54, 5, 54, 613, 8,
3761
- 54, 10, 54, 12, 54, 616, 9, 54, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 622, 8, 55, 10, 55,
3762
- 12, 55, 625, 9, 55, 5, 55, 627, 8, 55, 10, 55, 12, 55, 630, 9, 55, 1, 55, 1, 55, 1, 56,
3763
- 1, 56, 1, 56, 3, 56, 637, 8, 56, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59,
3764
- 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 651, 8, 59, 10, 59, 12, 59, 654, 9, 59, 1, 59, 3, 59,
3765
- 657, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62,
3766
- 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 5, 63, 678, 8, 63, 10, 63, 12, 63,
3767
- 681, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12,
3779
+ 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 1, 0, 1, 0, 5,
3780
+ 0, 133, 8, 0, 10, 0, 12, 0, 136, 9, 0, 1, 0, 1, 0, 4, 0, 140, 8, 0, 11, 0, 12, 0, 141, 1,
3781
+ 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 158, 8,
3782
+ 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 165, 8, 2, 1, 3, 1, 3, 3, 3, 169, 8, 3, 1, 4, 1, 4, 1,
3783
+ 4, 1, 4, 1, 4, 1, 4, 3, 4, 177, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 183, 8, 5, 11, 5, 12, 5,
3784
+ 184, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 199, 8, 7,
3785
+ 11, 7, 12, 7, 200, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10,
3786
+ 1, 10, 3, 10, 216, 8, 10, 1, 11, 1, 11, 3, 11, 220, 8, 11, 1, 11, 5, 11, 223, 8, 11, 10,
3787
+ 11, 12, 11, 226, 9, 11, 1, 11, 3, 11, 229, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1,
3788
+ 13, 3, 13, 237, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3789
+ 16, 248, 8, 16, 10, 16, 12, 16, 251, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5,
3790
+ 17, 259, 8, 17, 10, 17, 12, 17, 262, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 269,
3791
+ 8, 17, 11, 17, 12, 17, 270, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 280,
3792
+ 8, 18, 10, 18, 12, 18, 283, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
3793
+ 4, 20, 293, 8, 20, 11, 20, 12, 20, 294, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 301, 8, 21,
3794
+ 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 307, 8, 22, 1, 23, 1, 23, 3, 23, 311, 8, 23, 1, 24, 1,
3795
+ 24, 1, 25, 1, 25, 3, 25, 317, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1,
3796
+ 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 333, 8, 28, 10, 28, 12, 28, 336, 9,
3797
+ 28, 1, 28, 1, 28, 5, 28, 340, 8, 28, 10, 28, 12, 28, 343, 9, 28, 1, 28, 1, 28, 1, 28, 5,
3798
+ 28, 348, 8, 28, 10, 28, 12, 28, 351, 9, 28, 3, 28, 353, 8, 28, 1, 29, 1, 29, 1, 29, 1,
3799
+ 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3,
3800
+ 31, 371, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 381, 8, 31,
3801
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3802
+ 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 401, 8, 31, 10, 31, 12, 31, 404, 9, 31, 1, 32,
3803
+ 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 411, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35,
3804
+ 3, 35, 419, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 427, 8, 35, 11, 35,
3805
+ 12, 35, 428, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 435, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37,
3806
+ 440, 8, 37, 10, 37, 12, 37, 443, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 449, 8, 37,
3807
+ 10, 37, 12, 37, 452, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 461,
3808
+ 8, 37, 10, 37, 12, 37, 464, 9, 37, 3, 37, 466, 8, 37, 1, 38, 1, 38, 5, 38, 470, 8, 38,
3809
+ 10, 38, 12, 38, 473, 9, 38, 1, 39, 1, 39, 3, 39, 477, 8, 39, 1, 39, 1, 39, 3, 39, 481,
3810
+ 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 489, 8, 40, 1, 41, 3, 41, 492, 8,
3811
+ 41, 1, 41, 1, 41, 4, 41, 496, 8, 41, 11, 41, 12, 41, 497, 1, 42, 3, 42, 501, 8, 42, 1,
3812
+ 42, 1, 42, 3, 42, 505, 8, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1,
3813
+ 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 521, 8, 45, 11, 45, 12, 45, 522, 1, 45, 1,
3814
+ 45, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 531, 8, 46, 11, 46, 12, 46, 532, 1, 46, 1, 46, 1,
3815
+ 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 542, 8, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1,
3816
+ 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 4, 48, 555, 8, 48, 11, 48, 12, 48, 556, 1, 48, 1,
3817
+ 48, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 565, 8, 49, 11, 49, 12, 49, 566, 1, 49, 1, 49, 1,
3818
+ 50, 1, 50, 3, 50, 573, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 581, 8, 50,
3819
+ 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 587, 8, 50, 10, 50, 12, 50, 590, 9, 50, 1, 50, 1, 50,
3820
+ 1, 50, 1, 50, 1, 50, 3, 50, 597, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53,
3821
+ 1, 53, 1, 53, 1, 53, 5, 53, 609, 8, 53, 10, 53, 12, 53, 612, 9, 53, 3, 53, 614, 8, 53,
3822
+ 1, 54, 1, 54, 1, 54, 3, 54, 619, 8, 54, 1, 54, 3, 54, 622, 8, 54, 1, 55, 1, 55, 5, 55, 626,
3823
+ 8, 55, 10, 55, 12, 55, 629, 9, 55, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 635, 8, 56, 10, 56,
3824
+ 12, 56, 638, 9, 56, 5, 56, 640, 8, 56, 10, 56, 12, 56, 643, 9, 56, 1, 56, 1, 56, 1, 57,
3825
+ 1, 57, 1, 57, 3, 57, 650, 8, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60,
3826
+ 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 664, 8, 60, 10, 60, 12, 60, 667, 9, 60, 1, 60, 3, 60,
3827
+ 670, 8, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63,
3828
+ 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 5, 64, 691, 8, 64, 10, 64, 12, 64,
3829
+ 694, 9, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 0, 1, 62, 65, 0, 2, 4, 6, 8, 10, 12,
3768
3830
  14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3769
3831
  58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3770
- 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9,
3771
- 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44,
3772
- 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61,
3773
- 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 727, 0, 132, 1, 0, 0, 0, 2, 155,
3774
- 1, 0, 0, 0, 4, 162, 1, 0, 0, 0, 6, 166, 1, 0, 0, 0, 8, 174, 1, 0, 0, 0, 10, 176, 1, 0, 0, 0,
3775
- 12, 186, 1, 0, 0, 0, 14, 190, 1, 0, 0, 0, 16, 202, 1, 0, 0, 0, 18, 206, 1, 0, 0, 0, 20, 209,
3776
- 1, 0, 0, 0, 22, 217, 1, 0, 0, 0, 24, 228, 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 236, 1, 0,
3777
- 0, 0, 30, 238, 1, 0, 0, 0, 32, 241, 1, 0, 0, 0, 34, 250, 1, 0, 0, 0, 36, 272, 1, 0, 0, 0,
3778
- 38, 282, 1, 0, 0, 0, 40, 284, 1, 0, 0, 0, 42, 298, 1, 0, 0, 0, 44, 300, 1, 0, 0, 0, 46, 308,
3779
- 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 314, 1, 0, 0, 0, 52, 319, 1, 0, 0, 0, 54, 323, 1, 0,
3780
- 0, 0, 56, 350, 1, 0, 0, 0, 58, 352, 1, 0, 0, 0, 60, 356, 1, 0, 0, 0, 62, 378, 1, 0, 0, 0,
3781
- 64, 398, 1, 0, 0, 0, 66, 400, 1, 0, 0, 0, 68, 403, 1, 0, 0, 0, 70, 407, 1, 0, 0, 0, 72, 427,
3782
- 1, 0, 0, 0, 74, 458, 1, 0, 0, 0, 76, 460, 1, 0, 0, 0, 78, 475, 1, 0, 0, 0, 80, 478, 1, 0,
3783
- 0, 0, 82, 487, 1, 0, 0, 0, 84, 493, 1, 0, 0, 0, 86, 496, 1, 0, 0, 0, 88, 500, 1, 0, 0, 0,
3784
- 90, 513, 1, 0, 0, 0, 92, 523, 1, 0, 0, 0, 94, 533, 1, 0, 0, 0, 96, 547, 1, 0, 0, 0, 98, 583,
3785
- 1, 0, 0, 0, 100, 585, 1, 0, 0, 0, 102, 589, 1, 0, 0, 0, 104, 600, 1, 0, 0, 0, 106, 608,
3786
- 1, 0, 0, 0, 108, 610, 1, 0, 0, 0, 110, 617, 1, 0, 0, 0, 112, 633, 1, 0, 0, 0, 114, 638,
3787
- 1, 0, 0, 0, 116, 641, 1, 0, 0, 0, 118, 645, 1, 0, 0, 0, 120, 658, 1, 0, 0, 0, 122, 664,
3788
- 1, 0, 0, 0, 124, 668, 1, 0, 0, 0, 126, 673, 1, 0, 0, 0, 128, 131, 3, 114, 57, 0, 129, 131,
3789
- 5, 64, 0, 0, 130, 128, 1, 0, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130,
3790
- 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 137, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 138,
3791
- 3, 2, 1, 0, 136, 138, 5, 64, 0, 0, 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 139,
3792
- 1, 0, 0, 0, 139, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142,
3793
- 5, 0, 0, 1, 142, 1, 1, 0, 0, 0, 143, 156, 3, 6, 3, 0, 144, 156, 3, 50, 25, 0, 145, 156,
3794
- 3, 52, 26, 0, 146, 156, 3, 58, 29, 0, 147, 156, 3, 14, 7, 0, 148, 156, 3, 60, 30, 0, 149,
3795
- 156, 3, 70, 35, 0, 150, 156, 3, 80, 40, 0, 151, 156, 3, 114, 57, 0, 152, 156, 3, 76,
3796
- 38, 0, 153, 156, 3, 116, 58, 0, 154, 156, 3, 4, 2, 0, 155, 143, 1, 0, 0, 0, 155, 144,
3797
- 1, 0, 0, 0, 155, 145, 1, 0, 0, 0, 155, 146, 1, 0, 0, 0, 155, 147, 1, 0, 0, 0, 155, 148,
3798
- 1, 0, 0, 0, 155, 149, 1, 0, 0, 0, 155, 150, 1, 0, 0, 0, 155, 151, 1, 0, 0, 0, 155, 152,
3799
- 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155, 154, 1, 0, 0, 0, 156, 3, 1, 0, 0, 0, 157, 163, 3,
3800
- 118, 59, 0, 158, 163, 3, 124, 62, 0, 159, 163, 3, 126, 63, 0, 160, 163, 5, 8, 0, 0, 161,
3801
- 163, 5, 28, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0, 0, 162,
3802
- 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 5, 1, 0, 0, 0, 164, 167, 3, 8, 4, 0, 165, 167,
3803
- 3, 12, 6, 0, 166, 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 7, 1, 0, 0, 0, 168, 175, 3,
3804
- 24, 12, 0, 169, 175, 3, 32, 16, 0, 170, 175, 3, 30, 15, 0, 171, 175, 3, 40, 20, 0, 172,
3805
- 175, 3, 108, 54, 0, 173, 175, 3, 112, 56, 0, 174, 168, 1, 0, 0, 0, 174, 169, 1, 0, 0,
3806
- 0, 174, 170, 1, 0, 0, 0, 174, 171, 1, 0, 0, 0, 174, 172, 1, 0, 0, 0, 174, 173, 1, 0, 0,
3807
- 0, 175, 9, 1, 0, 0, 0, 176, 177, 5, 64, 0, 0, 177, 180, 5, 66, 0, 0, 178, 181, 5, 64, 0,
3808
- 0, 179, 181, 3, 2, 1, 0, 180, 178, 1, 0, 0, 0, 180, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0,
3809
- 0, 182, 180, 1, 0, 0, 0, 182, 183, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 185, 5, 67, 0,
3810
- 0, 185, 11, 1, 0, 0, 0, 186, 187, 7, 0, 0, 0, 187, 188, 5, 1, 0, 0, 188, 189, 3, 10, 5,
3811
- 0, 189, 13, 1, 0, 0, 0, 190, 191, 3, 76, 38, 0, 191, 192, 5, 1, 0, 0, 192, 193, 5, 64,
3812
- 0, 0, 193, 196, 5, 66, 0, 0, 194, 197, 5, 64, 0, 0, 195, 197, 3, 16, 8, 0, 196, 194, 1,
3813
- 0, 0, 0, 196, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198, 199, 1,
3814
- 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0, 201, 15, 1, 0, 0, 0, 202, 203, 7,
3815
- 1, 0, 0, 203, 204, 5, 1, 0, 0, 204, 205, 3, 68, 34, 0, 205, 17, 1, 0, 0, 0, 206, 207, 5,
3816
- 15, 0, 0, 207, 208, 3, 62, 31, 0, 208, 19, 1, 0, 0, 0, 209, 210, 5, 56, 0, 0, 210, 213,
3817
- 5, 1, 0, 0, 211, 214, 3, 68, 34, 0, 212, 214, 5, 56, 0, 0, 213, 211, 1, 0, 0, 0, 213, 212,
3818
- 1, 0, 0, 0, 214, 21, 1, 0, 0, 0, 215, 218, 3, 62, 31, 0, 216, 218, 3, 50, 25, 0, 217, 215,
3819
- 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 222, 1, 0, 0, 0, 219, 221, 3, 20, 10, 0, 220, 219,
3820
- 1, 0, 0, 0, 221, 224, 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 226,
3821
- 1, 0, 0, 0, 224, 222, 1, 0, 0, 0, 225, 227, 3, 18, 9, 0, 226, 225, 1, 0, 0, 0, 226, 227,
3822
- 1, 0, 0, 0, 227, 23, 1, 0, 0, 0, 228, 229, 5, 16, 0, 0, 229, 230, 3, 22, 11, 0, 230, 25,
3823
- 1, 0, 0, 0, 231, 235, 3, 22, 11, 0, 232, 235, 3, 18, 9, 0, 233, 235, 5, 19, 0, 0, 234,
3824
- 231, 1, 0, 0, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 27, 1, 0, 0, 0, 236, 237,
3825
- 7, 2, 0, 0, 237, 29, 1, 0, 0, 0, 238, 239, 5, 17, 0, 0, 239, 240, 3, 26, 13, 0, 240, 31,
3826
- 1, 0, 0, 0, 241, 242, 5, 18, 0, 0, 242, 247, 3, 26, 13, 0, 243, 244, 5, 2, 0, 0, 244, 246,
3827
- 3, 26, 13, 0, 245, 243, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248,
3828
- 1, 0, 0, 0, 248, 33, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 5, 17, 0, 0, 251, 252,
3829
- 3, 26, 13, 0, 252, 253, 5, 18, 0, 0, 253, 258, 3, 26, 13, 0, 254, 255, 5, 2, 0, 0, 255,
3830
- 257, 3, 26, 13, 0, 256, 254, 1, 0, 0, 0, 257, 260, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258,
3831
- 259, 1, 0, 0, 0, 259, 261, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, 262, 5, 1, 0, 0, 262,
3832
- 263, 5, 64, 0, 0, 263, 266, 5, 66, 0, 0, 264, 267, 5, 64, 0, 0, 265, 267, 3, 36, 18, 0,
3833
- 266, 264, 1, 0, 0, 0, 266, 265, 1, 0, 0, 0, 267, 268, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0,
3834
- 268, 269, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 271, 5, 67, 0, 0, 271, 35, 1, 0, 0, 0,
3835
- 272, 273, 3, 28, 14, 0, 273, 274, 5, 1, 0, 0, 274, 279, 3, 38, 19, 0, 275, 276, 5, 2,
3836
- 0, 0, 276, 278, 3, 38, 19, 0, 277, 275, 1, 0, 0, 0, 278, 281, 1, 0, 0, 0, 279, 277, 1,
3837
- 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 37, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 282, 283, 7, 3,
3838
- 0, 0, 283, 39, 1, 0, 0, 0, 284, 285, 3, 30, 15, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 64,
3839
- 0, 0, 287, 290, 5, 66, 0, 0, 288, 291, 5, 64, 0, 0, 289, 291, 3, 42, 21, 0, 290, 288,
3840
- 1, 0, 0, 0, 290, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293,
3841
- 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, 295, 5, 67, 0, 0, 295, 41, 1, 0, 0, 0, 296, 299,
3842
- 3, 2, 1, 0, 297, 299, 3, 44, 22, 0, 298, 296, 1, 0, 0, 0, 298, 297, 1, 0, 0, 0, 299, 43,
3843
- 1, 0, 0, 0, 300, 301, 3, 28, 14, 0, 301, 304, 5, 1, 0, 0, 302, 305, 3, 46, 23, 0, 303,
3844
- 305, 3, 48, 24, 0, 304, 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 45, 1, 0, 0, 0, 306,
3845
- 309, 3, 2, 1, 0, 307, 309, 5, 54, 0, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3846
- 47, 1, 0, 0, 0, 310, 311, 3, 10, 5, 0, 311, 49, 1, 0, 0, 0, 312, 315, 3, 76, 38, 0, 313,
3847
- 315, 3, 80, 40, 0, 314, 312, 1, 0, 0, 0, 314, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316,
3848
- 317, 5, 3, 0, 0, 317, 318, 3, 62, 31, 0, 318, 51, 1, 0, 0, 0, 319, 320, 3, 76, 38, 0, 320,
3849
- 321, 7, 4, 0, 0, 321, 322, 3, 62, 31, 0, 322, 53, 1, 0, 0, 0, 323, 324, 5, 56, 0, 0, 324,
3850
- 325, 5, 3, 0, 0, 325, 326, 3, 62, 31, 0, 326, 55, 1, 0, 0, 0, 327, 332, 3, 62, 31, 0, 328,
3851
- 329, 5, 2, 0, 0, 329, 331, 3, 62, 31, 0, 330, 328, 1, 0, 0, 0, 331, 334, 1, 0, 0, 0, 332,
3852
- 330, 1, 0, 0, 0, 332, 333, 1, 0, 0, 0, 333, 339, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 335,
3853
- 336, 5, 2, 0, 0, 336, 338, 3, 54, 27, 0, 337, 335, 1, 0, 0, 0, 338, 341, 1, 0, 0, 0, 339,
3854
- 337, 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 351, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 342,
3855
- 347, 3, 54, 27, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 54, 27, 0, 345, 343, 1, 0, 0, 0,
3856
- 346, 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0,
3857
- 349, 347, 1, 0, 0, 0, 350, 327, 1, 0, 0, 0, 350, 342, 1, 0, 0, 0, 351, 57, 1, 0, 0, 0, 352,
3858
- 353, 3, 76, 38, 0, 353, 354, 5, 3, 0, 0, 354, 355, 3, 62, 31, 0, 355, 59, 1, 0, 0, 0, 356,
3859
- 357, 5, 4, 0, 0, 357, 358, 5, 56, 0, 0, 358, 359, 5, 3, 0, 0, 359, 360, 3, 62, 31, 0, 360,
3860
- 61, 1, 0, 0, 0, 361, 362, 6, 31, -1, 0, 362, 363, 5, 52, 0, 0, 363, 364, 3, 62, 31, 0,
3861
- 364, 365, 5, 53, 0, 0, 365, 379, 1, 0, 0, 0, 366, 369, 3, 68, 34, 0, 367, 369, 3, 76,
3862
- 38, 0, 368, 366, 1, 0, 0, 0, 368, 367, 1, 0, 0, 0, 369, 379, 1, 0, 0, 0, 370, 371, 3, 66,
3863
- 33, 0, 371, 372, 3, 62, 31, 10, 372, 379, 1, 0, 0, 0, 373, 379, 3, 88, 44, 0, 374, 379,
3864
- 3, 92, 46, 0, 375, 379, 3, 94, 47, 0, 376, 379, 3, 80, 40, 0, 377, 379, 3, 110, 55, 0,
3865
- 378, 361, 1, 0, 0, 0, 378, 368, 1, 0, 0, 0, 378, 370, 1, 0, 0, 0, 378, 373, 1, 0, 0, 0,
3866
- 378, 374, 1, 0, 0, 0, 378, 375, 1, 0, 0, 0, 378, 376, 1, 0, 0, 0, 378, 377, 1, 0, 0, 0,
3867
- 379, 395, 1, 0, 0, 0, 380, 381, 10, 9, 0, 0, 381, 382, 7, 5, 0, 0, 382, 394, 3, 62, 31,
3868
- 10, 383, 384, 10, 8, 0, 0, 384, 385, 7, 6, 0, 0, 385, 394, 3, 62, 31, 9, 386, 387, 10,
3869
- 7, 0, 0, 387, 388, 3, 64, 32, 0, 388, 389, 3, 62, 31, 8, 389, 394, 1, 0, 0, 0, 390, 391,
3870
- 10, 6, 0, 0, 391, 392, 7, 7, 0, 0, 392, 394, 3, 62, 31, 7, 393, 380, 1, 0, 0, 0, 393, 383,
3871
- 1, 0, 0, 0, 393, 386, 1, 0, 0, 0, 393, 390, 1, 0, 0, 0, 394, 397, 1, 0, 0, 0, 395, 393,
3872
- 1, 0, 0, 0, 395, 396, 1, 0, 0, 0, 396, 63, 1, 0, 0, 0, 397, 395, 1, 0, 0, 0, 398, 399, 7,
3873
- 8, 0, 0, 399, 65, 1, 0, 0, 0, 400, 401, 7, 9, 0, 0, 401, 67, 1, 0, 0, 0, 402, 404, 5, 43,
3874
- 0, 0, 403, 402, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 405, 1, 0, 0, 0, 405, 406, 7, 10,
3875
- 0, 0, 406, 69, 1, 0, 0, 0, 407, 408, 5, 23, 0, 0, 408, 409, 5, 56, 0, 0, 409, 411, 5, 52,
3876
- 0, 0, 410, 412, 3, 74, 37, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3877
- 0, 0, 0, 413, 414, 5, 53, 0, 0, 414, 415, 5, 1, 0, 0, 415, 416, 5, 64, 0, 0, 416, 419,
3878
- 5, 66, 0, 0, 417, 420, 5, 64, 0, 0, 418, 420, 3, 72, 36, 0, 419, 417, 1, 0, 0, 0, 419,
3879
- 418, 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422,
3880
- 423, 1, 0, 0, 0, 423, 424, 5, 67, 0, 0, 424, 71, 1, 0, 0, 0, 425, 428, 3, 2, 1, 0, 426,
3881
- 428, 3, 84, 42, 0, 427, 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 73, 1, 0, 0, 0, 429,
3882
- 434, 5, 56, 0, 0, 430, 431, 5, 2, 0, 0, 431, 433, 5, 56, 0, 0, 432, 430, 1, 0, 0, 0, 433,
3883
- 436, 1, 0, 0, 0, 434, 432, 1, 0, 0, 0, 434, 435, 1, 0, 0, 0, 435, 443, 1, 0, 0, 0, 436,
3884
- 434, 1, 0, 0, 0, 437, 438, 5, 2, 0, 0, 438, 439, 5, 56, 0, 0, 439, 440, 5, 3, 0, 0, 440,
3885
- 442, 3, 68, 34, 0, 441, 437, 1, 0, 0, 0, 442, 445, 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 443,
3886
- 444, 1, 0, 0, 0, 444, 459, 1, 0, 0, 0, 445, 443, 1, 0, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3887
- 448, 5, 3, 0, 0, 448, 455, 3, 68, 34, 0, 449, 450, 5, 2, 0, 0, 450, 451, 5, 56, 0, 0, 451,
3888
- 452, 5, 3, 0, 0, 452, 454, 3, 68, 34, 0, 453, 449, 1, 0, 0, 0, 454, 457, 1, 0, 0, 0, 455,
3889
- 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 459, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 458,
3890
- 429, 1, 0, 0, 0, 458, 446, 1, 0, 0, 0, 459, 75, 1, 0, 0, 0, 460, 465, 5, 56, 0, 0, 461,
3891
- 462, 5, 5, 0, 0, 462, 464, 5, 56, 0, 0, 463, 461, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3892
- 463, 1, 0, 0, 0, 465, 466, 1, 0, 0, 0, 466, 77, 1, 0, 0, 0, 467, 465, 1, 0, 0, 0, 468, 470,
3893
- 5, 52, 0, 0, 469, 471, 3, 56, 28, 0, 470, 469, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 472,
3894
- 1, 0, 0, 0, 472, 476, 5, 53, 0, 0, 473, 474, 5, 5, 0, 0, 474, 476, 5, 56, 0, 0, 475, 468,
3895
- 1, 0, 0, 0, 475, 473, 1, 0, 0, 0, 476, 79, 1, 0, 0, 0, 477, 479, 3, 82, 41, 0, 478, 477,
3896
- 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 482, 5, 56, 0, 0, 481, 483,
3897
- 3, 78, 39, 0, 482, 481, 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 482, 1, 0, 0, 0, 484, 485,
3898
- 1, 0, 0, 0, 485, 81, 1, 0, 0, 0, 486, 488, 5, 42, 0, 0, 487, 486, 1, 0, 0, 0, 487, 488,
3899
- 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 491, 5, 44, 0, 0, 490, 492, 3, 62, 31, 0, 491, 490,
3900
- 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 83, 1, 0, 0, 0, 493, 494, 5, 22, 0, 0, 494, 495,
3901
- 3, 62, 31, 0, 495, 85, 1, 0, 0, 0, 496, 497, 3, 102, 51, 0, 497, 498, 5, 1, 0, 0, 498,
3902
- 499, 3, 10, 5, 0, 499, 87, 1, 0, 0, 0, 500, 501, 5, 10, 0, 0, 501, 502, 5, 11, 0, 0, 502,
3903
- 503, 5, 1, 0, 0, 503, 504, 5, 64, 0, 0, 504, 507, 5, 66, 0, 0, 505, 508, 5, 64, 0, 0, 506,
3904
- 508, 3, 100, 50, 0, 507, 505, 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509,
3905
- 507, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 511, 1, 0, 0, 0, 511, 512, 5, 67, 0, 0, 512,
3906
- 89, 1, 0, 0, 0, 513, 514, 5, 64, 0, 0, 514, 517, 5, 66, 0, 0, 515, 518, 5, 64, 0, 0, 516,
3907
- 518, 3, 98, 49, 0, 517, 515, 1, 0, 0, 0, 517, 516, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519,
3908
- 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 5, 67, 0, 0, 522,
3909
- 91, 1, 0, 0, 0, 523, 524, 5, 10, 0, 0, 524, 528, 5, 12, 0, 0, 525, 526, 5, 52, 0, 0, 526,
3910
- 527, 5, 56, 0, 0, 527, 529, 5, 53, 0, 0, 528, 525, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529,
3911
- 530, 1, 0, 0, 0, 530, 531, 5, 1, 0, 0, 531, 532, 3, 90, 45, 0, 532, 93, 1, 0, 0, 0, 533,
3912
- 534, 5, 10, 0, 0, 534, 535, 5, 13, 0, 0, 535, 536, 5, 1, 0, 0, 536, 537, 5, 64, 0, 0, 537,
3913
- 541, 5, 66, 0, 0, 538, 542, 5, 64, 0, 0, 539, 542, 3, 100, 50, 0, 540, 542, 3, 86, 43,
3914
- 0, 541, 538, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 541, 540, 1, 0, 0, 0, 542, 543, 1, 0, 0,
3915
- 0, 543, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 5, 67, 0,
3916
- 0, 546, 95, 1, 0, 0, 0, 547, 548, 5, 64, 0, 0, 548, 551, 5, 66, 0, 0, 549, 552, 5, 64,
3917
- 0, 0, 550, 552, 3, 100, 50, 0, 551, 549, 1, 0, 0, 0, 551, 550, 1, 0, 0, 0, 552, 553, 1,
3918
- 0, 0, 0, 553, 551, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554, 555, 1, 0, 0, 0, 555, 556, 5,
3919
- 67, 0, 0, 556, 97, 1, 0, 0, 0, 557, 559, 7, 11, 0, 0, 558, 560, 5, 1, 0, 0, 559, 558, 1,
3920
- 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 567, 1, 0, 0, 0, 561, 568, 3, 56, 28, 0, 562, 563,
3921
- 5, 52, 0, 0, 563, 564, 3, 56, 28, 0, 564, 565, 5, 53, 0, 0, 565, 568, 1, 0, 0, 0, 566,
3922
- 568, 3, 96, 48, 0, 567, 561, 1, 0, 0, 0, 567, 562, 1, 0, 0, 0, 567, 566, 1, 0, 0, 0, 568,
3923
- 584, 1, 0, 0, 0, 569, 570, 5, 25, 0, 0, 570, 575, 5, 56, 0, 0, 571, 572, 5, 2, 0, 0, 572,
3924
- 574, 5, 56, 0, 0, 573, 571, 1, 0, 0, 0, 574, 577, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 575,
3925
- 576, 1, 0, 0, 0, 576, 578, 1, 0, 0, 0, 577, 575, 1, 0, 0, 0, 578, 579, 5, 26, 0, 0, 579,
3926
- 580, 3, 62, 31, 0, 580, 581, 5, 1, 0, 0, 581, 582, 3, 90, 45, 0, 582, 584, 1, 0, 0, 0,
3927
- 583, 557, 1, 0, 0, 0, 583, 569, 1, 0, 0, 0, 584, 99, 1, 0, 0, 0, 585, 586, 3, 102, 51,
3928
- 0, 586, 587, 5, 1, 0, 0, 587, 588, 3, 104, 52, 0, 588, 101, 1, 0, 0, 0, 589, 590, 7, 12,
3929
- 0, 0, 590, 103, 1, 0, 0, 0, 591, 601, 3, 96, 48, 0, 592, 597, 3, 62, 31, 0, 593, 594,
3930
- 5, 2, 0, 0, 594, 596, 3, 62, 31, 0, 595, 593, 1, 0, 0, 0, 596, 599, 1, 0, 0, 0, 597, 595,
3931
- 1, 0, 0, 0, 597, 598, 1, 0, 0, 0, 598, 601, 1, 0, 0, 0, 599, 597, 1, 0, 0, 0, 600, 591,
3932
- 1, 0, 0, 0, 600, 592, 1, 0, 0, 0, 601, 105, 1, 0, 0, 0, 602, 605, 5, 56, 0, 0, 603, 606,
3933
- 5, 57, 0, 0, 604, 606, 3, 62, 31, 0, 605, 603, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 609,
3934
- 1, 0, 0, 0, 607, 609, 5, 56, 0, 0, 608, 602, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609, 107,
3935
- 1, 0, 0, 0, 610, 614, 5, 14, 0, 0, 611, 613, 3, 106, 53, 0, 612, 611, 1, 0, 0, 0, 613,
3936
- 616, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 614, 615, 1, 0, 0, 0, 615, 109, 1, 0, 0, 0, 616,
3937
- 614, 1, 0, 0, 0, 617, 628, 5, 6, 0, 0, 618, 623, 3, 62, 31, 0, 619, 620, 5, 2, 0, 0, 620,
3938
- 622, 3, 62, 31, 0, 621, 619, 1, 0, 0, 0, 622, 625, 1, 0, 0, 0, 623, 621, 1, 0, 0, 0, 623,
3939
- 624, 1, 0, 0, 0, 624, 627, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 626, 618, 1, 0, 0, 0, 627,
3940
- 630, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 628, 629, 1, 0, 0, 0, 629, 631, 1, 0, 0, 0, 630,
3941
- 628, 1, 0, 0, 0, 631, 632, 5, 7, 0, 0, 632, 111, 1, 0, 0, 0, 633, 636, 5, 19, 0, 0, 634,
3942
- 637, 5, 56, 0, 0, 635, 637, 3, 62, 31, 0, 636, 634, 1, 0, 0, 0, 636, 635, 1, 0, 0, 0, 637,
3943
- 113, 1, 0, 0, 0, 638, 639, 5, 24, 0, 0, 639, 640, 5, 56, 0, 0, 640, 115, 1, 0, 0, 0, 641,
3944
- 642, 7, 13, 0, 0, 642, 643, 5, 1, 0, 0, 643, 644, 3, 10, 5, 0, 644, 117, 1, 0, 0, 0, 645,
3945
- 646, 5, 29, 0, 0, 646, 647, 3, 62, 31, 0, 647, 648, 5, 1, 0, 0, 648, 652, 3, 10, 5, 0,
3946
- 649, 651, 3, 120, 60, 0, 650, 649, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0,
3947
- 0, 652, 653, 1, 0, 0, 0, 653, 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 655, 657, 3, 122,
3948
- 61, 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 119, 1, 0, 0, 0, 658, 659, 5, 30,
3949
- 0, 0, 659, 660, 5, 29, 0, 0, 660, 661, 3, 62, 31, 0, 661, 662, 5, 1, 0, 0, 662, 663, 3,
3950
- 10, 5, 0, 663, 121, 1, 0, 0, 0, 664, 665, 5, 30, 0, 0, 665, 666, 5, 1, 0, 0, 666, 667,
3951
- 3, 10, 5, 0, 667, 123, 1, 0, 0, 0, 668, 669, 5, 27, 0, 0, 669, 670, 3, 62, 31, 0, 670,
3952
- 671, 5, 1, 0, 0, 671, 672, 3, 10, 5, 0, 672, 125, 1, 0, 0, 0, 673, 674, 5, 25, 0, 0, 674,
3953
- 679, 5, 56, 0, 0, 675, 676, 5, 2, 0, 0, 676, 678, 5, 56, 0, 0, 677, 675, 1, 0, 0, 0, 678,
3954
- 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 679, 680, 1, 0, 0, 0, 680, 682, 1, 0, 0, 0, 681,
3955
- 679, 1, 0, 0, 0, 682, 683, 5, 26, 0, 0, 683, 684, 3, 62, 31, 0, 684, 685, 5, 1, 0, 0, 685,
3956
- 686, 3, 10, 5, 0, 686, 127, 1, 0, 0, 0, 76, 130, 132, 137, 139, 155, 162, 166, 174,
3957
- 180, 182, 196, 198, 213, 217, 222, 226, 234, 247, 258, 266, 268, 279, 290, 292,
3958
- 298, 304, 308, 314, 332, 339, 347, 350, 368, 378, 393, 395, 403, 411, 419, 421,
3959
- 427, 434, 443, 455, 458, 465, 470, 475, 478, 484, 487, 491, 507, 509, 517, 519,
3960
- 528, 541, 543, 551, 553, 559, 567, 575, 583, 597, 600, 605, 608, 614, 623, 628,
3961
- 636, 652, 656, 679
3832
+ 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 0, 14, 2, 0,
3833
+ 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1,
3834
+ 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55,
3835
+ 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 741, 0, 134, 1, 0, 0,
3836
+ 0, 2, 157, 1, 0, 0, 0, 4, 164, 1, 0, 0, 0, 6, 168, 1, 0, 0, 0, 8, 176, 1, 0, 0, 0, 10, 178,
3837
+ 1, 0, 0, 0, 12, 188, 1, 0, 0, 0, 14, 192, 1, 0, 0, 0, 16, 204, 1, 0, 0, 0, 18, 208, 1, 0,
3838
+ 0, 0, 20, 211, 1, 0, 0, 0, 22, 219, 1, 0, 0, 0, 24, 230, 1, 0, 0, 0, 26, 236, 1, 0, 0, 0,
3839
+ 28, 238, 1, 0, 0, 0, 30, 240, 1, 0, 0, 0, 32, 243, 1, 0, 0, 0, 34, 252, 1, 0, 0, 0, 36, 274,
3840
+ 1, 0, 0, 0, 38, 284, 1, 0, 0, 0, 40, 286, 1, 0, 0, 0, 42, 300, 1, 0, 0, 0, 44, 302, 1, 0,
3841
+ 0, 0, 46, 310, 1, 0, 0, 0, 48, 312, 1, 0, 0, 0, 50, 316, 1, 0, 0, 0, 52, 321, 1, 0, 0, 0,
3842
+ 54, 325, 1, 0, 0, 0, 56, 352, 1, 0, 0, 0, 58, 354, 1, 0, 0, 0, 60, 358, 1, 0, 0, 0, 62, 380,
3843
+ 1, 0, 0, 0, 64, 405, 1, 0, 0, 0, 66, 407, 1, 0, 0, 0, 68, 410, 1, 0, 0, 0, 70, 414, 1, 0,
3844
+ 0, 0, 72, 434, 1, 0, 0, 0, 74, 465, 1, 0, 0, 0, 76, 467, 1, 0, 0, 0, 78, 480, 1, 0, 0, 0,
3845
+ 80, 488, 1, 0, 0, 0, 82, 491, 1, 0, 0, 0, 84, 500, 1, 0, 0, 0, 86, 506, 1, 0, 0, 0, 88, 509,
3846
+ 1, 0, 0, 0, 90, 513, 1, 0, 0, 0, 92, 526, 1, 0, 0, 0, 94, 536, 1, 0, 0, 0, 96, 546, 1, 0,
3847
+ 0, 0, 98, 560, 1, 0, 0, 0, 100, 596, 1, 0, 0, 0, 102, 598, 1, 0, 0, 0, 104, 602, 1, 0, 0,
3848
+ 0, 106, 613, 1, 0, 0, 0, 108, 621, 1, 0, 0, 0, 110, 623, 1, 0, 0, 0, 112, 630, 1, 0, 0,
3849
+ 0, 114, 646, 1, 0, 0, 0, 116, 651, 1, 0, 0, 0, 118, 654, 1, 0, 0, 0, 120, 658, 1, 0, 0,
3850
+ 0, 122, 671, 1, 0, 0, 0, 124, 677, 1, 0, 0, 0, 126, 681, 1, 0, 0, 0, 128, 686, 1, 0, 0,
3851
+ 0, 130, 133, 3, 116, 58, 0, 131, 133, 5, 64, 0, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1,
3852
+ 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 139, 1,
3853
+ 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 140, 3, 2, 1, 0, 138, 140, 5, 64, 0, 0, 139, 137, 1,
3854
+ 0, 0, 0, 139, 138, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 142, 1,
3855
+ 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 5, 0, 0, 1, 144, 1, 1, 0, 0, 0, 145, 158, 3, 6,
3856
+ 3, 0, 146, 158, 3, 50, 25, 0, 147, 158, 3, 52, 26, 0, 148, 158, 3, 58, 29, 0, 149, 158,
3857
+ 3, 14, 7, 0, 150, 158, 3, 60, 30, 0, 151, 158, 3, 70, 35, 0, 152, 158, 3, 82, 41, 0, 153,
3858
+ 158, 3, 116, 58, 0, 154, 158, 3, 76, 38, 0, 155, 158, 3, 118, 59, 0, 156, 158, 3, 4,
3859
+ 2, 0, 157, 145, 1, 0, 0, 0, 157, 146, 1, 0, 0, 0, 157, 147, 1, 0, 0, 0, 157, 148, 1, 0,
3860
+ 0, 0, 157, 149, 1, 0, 0, 0, 157, 150, 1, 0, 0, 0, 157, 151, 1, 0, 0, 0, 157, 152, 1, 0,
3861
+ 0, 0, 157, 153, 1, 0, 0, 0, 157, 154, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0,
3862
+ 0, 0, 158, 3, 1, 0, 0, 0, 159, 165, 3, 120, 60, 0, 160, 165, 3, 126, 63, 0, 161, 165,
3863
+ 3, 128, 64, 0, 162, 165, 5, 8, 0, 0, 163, 165, 5, 28, 0, 0, 164, 159, 1, 0, 0, 0, 164,
3864
+ 160, 1, 0, 0, 0, 164, 161, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 164, 163, 1, 0, 0, 0, 165,
3865
+ 5, 1, 0, 0, 0, 166, 169, 3, 8, 4, 0, 167, 169, 3, 12, 6, 0, 168, 166, 1, 0, 0, 0, 168, 167,
3866
+ 1, 0, 0, 0, 169, 7, 1, 0, 0, 0, 170, 177, 3, 24, 12, 0, 171, 177, 3, 32, 16, 0, 172, 177,
3867
+ 3, 30, 15, 0, 173, 177, 3, 40, 20, 0, 174, 177, 3, 110, 55, 0, 175, 177, 3, 114, 57,
3868
+ 0, 176, 170, 1, 0, 0, 0, 176, 171, 1, 0, 0, 0, 176, 172, 1, 0, 0, 0, 176, 173, 1, 0, 0,
3869
+ 0, 176, 174, 1, 0, 0, 0, 176, 175, 1, 0, 0, 0, 177, 9, 1, 0, 0, 0, 178, 179, 5, 64, 0, 0,
3870
+ 179, 182, 5, 66, 0, 0, 180, 183, 5, 64, 0, 0, 181, 183, 3, 2, 1, 0, 182, 180, 1, 0, 0,
3871
+ 0, 182, 181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0,
3872
+ 0, 185, 186, 1, 0, 0, 0, 186, 187, 5, 67, 0, 0, 187, 11, 1, 0, 0, 0, 188, 189, 7, 0, 0,
3873
+ 0, 189, 190, 5, 1, 0, 0, 190, 191, 3, 10, 5, 0, 191, 13, 1, 0, 0, 0, 192, 193, 3, 76, 38,
3874
+ 0, 193, 194, 5, 1, 0, 0, 194, 195, 5, 64, 0, 0, 195, 198, 5, 66, 0, 0, 196, 199, 5, 64,
3875
+ 0, 0, 197, 199, 3, 16, 8, 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 200, 1, 0,
3876
+ 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203, 5, 67,
3877
+ 0, 0, 203, 15, 1, 0, 0, 0, 204, 205, 7, 1, 0, 0, 205, 206, 5, 1, 0, 0, 206, 207, 3, 68,
3878
+ 34, 0, 207, 17, 1, 0, 0, 0, 208, 209, 5, 15, 0, 0, 209, 210, 3, 62, 31, 0, 210, 19, 1,
3879
+ 0, 0, 0, 211, 212, 5, 56, 0, 0, 212, 215, 5, 1, 0, 0, 213, 216, 3, 68, 34, 0, 214, 216,
3880
+ 5, 56, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 21, 1, 0, 0, 0, 217, 220,
3881
+ 3, 62, 31, 0, 218, 220, 3, 50, 25, 0, 219, 217, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220,
3882
+ 224, 1, 0, 0, 0, 221, 223, 3, 20, 10, 0, 222, 221, 1, 0, 0, 0, 223, 226, 1, 0, 0, 0, 224,
3883
+ 222, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 227,
3884
+ 229, 3, 18, 9, 0, 228, 227, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 23, 1, 0, 0, 0, 230,
3885
+ 231, 5, 16, 0, 0, 231, 232, 3, 22, 11, 0, 232, 25, 1, 0, 0, 0, 233, 237, 3, 22, 11, 0,
3886
+ 234, 237, 3, 18, 9, 0, 235, 237, 5, 19, 0, 0, 236, 233, 1, 0, 0, 0, 236, 234, 1, 0, 0,
3887
+ 0, 236, 235, 1, 0, 0, 0, 237, 27, 1, 0, 0, 0, 238, 239, 7, 2, 0, 0, 239, 29, 1, 0, 0, 0,
3888
+ 240, 241, 5, 17, 0, 0, 241, 242, 3, 26, 13, 0, 242, 31, 1, 0, 0, 0, 243, 244, 5, 18, 0,
3889
+ 0, 244, 249, 3, 26, 13, 0, 245, 246, 5, 2, 0, 0, 246, 248, 3, 26, 13, 0, 247, 245, 1,
3890
+ 0, 0, 0, 248, 251, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 33, 1, 0,
3891
+ 0, 0, 251, 249, 1, 0, 0, 0, 252, 253, 5, 17, 0, 0, 253, 254, 3, 26, 13, 0, 254, 255, 5,
3892
+ 18, 0, 0, 255, 260, 3, 26, 13, 0, 256, 257, 5, 2, 0, 0, 257, 259, 3, 26, 13, 0, 258, 256,
3893
+ 1, 0, 0, 0, 259, 262, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 263,
3894
+ 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 263, 264, 5, 1, 0, 0, 264, 265, 5, 64, 0, 0, 265, 268,
3895
+ 5, 66, 0, 0, 266, 269, 5, 64, 0, 0, 267, 269, 3, 36, 18, 0, 268, 266, 1, 0, 0, 0, 268,
3896
+ 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271,
3897
+ 272, 1, 0, 0, 0, 272, 273, 5, 67, 0, 0, 273, 35, 1, 0, 0, 0, 274, 275, 3, 28, 14, 0, 275,
3898
+ 276, 5, 1, 0, 0, 276, 281, 3, 38, 19, 0, 277, 278, 5, 2, 0, 0, 278, 280, 3, 38, 19, 0,
3899
+ 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0,
3900
+ 282, 37, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 7, 3, 0, 0, 285, 39, 1, 0, 0, 0, 286,
3901
+ 287, 3, 30, 15, 0, 287, 288, 5, 1, 0, 0, 288, 289, 5, 64, 0, 0, 289, 292, 5, 66, 0, 0,
3902
+ 290, 293, 5, 64, 0, 0, 291, 293, 3, 42, 21, 0, 292, 290, 1, 0, 0, 0, 292, 291, 1, 0, 0,
3903
+ 0, 293, 294, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0,
3904
+ 0, 296, 297, 5, 67, 0, 0, 297, 41, 1, 0, 0, 0, 298, 301, 3, 2, 1, 0, 299, 301, 3, 44, 22,
3905
+ 0, 300, 298, 1, 0, 0, 0, 300, 299, 1, 0, 0, 0, 301, 43, 1, 0, 0, 0, 302, 303, 3, 28, 14,
3906
+ 0, 303, 306, 5, 1, 0, 0, 304, 307, 3, 46, 23, 0, 305, 307, 3, 48, 24, 0, 306, 304, 1,
3907
+ 0, 0, 0, 306, 305, 1, 0, 0, 0, 307, 45, 1, 0, 0, 0, 308, 311, 3, 2, 1, 0, 309, 311, 5, 54,
3908
+ 0, 0, 310, 308, 1, 0, 0, 0, 310, 309, 1, 0, 0, 0, 311, 47, 1, 0, 0, 0, 312, 313, 3, 10,
3909
+ 5, 0, 313, 49, 1, 0, 0, 0, 314, 317, 3, 76, 38, 0, 315, 317, 3, 82, 41, 0, 316, 314, 1,
3910
+ 0, 0, 0, 316, 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 319, 5, 3, 0, 0, 319, 320, 3,
3911
+ 62, 31, 0, 320, 51, 1, 0, 0, 0, 321, 322, 3, 76, 38, 0, 322, 323, 7, 4, 0, 0, 323, 324,
3912
+ 3, 62, 31, 0, 324, 53, 1, 0, 0, 0, 325, 326, 5, 56, 0, 0, 326, 327, 5, 3, 0, 0, 327, 328,
3913
+ 3, 62, 31, 0, 328, 55, 1, 0, 0, 0, 329, 334, 3, 62, 31, 0, 330, 331, 5, 2, 0, 0, 331, 333,
3914
+ 3, 62, 31, 0, 332, 330, 1, 0, 0, 0, 333, 336, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 334, 335,
3915
+ 1, 0, 0, 0, 335, 341, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337, 338, 5, 2, 0, 0, 338, 340,
3916
+ 3, 54, 27, 0, 339, 337, 1, 0, 0, 0, 340, 343, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 341, 342,
3917
+ 1, 0, 0, 0, 342, 353, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 344, 349, 3, 54, 27, 0, 345, 346,
3918
+ 5, 2, 0, 0, 346, 348, 3, 54, 27, 0, 347, 345, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347,
3919
+ 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 353, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 329,
3920
+ 1, 0, 0, 0, 352, 344, 1, 0, 0, 0, 353, 57, 1, 0, 0, 0, 354, 355, 3, 76, 38, 0, 355, 356,
3921
+ 5, 3, 0, 0, 356, 357, 3, 62, 31, 0, 357, 59, 1, 0, 0, 0, 358, 359, 5, 4, 0, 0, 359, 360,
3922
+ 5, 56, 0, 0, 360, 361, 5, 3, 0, 0, 361, 362, 3, 62, 31, 0, 362, 61, 1, 0, 0, 0, 363, 364,
3923
+ 6, 31, -1, 0, 364, 365, 5, 52, 0, 0, 365, 366, 3, 62, 31, 0, 366, 367, 5, 53, 0, 0, 367,
3924
+ 381, 1, 0, 0, 0, 368, 371, 3, 68, 34, 0, 369, 371, 3, 76, 38, 0, 370, 368, 1, 0, 0, 0,
3925
+ 370, 369, 1, 0, 0, 0, 371, 381, 1, 0, 0, 0, 372, 373, 3, 66, 33, 0, 373, 374, 3, 62, 31,
3926
+ 11, 374, 381, 1, 0, 0, 0, 375, 381, 3, 90, 45, 0, 376, 381, 3, 94, 47, 0, 377, 381, 3,
3927
+ 96, 48, 0, 378, 381, 3, 82, 41, 0, 379, 381, 3, 112, 56, 0, 380, 363, 1, 0, 0, 0, 380,
3928
+ 370, 1, 0, 0, 0, 380, 372, 1, 0, 0, 0, 380, 375, 1, 0, 0, 0, 380, 376, 1, 0, 0, 0, 380,
3929
+ 377, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 379, 1, 0, 0, 0, 381, 402, 1, 0, 0, 0, 382,
3930
+ 383, 10, 10, 0, 0, 383, 384, 7, 5, 0, 0, 384, 401, 3, 62, 31, 11, 385, 386, 10, 9, 0,
3931
+ 0, 386, 387, 7, 6, 0, 0, 387, 401, 3, 62, 31, 10, 388, 389, 10, 8, 0, 0, 389, 390, 3,
3932
+ 64, 32, 0, 390, 391, 3, 62, 31, 9, 391, 401, 1, 0, 0, 0, 392, 393, 10, 7, 0, 0, 393, 394,
3933
+ 7, 7, 0, 0, 394, 401, 3, 62, 31, 8, 395, 396, 10, 1, 0, 0, 396, 397, 5, 5, 0, 0, 397, 398,
3934
+ 3, 62, 31, 0, 398, 399, 5, 6, 0, 0, 399, 401, 1, 0, 0, 0, 400, 382, 1, 0, 0, 0, 400, 385,
3935
+ 1, 0, 0, 0, 400, 388, 1, 0, 0, 0, 400, 392, 1, 0, 0, 0, 400, 395, 1, 0, 0, 0, 401, 404,
3936
+ 1, 0, 0, 0, 402, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 63, 1, 0, 0, 0, 404, 402, 1,
3937
+ 0, 0, 0, 405, 406, 7, 8, 0, 0, 406, 65, 1, 0, 0, 0, 407, 408, 7, 9, 0, 0, 408, 67, 1, 0,
3938
+ 0, 0, 409, 411, 5, 43, 0, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 1, 0,
3939
+ 0, 0, 412, 413, 7, 10, 0, 0, 413, 69, 1, 0, 0, 0, 414, 415, 5, 23, 0, 0, 415, 416, 5, 56,
3940
+ 0, 0, 416, 418, 5, 52, 0, 0, 417, 419, 3, 74, 37, 0, 418, 417, 1, 0, 0, 0, 418, 419, 1,
3941
+ 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421, 5, 53, 0, 0, 421, 422, 5, 1, 0, 0, 422, 423, 5,
3942
+ 64, 0, 0, 423, 426, 5, 66, 0, 0, 424, 427, 5, 64, 0, 0, 425, 427, 3, 72, 36, 0, 426, 424,
3943
+ 1, 0, 0, 0, 426, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 429,
3944
+ 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 431, 5, 67, 0, 0, 431, 71, 1, 0, 0, 0, 432, 435,
3945
+ 3, 2, 1, 0, 433, 435, 3, 86, 43, 0, 434, 432, 1, 0, 0, 0, 434, 433, 1, 0, 0, 0, 435, 73,
3946
+ 1, 0, 0, 0, 436, 441, 5, 56, 0, 0, 437, 438, 5, 2, 0, 0, 438, 440, 5, 56, 0, 0, 439, 437,
3947
+ 1, 0, 0, 0, 440, 443, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 450,
3948
+ 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 444, 445, 5, 2, 0, 0, 445, 446, 5, 56, 0, 0, 446, 447,
3949
+ 5, 3, 0, 0, 447, 449, 3, 68, 34, 0, 448, 444, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 448,
3950
+ 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 466, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454,
3951
+ 5, 56, 0, 0, 454, 455, 5, 3, 0, 0, 455, 462, 3, 68, 34, 0, 456, 457, 5, 2, 0, 0, 457, 458,
3952
+ 5, 56, 0, 0, 458, 459, 5, 3, 0, 0, 459, 461, 3, 68, 34, 0, 460, 456, 1, 0, 0, 0, 461, 464,
3953
+ 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462,
3954
+ 1, 0, 0, 0, 465, 436, 1, 0, 0, 0, 465, 453, 1, 0, 0, 0, 466, 75, 1, 0, 0, 0, 467, 471, 5,
3955
+ 56, 0, 0, 468, 470, 3, 80, 40, 0, 469, 468, 1, 0, 0, 0, 470, 473, 1, 0, 0, 0, 471, 469,
3956
+ 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 77, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 476, 5,
3957
+ 52, 0, 0, 475, 477, 3, 56, 28, 0, 476, 475, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478,
3958
+ 1, 0, 0, 0, 478, 481, 5, 53, 0, 0, 479, 481, 3, 80, 40, 0, 480, 474, 1, 0, 0, 0, 480, 479,
3959
+ 1, 0, 0, 0, 481, 79, 1, 0, 0, 0, 482, 483, 5, 7, 0, 0, 483, 489, 5, 56, 0, 0, 484, 485,
3960
+ 5, 5, 0, 0, 485, 486, 3, 62, 31, 0, 486, 487, 5, 6, 0, 0, 487, 489, 1, 0, 0, 0, 488, 482,
3961
+ 1, 0, 0, 0, 488, 484, 1, 0, 0, 0, 489, 81, 1, 0, 0, 0, 490, 492, 3, 84, 42, 0, 491, 490,
3962
+ 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 495, 5, 56, 0, 0, 494, 496,
3963
+ 3, 78, 39, 0, 495, 494, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 498,
3964
+ 1, 0, 0, 0, 498, 83, 1, 0, 0, 0, 499, 501, 5, 42, 0, 0, 500, 499, 1, 0, 0, 0, 500, 501,
3965
+ 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504, 5, 44, 0, 0, 503, 505, 3, 62, 31, 0, 504, 503,
3966
+ 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 85, 1, 0, 0, 0, 506, 507, 5, 22, 0, 0, 507, 508,
3967
+ 3, 62, 31, 0, 508, 87, 1, 0, 0, 0, 509, 510, 3, 104, 52, 0, 510, 511, 5, 1, 0, 0, 511,
3968
+ 512, 3, 10, 5, 0, 512, 89, 1, 0, 0, 0, 513, 514, 5, 10, 0, 0, 514, 515, 5, 11, 0, 0, 515,
3969
+ 516, 5, 1, 0, 0, 516, 517, 5, 64, 0, 0, 517, 520, 5, 66, 0, 0, 518, 521, 5, 64, 0, 0, 519,
3970
+ 521, 3, 102, 51, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522,
3971
+ 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 67, 0, 0, 525,
3972
+ 91, 1, 0, 0, 0, 526, 527, 5, 64, 0, 0, 527, 530, 5, 66, 0, 0, 528, 531, 5, 64, 0, 0, 529,
3973
+ 531, 3, 100, 50, 0, 530, 528, 1, 0, 0, 0, 530, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532,
3974
+ 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 535, 5, 67, 0, 0, 535,
3975
+ 93, 1, 0, 0, 0, 536, 537, 5, 10, 0, 0, 537, 541, 5, 12, 0, 0, 538, 539, 5, 52, 0, 0, 539,
3976
+ 540, 5, 56, 0, 0, 540, 542, 5, 53, 0, 0, 541, 538, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542,
3977
+ 543, 1, 0, 0, 0, 543, 544, 5, 1, 0, 0, 544, 545, 3, 92, 46, 0, 545, 95, 1, 0, 0, 0, 546,
3978
+ 547, 5, 10, 0, 0, 547, 548, 5, 13, 0, 0, 548, 549, 5, 1, 0, 0, 549, 550, 5, 64, 0, 0, 550,
3979
+ 554, 5, 66, 0, 0, 551, 555, 5, 64, 0, 0, 552, 555, 3, 102, 51, 0, 553, 555, 3, 88, 44,
3980
+ 0, 554, 551, 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 554, 553, 1, 0, 0, 0, 555, 556, 1, 0, 0,
3981
+ 0, 556, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 559, 5, 67, 0,
3982
+ 0, 559, 97, 1, 0, 0, 0, 560, 561, 5, 64, 0, 0, 561, 564, 5, 66, 0, 0, 562, 565, 5, 64,
3983
+ 0, 0, 563, 565, 3, 102, 51, 0, 564, 562, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 566, 1,
3984
+ 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 567, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 5,
3985
+ 67, 0, 0, 569, 99, 1, 0, 0, 0, 570, 572, 7, 11, 0, 0, 571, 573, 5, 1, 0, 0, 572, 571, 1,
3986
+ 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 580, 1, 0, 0, 0, 574, 581, 3, 56, 28, 0, 575, 576,
3987
+ 5, 52, 0, 0, 576, 577, 3, 56, 28, 0, 577, 578, 5, 53, 0, 0, 578, 581, 1, 0, 0, 0, 579,
3988
+ 581, 3, 98, 49, 0, 580, 574, 1, 0, 0, 0, 580, 575, 1, 0, 0, 0, 580, 579, 1, 0, 0, 0, 581,
3989
+ 597, 1, 0, 0, 0, 582, 583, 5, 25, 0, 0, 583, 588, 5, 56, 0, 0, 584, 585, 5, 2, 0, 0, 585,
3990
+ 587, 5, 56, 0, 0, 586, 584, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588,
3991
+ 589, 1, 0, 0, 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 26, 0, 0, 592,
3992
+ 593, 3, 62, 31, 0, 593, 594, 5, 1, 0, 0, 594, 595, 3, 92, 46, 0, 595, 597, 1, 0, 0, 0,
3993
+ 596, 570, 1, 0, 0, 0, 596, 582, 1, 0, 0, 0, 597, 101, 1, 0, 0, 0, 598, 599, 3, 104, 52,
3994
+ 0, 599, 600, 5, 1, 0, 0, 600, 601, 3, 106, 53, 0, 601, 103, 1, 0, 0, 0, 602, 603, 7, 12,
3995
+ 0, 0, 603, 105, 1, 0, 0, 0, 604, 614, 3, 98, 49, 0, 605, 610, 3, 62, 31, 0, 606, 607,
3996
+ 5, 2, 0, 0, 607, 609, 3, 62, 31, 0, 608, 606, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608,
3997
+ 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 604,
3998
+ 1, 0, 0, 0, 613, 605, 1, 0, 0, 0, 614, 107, 1, 0, 0, 0, 615, 618, 5, 56, 0, 0, 616, 619,
3999
+ 5, 57, 0, 0, 617, 619, 3, 62, 31, 0, 618, 616, 1, 0, 0, 0, 618, 617, 1, 0, 0, 0, 619, 622,
4000
+ 1, 0, 0, 0, 620, 622, 5, 56, 0, 0, 621, 615, 1, 0, 0, 0, 621, 620, 1, 0, 0, 0, 622, 109,
4001
+ 1, 0, 0, 0, 623, 627, 5, 14, 0, 0, 624, 626, 3, 108, 54, 0, 625, 624, 1, 0, 0, 0, 626,
4002
+ 629, 1, 0, 0, 0, 627, 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 111, 1, 0, 0, 0, 629,
4003
+ 627, 1, 0, 0, 0, 630, 641, 5, 5, 0, 0, 631, 636, 3, 62, 31, 0, 632, 633, 5, 2, 0, 0, 633,
4004
+ 635, 3, 62, 31, 0, 634, 632, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
4005
+ 637, 1, 0, 0, 0, 637, 640, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 631, 1, 0, 0, 0, 640,
4006
+ 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 644, 1, 0, 0, 0, 643,
4007
+ 641, 1, 0, 0, 0, 644, 645, 5, 6, 0, 0, 645, 113, 1, 0, 0, 0, 646, 649, 5, 19, 0, 0, 647,
4008
+ 650, 5, 56, 0, 0, 648, 650, 3, 62, 31, 0, 649, 647, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650,
4009
+ 115, 1, 0, 0, 0, 651, 652, 5, 24, 0, 0, 652, 653, 5, 56, 0, 0, 653, 117, 1, 0, 0, 0, 654,
4010
+ 655, 7, 13, 0, 0, 655, 656, 5, 1, 0, 0, 656, 657, 3, 10, 5, 0, 657, 119, 1, 0, 0, 0, 658,
4011
+ 659, 5, 29, 0, 0, 659, 660, 3, 62, 31, 0, 660, 661, 5, 1, 0, 0, 661, 665, 3, 10, 5, 0,
4012
+ 662, 664, 3, 122, 61, 0, 663, 662, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0,
4013
+ 0, 665, 666, 1, 0, 0, 0, 666, 669, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 670, 3, 124,
4014
+ 62, 0, 669, 668, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 121, 1, 0, 0, 0, 671, 672, 5, 30,
4015
+ 0, 0, 672, 673, 5, 29, 0, 0, 673, 674, 3, 62, 31, 0, 674, 675, 5, 1, 0, 0, 675, 676, 3,
4016
+ 10, 5, 0, 676, 123, 1, 0, 0, 0, 677, 678, 5, 30, 0, 0, 678, 679, 5, 1, 0, 0, 679, 680,
4017
+ 3, 10, 5, 0, 680, 125, 1, 0, 0, 0, 681, 682, 5, 27, 0, 0, 682, 683, 3, 62, 31, 0, 683,
4018
+ 684, 5, 1, 0, 0, 684, 685, 3, 10, 5, 0, 685, 127, 1, 0, 0, 0, 686, 687, 5, 25, 0, 0, 687,
4019
+ 692, 5, 56, 0, 0, 688, 689, 5, 2, 0, 0, 689, 691, 5, 56, 0, 0, 690, 688, 1, 0, 0, 0, 691,
4020
+ 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 695, 1, 0, 0, 0, 694,
4021
+ 692, 1, 0, 0, 0, 695, 696, 5, 26, 0, 0, 696, 697, 3, 62, 31, 0, 697, 698, 5, 1, 0, 0, 698,
4022
+ 699, 3, 10, 5, 0, 699, 129, 1, 0, 0, 0, 77, 132, 134, 139, 141, 157, 164, 168, 176,
4023
+ 182, 184, 198, 200, 215, 219, 224, 228, 236, 249, 260, 268, 270, 281, 292, 294,
4024
+ 300, 306, 310, 316, 334, 341, 349, 352, 370, 380, 400, 402, 410, 418, 426, 428,
4025
+ 434, 441, 450, 462, 465, 471, 476, 480, 488, 491, 497, 500, 504, 520, 522, 530,
4026
+ 532, 541, 554, 556, 564, 566, 572, 580, 588, 596, 610, 613, 618, 621, 627, 636,
4027
+ 641, 649, 665, 669, 692
3962
4028
  ];
3963
4029
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3964
4030
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4906,6 +4972,27 @@ class ArrayExprContext extends Data_exprContext {
4906
4972
  }
4907
4973
  }
4908
4974
  exports.ArrayExprContext = ArrayExprContext;
4975
+ class ArrayIndexExprContext extends Data_exprContext {
4976
+ constructor(ctx) {
4977
+ super(ctx.parent, ctx.invokingState);
4978
+ super.copyFrom(ctx);
4979
+ }
4980
+ data_expr(i) {
4981
+ if (i === undefined) {
4982
+ return this.getRuleContexts(Data_exprContext);
4983
+ }
4984
+ return this.getRuleContext(i, Data_exprContext);
4985
+ }
4986
+ accept(visitor) {
4987
+ if (visitor.visitArrayIndexExpr) {
4988
+ return visitor.visitArrayIndexExpr(this);
4989
+ }
4990
+ else {
4991
+ return visitor.visitChildren(this);
4992
+ }
4993
+ }
4994
+ }
4995
+ exports.ArrayIndexExprContext = ArrayIndexExprContext;
4909
4996
  class FunctionCallExprContext extends Data_exprContext {
4910
4997
  constructor(ctx) {
4911
4998
  super(ctx.parent, ctx.invokingState);
@@ -5328,13 +5415,14 @@ class Atom_exprContext extends antlr.ParserRuleContext {
5328
5415
  constructor(parent, invokingState) {
5329
5416
  super(parent, invokingState);
5330
5417
  }
5331
- ID(i) {
5418
+ ID() {
5419
+ return this.getToken(CircuitScriptParser.ID, 0);
5420
+ }
5421
+ trailer_expr2(i) {
5332
5422
  if (i === undefined) {
5333
- return this.getTokens(CircuitScriptParser.ID);
5334
- }
5335
- else {
5336
- return this.getToken(CircuitScriptParser.ID, i);
5423
+ return this.getRuleContexts(Trailer_expr2Context);
5337
5424
  }
5425
+ return this.getRuleContext(i, Trailer_expr2Context);
5338
5426
  }
5339
5427
  get ruleIndex() {
5340
5428
  return CircuitScriptParser.RULE_atom_expr;
@@ -5362,8 +5450,8 @@ class Trailer_exprContext extends antlr.ParserRuleContext {
5362
5450
  parameters() {
5363
5451
  return this.getRuleContext(0, ParametersContext);
5364
5452
  }
5365
- ID() {
5366
- return this.getToken(CircuitScriptParser.ID, 0);
5453
+ trailer_expr2() {
5454
+ return this.getRuleContext(0, Trailer_expr2Context);
5367
5455
  }
5368
5456
  get ruleIndex() {
5369
5457
  return CircuitScriptParser.RULE_trailer_expr;
@@ -5378,6 +5466,29 @@ class Trailer_exprContext extends antlr.ParserRuleContext {
5378
5466
  }
5379
5467
  }
5380
5468
  exports.Trailer_exprContext = Trailer_exprContext;
5469
+ class Trailer_expr2Context extends antlr.ParserRuleContext {
5470
+ constructor(parent, invokingState) {
5471
+ super(parent, invokingState);
5472
+ }
5473
+ ID() {
5474
+ return this.getToken(CircuitScriptParser.ID, 0);
5475
+ }
5476
+ data_expr() {
5477
+ return this.getRuleContext(0, Data_exprContext);
5478
+ }
5479
+ get ruleIndex() {
5480
+ return CircuitScriptParser.RULE_trailer_expr2;
5481
+ }
5482
+ accept(visitor) {
5483
+ if (visitor.visitTrailer_expr2) {
5484
+ return visitor.visitTrailer_expr2(this);
5485
+ }
5486
+ else {
5487
+ return visitor.visitChildren(this);
5488
+ }
5489
+ }
5490
+ }
5491
+ exports.Trailer_expr2Context = Trailer_expr2Context;
5381
5492
  class Function_call_exprContext extends antlr.ParserRuleContext {
5382
5493
  constructor(parent, invokingState) {
5383
5494
  super(parent, invokingState);