circuitscript 0.1.12 → 0.1.14

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.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.Continue_keywordContext = exports.Break_keywordContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_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 = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
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;
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 = 136;
50
+ this.state = 132;
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 = 134;
56
+ this.state = 130;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  {
61
- this.state = 132;
61
+ this.state = 128;
62
62
  this.import_expr();
63
63
  }
64
64
  break;
65
65
  case CircuitScriptParser.NEWLINE:
66
66
  {
67
- this.state = 133;
67
+ this.state = 129;
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 = 138;
76
+ this.state = 134;
77
77
  this.errorHandler.sync(this);
78
78
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
79
79
  }
80
- this.state = 141;
80
+ this.state = 137;
81
81
  this.errorHandler.sync(this);
82
82
  _la = this.tokenStream.LA(1);
83
83
  do {
84
84
  {
85
- this.state = 141;
85
+ this.state = 137;
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 = 139;
110
+ this.state = 135;
111
111
  this.expression();
112
112
  }
113
113
  break;
114
114
  case CircuitScriptParser.NEWLINE:
115
115
  {
116
- this.state = 140;
116
+ this.state = 136;
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 = 143;
124
+ this.state = 139;
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 = 145;
128
+ this.state = 141;
129
129
  this.match(CircuitScriptParser.EOF);
130
130
  }
131
131
  }
@@ -147,91 +147,91 @@ 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 = 159;
150
+ this.state = 155;
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 = 147;
156
+ this.state = 143;
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 = 148;
164
- this.flow_expressions();
163
+ this.state = 144;
164
+ this.assignment_expr();
165
165
  }
166
166
  break;
167
167
  case 3:
168
168
  this.enterOuterAlt(localContext, 3);
169
169
  {
170
- this.state = 149;
171
- this.assignment_expr();
170
+ this.state = 145;
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 = 150;
178
- this.operator_assignment_expr();
177
+ this.state = 146;
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 = 151;
185
- this.property_set_expr();
184
+ this.state = 147;
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 = 152;
192
- this.property_set_expr2();
191
+ this.state = 148;
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 = 153;
199
- this.double_dot_property_set_expr();
198
+ this.state = 149;
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 = 154;
206
- this.function_def_expr();
205
+ this.state = 150;
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 = 155;
213
- this.function_call_expr();
212
+ this.state = 151;
213
+ this.import_expr();
214
214
  }
215
215
  break;
216
216
  case 10:
217
217
  this.enterOuterAlt(localContext, 10);
218
218
  {
219
- this.state = 156;
220
- this.import_expr();
219
+ this.state = 152;
220
+ this.atom_expr();
221
221
  }
222
222
  break;
223
223
  case 11:
224
224
  this.enterOuterAlt(localContext, 11);
225
225
  {
226
- this.state = 157;
227
- this.atom_expr();
226
+ this.state = 153;
227
+ this.frame_expr();
228
228
  }
229
229
  break;
230
230
  case 12:
231
231
  this.enterOuterAlt(localContext, 12);
232
232
  {
233
- this.state = 158;
234
- this.frame_expr();
233
+ this.state = 154;
234
+ this.flow_expressions();
235
235
  }
236
236
  break;
237
237
  }
@@ -254,42 +254,42 @@ 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 = 166;
257
+ this.state = 162;
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 = 161;
263
+ this.state = 157;
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 = 162;
270
+ this.state = 158;
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 = 163;
277
+ this.state = 159;
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 = 164;
285
- this.break_keyword();
284
+ this.state = 160;
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 = 165;
292
- this.continue_keyword();
291
+ this.state = 161;
292
+ this.match(CircuitScriptParser.Continue);
293
293
  }
294
294
  break;
295
295
  default:
@@ -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 = 170;
317
+ this.state = 166;
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 = 168;
323
+ this.state = 164;
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 = 169;
330
+ this.state = 165;
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 = 178;
354
+ this.state = 174;
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 = 172;
360
+ this.state = 168;
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 = 173;
367
+ this.state = 169;
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 = 174;
374
+ this.state = 170;
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 = 175;
381
+ this.state = 171;
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 = 176;
388
+ this.state = 172;
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 = 177;
395
+ this.state = 173;
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 = 180;
422
+ this.state = 176;
423
423
  this.match(CircuitScriptParser.NEWLINE);
424
- this.state = 181;
424
+ this.state = 177;
425
425
  this.match(CircuitScriptParser.INDENT);
426
- this.state = 184;
426
+ this.state = 180;
427
427
  this.errorHandler.sync(this);
428
428
  _la = this.tokenStream.LA(1);
429
429
  do {
430
430
  {
431
- this.state = 184;
431
+ this.state = 180;
432
432
  this.errorHandler.sync(this);
433
433
  switch (this.tokenStream.LA(1)) {
434
434
  case CircuitScriptParser.NEWLINE:
435
435
  {
436
- this.state = 182;
436
+ this.state = 178;
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 = 183;
462
+ this.state = 179;
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 = 186;
470
+ this.state = 182;
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 = 188;
474
+ this.state = 184;
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 = 190;
499
+ this.state = 186;
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 = 191;
508
+ this.state = 187;
509
509
  this.match(CircuitScriptParser.T__0);
510
- this.state = 192;
510
+ this.state = 188;
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 = 194;
535
+ this.state = 190;
536
536
  this.atom_expr();
537
- this.state = 195;
537
+ this.state = 191;
538
538
  this.match(CircuitScriptParser.T__0);
539
- this.state = 196;
539
+ this.state = 192;
540
540
  this.match(CircuitScriptParser.NEWLINE);
541
- this.state = 197;
541
+ this.state = 193;
542
542
  this.match(CircuitScriptParser.INDENT);
543
- this.state = 200;
543
+ this.state = 196;
544
544
  this.errorHandler.sync(this);
545
545
  _la = this.tokenStream.LA(1);
546
546
  do {
547
547
  {
548
- this.state = 200;
548
+ this.state = 196;
549
549
  this.errorHandler.sync(this);
550
550
  switch (this.tokenStream.LA(1)) {
551
551
  case CircuitScriptParser.NEWLINE:
552
552
  {
553
- this.state = 198;
553
+ this.state = 194;
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 = 199;
560
+ this.state = 195;
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 = 202;
568
+ this.state = 198;
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 = 204;
572
+ this.state = 200;
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 = 206;
597
+ this.state = 202;
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 = 207;
606
+ this.state = 203;
607
607
  this.match(CircuitScriptParser.T__0);
608
- this.state = 208;
608
+ this.state = 204;
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 = 210;
632
+ this.state = 206;
633
633
  this.match(CircuitScriptParser.Pin);
634
- this.state = 211;
634
+ this.state = 207;
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 = 213;
658
+ this.state = 209;
659
659
  this.match(CircuitScriptParser.ID);
660
- this.state = 214;
660
+ this.state = 210;
661
661
  this.match(CircuitScriptParser.T__0);
662
- this.state = 217;
662
+ this.state = 213;
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 = 215;
673
+ this.state = 211;
674
674
  this.value_expr();
675
675
  }
676
676
  break;
677
677
  case CircuitScriptParser.ID:
678
678
  {
679
- this.state = 216;
679
+ this.state = 212;
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 = 221;
710
+ this.state = 217;
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 = 219;
715
+ this.state = 215;
716
716
  this.data_expr(0);
717
717
  }
718
718
  break;
719
719
  case 2:
720
720
  {
721
- this.state = 220;
721
+ this.state = 216;
722
722
  this.assignment_expr();
723
723
  }
724
724
  break;
725
725
  }
726
- this.state = 226;
726
+ this.state = 222;
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 = 223;
733
+ this.state = 219;
734
734
  this.component_modifier_expr();
735
735
  }
736
736
  }
737
737
  }
738
- this.state = 228;
738
+ this.state = 224;
739
739
  this.errorHandler.sync(this);
740
740
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
741
741
  }
742
- this.state = 230;
742
+ this.state = 226;
743
743
  this.errorHandler.sync(this);
744
744
  _la = this.tokenStream.LA(1);
745
745
  if (_la === 15) {
746
746
  {
747
- this.state = 229;
747
+ this.state = 225;
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 = 232;
773
+ this.state = 228;
774
774
  this.match(CircuitScriptParser.Add);
775
- this.state = 233;
775
+ this.state = 229;
776
776
  this.data_expr_with_assignment();
777
777
  }
778
778
  }
@@ -794,7 +794,7 @@ 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 = 238;
797
+ this.state = 234;
798
798
  this.errorHandler.sync(this);
799
799
  switch (this.tokenStream.LA(1)) {
800
800
  case CircuitScriptParser.T__5:
@@ -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 = 235;
816
+ this.state = 231;
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 = 236;
823
+ this.state = 232;
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 = 237;
830
+ this.state = 233;
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 = 240;
859
+ this.state = 236;
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 = 242;
890
+ this.state = 238;
891
891
  this.match(CircuitScriptParser.At);
892
- this.state = 243;
892
+ this.state = 239;
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 = 245;
917
+ this.state = 241;
918
918
  this.match(CircuitScriptParser.To);
919
919
  {
920
- this.state = 246;
920
+ this.state = 242;
921
921
  this.component_select_expr();
922
- this.state = 251;
922
+ this.state = 247;
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 = 247;
928
+ this.state = 243;
929
929
  this.match(CircuitScriptParser.T__1);
930
- this.state = 248;
930
+ this.state = 244;
931
931
  this.component_select_expr();
932
932
  }
933
933
  }
934
- this.state = 253;
934
+ this.state = 249;
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 = 254;
962
+ this.state = 250;
963
963
  this.match(CircuitScriptParser.At);
964
- this.state = 255;
964
+ this.state = 251;
965
965
  this.component_select_expr();
966
- this.state = 256;
966
+ this.state = 252;
967
967
  this.match(CircuitScriptParser.To);
968
- this.state = 257;
968
+ this.state = 253;
969
969
  this.component_select_expr();
970
- this.state = 262;
970
+ this.state = 258;
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 = 258;
976
+ this.state = 254;
977
977
  this.match(CircuitScriptParser.T__1);
978
- this.state = 259;
978
+ this.state = 255;
979
979
  this.component_select_expr();
980
980
  }
981
981
  }
982
- this.state = 264;
982
+ this.state = 260;
983
983
  this.errorHandler.sync(this);
984
984
  _la = this.tokenStream.LA(1);
985
985
  }
986
- this.state = 265;
986
+ this.state = 261;
987
987
  this.match(CircuitScriptParser.T__0);
988
- this.state = 266;
988
+ this.state = 262;
989
989
  this.match(CircuitScriptParser.NEWLINE);
990
- this.state = 267;
990
+ this.state = 263;
991
991
  this.match(CircuitScriptParser.INDENT);
992
- this.state = 270;
992
+ this.state = 266;
993
993
  this.errorHandler.sync(this);
994
994
  _la = this.tokenStream.LA(1);
995
995
  do {
996
996
  {
997
- this.state = 270;
997
+ this.state = 266;
998
998
  this.errorHandler.sync(this);
999
999
  switch (this.tokenStream.LA(1)) {
1000
1000
  case CircuitScriptParser.NEWLINE:
1001
1001
  {
1002
- this.state = 268;
1002
+ this.state = 264;
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 = 269;
1009
+ this.state = 265;
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 = 272;
1017
+ this.state = 268;
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 = 274;
1021
+ this.state = 270;
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 = 276;
1046
+ this.state = 272;
1047
1047
  this.pin_select_expr2();
1048
- this.state = 277;
1048
+ this.state = 273;
1049
1049
  this.match(CircuitScriptParser.T__0);
1050
- this.state = 278;
1050
+ this.state = 274;
1051
1051
  this.at_to_multiple_line_expr_to_pin();
1052
- this.state = 283;
1052
+ this.state = 279;
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 = 279;
1058
+ this.state = 275;
1059
1059
  this.match(CircuitScriptParser.T__1);
1060
- this.state = 280;
1060
+ this.state = 276;
1061
1061
  this.at_to_multiple_line_expr_to_pin();
1062
1062
  }
1063
1063
  }
1064
- this.state = 285;
1064
+ this.state = 281;
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 = 286;
1091
+ this.state = 282;
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 = 288;
1123
+ this.state = 284;
1124
1124
  this.at_component_expr();
1125
- this.state = 289;
1125
+ this.state = 285;
1126
1126
  this.match(CircuitScriptParser.T__0);
1127
- this.state = 290;
1127
+ this.state = 286;
1128
1128
  this.match(CircuitScriptParser.NEWLINE);
1129
- this.state = 291;
1129
+ this.state = 287;
1130
1130
  this.match(CircuitScriptParser.INDENT);
1131
- this.state = 294;
1131
+ this.state = 290;
1132
1132
  this.errorHandler.sync(this);
1133
1133
  _la = this.tokenStream.LA(1);
1134
1134
  do {
1135
1135
  {
1136
- this.state = 294;
1136
+ this.state = 290;
1137
1137
  this.errorHandler.sync(this);
1138
1138
  switch (this.tokenStream.LA(1)) {
1139
1139
  case CircuitScriptParser.NEWLINE:
1140
1140
  {
1141
- this.state = 292;
1141
+ this.state = 288;
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 = 293;
1169
+ this.state = 289;
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 = 296;
1177
+ this.state = 292;
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 = 298;
1181
+ this.state = 294;
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 = 302;
1203
+ this.state = 298;
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 = 300;
1229
+ this.state = 296;
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 = 301;
1237
+ this.state = 297;
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 = 304;
1265
+ this.state = 300;
1266
1266
  this.pin_select_expr2();
1267
- this.state = 305;
1267
+ this.state = 301;
1268
1268
  this.match(CircuitScriptParser.T__0);
1269
- this.state = 308;
1269
+ this.state = 304;
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 = 306;
1295
+ this.state = 302;
1296
1296
  this.at_block_pin_expression_simple();
1297
1297
  }
1298
1298
  break;
1299
1299
  case CircuitScriptParser.NEWLINE:
1300
1300
  {
1301
- this.state = 307;
1301
+ this.state = 303;
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 = 312;
1330
+ this.state = 308;
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 = 310;
1355
+ this.state = 306;
1356
1356
  this.expression();
1357
1357
  }
1358
1358
  break;
1359
1359
  case CircuitScriptParser.NOT_CONNECTED:
1360
1360
  {
1361
- this.state = 311;
1361
+ this.state = 307;
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 = 314;
1390
+ this.state = 310;
1391
1391
  this.expressions_block();
1392
1392
  }
1393
1393
  }
@@ -1405,79 +1405,31 @@ class CircuitScriptParser extends antlr.Parser {
1405
1405
  }
1406
1406
  return localContext;
1407
1407
  }
1408
- break_keyword() {
1409
- let localContext = new Break_keywordContext(this.context, this.state);
1410
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_break_keyword);
1411
- try {
1412
- this.enterOuterAlt(localContext, 1);
1413
- {
1414
- this.state = 316;
1415
- this.match(CircuitScriptParser.Break);
1416
- }
1417
- }
1418
- catch (re) {
1419
- if (re instanceof antlr.RecognitionException) {
1420
- this.errorHandler.reportError(this, re);
1421
- this.errorHandler.recover(this, re);
1422
- }
1423
- else {
1424
- throw re;
1425
- }
1426
- }
1427
- finally {
1428
- this.exitRule();
1429
- }
1430
- return localContext;
1431
- }
1432
- continue_keyword() {
1433
- let localContext = new Continue_keywordContext(this.context, this.state);
1434
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_continue_keyword);
1435
- try {
1436
- this.enterOuterAlt(localContext, 1);
1437
- {
1438
- this.state = 318;
1439
- this.match(CircuitScriptParser.Continue);
1440
- }
1441
- }
1442
- catch (re) {
1443
- if (re instanceof antlr.RecognitionException) {
1444
- this.errorHandler.reportError(this, re);
1445
- this.errorHandler.recover(this, re);
1446
- }
1447
- else {
1448
- throw re;
1449
- }
1450
- }
1451
- finally {
1452
- this.exitRule();
1453
- }
1454
- return localContext;
1455
- }
1456
1408
  assignment_expr() {
1457
1409
  let localContext = new Assignment_exprContext(this.context, this.state);
1458
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_assignment_expr);
1410
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_assignment_expr);
1459
1411
  try {
1460
1412
  this.enterOuterAlt(localContext, 1);
1461
1413
  {
1462
- this.state = 322;
1414
+ this.state = 314;
1463
1415
  this.errorHandler.sync(this);
1464
1416
  switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1465
1417
  case 1:
1466
1418
  {
1467
- this.state = 320;
1419
+ this.state = 312;
1468
1420
  this.atom_expr();
1469
1421
  }
1470
1422
  break;
1471
1423
  case 2:
1472
1424
  {
1473
- this.state = 321;
1425
+ this.state = 313;
1474
1426
  this.function_call_expr();
1475
1427
  }
1476
1428
  break;
1477
1429
  }
1478
- this.state = 324;
1430
+ this.state = 316;
1479
1431
  this.match(CircuitScriptParser.T__2);
1480
- this.state = 325;
1432
+ this.state = 317;
1481
1433
  this.data_expr(0);
1482
1434
  }
1483
1435
  }
@@ -1497,14 +1449,14 @@ class CircuitScriptParser extends antlr.Parser {
1497
1449
  }
1498
1450
  operator_assignment_expr() {
1499
1451
  let localContext = new Operator_assignment_exprContext(this.context, this.state);
1500
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_operator_assignment_expr);
1452
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_operator_assignment_expr);
1501
1453
  let _la;
1502
1454
  try {
1503
1455
  this.enterOuterAlt(localContext, 1);
1504
1456
  {
1505
- this.state = 327;
1457
+ this.state = 319;
1506
1458
  this.atom_expr();
1507
- this.state = 328;
1459
+ this.state = 320;
1508
1460
  _la = this.tokenStream.LA(1);
1509
1461
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1510
1462
  this.errorHandler.recoverInline(this);
@@ -1513,7 +1465,7 @@ class CircuitScriptParser extends antlr.Parser {
1513
1465
  this.errorHandler.reportMatch(this);
1514
1466
  this.consume();
1515
1467
  }
1516
- this.state = 329;
1468
+ this.state = 321;
1517
1469
  this.data_expr(0);
1518
1470
  }
1519
1471
  }
@@ -1533,15 +1485,15 @@ class CircuitScriptParser extends antlr.Parser {
1533
1485
  }
1534
1486
  keyword_assignment_expr() {
1535
1487
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1536
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_keyword_assignment_expr);
1488
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_keyword_assignment_expr);
1537
1489
  try {
1538
1490
  this.enterOuterAlt(localContext, 1);
1539
1491
  {
1540
- this.state = 331;
1492
+ this.state = 323;
1541
1493
  this.match(CircuitScriptParser.ID);
1542
- this.state = 332;
1494
+ this.state = 324;
1543
1495
  this.match(CircuitScriptParser.T__2);
1544
- this.state = 333;
1496
+ this.state = 325;
1545
1497
  this.data_expr(0);
1546
1498
  }
1547
1499
  }
@@ -1561,50 +1513,50 @@ class CircuitScriptParser extends antlr.Parser {
1561
1513
  }
1562
1514
  parameters() {
1563
1515
  let localContext = new ParametersContext(this.context, this.state);
1564
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_parameters);
1516
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_parameters);
1565
1517
  let _la;
1566
1518
  try {
1567
1519
  let alternative;
1568
- this.state = 358;
1520
+ this.state = 350;
1569
1521
  this.errorHandler.sync(this);
1570
1522
  switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1571
1523
  case 1:
1572
1524
  this.enterOuterAlt(localContext, 1);
1573
1525
  {
1574
1526
  {
1575
- this.state = 335;
1527
+ this.state = 327;
1576
1528
  this.data_expr(0);
1577
- this.state = 340;
1529
+ this.state = 332;
1578
1530
  this.errorHandler.sync(this);
1579
1531
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1580
1532
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1581
1533
  if (alternative === 1) {
1582
1534
  {
1583
1535
  {
1584
- this.state = 336;
1536
+ this.state = 328;
1585
1537
  this.match(CircuitScriptParser.T__1);
1586
- this.state = 337;
1538
+ this.state = 329;
1587
1539
  this.data_expr(0);
1588
1540
  }
1589
1541
  }
1590
1542
  }
1591
- this.state = 342;
1543
+ this.state = 334;
1592
1544
  this.errorHandler.sync(this);
1593
1545
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1594
1546
  }
1595
- this.state = 347;
1547
+ this.state = 339;
1596
1548
  this.errorHandler.sync(this);
1597
1549
  _la = this.tokenStream.LA(1);
1598
1550
  while (_la === 2) {
1599
1551
  {
1600
1552
  {
1601
- this.state = 343;
1553
+ this.state = 335;
1602
1554
  this.match(CircuitScriptParser.T__1);
1603
- this.state = 344;
1555
+ this.state = 336;
1604
1556
  this.keyword_assignment_expr();
1605
1557
  }
1606
1558
  }
1607
- this.state = 349;
1559
+ this.state = 341;
1608
1560
  this.errorHandler.sync(this);
1609
1561
  _la = this.tokenStream.LA(1);
1610
1562
  }
@@ -1615,21 +1567,21 @@ class CircuitScriptParser extends antlr.Parser {
1615
1567
  this.enterOuterAlt(localContext, 2);
1616
1568
  {
1617
1569
  {
1618
- this.state = 350;
1570
+ this.state = 342;
1619
1571
  this.keyword_assignment_expr();
1620
- this.state = 355;
1572
+ this.state = 347;
1621
1573
  this.errorHandler.sync(this);
1622
1574
  _la = this.tokenStream.LA(1);
1623
1575
  while (_la === 2) {
1624
1576
  {
1625
1577
  {
1626
- this.state = 351;
1578
+ this.state = 343;
1627
1579
  this.match(CircuitScriptParser.T__1);
1628
- this.state = 352;
1580
+ this.state = 344;
1629
1581
  this.keyword_assignment_expr();
1630
1582
  }
1631
1583
  }
1632
- this.state = 357;
1584
+ this.state = 349;
1633
1585
  this.errorHandler.sync(this);
1634
1586
  _la = this.tokenStream.LA(1);
1635
1587
  }
@@ -1654,15 +1606,15 @@ class CircuitScriptParser extends antlr.Parser {
1654
1606
  }
1655
1607
  property_set_expr() {
1656
1608
  let localContext = new Property_set_exprContext(this.context, this.state);
1657
- this.enterRule(localContext, 62, CircuitScriptParser.RULE_property_set_expr);
1609
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_property_set_expr);
1658
1610
  try {
1659
1611
  this.enterOuterAlt(localContext, 1);
1660
1612
  {
1661
- this.state = 360;
1613
+ this.state = 352;
1662
1614
  this.atom_expr();
1663
- this.state = 361;
1615
+ this.state = 353;
1664
1616
  this.match(CircuitScriptParser.T__2);
1665
- this.state = 362;
1617
+ this.state = 354;
1666
1618
  this.data_expr(0);
1667
1619
  }
1668
1620
  }
@@ -1682,17 +1634,17 @@ class CircuitScriptParser extends antlr.Parser {
1682
1634
  }
1683
1635
  double_dot_property_set_expr() {
1684
1636
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1685
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_double_dot_property_set_expr);
1637
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_double_dot_property_set_expr);
1686
1638
  try {
1687
1639
  this.enterOuterAlt(localContext, 1);
1688
1640
  {
1689
- this.state = 364;
1641
+ this.state = 356;
1690
1642
  this.match(CircuitScriptParser.T__3);
1691
- this.state = 365;
1643
+ this.state = 357;
1692
1644
  this.match(CircuitScriptParser.ID);
1693
- this.state = 366;
1645
+ this.state = 358;
1694
1646
  this.match(CircuitScriptParser.T__2);
1695
- this.state = 367;
1647
+ this.state = 359;
1696
1648
  this.data_expr(0);
1697
1649
  }
1698
1650
  }
@@ -1718,14 +1670,14 @@ class CircuitScriptParser extends antlr.Parser {
1718
1670
  let parentState = this.state;
1719
1671
  let localContext = new Data_exprContext(this.context, parentState);
1720
1672
  let previousContext = localContext;
1721
- let _startState = 66;
1722
- this.enterRecursionRule(localContext, 66, CircuitScriptParser.RULE_data_expr, _p);
1673
+ let _startState = 62;
1674
+ this.enterRecursionRule(localContext, 62, CircuitScriptParser.RULE_data_expr, _p);
1723
1675
  let _la;
1724
1676
  try {
1725
1677
  let alternative;
1726
1678
  this.enterOuterAlt(localContext, 1);
1727
1679
  {
1728
- this.state = 386;
1680
+ this.state = 378;
1729
1681
  this.errorHandler.sync(this);
1730
1682
  switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1731
1683
  case 1:
@@ -1733,11 +1685,11 @@ class CircuitScriptParser extends antlr.Parser {
1733
1685
  localContext = new RoundedBracketsExprContext(localContext);
1734
1686
  this.context = localContext;
1735
1687
  previousContext = localContext;
1736
- this.state = 370;
1688
+ this.state = 362;
1737
1689
  this.match(CircuitScriptParser.OPEN_PAREN);
1738
- this.state = 371;
1690
+ this.state = 363;
1739
1691
  this.data_expr(0);
1740
- this.state = 372;
1692
+ this.state = 364;
1741
1693
  this.match(CircuitScriptParser.CLOSE_PAREN);
1742
1694
  }
1743
1695
  break;
@@ -1746,7 +1698,7 @@ class CircuitScriptParser extends antlr.Parser {
1746
1698
  localContext = new ValueAtomExprContext(localContext);
1747
1699
  this.context = localContext;
1748
1700
  previousContext = localContext;
1749
- this.state = 376;
1701
+ this.state = 368;
1750
1702
  this.errorHandler.sync(this);
1751
1703
  switch (this.tokenStream.LA(1)) {
1752
1704
  case CircuitScriptParser.Minus:
@@ -1757,13 +1709,13 @@ class CircuitScriptParser extends antlr.Parser {
1757
1709
  case CircuitScriptParser.STRING_VALUE:
1758
1710
  case CircuitScriptParser.PERCENTAGE_VALUE:
1759
1711
  {
1760
- this.state = 374;
1712
+ this.state = 366;
1761
1713
  this.value_expr();
1762
1714
  }
1763
1715
  break;
1764
1716
  case CircuitScriptParser.ID:
1765
1717
  {
1766
- this.state = 375;
1718
+ this.state = 367;
1767
1719
  this.atom_expr();
1768
1720
  }
1769
1721
  break;
@@ -1777,9 +1729,9 @@ class CircuitScriptParser extends antlr.Parser {
1777
1729
  localContext = new UnaryOperatorExprContext(localContext);
1778
1730
  this.context = localContext;
1779
1731
  previousContext = localContext;
1780
- this.state = 378;
1732
+ this.state = 370;
1781
1733
  this.unary_operator();
1782
- this.state = 379;
1734
+ this.state = 371;
1783
1735
  this.data_expr(10);
1784
1736
  }
1785
1737
  break;
@@ -1788,7 +1740,7 @@ class CircuitScriptParser extends antlr.Parser {
1788
1740
  localContext = new DataExprContext(localContext);
1789
1741
  this.context = localContext;
1790
1742
  previousContext = localContext;
1791
- this.state = 381;
1743
+ this.state = 373;
1792
1744
  this.create_component_expr();
1793
1745
  }
1794
1746
  break;
@@ -1797,7 +1749,7 @@ class CircuitScriptParser extends antlr.Parser {
1797
1749
  localContext = new DataExprContext(localContext);
1798
1750
  this.context = localContext;
1799
1751
  previousContext = localContext;
1800
- this.state = 382;
1752
+ this.state = 374;
1801
1753
  this.create_graphic_expr();
1802
1754
  }
1803
1755
  break;
@@ -1806,7 +1758,7 @@ class CircuitScriptParser extends antlr.Parser {
1806
1758
  localContext = new DataExprContext(localContext);
1807
1759
  this.context = localContext;
1808
1760
  previousContext = localContext;
1809
- this.state = 383;
1761
+ this.state = 375;
1810
1762
  this.create_module_expr();
1811
1763
  }
1812
1764
  break;
@@ -1815,7 +1767,7 @@ class CircuitScriptParser extends antlr.Parser {
1815
1767
  localContext = new FunctionCallExprContext(localContext);
1816
1768
  this.context = localContext;
1817
1769
  previousContext = localContext;
1818
- this.state = 384;
1770
+ this.state = 376;
1819
1771
  this.function_call_expr();
1820
1772
  }
1821
1773
  break;
@@ -1824,13 +1776,13 @@ class CircuitScriptParser extends antlr.Parser {
1824
1776
  localContext = new ArrayExprContext(localContext);
1825
1777
  this.context = localContext;
1826
1778
  previousContext = localContext;
1827
- this.state = 385;
1779
+ this.state = 377;
1828
1780
  this.array_expr();
1829
1781
  }
1830
1782
  break;
1831
1783
  }
1832
1784
  this.context.stop = this.tokenStream.LT(-1);
1833
- this.state = 403;
1785
+ this.state = 395;
1834
1786
  this.errorHandler.sync(this);
1835
1787
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1836
1788
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1840,18 +1792,18 @@ class CircuitScriptParser extends antlr.Parser {
1840
1792
  }
1841
1793
  previousContext = localContext;
1842
1794
  {
1843
- this.state = 401;
1795
+ this.state = 393;
1844
1796
  this.errorHandler.sync(this);
1845
1797
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1846
1798
  case 1:
1847
1799
  {
1848
1800
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1849
1801
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1850
- this.state = 388;
1802
+ this.state = 380;
1851
1803
  if (!(this.precpred(this.context, 9))) {
1852
1804
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1853
1805
  }
1854
- this.state = 389;
1806
+ this.state = 381;
1855
1807
  _la = this.tokenStream.LA(1);
1856
1808
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1857
1809
  this.errorHandler.recoverInline(this);
@@ -1860,7 +1812,7 @@ class CircuitScriptParser extends antlr.Parser {
1860
1812
  this.errorHandler.reportMatch(this);
1861
1813
  this.consume();
1862
1814
  }
1863
- this.state = 390;
1815
+ this.state = 382;
1864
1816
  this.data_expr(10);
1865
1817
  }
1866
1818
  break;
@@ -1868,11 +1820,11 @@ class CircuitScriptParser extends antlr.Parser {
1868
1820
  {
1869
1821
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1870
1822
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1871
- this.state = 391;
1823
+ this.state = 383;
1872
1824
  if (!(this.precpred(this.context, 8))) {
1873
1825
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1874
1826
  }
1875
- this.state = 392;
1827
+ this.state = 384;
1876
1828
  _la = this.tokenStream.LA(1);
1877
1829
  if (!(_la === 42 || _la === 43)) {
1878
1830
  this.errorHandler.recoverInline(this);
@@ -1881,7 +1833,7 @@ class CircuitScriptParser extends antlr.Parser {
1881
1833
  this.errorHandler.reportMatch(this);
1882
1834
  this.consume();
1883
1835
  }
1884
- this.state = 393;
1836
+ this.state = 385;
1885
1837
  this.data_expr(9);
1886
1838
  }
1887
1839
  break;
@@ -1889,13 +1841,13 @@ class CircuitScriptParser extends antlr.Parser {
1889
1841
  {
1890
1842
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1891
1843
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1892
- this.state = 394;
1844
+ this.state = 386;
1893
1845
  if (!(this.precpred(this.context, 7))) {
1894
1846
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1895
1847
  }
1896
- this.state = 395;
1848
+ this.state = 387;
1897
1849
  this.binary_operator();
1898
- this.state = 396;
1850
+ this.state = 388;
1899
1851
  this.data_expr(8);
1900
1852
  }
1901
1853
  break;
@@ -1903,11 +1855,11 @@ class CircuitScriptParser extends antlr.Parser {
1903
1855
  {
1904
1856
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1905
1857
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1906
- this.state = 398;
1858
+ this.state = 390;
1907
1859
  if (!(this.precpred(this.context, 6))) {
1908
1860
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1909
1861
  }
1910
- this.state = 399;
1862
+ this.state = 391;
1911
1863
  _la = this.tokenStream.LA(1);
1912
1864
  if (!(_la === 40 || _la === 41)) {
1913
1865
  this.errorHandler.recoverInline(this);
@@ -1916,14 +1868,14 @@ class CircuitScriptParser extends antlr.Parser {
1916
1868
  this.errorHandler.reportMatch(this);
1917
1869
  this.consume();
1918
1870
  }
1919
- this.state = 400;
1871
+ this.state = 392;
1920
1872
  this.data_expr(7);
1921
1873
  }
1922
1874
  break;
1923
1875
  }
1924
1876
  }
1925
1877
  }
1926
- this.state = 405;
1878
+ this.state = 397;
1927
1879
  this.errorHandler.sync(this);
1928
1880
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1929
1881
  }
@@ -1945,12 +1897,12 @@ class CircuitScriptParser extends antlr.Parser {
1945
1897
  }
1946
1898
  binary_operator() {
1947
1899
  let localContext = new Binary_operatorContext(this.context, this.state);
1948
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_binary_operator);
1900
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_binary_operator);
1949
1901
  let _la;
1950
1902
  try {
1951
1903
  this.enterOuterAlt(localContext, 1);
1952
1904
  {
1953
- this.state = 406;
1905
+ this.state = 398;
1954
1906
  _la = this.tokenStream.LA(1);
1955
1907
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1956
1908
  this.errorHandler.recoverInline(this);
@@ -1977,12 +1929,12 @@ class CircuitScriptParser extends antlr.Parser {
1977
1929
  }
1978
1930
  unary_operator() {
1979
1931
  let localContext = new Unary_operatorContext(this.context, this.state);
1980
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_unary_operator);
1932
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_unary_operator);
1981
1933
  let _la;
1982
1934
  try {
1983
1935
  this.enterOuterAlt(localContext, 1);
1984
1936
  {
1985
- this.state = 408;
1937
+ this.state = 400;
1986
1938
  _la = this.tokenStream.LA(1);
1987
1939
  if (!(_la === 31 || _la === 43)) {
1988
1940
  this.errorHandler.recoverInline(this);
@@ -2009,22 +1961,22 @@ class CircuitScriptParser extends antlr.Parser {
2009
1961
  }
2010
1962
  value_expr() {
2011
1963
  let localContext = new Value_exprContext(this.context, this.state);
2012
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_value_expr);
1964
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_value_expr);
2013
1965
  let _la;
2014
1966
  try {
2015
1967
  this.enterOuterAlt(localContext, 1);
2016
1968
  {
2017
1969
  {
2018
- this.state = 411;
1970
+ this.state = 403;
2019
1971
  this.errorHandler.sync(this);
2020
1972
  _la = this.tokenStream.LA(1);
2021
1973
  if (_la === 43) {
2022
1974
  {
2023
- this.state = 410;
1975
+ this.state = 402;
2024
1976
  this.match(CircuitScriptParser.Minus);
2025
1977
  }
2026
1978
  }
2027
- this.state = 413;
1979
+ this.state = 405;
2028
1980
  _la = this.tokenStream.LA(1);
2029
1981
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
2030
1982
  this.errorHandler.recoverInline(this);
@@ -2052,45 +2004,45 @@ class CircuitScriptParser extends antlr.Parser {
2052
2004
  }
2053
2005
  function_def_expr() {
2054
2006
  let localContext = new Function_def_exprContext(this.context, this.state);
2055
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_def_expr);
2007
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_def_expr);
2056
2008
  let _la;
2057
2009
  try {
2058
2010
  this.enterOuterAlt(localContext, 1);
2059
2011
  {
2060
- this.state = 415;
2012
+ this.state = 407;
2061
2013
  this.match(CircuitScriptParser.Define);
2062
- this.state = 416;
2014
+ this.state = 408;
2063
2015
  this.match(CircuitScriptParser.ID);
2064
- this.state = 417;
2016
+ this.state = 409;
2065
2017
  this.match(CircuitScriptParser.OPEN_PAREN);
2066
- this.state = 419;
2018
+ this.state = 411;
2067
2019
  this.errorHandler.sync(this);
2068
2020
  _la = this.tokenStream.LA(1);
2069
2021
  if (_la === 56) {
2070
2022
  {
2071
- this.state = 418;
2023
+ this.state = 410;
2072
2024
  this.function_args_expr();
2073
2025
  }
2074
2026
  }
2075
- this.state = 421;
2027
+ this.state = 413;
2076
2028
  this.match(CircuitScriptParser.CLOSE_PAREN);
2077
- this.state = 422;
2029
+ this.state = 414;
2078
2030
  this.match(CircuitScriptParser.T__0);
2079
- this.state = 423;
2031
+ this.state = 415;
2080
2032
  this.match(CircuitScriptParser.NEWLINE);
2081
- this.state = 424;
2033
+ this.state = 416;
2082
2034
  this.match(CircuitScriptParser.INDENT);
2083
- this.state = 427;
2035
+ this.state = 419;
2084
2036
  this.errorHandler.sync(this);
2085
2037
  _la = this.tokenStream.LA(1);
2086
2038
  do {
2087
2039
  {
2088
- this.state = 427;
2040
+ this.state = 419;
2089
2041
  this.errorHandler.sync(this);
2090
2042
  switch (this.tokenStream.LA(1)) {
2091
2043
  case CircuitScriptParser.NEWLINE:
2092
2044
  {
2093
- this.state = 425;
2045
+ this.state = 417;
2094
2046
  this.match(CircuitScriptParser.NEWLINE);
2095
2047
  }
2096
2048
  break;
@@ -2117,7 +2069,7 @@ class CircuitScriptParser extends antlr.Parser {
2117
2069
  case CircuitScriptParser.Divide:
2118
2070
  case CircuitScriptParser.ID:
2119
2071
  {
2120
- this.state = 426;
2072
+ this.state = 418;
2121
2073
  this.function_expr();
2122
2074
  }
2123
2075
  break;
@@ -2125,11 +2077,11 @@ class CircuitScriptParser extends antlr.Parser {
2125
2077
  throw new antlr.NoViableAltException(this);
2126
2078
  }
2127
2079
  }
2128
- this.state = 429;
2080
+ this.state = 421;
2129
2081
  this.errorHandler.sync(this);
2130
2082
  _la = this.tokenStream.LA(1);
2131
2083
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2132
- this.state = 431;
2084
+ this.state = 423;
2133
2085
  this.match(CircuitScriptParser.DEDENT);
2134
2086
  }
2135
2087
  }
@@ -2149,9 +2101,9 @@ class CircuitScriptParser extends antlr.Parser {
2149
2101
  }
2150
2102
  function_expr() {
2151
2103
  let localContext = new Function_exprContext(this.context, this.state);
2152
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_expr);
2104
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2153
2105
  try {
2154
- this.state = 435;
2106
+ this.state = 427;
2155
2107
  this.errorHandler.sync(this);
2156
2108
  switch (this.tokenStream.LA(1)) {
2157
2109
  case CircuitScriptParser.T__3:
@@ -2177,14 +2129,14 @@ class CircuitScriptParser extends antlr.Parser {
2177
2129
  case CircuitScriptParser.ID:
2178
2130
  this.enterOuterAlt(localContext, 1);
2179
2131
  {
2180
- this.state = 433;
2132
+ this.state = 425;
2181
2133
  this.expression();
2182
2134
  }
2183
2135
  break;
2184
2136
  case CircuitScriptParser.Return:
2185
2137
  this.enterOuterAlt(localContext, 2);
2186
2138
  {
2187
- this.state = 434;
2139
+ this.state = 426;
2188
2140
  this.function_return_expr();
2189
2141
  }
2190
2142
  break;
@@ -2208,53 +2160,53 @@ class CircuitScriptParser extends antlr.Parser {
2208
2160
  }
2209
2161
  function_args_expr() {
2210
2162
  let localContext = new Function_args_exprContext(this.context, this.state);
2211
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_function_args_expr);
2163
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_args_expr);
2212
2164
  let _la;
2213
2165
  try {
2214
2166
  let alternative;
2215
- this.state = 466;
2167
+ this.state = 458;
2216
2168
  this.errorHandler.sync(this);
2217
2169
  switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2218
2170
  case 1:
2219
2171
  this.enterOuterAlt(localContext, 1);
2220
2172
  {
2221
- this.state = 437;
2173
+ this.state = 429;
2222
2174
  this.match(CircuitScriptParser.ID);
2223
- this.state = 442;
2175
+ this.state = 434;
2224
2176
  this.errorHandler.sync(this);
2225
2177
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2226
2178
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2227
2179
  if (alternative === 1) {
2228
2180
  {
2229
2181
  {
2230
- this.state = 438;
2182
+ this.state = 430;
2231
2183
  this.match(CircuitScriptParser.T__1);
2232
- this.state = 439;
2184
+ this.state = 431;
2233
2185
  this.match(CircuitScriptParser.ID);
2234
2186
  }
2235
2187
  }
2236
2188
  }
2237
- this.state = 444;
2189
+ this.state = 436;
2238
2190
  this.errorHandler.sync(this);
2239
2191
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2240
2192
  }
2241
- this.state = 451;
2193
+ this.state = 443;
2242
2194
  this.errorHandler.sync(this);
2243
2195
  _la = this.tokenStream.LA(1);
2244
2196
  while (_la === 2) {
2245
2197
  {
2246
2198
  {
2247
- this.state = 445;
2199
+ this.state = 437;
2248
2200
  this.match(CircuitScriptParser.T__1);
2249
- this.state = 446;
2201
+ this.state = 438;
2250
2202
  this.match(CircuitScriptParser.ID);
2251
- this.state = 447;
2203
+ this.state = 439;
2252
2204
  this.match(CircuitScriptParser.T__2);
2253
- this.state = 448;
2205
+ this.state = 440;
2254
2206
  this.value_expr();
2255
2207
  }
2256
2208
  }
2257
- this.state = 453;
2209
+ this.state = 445;
2258
2210
  this.errorHandler.sync(this);
2259
2211
  _la = this.tokenStream.LA(1);
2260
2212
  }
@@ -2263,29 +2215,29 @@ class CircuitScriptParser extends antlr.Parser {
2263
2215
  case 2:
2264
2216
  this.enterOuterAlt(localContext, 2);
2265
2217
  {
2266
- this.state = 454;
2218
+ this.state = 446;
2267
2219
  this.match(CircuitScriptParser.ID);
2268
- this.state = 455;
2220
+ this.state = 447;
2269
2221
  this.match(CircuitScriptParser.T__2);
2270
- this.state = 456;
2222
+ this.state = 448;
2271
2223
  this.value_expr();
2272
- this.state = 463;
2224
+ this.state = 455;
2273
2225
  this.errorHandler.sync(this);
2274
2226
  _la = this.tokenStream.LA(1);
2275
2227
  while (_la === 2) {
2276
2228
  {
2277
2229
  {
2278
- this.state = 457;
2230
+ this.state = 449;
2279
2231
  this.match(CircuitScriptParser.T__1);
2280
- this.state = 458;
2232
+ this.state = 450;
2281
2233
  this.match(CircuitScriptParser.ID);
2282
- this.state = 459;
2234
+ this.state = 451;
2283
2235
  this.match(CircuitScriptParser.T__2);
2284
- this.state = 460;
2236
+ this.state = 452;
2285
2237
  this.value_expr();
2286
2238
  }
2287
2239
  }
2288
- this.state = 465;
2240
+ this.state = 457;
2289
2241
  this.errorHandler.sync(this);
2290
2242
  _la = this.tokenStream.LA(1);
2291
2243
  }
@@ -2309,28 +2261,28 @@ class CircuitScriptParser extends antlr.Parser {
2309
2261
  }
2310
2262
  atom_expr() {
2311
2263
  let localContext = new Atom_exprContext(this.context, this.state);
2312
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_atom_expr);
2264
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_atom_expr);
2313
2265
  try {
2314
2266
  let alternative;
2315
2267
  this.enterOuterAlt(localContext, 1);
2316
2268
  {
2317
- this.state = 468;
2269
+ this.state = 460;
2318
2270
  this.match(CircuitScriptParser.ID);
2319
- this.state = 473;
2271
+ this.state = 465;
2320
2272
  this.errorHandler.sync(this);
2321
2273
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2322
2274
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2323
2275
  if (alternative === 1) {
2324
2276
  {
2325
2277
  {
2326
- this.state = 469;
2278
+ this.state = 461;
2327
2279
  this.match(CircuitScriptParser.T__4);
2328
- this.state = 470;
2280
+ this.state = 462;
2329
2281
  this.match(CircuitScriptParser.ID);
2330
2282
  }
2331
2283
  }
2332
2284
  }
2333
- this.state = 475;
2285
+ this.state = 467;
2334
2286
  this.errorHandler.sync(this);
2335
2287
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2336
2288
  }
@@ -2352,36 +2304,36 @@ class CircuitScriptParser extends antlr.Parser {
2352
2304
  }
2353
2305
  trailer_expr() {
2354
2306
  let localContext = new Trailer_exprContext(this.context, this.state);
2355
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr);
2307
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2356
2308
  let _la;
2357
2309
  try {
2358
- this.state = 483;
2310
+ this.state = 475;
2359
2311
  this.errorHandler.sync(this);
2360
2312
  switch (this.tokenStream.LA(1)) {
2361
2313
  case CircuitScriptParser.OPEN_PAREN:
2362
2314
  this.enterOuterAlt(localContext, 1);
2363
2315
  {
2364
- this.state = 476;
2316
+ this.state = 468;
2365
2317
  this.match(CircuitScriptParser.OPEN_PAREN);
2366
- this.state = 478;
2318
+ this.state = 470;
2367
2319
  this.errorHandler.sync(this);
2368
2320
  _la = this.tokenStream.LA(1);
2369
2321
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2370
2322
  {
2371
- this.state = 477;
2323
+ this.state = 469;
2372
2324
  this.parameters();
2373
2325
  }
2374
2326
  }
2375
- this.state = 480;
2327
+ this.state = 472;
2376
2328
  this.match(CircuitScriptParser.CLOSE_PAREN);
2377
2329
  }
2378
2330
  break;
2379
2331
  case CircuitScriptParser.T__4:
2380
2332
  this.enterOuterAlt(localContext, 2);
2381
2333
  {
2382
- this.state = 481;
2334
+ this.state = 473;
2383
2335
  this.match(CircuitScriptParser.T__4);
2384
- this.state = 482;
2336
+ this.state = 474;
2385
2337
  this.match(CircuitScriptParser.ID);
2386
2338
  }
2387
2339
  break;
@@ -2405,24 +2357,24 @@ class CircuitScriptParser extends antlr.Parser {
2405
2357
  }
2406
2358
  function_call_expr() {
2407
2359
  let localContext = new Function_call_exprContext(this.context, this.state);
2408
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_call_expr);
2360
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_call_expr);
2409
2361
  let _la;
2410
2362
  try {
2411
2363
  let alternative;
2412
2364
  this.enterOuterAlt(localContext, 1);
2413
2365
  {
2414
- this.state = 486;
2366
+ this.state = 478;
2415
2367
  this.errorHandler.sync(this);
2416
2368
  _la = this.tokenStream.LA(1);
2417
2369
  if (_la === 42 || _la === 44) {
2418
2370
  {
2419
- this.state = 485;
2371
+ this.state = 477;
2420
2372
  this.net_namespace_expr();
2421
2373
  }
2422
2374
  }
2423
- this.state = 488;
2375
+ this.state = 480;
2424
2376
  this.match(CircuitScriptParser.ID);
2425
- this.state = 490;
2377
+ this.state = 482;
2426
2378
  this.errorHandler.sync(this);
2427
2379
  alternative = 1;
2428
2380
  do {
@@ -2430,7 +2382,7 @@ class CircuitScriptParser extends antlr.Parser {
2430
2382
  case 1:
2431
2383
  {
2432
2384
  {
2433
- this.state = 489;
2385
+ this.state = 481;
2434
2386
  this.trailer_expr();
2435
2387
  }
2436
2388
  }
@@ -2438,7 +2390,7 @@ class CircuitScriptParser extends antlr.Parser {
2438
2390
  default:
2439
2391
  throw new antlr.NoViableAltException(this);
2440
2392
  }
2441
- this.state = 492;
2393
+ this.state = 484;
2442
2394
  this.errorHandler.sync(this);
2443
2395
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2444
2396
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2460,28 +2412,28 @@ class CircuitScriptParser extends antlr.Parser {
2460
2412
  }
2461
2413
  net_namespace_expr() {
2462
2414
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2463
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_net_namespace_expr);
2415
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_net_namespace_expr);
2464
2416
  let _la;
2465
2417
  try {
2466
2418
  this.enterOuterAlt(localContext, 1);
2467
2419
  {
2468
- this.state = 495;
2420
+ this.state = 487;
2469
2421
  this.errorHandler.sync(this);
2470
2422
  _la = this.tokenStream.LA(1);
2471
2423
  if (_la === 42) {
2472
2424
  {
2473
- this.state = 494;
2425
+ this.state = 486;
2474
2426
  this.match(CircuitScriptParser.Addition);
2475
2427
  }
2476
2428
  }
2477
- this.state = 497;
2429
+ this.state = 489;
2478
2430
  this.match(CircuitScriptParser.Divide);
2479
- this.state = 499;
2431
+ this.state = 491;
2480
2432
  this.errorHandler.sync(this);
2481
2433
  switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2482
2434
  case 1:
2483
2435
  {
2484
- this.state = 498;
2436
+ this.state = 490;
2485
2437
  this.data_expr(0);
2486
2438
  }
2487
2439
  break;
@@ -2504,13 +2456,13 @@ class CircuitScriptParser extends antlr.Parser {
2504
2456
  }
2505
2457
  function_return_expr() {
2506
2458
  let localContext = new Function_return_exprContext(this.context, this.state);
2507
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_function_return_expr);
2459
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_return_expr);
2508
2460
  try {
2509
2461
  this.enterOuterAlt(localContext, 1);
2510
2462
  {
2511
- this.state = 501;
2463
+ this.state = 493;
2512
2464
  this.match(CircuitScriptParser.Return);
2513
- this.state = 502;
2465
+ this.state = 494;
2514
2466
  this.data_expr(0);
2515
2467
  }
2516
2468
  }
@@ -2530,15 +2482,15 @@ class CircuitScriptParser extends antlr.Parser {
2530
2482
  }
2531
2483
  property_block_expr() {
2532
2484
  let localContext = new Property_block_exprContext(this.context, this.state);
2533
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_block_expr);
2485
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_block_expr);
2534
2486
  try {
2535
2487
  this.enterOuterAlt(localContext, 1);
2536
2488
  {
2537
- this.state = 504;
2489
+ this.state = 496;
2538
2490
  this.property_key_expr();
2539
- this.state = 505;
2491
+ this.state = 497;
2540
2492
  this.match(CircuitScriptParser.T__0);
2541
- this.state = 506;
2493
+ this.state = 498;
2542
2494
  this.expressions_block();
2543
2495
  }
2544
2496
  }
@@ -2558,32 +2510,32 @@ class CircuitScriptParser extends antlr.Parser {
2558
2510
  }
2559
2511
  create_component_expr() {
2560
2512
  let localContext = new Create_component_exprContext(this.context, this.state);
2561
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_component_expr);
2513
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_component_expr);
2562
2514
  let _la;
2563
2515
  try {
2564
2516
  this.enterOuterAlt(localContext, 1);
2565
2517
  {
2566
- this.state = 508;
2518
+ this.state = 500;
2567
2519
  this.match(CircuitScriptParser.Create);
2568
- this.state = 509;
2520
+ this.state = 501;
2569
2521
  this.match(CircuitScriptParser.Component);
2570
- this.state = 510;
2522
+ this.state = 502;
2571
2523
  this.match(CircuitScriptParser.T__0);
2572
- this.state = 511;
2524
+ this.state = 503;
2573
2525
  this.match(CircuitScriptParser.NEWLINE);
2574
- this.state = 512;
2526
+ this.state = 504;
2575
2527
  this.match(CircuitScriptParser.INDENT);
2576
- this.state = 515;
2528
+ this.state = 507;
2577
2529
  this.errorHandler.sync(this);
2578
2530
  _la = this.tokenStream.LA(1);
2579
2531
  do {
2580
2532
  {
2581
- this.state = 515;
2533
+ this.state = 507;
2582
2534
  this.errorHandler.sync(this);
2583
2535
  switch (this.tokenStream.LA(1)) {
2584
2536
  case CircuitScriptParser.NEWLINE:
2585
2537
  {
2586
- this.state = 513;
2538
+ this.state = 505;
2587
2539
  this.match(CircuitScriptParser.NEWLINE);
2588
2540
  }
2589
2541
  break;
@@ -2591,7 +2543,7 @@ class CircuitScriptParser extends antlr.Parser {
2591
2543
  case CircuitScriptParser.INTEGER_VALUE:
2592
2544
  case CircuitScriptParser.STRING_VALUE:
2593
2545
  {
2594
- this.state = 514;
2546
+ this.state = 506;
2595
2547
  this.property_expr();
2596
2548
  }
2597
2549
  break;
@@ -2599,11 +2551,11 @@ class CircuitScriptParser extends antlr.Parser {
2599
2551
  throw new antlr.NoViableAltException(this);
2600
2552
  }
2601
2553
  }
2602
- this.state = 517;
2554
+ this.state = 509;
2603
2555
  this.errorHandler.sync(this);
2604
2556
  _la = this.tokenStream.LA(1);
2605
2557
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2606
- this.state = 519;
2558
+ this.state = 511;
2607
2559
  this.match(CircuitScriptParser.DEDENT);
2608
2560
  }
2609
2561
  }
@@ -2623,26 +2575,26 @@ class CircuitScriptParser extends antlr.Parser {
2623
2575
  }
2624
2576
  graphic_expressions_block() {
2625
2577
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2626
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_graphic_expressions_block);
2578
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_graphic_expressions_block);
2627
2579
  let _la;
2628
2580
  try {
2629
2581
  this.enterOuterAlt(localContext, 1);
2630
2582
  {
2631
- this.state = 521;
2583
+ this.state = 513;
2632
2584
  this.match(CircuitScriptParser.NEWLINE);
2633
- this.state = 522;
2585
+ this.state = 514;
2634
2586
  this.match(CircuitScriptParser.INDENT);
2635
- this.state = 525;
2587
+ this.state = 517;
2636
2588
  this.errorHandler.sync(this);
2637
2589
  _la = this.tokenStream.LA(1);
2638
2590
  do {
2639
2591
  {
2640
- this.state = 525;
2592
+ this.state = 517;
2641
2593
  this.errorHandler.sync(this);
2642
2594
  switch (this.tokenStream.LA(1)) {
2643
2595
  case CircuitScriptParser.NEWLINE:
2644
2596
  {
2645
- this.state = 523;
2597
+ this.state = 515;
2646
2598
  this.match(CircuitScriptParser.NEWLINE);
2647
2599
  }
2648
2600
  break;
@@ -2650,7 +2602,7 @@ class CircuitScriptParser extends antlr.Parser {
2650
2602
  case CircuitScriptParser.For:
2651
2603
  case CircuitScriptParser.ID:
2652
2604
  {
2653
- this.state = 524;
2605
+ this.state = 516;
2654
2606
  this.graphic_expr();
2655
2607
  }
2656
2608
  break;
@@ -2658,11 +2610,11 @@ class CircuitScriptParser extends antlr.Parser {
2658
2610
  throw new antlr.NoViableAltException(this);
2659
2611
  }
2660
2612
  }
2661
- this.state = 527;
2613
+ this.state = 519;
2662
2614
  this.errorHandler.sync(this);
2663
2615
  _la = this.tokenStream.LA(1);
2664
2616
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2665
- this.state = 529;
2617
+ this.state = 521;
2666
2618
  this.match(CircuitScriptParser.DEDENT);
2667
2619
  }
2668
2620
  }
@@ -2682,31 +2634,31 @@ class CircuitScriptParser extends antlr.Parser {
2682
2634
  }
2683
2635
  create_graphic_expr() {
2684
2636
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2685
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_graphic_expr);
2637
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2686
2638
  let _la;
2687
2639
  try {
2688
2640
  this.enterOuterAlt(localContext, 1);
2689
2641
  {
2690
- this.state = 531;
2642
+ this.state = 523;
2691
2643
  this.match(CircuitScriptParser.Create);
2692
- this.state = 532;
2644
+ this.state = 524;
2693
2645
  this.match(CircuitScriptParser.Graphic);
2694
- this.state = 536;
2646
+ this.state = 528;
2695
2647
  this.errorHandler.sync(this);
2696
2648
  _la = this.tokenStream.LA(1);
2697
2649
  if (_la === 52) {
2698
2650
  {
2699
- this.state = 533;
2651
+ this.state = 525;
2700
2652
  this.match(CircuitScriptParser.OPEN_PAREN);
2701
- this.state = 534;
2653
+ this.state = 526;
2702
2654
  this.match(CircuitScriptParser.ID);
2703
- this.state = 535;
2655
+ this.state = 527;
2704
2656
  this.match(CircuitScriptParser.CLOSE_PAREN);
2705
2657
  }
2706
2658
  }
2707
- this.state = 538;
2659
+ this.state = 530;
2708
2660
  this.match(CircuitScriptParser.T__0);
2709
- this.state = 539;
2661
+ this.state = 531;
2710
2662
  this.graphic_expressions_block();
2711
2663
  }
2712
2664
  }
@@ -2726,54 +2678,54 @@ class CircuitScriptParser extends antlr.Parser {
2726
2678
  }
2727
2679
  create_module_expr() {
2728
2680
  let localContext = new Create_module_exprContext(this.context, this.state);
2729
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_create_module_expr);
2681
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_module_expr);
2730
2682
  let _la;
2731
2683
  try {
2732
2684
  this.enterOuterAlt(localContext, 1);
2733
2685
  {
2734
- this.state = 541;
2686
+ this.state = 533;
2735
2687
  this.match(CircuitScriptParser.Create);
2736
- this.state = 542;
2688
+ this.state = 534;
2737
2689
  this.match(CircuitScriptParser.Module);
2738
- this.state = 543;
2690
+ this.state = 535;
2739
2691
  this.match(CircuitScriptParser.T__0);
2740
- this.state = 544;
2692
+ this.state = 536;
2741
2693
  this.match(CircuitScriptParser.NEWLINE);
2742
- this.state = 545;
2694
+ this.state = 537;
2743
2695
  this.match(CircuitScriptParser.INDENT);
2744
- this.state = 549;
2696
+ this.state = 541;
2745
2697
  this.errorHandler.sync(this);
2746
2698
  _la = this.tokenStream.LA(1);
2747
2699
  do {
2748
2700
  {
2749
- this.state = 549;
2701
+ this.state = 541;
2750
2702
  this.errorHandler.sync(this);
2751
2703
  switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2752
2704
  case 1:
2753
2705
  {
2754
- this.state = 546;
2706
+ this.state = 538;
2755
2707
  this.match(CircuitScriptParser.NEWLINE);
2756
2708
  }
2757
2709
  break;
2758
2710
  case 2:
2759
2711
  {
2760
- this.state = 547;
2712
+ this.state = 539;
2761
2713
  this.property_expr();
2762
2714
  }
2763
2715
  break;
2764
2716
  case 3:
2765
2717
  {
2766
- this.state = 548;
2718
+ this.state = 540;
2767
2719
  this.property_block_expr();
2768
2720
  }
2769
2721
  break;
2770
2722
  }
2771
2723
  }
2772
- this.state = 551;
2724
+ this.state = 543;
2773
2725
  this.errorHandler.sync(this);
2774
2726
  _la = this.tokenStream.LA(1);
2775
2727
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2776
- this.state = 553;
2728
+ this.state = 545;
2777
2729
  this.match(CircuitScriptParser.DEDENT);
2778
2730
  }
2779
2731
  }
@@ -2793,27 +2745,27 @@ class CircuitScriptParser extends antlr.Parser {
2793
2745
  }
2794
2746
  nested_properties_inner() {
2795
2747
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2796
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_nested_properties_inner);
2748
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_nested_properties_inner);
2797
2749
  let _la;
2798
2750
  try {
2799
2751
  this.enterOuterAlt(localContext, 1);
2800
2752
  {
2801
2753
  {
2802
- this.state = 555;
2754
+ this.state = 547;
2803
2755
  this.match(CircuitScriptParser.NEWLINE);
2804
- this.state = 556;
2756
+ this.state = 548;
2805
2757
  this.match(CircuitScriptParser.INDENT);
2806
- this.state = 559;
2758
+ this.state = 551;
2807
2759
  this.errorHandler.sync(this);
2808
2760
  _la = this.tokenStream.LA(1);
2809
2761
  do {
2810
2762
  {
2811
- this.state = 559;
2763
+ this.state = 551;
2812
2764
  this.errorHandler.sync(this);
2813
2765
  switch (this.tokenStream.LA(1)) {
2814
2766
  case CircuitScriptParser.NEWLINE:
2815
2767
  {
2816
- this.state = 557;
2768
+ this.state = 549;
2817
2769
  this.match(CircuitScriptParser.NEWLINE);
2818
2770
  }
2819
2771
  break;
@@ -2821,7 +2773,7 @@ class CircuitScriptParser extends antlr.Parser {
2821
2773
  case CircuitScriptParser.INTEGER_VALUE:
2822
2774
  case CircuitScriptParser.STRING_VALUE:
2823
2775
  {
2824
- this.state = 558;
2776
+ this.state = 550;
2825
2777
  this.property_expr();
2826
2778
  }
2827
2779
  break;
@@ -2829,11 +2781,11 @@ class CircuitScriptParser extends antlr.Parser {
2829
2781
  throw new antlr.NoViableAltException(this);
2830
2782
  }
2831
2783
  }
2832
- this.state = 561;
2784
+ this.state = 553;
2833
2785
  this.errorHandler.sync(this);
2834
2786
  _la = this.tokenStream.LA(1);
2835
2787
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2836
- this.state = 563;
2788
+ this.state = 555;
2837
2789
  this.match(CircuitScriptParser.DEDENT);
2838
2790
  }
2839
2791
  }
@@ -2854,10 +2806,10 @@ class CircuitScriptParser extends antlr.Parser {
2854
2806
  }
2855
2807
  graphic_expr() {
2856
2808
  let localContext = new Graphic_exprContext(this.context, this.state);
2857
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2809
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
2858
2810
  let _la;
2859
2811
  try {
2860
- this.state = 591;
2812
+ this.state = 583;
2861
2813
  this.errorHandler.sync(this);
2862
2814
  switch (this.tokenStream.LA(1)) {
2863
2815
  case CircuitScriptParser.Pin:
@@ -2865,7 +2817,7 @@ class CircuitScriptParser extends antlr.Parser {
2865
2817
  localContext = new GraphicCommandExprContext(localContext);
2866
2818
  this.enterOuterAlt(localContext, 1);
2867
2819
  {
2868
- this.state = 565;
2820
+ this.state = 557;
2869
2821
  localContext._command = this.tokenStream.LT(1);
2870
2822
  _la = this.tokenStream.LA(1);
2871
2823
  if (!(_la === 15 || _la === 56)) {
@@ -2875,37 +2827,37 @@ class CircuitScriptParser extends antlr.Parser {
2875
2827
  this.errorHandler.reportMatch(this);
2876
2828
  this.consume();
2877
2829
  }
2878
- this.state = 567;
2830
+ this.state = 559;
2879
2831
  this.errorHandler.sync(this);
2880
2832
  _la = this.tokenStream.LA(1);
2881
2833
  if (_la === 1) {
2882
2834
  {
2883
- this.state = 566;
2835
+ this.state = 558;
2884
2836
  this.match(CircuitScriptParser.T__0);
2885
2837
  }
2886
2838
  }
2887
- this.state = 575;
2839
+ this.state = 567;
2888
2840
  this.errorHandler.sync(this);
2889
2841
  switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2890
2842
  case 1:
2891
2843
  {
2892
- this.state = 569;
2844
+ this.state = 561;
2893
2845
  this.parameters();
2894
2846
  }
2895
2847
  break;
2896
2848
  case 2:
2897
2849
  {
2898
- this.state = 570;
2850
+ this.state = 562;
2899
2851
  this.match(CircuitScriptParser.OPEN_PAREN);
2900
- this.state = 571;
2852
+ this.state = 563;
2901
2853
  this.parameters();
2902
- this.state = 572;
2854
+ this.state = 564;
2903
2855
  this.match(CircuitScriptParser.CLOSE_PAREN);
2904
2856
  }
2905
2857
  break;
2906
2858
  case 3:
2907
2859
  {
2908
- this.state = 574;
2860
+ this.state = 566;
2909
2861
  this.nested_properties_inner();
2910
2862
  }
2911
2863
  break;
@@ -2916,33 +2868,33 @@ class CircuitScriptParser extends antlr.Parser {
2916
2868
  localContext = new GraphicForExprContext(localContext);
2917
2869
  this.enterOuterAlt(localContext, 2);
2918
2870
  {
2919
- this.state = 577;
2871
+ this.state = 569;
2920
2872
  this.match(CircuitScriptParser.For);
2921
- this.state = 578;
2873
+ this.state = 570;
2922
2874
  this.match(CircuitScriptParser.ID);
2923
- this.state = 583;
2875
+ this.state = 575;
2924
2876
  this.errorHandler.sync(this);
2925
2877
  _la = this.tokenStream.LA(1);
2926
2878
  while (_la === 2) {
2927
2879
  {
2928
2880
  {
2929
- this.state = 579;
2881
+ this.state = 571;
2930
2882
  this.match(CircuitScriptParser.T__1);
2931
- this.state = 580;
2883
+ this.state = 572;
2932
2884
  this.match(CircuitScriptParser.ID);
2933
2885
  }
2934
2886
  }
2935
- this.state = 585;
2887
+ this.state = 577;
2936
2888
  this.errorHandler.sync(this);
2937
2889
  _la = this.tokenStream.LA(1);
2938
2890
  }
2939
- this.state = 586;
2891
+ this.state = 578;
2940
2892
  this.match(CircuitScriptParser.In);
2941
- this.state = 587;
2893
+ this.state = 579;
2942
2894
  this.data_expr(0);
2943
- this.state = 588;
2895
+ this.state = 580;
2944
2896
  this.match(CircuitScriptParser.T__0);
2945
- this.state = 589;
2897
+ this.state = 581;
2946
2898
  this.graphic_expressions_block();
2947
2899
  }
2948
2900
  break;
@@ -2966,15 +2918,15 @@ class CircuitScriptParser extends antlr.Parser {
2966
2918
  }
2967
2919
  property_expr() {
2968
2920
  let localContext = new Property_exprContext(this.context, this.state);
2969
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
2921
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_property_expr);
2970
2922
  try {
2971
2923
  this.enterOuterAlt(localContext, 1);
2972
2924
  {
2973
- this.state = 593;
2925
+ this.state = 585;
2974
2926
  this.property_key_expr();
2975
- this.state = 594;
2927
+ this.state = 586;
2976
2928
  this.match(CircuitScriptParser.T__0);
2977
- this.state = 595;
2929
+ this.state = 587;
2978
2930
  this.property_value_expr();
2979
2931
  }
2980
2932
  }
@@ -2994,12 +2946,12 @@ class CircuitScriptParser extends antlr.Parser {
2994
2946
  }
2995
2947
  property_key_expr() {
2996
2948
  let localContext = new Property_key_exprContext(this.context, this.state);
2997
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_key_expr);
2949
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_key_expr);
2998
2950
  let _la;
2999
2951
  try {
3000
2952
  this.enterOuterAlt(localContext, 1);
3001
2953
  {
3002
- this.state = 597;
2954
+ this.state = 589;
3003
2955
  _la = this.tokenStream.LA(1);
3004
2956
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
3005
2957
  this.errorHandler.recoverInline(this);
@@ -3026,17 +2978,17 @@ class CircuitScriptParser extends antlr.Parser {
3026
2978
  }
3027
2979
  property_value_expr() {
3028
2980
  let localContext = new Property_value_exprContext(this.context, this.state);
3029
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
2981
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
3030
2982
  let _la;
3031
2983
  try {
3032
- this.state = 608;
2984
+ this.state = 600;
3033
2985
  this.errorHandler.sync(this);
3034
2986
  switch (this.tokenStream.LA(1)) {
3035
2987
  case CircuitScriptParser.NEWLINE:
3036
2988
  localContext = new Nested_propertiesContext(localContext);
3037
2989
  this.enterOuterAlt(localContext, 1);
3038
2990
  {
3039
- this.state = 599;
2991
+ this.state = 591;
3040
2992
  this.nested_properties_inner();
3041
2993
  }
3042
2994
  break;
@@ -3057,21 +3009,21 @@ class CircuitScriptParser extends antlr.Parser {
3057
3009
  localContext = new Single_line_propertyContext(localContext);
3058
3010
  this.enterOuterAlt(localContext, 2);
3059
3011
  {
3060
- this.state = 600;
3012
+ this.state = 592;
3061
3013
  this.data_expr(0);
3062
- this.state = 605;
3014
+ this.state = 597;
3063
3015
  this.errorHandler.sync(this);
3064
3016
  _la = this.tokenStream.LA(1);
3065
3017
  while (_la === 2) {
3066
3018
  {
3067
3019
  {
3068
- this.state = 601;
3020
+ this.state = 593;
3069
3021
  this.match(CircuitScriptParser.T__1);
3070
- this.state = 602;
3022
+ this.state = 594;
3071
3023
  this.data_expr(0);
3072
3024
  }
3073
3025
  }
3074
- this.state = 607;
3026
+ this.state = 599;
3075
3027
  this.errorHandler.sync(this);
3076
3028
  _la = this.tokenStream.LA(1);
3077
3029
  }
@@ -3097,29 +3049,29 @@ class CircuitScriptParser extends antlr.Parser {
3097
3049
  }
3098
3050
  wire_atom_expr() {
3099
3051
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3100
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3052
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3101
3053
  try {
3102
- this.state = 616;
3054
+ this.state = 608;
3103
3055
  this.errorHandler.sync(this);
3104
3056
  switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3105
3057
  case 1:
3106
3058
  localContext = new Wire_expr_direction_valueContext(localContext);
3107
3059
  this.enterOuterAlt(localContext, 1);
3108
3060
  {
3109
- this.state = 610;
3061
+ this.state = 602;
3110
3062
  this.match(CircuitScriptParser.ID);
3111
- this.state = 613;
3063
+ this.state = 605;
3112
3064
  this.errorHandler.sync(this);
3113
3065
  switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3114
3066
  case 1:
3115
3067
  {
3116
- this.state = 611;
3068
+ this.state = 603;
3117
3069
  this.match(CircuitScriptParser.INTEGER_VALUE);
3118
3070
  }
3119
3071
  break;
3120
3072
  case 2:
3121
3073
  {
3122
- this.state = 612;
3074
+ this.state = 604;
3123
3075
  this.data_expr(0);
3124
3076
  }
3125
3077
  break;
@@ -3130,7 +3082,7 @@ class CircuitScriptParser extends antlr.Parser {
3130
3082
  localContext = new Wire_expr_direction_onlyContext(localContext);
3131
3083
  this.enterOuterAlt(localContext, 2);
3132
3084
  {
3133
- this.state = 615;
3085
+ this.state = 607;
3134
3086
  this.match(CircuitScriptParser.ID);
3135
3087
  }
3136
3088
  break;
@@ -3152,26 +3104,26 @@ class CircuitScriptParser extends antlr.Parser {
3152
3104
  }
3153
3105
  wire_expr() {
3154
3106
  let localContext = new Wire_exprContext(this.context, this.state);
3155
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_wire_expr);
3107
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_expr);
3156
3108
  try {
3157
3109
  let alternative;
3158
3110
  this.enterOuterAlt(localContext, 1);
3159
3111
  {
3160
- this.state = 618;
3112
+ this.state = 610;
3161
3113
  this.match(CircuitScriptParser.Wire);
3162
- this.state = 622;
3114
+ this.state = 614;
3163
3115
  this.errorHandler.sync(this);
3164
3116
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3165
3117
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3166
3118
  if (alternative === 1) {
3167
3119
  {
3168
3120
  {
3169
- this.state = 619;
3121
+ this.state = 611;
3170
3122
  this.wire_atom_expr();
3171
3123
  }
3172
3124
  }
3173
3125
  }
3174
- this.state = 624;
3126
+ this.state = 616;
3175
3127
  this.errorHandler.sync(this);
3176
3128
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3177
3129
  }
@@ -3193,44 +3145,44 @@ class CircuitScriptParser extends antlr.Parser {
3193
3145
  }
3194
3146
  array_expr() {
3195
3147
  let localContext = new Array_exprContext(this.context, this.state);
3196
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_array_expr);
3148
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_array_expr);
3197
3149
  let _la;
3198
3150
  try {
3199
3151
  this.enterOuterAlt(localContext, 1);
3200
3152
  {
3201
- this.state = 625;
3153
+ this.state = 617;
3202
3154
  this.match(CircuitScriptParser.T__5);
3203
- this.state = 636;
3155
+ this.state = 628;
3204
3156
  this.errorHandler.sync(this);
3205
3157
  _la = this.tokenStream.LA(1);
3206
3158
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3207
3159
  {
3208
3160
  {
3209
- this.state = 626;
3161
+ this.state = 618;
3210
3162
  this.data_expr(0);
3211
- this.state = 631;
3163
+ this.state = 623;
3212
3164
  this.errorHandler.sync(this);
3213
3165
  _la = this.tokenStream.LA(1);
3214
3166
  while (_la === 2) {
3215
3167
  {
3216
3168
  {
3217
- this.state = 627;
3169
+ this.state = 619;
3218
3170
  this.match(CircuitScriptParser.T__1);
3219
- this.state = 628;
3171
+ this.state = 620;
3220
3172
  this.data_expr(0);
3221
3173
  }
3222
3174
  }
3223
- this.state = 633;
3175
+ this.state = 625;
3224
3176
  this.errorHandler.sync(this);
3225
3177
  _la = this.tokenStream.LA(1);
3226
3178
  }
3227
3179
  }
3228
3180
  }
3229
- this.state = 638;
3181
+ this.state = 630;
3230
3182
  this.errorHandler.sync(this);
3231
3183
  _la = this.tokenStream.LA(1);
3232
3184
  }
3233
- this.state = 639;
3185
+ this.state = 631;
3234
3186
  this.match(CircuitScriptParser.T__6);
3235
3187
  }
3236
3188
  }
@@ -3250,24 +3202,24 @@ class CircuitScriptParser extends antlr.Parser {
3250
3202
  }
3251
3203
  point_expr() {
3252
3204
  let localContext = new Point_exprContext(this.context, this.state);
3253
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_point_expr);
3205
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_point_expr);
3254
3206
  try {
3255
3207
  this.enterOuterAlt(localContext, 1);
3256
3208
  {
3257
- this.state = 641;
3209
+ this.state = 633;
3258
3210
  this.match(CircuitScriptParser.Point);
3259
- this.state = 644;
3211
+ this.state = 636;
3260
3212
  this.errorHandler.sync(this);
3261
3213
  switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3262
3214
  case 1:
3263
3215
  {
3264
- this.state = 642;
3216
+ this.state = 634;
3265
3217
  this.match(CircuitScriptParser.ID);
3266
3218
  }
3267
3219
  break;
3268
3220
  case 2:
3269
3221
  {
3270
- this.state = 643;
3222
+ this.state = 635;
3271
3223
  this.data_expr(0);
3272
3224
  }
3273
3225
  break;
@@ -3290,13 +3242,13 @@ class CircuitScriptParser extends antlr.Parser {
3290
3242
  }
3291
3243
  import_expr() {
3292
3244
  let localContext = new Import_exprContext(this.context, this.state);
3293
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3245
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_import_expr);
3294
3246
  try {
3295
3247
  this.enterOuterAlt(localContext, 1);
3296
3248
  {
3297
- this.state = 646;
3249
+ this.state = 638;
3298
3250
  this.match(CircuitScriptParser.Import);
3299
- this.state = 647;
3251
+ this.state = 639;
3300
3252
  this.match(CircuitScriptParser.ID);
3301
3253
  }
3302
3254
  }
@@ -3316,12 +3268,12 @@ class CircuitScriptParser extends antlr.Parser {
3316
3268
  }
3317
3269
  frame_expr() {
3318
3270
  let localContext = new Frame_exprContext(this.context, this.state);
3319
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3271
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_frame_expr);
3320
3272
  let _la;
3321
3273
  try {
3322
3274
  this.enterOuterAlt(localContext, 1);
3323
3275
  {
3324
- this.state = 649;
3276
+ this.state = 641;
3325
3277
  _la = this.tokenStream.LA(1);
3326
3278
  if (!(_la === 32 || _la === 33)) {
3327
3279
  this.errorHandler.recoverInline(this);
@@ -3330,9 +3282,9 @@ class CircuitScriptParser extends antlr.Parser {
3330
3282
  this.errorHandler.reportMatch(this);
3331
3283
  this.consume();
3332
3284
  }
3333
- this.state = 650;
3285
+ this.state = 642;
3334
3286
  this.match(CircuitScriptParser.T__0);
3335
- this.state = 651;
3287
+ this.state = 643;
3336
3288
  this.expressions_block();
3337
3289
  }
3338
3290
  }
@@ -3352,42 +3304,42 @@ class CircuitScriptParser extends antlr.Parser {
3352
3304
  }
3353
3305
  if_expr() {
3354
3306
  let localContext = new If_exprContext(this.context, this.state);
3355
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3307
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_if_expr);
3356
3308
  let _la;
3357
3309
  try {
3358
3310
  let alternative;
3359
3311
  this.enterOuterAlt(localContext, 1);
3360
3312
  {
3361
- this.state = 653;
3313
+ this.state = 645;
3362
3314
  this.match(CircuitScriptParser.If);
3363
- this.state = 654;
3315
+ this.state = 646;
3364
3316
  this.data_expr(0);
3365
- this.state = 655;
3317
+ this.state = 647;
3366
3318
  this.match(CircuitScriptParser.T__0);
3367
- this.state = 656;
3319
+ this.state = 648;
3368
3320
  this.expressions_block();
3369
- this.state = 660;
3321
+ this.state = 652;
3370
3322
  this.errorHandler.sync(this);
3371
3323
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3372
3324
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3373
3325
  if (alternative === 1) {
3374
3326
  {
3375
3327
  {
3376
- this.state = 657;
3328
+ this.state = 649;
3377
3329
  this.if_inner_expr();
3378
3330
  }
3379
3331
  }
3380
3332
  }
3381
- this.state = 662;
3333
+ this.state = 654;
3382
3334
  this.errorHandler.sync(this);
3383
3335
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3384
3336
  }
3385
- this.state = 664;
3337
+ this.state = 656;
3386
3338
  this.errorHandler.sync(this);
3387
3339
  _la = this.tokenStream.LA(1);
3388
3340
  if (_la === 30) {
3389
3341
  {
3390
- this.state = 663;
3342
+ this.state = 655;
3391
3343
  this.else_expr();
3392
3344
  }
3393
3345
  }
@@ -3409,19 +3361,19 @@ class CircuitScriptParser extends antlr.Parser {
3409
3361
  }
3410
3362
  if_inner_expr() {
3411
3363
  let localContext = new If_inner_exprContext(this.context, this.state);
3412
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3364
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_inner_expr);
3413
3365
  try {
3414
3366
  this.enterOuterAlt(localContext, 1);
3415
3367
  {
3416
- this.state = 666;
3368
+ this.state = 658;
3417
3369
  this.match(CircuitScriptParser.Else);
3418
- this.state = 667;
3370
+ this.state = 659;
3419
3371
  this.match(CircuitScriptParser.If);
3420
- this.state = 668;
3372
+ this.state = 660;
3421
3373
  this.data_expr(0);
3422
- this.state = 669;
3374
+ this.state = 661;
3423
3375
  this.match(CircuitScriptParser.T__0);
3424
- this.state = 670;
3376
+ this.state = 662;
3425
3377
  this.expressions_block();
3426
3378
  }
3427
3379
  }
@@ -3441,15 +3393,15 @@ class CircuitScriptParser extends antlr.Parser {
3441
3393
  }
3442
3394
  else_expr() {
3443
3395
  let localContext = new Else_exprContext(this.context, this.state);
3444
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3396
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_else_expr);
3445
3397
  try {
3446
3398
  this.enterOuterAlt(localContext, 1);
3447
3399
  {
3448
- this.state = 672;
3400
+ this.state = 664;
3449
3401
  this.match(CircuitScriptParser.Else);
3450
- this.state = 673;
3402
+ this.state = 665;
3451
3403
  this.match(CircuitScriptParser.T__0);
3452
- this.state = 674;
3404
+ this.state = 666;
3453
3405
  this.expressions_block();
3454
3406
  }
3455
3407
  }
@@ -3469,17 +3421,17 @@ class CircuitScriptParser extends antlr.Parser {
3469
3421
  }
3470
3422
  while_expr() {
3471
3423
  let localContext = new While_exprContext(this.context, this.state);
3472
- this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3424
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_while_expr);
3473
3425
  try {
3474
3426
  this.enterOuterAlt(localContext, 1);
3475
3427
  {
3476
- this.state = 676;
3428
+ this.state = 668;
3477
3429
  this.match(CircuitScriptParser.While);
3478
- this.state = 677;
3430
+ this.state = 669;
3479
3431
  this.data_expr(0);
3480
- this.state = 678;
3432
+ this.state = 670;
3481
3433
  this.match(CircuitScriptParser.T__0);
3482
- this.state = 679;
3434
+ this.state = 671;
3483
3435
  this.expressions_block();
3484
3436
  }
3485
3437
  }
@@ -3499,38 +3451,38 @@ class CircuitScriptParser extends antlr.Parser {
3499
3451
  }
3500
3452
  for_expr() {
3501
3453
  let localContext = new For_exprContext(this.context, this.state);
3502
- this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3454
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_for_expr);
3503
3455
  let _la;
3504
3456
  try {
3505
3457
  this.enterOuterAlt(localContext, 1);
3506
3458
  {
3507
- this.state = 681;
3459
+ this.state = 673;
3508
3460
  this.match(CircuitScriptParser.For);
3509
- this.state = 682;
3461
+ this.state = 674;
3510
3462
  this.match(CircuitScriptParser.ID);
3511
- this.state = 687;
3463
+ this.state = 679;
3512
3464
  this.errorHandler.sync(this);
3513
3465
  _la = this.tokenStream.LA(1);
3514
3466
  while (_la === 2) {
3515
3467
  {
3516
3468
  {
3517
- this.state = 683;
3469
+ this.state = 675;
3518
3470
  this.match(CircuitScriptParser.T__1);
3519
- this.state = 684;
3471
+ this.state = 676;
3520
3472
  this.match(CircuitScriptParser.ID);
3521
3473
  }
3522
3474
  }
3523
- this.state = 689;
3475
+ this.state = 681;
3524
3476
  this.errorHandler.sync(this);
3525
3477
  _la = this.tokenStream.LA(1);
3526
3478
  }
3527
- this.state = 690;
3479
+ this.state = 682;
3528
3480
  this.match(CircuitScriptParser.In);
3529
- this.state = 691;
3481
+ this.state = 683;
3530
3482
  this.data_expr(0);
3531
- this.state = 692;
3483
+ this.state = 684;
3532
3484
  this.match(CircuitScriptParser.T__0);
3533
- this.state = 693;
3485
+ this.state = 685;
3534
3486
  this.expressions_block();
3535
3487
  }
3536
3488
  }
@@ -3550,7 +3502,7 @@ class CircuitScriptParser extends antlr.Parser {
3550
3502
  }
3551
3503
  sempred(localContext, ruleIndex, predIndex) {
3552
3504
  switch (ruleIndex) {
3553
- case 33:
3505
+ case 31:
3554
3506
  return this.data_expr_sempred(localContext, predIndex);
3555
3507
  }
3556
3508
  return true;
@@ -3671,47 +3623,45 @@ CircuitScriptParser.RULE_at_block_expressions = 21;
3671
3623
  CircuitScriptParser.RULE_at_block_pin_expr = 22;
3672
3624
  CircuitScriptParser.RULE_at_block_pin_expression_simple = 23;
3673
3625
  CircuitScriptParser.RULE_at_block_pin_expression_complex = 24;
3674
- CircuitScriptParser.RULE_break_keyword = 25;
3675
- CircuitScriptParser.RULE_continue_keyword = 26;
3676
- CircuitScriptParser.RULE_assignment_expr = 27;
3677
- CircuitScriptParser.RULE_operator_assignment_expr = 28;
3678
- CircuitScriptParser.RULE_keyword_assignment_expr = 29;
3679
- CircuitScriptParser.RULE_parameters = 30;
3680
- CircuitScriptParser.RULE_property_set_expr = 31;
3681
- CircuitScriptParser.RULE_double_dot_property_set_expr = 32;
3682
- CircuitScriptParser.RULE_data_expr = 33;
3683
- CircuitScriptParser.RULE_binary_operator = 34;
3684
- CircuitScriptParser.RULE_unary_operator = 35;
3685
- CircuitScriptParser.RULE_value_expr = 36;
3686
- CircuitScriptParser.RULE_function_def_expr = 37;
3687
- CircuitScriptParser.RULE_function_expr = 38;
3688
- CircuitScriptParser.RULE_function_args_expr = 39;
3689
- CircuitScriptParser.RULE_atom_expr = 40;
3690
- CircuitScriptParser.RULE_trailer_expr = 41;
3691
- CircuitScriptParser.RULE_function_call_expr = 42;
3692
- CircuitScriptParser.RULE_net_namespace_expr = 43;
3693
- CircuitScriptParser.RULE_function_return_expr = 44;
3694
- CircuitScriptParser.RULE_property_block_expr = 45;
3695
- CircuitScriptParser.RULE_create_component_expr = 46;
3696
- CircuitScriptParser.RULE_graphic_expressions_block = 47;
3697
- CircuitScriptParser.RULE_create_graphic_expr = 48;
3698
- CircuitScriptParser.RULE_create_module_expr = 49;
3699
- CircuitScriptParser.RULE_nested_properties_inner = 50;
3700
- CircuitScriptParser.RULE_graphic_expr = 51;
3701
- CircuitScriptParser.RULE_property_expr = 52;
3702
- CircuitScriptParser.RULE_property_key_expr = 53;
3703
- CircuitScriptParser.RULE_property_value_expr = 54;
3704
- CircuitScriptParser.RULE_wire_atom_expr = 55;
3705
- CircuitScriptParser.RULE_wire_expr = 56;
3706
- CircuitScriptParser.RULE_array_expr = 57;
3707
- CircuitScriptParser.RULE_point_expr = 58;
3708
- CircuitScriptParser.RULE_import_expr = 59;
3709
- CircuitScriptParser.RULE_frame_expr = 60;
3710
- CircuitScriptParser.RULE_if_expr = 61;
3711
- CircuitScriptParser.RULE_if_inner_expr = 62;
3712
- CircuitScriptParser.RULE_else_expr = 63;
3713
- CircuitScriptParser.RULE_while_expr = 64;
3714
- CircuitScriptParser.RULE_for_expr = 65;
3626
+ CircuitScriptParser.RULE_assignment_expr = 25;
3627
+ CircuitScriptParser.RULE_operator_assignment_expr = 26;
3628
+ CircuitScriptParser.RULE_keyword_assignment_expr = 27;
3629
+ CircuitScriptParser.RULE_parameters = 28;
3630
+ CircuitScriptParser.RULE_property_set_expr = 29;
3631
+ CircuitScriptParser.RULE_double_dot_property_set_expr = 30;
3632
+ CircuitScriptParser.RULE_data_expr = 31;
3633
+ CircuitScriptParser.RULE_binary_operator = 32;
3634
+ CircuitScriptParser.RULE_unary_operator = 33;
3635
+ CircuitScriptParser.RULE_value_expr = 34;
3636
+ CircuitScriptParser.RULE_function_def_expr = 35;
3637
+ CircuitScriptParser.RULE_function_expr = 36;
3638
+ CircuitScriptParser.RULE_function_args_expr = 37;
3639
+ CircuitScriptParser.RULE_atom_expr = 38;
3640
+ 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;
3715
3665
  CircuitScriptParser.literalNames = [
3716
3666
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
3717
3667
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -3743,9 +3693,8 @@ CircuitScriptParser.ruleNames = [
3743
3693
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
3744
3694
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
3745
3695
  "at_block_expressions", "at_block_pin_expr", "at_block_pin_expression_simple",
3746
- "at_block_pin_expression_complex", "break_keyword", "continue_keyword",
3747
- "assignment_expr", "operator_assignment_expr", "keyword_assignment_expr",
3748
- "parameters", "property_set_expr", "double_dot_property_set_expr",
3696
+ "at_block_pin_expression_complex", "assignment_expr", "operator_assignment_expr",
3697
+ "keyword_assignment_expr", "parameters", "property_set_expr", "double_dot_property_set_expr",
3749
3698
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3750
3699
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3751
3700
  "trailer_expr", "function_call_expr", "net_namespace_expr", "function_return_expr",
@@ -3757,7 +3706,7 @@ CircuitScriptParser.ruleNames = [
3757
3706
  "for_expr",
3758
3707
  ];
3759
3708
  CircuitScriptParser._serializedATN = [
3760
- 4, 1, 67, 696, 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,
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,
3761
3710
  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,
3762
3711
  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,
3763
3712
  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,
@@ -3766,252 +3715,250 @@ CircuitScriptParser._serializedATN = [
3766
3715
  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,
3767
3716
  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,
3768
3717
  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,
3769
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
3770
- 1, 0, 1, 0, 5, 0, 135, 8, 0, 10, 0, 12, 0, 138, 9, 0, 1, 0, 1, 0, 4, 0, 142, 8, 0, 11, 0, 12,
3771
- 0, 143, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
3772
- 1, 160, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 167, 8, 2, 1, 3, 1, 3, 3, 3, 171, 8, 3, 1,
3773
- 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 179, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 185, 8, 5, 11,
3774
- 5, 12, 5, 186, 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, 201,
3775
- 8, 7, 11, 7, 12, 7, 202, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10,
3776
- 1, 10, 1, 10, 3, 10, 218, 8, 10, 1, 11, 1, 11, 3, 11, 222, 8, 11, 1, 11, 5, 11, 225, 8,
3777
- 11, 10, 11, 12, 11, 228, 9, 11, 1, 11, 3, 11, 231, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1,
3778
- 13, 1, 13, 3, 13, 239, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1,
3779
- 16, 5, 16, 250, 8, 16, 10, 16, 12, 16, 253, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1,
3780
- 17, 5, 17, 261, 8, 17, 10, 17, 12, 17, 264, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4,
3781
- 17, 271, 8, 17, 11, 17, 12, 17, 272, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5,
3782
- 18, 282, 8, 18, 10, 18, 12, 18, 285, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1,
3783
- 20, 1, 20, 4, 20, 295, 8, 20, 11, 20, 12, 20, 296, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 303,
3784
- 8, 21, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 309, 8, 22, 1, 23, 1, 23, 3, 23, 313, 8, 23, 1,
3785
- 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 1, 27, 1, 27, 3, 27, 323, 8, 27, 1, 27, 1, 27, 1,
3786
- 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 5, 30, 339,
3787
- 8, 30, 10, 30, 12, 30, 342, 9, 30, 1, 30, 1, 30, 5, 30, 346, 8, 30, 10, 30, 12, 30, 349,
3788
- 9, 30, 1, 30, 1, 30, 1, 30, 5, 30, 354, 8, 30, 10, 30, 12, 30, 357, 9, 30, 3, 30, 359,
3789
- 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33,
3790
- 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 377, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
3791
- 1, 33, 1, 33, 3, 33, 387, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
3792
- 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 402, 8, 33, 10, 33, 12, 33, 405, 9, 33, 1, 34,
3793
- 1, 34, 1, 35, 1, 35, 1, 36, 3, 36, 412, 8, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37,
3794
- 3, 37, 420, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 4, 37, 428, 8, 37, 11, 37,
3795
- 12, 37, 429, 1, 37, 1, 37, 1, 38, 1, 38, 3, 38, 436, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39,
3796
- 441, 8, 39, 10, 39, 12, 39, 444, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 450, 8, 39,
3797
- 10, 39, 12, 39, 453, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 462,
3798
- 8, 39, 10, 39, 12, 39, 465, 9, 39, 3, 39, 467, 8, 39, 1, 40, 1, 40, 1, 40, 5, 40, 472,
3799
- 8, 40, 10, 40, 12, 40, 475, 9, 40, 1, 41, 1, 41, 3, 41, 479, 8, 41, 1, 41, 1, 41, 1, 41,
3800
- 3, 41, 484, 8, 41, 1, 42, 3, 42, 487, 8, 42, 1, 42, 1, 42, 4, 42, 491, 8, 42, 11, 42, 12,
3801
- 42, 492, 1, 43, 3, 43, 496, 8, 43, 1, 43, 1, 43, 3, 43, 500, 8, 43, 1, 44, 1, 44, 1, 44,
3802
- 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 516,
3803
- 8, 46, 11, 46, 12, 46, 517, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 526, 8, 47,
3804
- 11, 47, 12, 47, 527, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 537, 8, 48,
3805
- 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 550,
3806
- 8, 49, 11, 49, 12, 49, 551, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 560, 8, 50,
3807
- 11, 50, 12, 50, 561, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 568, 8, 51, 1, 51, 1, 51, 1, 51,
3808
- 1, 51, 1, 51, 1, 51, 3, 51, 576, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 582, 8, 51, 10,
3809
- 51, 12, 51, 585, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 592, 8, 51, 1, 52, 1,
3810
- 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 604, 8, 54, 10, 54, 12,
3811
- 54, 607, 9, 54, 3, 54, 609, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 614, 8, 55, 1, 55, 3, 55,
3812
- 617, 8, 55, 1, 56, 1, 56, 5, 56, 621, 8, 56, 10, 56, 12, 56, 624, 9, 56, 1, 57, 1, 57,
3813
- 1, 57, 1, 57, 5, 57, 630, 8, 57, 10, 57, 12, 57, 633, 9, 57, 5, 57, 635, 8, 57, 10, 57,
3814
- 12, 57, 638, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 645, 8, 58, 1, 59, 1, 59,
3815
- 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 659, 8, 61,
3816
- 10, 61, 12, 61, 662, 9, 61, 1, 61, 3, 61, 665, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62,
3817
- 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65,
3818
- 1, 65, 5, 65, 686, 8, 65, 10, 65, 12, 65, 689, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65,
3819
- 1, 65, 0, 1, 66, 66, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3820
- 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3821
- 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
3822
- 118, 120, 122, 124, 126, 128, 130, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57,
3823
- 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41,
3824
- 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56,
3825
- 57, 60, 60, 1, 0, 32, 33, 733, 0, 136, 1, 0, 0, 0, 2, 159, 1, 0, 0, 0, 4, 166, 1, 0, 0, 0,
3826
- 6, 170, 1, 0, 0, 0, 8, 178, 1, 0, 0, 0, 10, 180, 1, 0, 0, 0, 12, 190, 1, 0, 0, 0, 14, 194,
3827
- 1, 0, 0, 0, 16, 206, 1, 0, 0, 0, 18, 210, 1, 0, 0, 0, 20, 213, 1, 0, 0, 0, 22, 221, 1, 0,
3828
- 0, 0, 24, 232, 1, 0, 0, 0, 26, 238, 1, 0, 0, 0, 28, 240, 1, 0, 0, 0, 30, 242, 1, 0, 0, 0,
3829
- 32, 245, 1, 0, 0, 0, 34, 254, 1, 0, 0, 0, 36, 276, 1, 0, 0, 0, 38, 286, 1, 0, 0, 0, 40, 288,
3830
- 1, 0, 0, 0, 42, 302, 1, 0, 0, 0, 44, 304, 1, 0, 0, 0, 46, 312, 1, 0, 0, 0, 48, 314, 1, 0,
3831
- 0, 0, 50, 316, 1, 0, 0, 0, 52, 318, 1, 0, 0, 0, 54, 322, 1, 0, 0, 0, 56, 327, 1, 0, 0, 0,
3832
- 58, 331, 1, 0, 0, 0, 60, 358, 1, 0, 0, 0, 62, 360, 1, 0, 0, 0, 64, 364, 1, 0, 0, 0, 66, 386,
3833
- 1, 0, 0, 0, 68, 406, 1, 0, 0, 0, 70, 408, 1, 0, 0, 0, 72, 411, 1, 0, 0, 0, 74, 415, 1, 0,
3834
- 0, 0, 76, 435, 1, 0, 0, 0, 78, 466, 1, 0, 0, 0, 80, 468, 1, 0, 0, 0, 82, 483, 1, 0, 0, 0,
3835
- 84, 486, 1, 0, 0, 0, 86, 495, 1, 0, 0, 0, 88, 501, 1, 0, 0, 0, 90, 504, 1, 0, 0, 0, 92, 508,
3836
- 1, 0, 0, 0, 94, 521, 1, 0, 0, 0, 96, 531, 1, 0, 0, 0, 98, 541, 1, 0, 0, 0, 100, 555, 1, 0,
3837
- 0, 0, 102, 591, 1, 0, 0, 0, 104, 593, 1, 0, 0, 0, 106, 597, 1, 0, 0, 0, 108, 608, 1, 0,
3838
- 0, 0, 110, 616, 1, 0, 0, 0, 112, 618, 1, 0, 0, 0, 114, 625, 1, 0, 0, 0, 116, 641, 1, 0,
3839
- 0, 0, 118, 646, 1, 0, 0, 0, 120, 649, 1, 0, 0, 0, 122, 653, 1, 0, 0, 0, 124, 666, 1, 0,
3840
- 0, 0, 126, 672, 1, 0, 0, 0, 128, 676, 1, 0, 0, 0, 130, 681, 1, 0, 0, 0, 132, 135, 3, 118,
3841
- 59, 0, 133, 135, 5, 64, 0, 0, 134, 132, 1, 0, 0, 0, 134, 133, 1, 0, 0, 0, 135, 138, 1,
3842
- 0, 0, 0, 136, 134, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 141, 1, 0, 0, 0, 138, 136, 1,
3843
- 0, 0, 0, 139, 142, 3, 2, 1, 0, 140, 142, 5, 64, 0, 0, 141, 139, 1, 0, 0, 0, 141, 140, 1,
3844
- 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1,
3845
- 0, 0, 0, 145, 146, 5, 0, 0, 1, 146, 1, 1, 0, 0, 0, 147, 160, 3, 6, 3, 0, 148, 160, 3, 4,
3846
- 2, 0, 149, 160, 3, 54, 27, 0, 150, 160, 3, 56, 28, 0, 151, 160, 3, 62, 31, 0, 152, 160,
3847
- 3, 14, 7, 0, 153, 160, 3, 64, 32, 0, 154, 160, 3, 74, 37, 0, 155, 160, 3, 84, 42, 0, 156,
3848
- 160, 3, 118, 59, 0, 157, 160, 3, 80, 40, 0, 158, 160, 3, 120, 60, 0, 159, 147, 1, 0,
3849
- 0, 0, 159, 148, 1, 0, 0, 0, 159, 149, 1, 0, 0, 0, 159, 150, 1, 0, 0, 0, 159, 151, 1, 0,
3850
- 0, 0, 159, 152, 1, 0, 0, 0, 159, 153, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 159, 155, 1, 0,
3851
- 0, 0, 159, 156, 1, 0, 0, 0, 159, 157, 1, 0, 0, 0, 159, 158, 1, 0, 0, 0, 160, 3, 1, 0, 0,
3852
- 0, 161, 167, 3, 122, 61, 0, 162, 167, 3, 128, 64, 0, 163, 167, 3, 130, 65, 0, 164, 167,
3853
- 3, 50, 25, 0, 165, 167, 3, 52, 26, 0, 166, 161, 1, 0, 0, 0, 166, 162, 1, 0, 0, 0, 166,
3854
- 163, 1, 0, 0, 0, 166, 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 5, 1, 0, 0, 0, 168, 171,
3855
- 3, 8, 4, 0, 169, 171, 3, 12, 6, 0, 170, 168, 1, 0, 0, 0, 170, 169, 1, 0, 0, 0, 171, 7, 1,
3856
- 0, 0, 0, 172, 179, 3, 24, 12, 0, 173, 179, 3, 32, 16, 0, 174, 179, 3, 30, 15, 0, 175,
3857
- 179, 3, 40, 20, 0, 176, 179, 3, 112, 56, 0, 177, 179, 3, 116, 58, 0, 178, 172, 1, 0,
3858
- 0, 0, 178, 173, 1, 0, 0, 0, 178, 174, 1, 0, 0, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0,
3859
- 0, 0, 178, 177, 1, 0, 0, 0, 179, 9, 1, 0, 0, 0, 180, 181, 5, 64, 0, 0, 181, 184, 5, 66,
3860
- 0, 0, 182, 185, 5, 64, 0, 0, 183, 185, 3, 2, 1, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0,
3861
- 0, 0, 185, 186, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 188, 1, 0,
3862
- 0, 0, 188, 189, 5, 67, 0, 0, 189, 11, 1, 0, 0, 0, 190, 191, 7, 0, 0, 0, 191, 192, 5, 1,
3863
- 0, 0, 192, 193, 3, 10, 5, 0, 193, 13, 1, 0, 0, 0, 194, 195, 3, 80, 40, 0, 195, 196, 5,
3864
- 1, 0, 0, 196, 197, 5, 64, 0, 0, 197, 200, 5, 66, 0, 0, 198, 201, 5, 64, 0, 0, 199, 201,
3865
- 3, 16, 8, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 200,
3866
- 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 5, 67, 0, 0, 205, 15,
3867
- 1, 0, 0, 0, 206, 207, 7, 1, 0, 0, 207, 208, 5, 1, 0, 0, 208, 209, 3, 72, 36, 0, 209, 17,
3868
- 1, 0, 0, 0, 210, 211, 5, 15, 0, 0, 211, 212, 3, 66, 33, 0, 212, 19, 1, 0, 0, 0, 213, 214,
3869
- 5, 56, 0, 0, 214, 217, 5, 1, 0, 0, 215, 218, 3, 72, 36, 0, 216, 218, 5, 56, 0, 0, 217,
3870
- 215, 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 21, 1, 0, 0, 0, 219, 222, 3, 66, 33, 0, 220,
3871
- 222, 3, 54, 27, 0, 221, 219, 1, 0, 0, 0, 221, 220, 1, 0, 0, 0, 222, 226, 1, 0, 0, 0, 223,
3872
- 225, 3, 20, 10, 0, 224, 223, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226,
3873
- 227, 1, 0, 0, 0, 227, 230, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 231, 3, 18, 9, 0, 230,
3874
- 229, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 233, 5, 16, 0, 0, 233,
3875
- 234, 3, 22, 11, 0, 234, 25, 1, 0, 0, 0, 235, 239, 3, 22, 11, 0, 236, 239, 3, 18, 9, 0,
3876
- 237, 239, 5, 19, 0, 0, 238, 235, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 237, 1, 0, 0, 0,
3877
- 239, 27, 1, 0, 0, 0, 240, 241, 7, 2, 0, 0, 241, 29, 1, 0, 0, 0, 242, 243, 5, 17, 0, 0, 243,
3878
- 244, 3, 26, 13, 0, 244, 31, 1, 0, 0, 0, 245, 246, 5, 18, 0, 0, 246, 251, 3, 26, 13, 0,
3879
- 247, 248, 5, 2, 0, 0, 248, 250, 3, 26, 13, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0,
3880
- 0, 251, 249, 1, 0, 0, 0, 251, 252, 1, 0, 0, 0, 252, 33, 1, 0, 0, 0, 253, 251, 1, 0, 0, 0,
3881
- 254, 255, 5, 17, 0, 0, 255, 256, 3, 26, 13, 0, 256, 257, 5, 18, 0, 0, 257, 262, 3, 26,
3882
- 13, 0, 258, 259, 5, 2, 0, 0, 259, 261, 3, 26, 13, 0, 260, 258, 1, 0, 0, 0, 261, 264, 1,
3883
- 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 265, 1, 0, 0, 0, 264, 262, 1,
3884
- 0, 0, 0, 265, 266, 5, 1, 0, 0, 266, 267, 5, 64, 0, 0, 267, 270, 5, 66, 0, 0, 268, 271,
3885
- 5, 64, 0, 0, 269, 271, 3, 36, 18, 0, 270, 268, 1, 0, 0, 0, 270, 269, 1, 0, 0, 0, 271, 272,
3886
- 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 275,
3887
- 5, 67, 0, 0, 275, 35, 1, 0, 0, 0, 276, 277, 3, 28, 14, 0, 277, 278, 5, 1, 0, 0, 278, 283,
3888
- 3, 38, 19, 0, 279, 280, 5, 2, 0, 0, 280, 282, 3, 38, 19, 0, 281, 279, 1, 0, 0, 0, 282,
3889
- 285, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 37, 1, 0, 0, 0, 285, 283,
3890
- 1, 0, 0, 0, 286, 287, 7, 3, 0, 0, 287, 39, 1, 0, 0, 0, 288, 289, 3, 30, 15, 0, 289, 290,
3891
- 5, 1, 0, 0, 290, 291, 5, 64, 0, 0, 291, 294, 5, 66, 0, 0, 292, 295, 5, 64, 0, 0, 293, 295,
3892
- 3, 42, 21, 0, 294, 292, 1, 0, 0, 0, 294, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 294,
3893
- 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 5, 67, 0, 0, 299, 41,
3894
- 1, 0, 0, 0, 300, 303, 3, 2, 1, 0, 301, 303, 3, 44, 22, 0, 302, 300, 1, 0, 0, 0, 302, 301,
3895
- 1, 0, 0, 0, 303, 43, 1, 0, 0, 0, 304, 305, 3, 28, 14, 0, 305, 308, 5, 1, 0, 0, 306, 309,
3896
- 3, 46, 23, 0, 307, 309, 3, 48, 24, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3897
- 45, 1, 0, 0, 0, 310, 313, 3, 2, 1, 0, 311, 313, 5, 54, 0, 0, 312, 310, 1, 0, 0, 0, 312,
3898
- 311, 1, 0, 0, 0, 313, 47, 1, 0, 0, 0, 314, 315, 3, 10, 5, 0, 315, 49, 1, 0, 0, 0, 316, 317,
3899
- 5, 8, 0, 0, 317, 51, 1, 0, 0, 0, 318, 319, 5, 28, 0, 0, 319, 53, 1, 0, 0, 0, 320, 323, 3,
3900
- 80, 40, 0, 321, 323, 3, 84, 42, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 324,
3901
- 1, 0, 0, 0, 324, 325, 5, 3, 0, 0, 325, 326, 3, 66, 33, 0, 326, 55, 1, 0, 0, 0, 327, 328,
3902
- 3, 80, 40, 0, 328, 329, 7, 4, 0, 0, 329, 330, 3, 66, 33, 0, 330, 57, 1, 0, 0, 0, 331, 332,
3903
- 5, 56, 0, 0, 332, 333, 5, 3, 0, 0, 333, 334, 3, 66, 33, 0, 334, 59, 1, 0, 0, 0, 335, 340,
3904
- 3, 66, 33, 0, 336, 337, 5, 2, 0, 0, 337, 339, 3, 66, 33, 0, 338, 336, 1, 0, 0, 0, 339,
3905
- 342, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 347, 1, 0, 0, 0, 342,
3906
- 340, 1, 0, 0, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 58, 29, 0, 345, 343, 1, 0, 0, 0, 346,
3907
- 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 359, 1, 0, 0, 0, 349,
3908
- 347, 1, 0, 0, 0, 350, 355, 3, 58, 29, 0, 351, 352, 5, 2, 0, 0, 352, 354, 3, 58, 29, 0,
3909
- 353, 351, 1, 0, 0, 0, 354, 357, 1, 0, 0, 0, 355, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0,
3910
- 356, 359, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 335, 1, 0, 0, 0, 358, 350, 1, 0, 0, 0,
3911
- 359, 61, 1, 0, 0, 0, 360, 361, 3, 80, 40, 0, 361, 362, 5, 3, 0, 0, 362, 363, 3, 66, 33,
3912
- 0, 363, 63, 1, 0, 0, 0, 364, 365, 5, 4, 0, 0, 365, 366, 5, 56, 0, 0, 366, 367, 5, 3, 0,
3913
- 0, 367, 368, 3, 66, 33, 0, 368, 65, 1, 0, 0, 0, 369, 370, 6, 33, -1, 0, 370, 371, 5, 52,
3914
- 0, 0, 371, 372, 3, 66, 33, 0, 372, 373, 5, 53, 0, 0, 373, 387, 1, 0, 0, 0, 374, 377, 3,
3915
- 72, 36, 0, 375, 377, 3, 80, 40, 0, 376, 374, 1, 0, 0, 0, 376, 375, 1, 0, 0, 0, 377, 387,
3916
- 1, 0, 0, 0, 378, 379, 3, 70, 35, 0, 379, 380, 3, 66, 33, 10, 380, 387, 1, 0, 0, 0, 381,
3917
- 387, 3, 92, 46, 0, 382, 387, 3, 96, 48, 0, 383, 387, 3, 98, 49, 0, 384, 387, 3, 84, 42,
3918
- 0, 385, 387, 3, 114, 57, 0, 386, 369, 1, 0, 0, 0, 386, 376, 1, 0, 0, 0, 386, 378, 1, 0,
3919
- 0, 0, 386, 381, 1, 0, 0, 0, 386, 382, 1, 0, 0, 0, 386, 383, 1, 0, 0, 0, 386, 384, 1, 0,
3920
- 0, 0, 386, 385, 1, 0, 0, 0, 387, 403, 1, 0, 0, 0, 388, 389, 10, 9, 0, 0, 389, 390, 7, 5,
3921
- 0, 0, 390, 402, 3, 66, 33, 10, 391, 392, 10, 8, 0, 0, 392, 393, 7, 6, 0, 0, 393, 402,
3922
- 3, 66, 33, 9, 394, 395, 10, 7, 0, 0, 395, 396, 3, 68, 34, 0, 396, 397, 3, 66, 33, 8, 397,
3923
- 402, 1, 0, 0, 0, 398, 399, 10, 6, 0, 0, 399, 400, 7, 7, 0, 0, 400, 402, 3, 66, 33, 7, 401,
3924
- 388, 1, 0, 0, 0, 401, 391, 1, 0, 0, 0, 401, 394, 1, 0, 0, 0, 401, 398, 1, 0, 0, 0, 402,
3925
- 405, 1, 0, 0, 0, 403, 401, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 67, 1, 0, 0, 0, 405, 403,
3926
- 1, 0, 0, 0, 406, 407, 7, 8, 0, 0, 407, 69, 1, 0, 0, 0, 408, 409, 7, 9, 0, 0, 409, 71, 1,
3927
- 0, 0, 0, 410, 412, 5, 43, 0, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3928
- 0, 0, 0, 413, 414, 7, 10, 0, 0, 414, 73, 1, 0, 0, 0, 415, 416, 5, 23, 0, 0, 416, 417, 5,
3929
- 56, 0, 0, 417, 419, 5, 52, 0, 0, 418, 420, 3, 78, 39, 0, 419, 418, 1, 0, 0, 0, 419, 420,
3930
- 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 5, 53, 0, 0, 422, 423, 5, 1, 0, 0, 423, 424,
3931
- 5, 64, 0, 0, 424, 427, 5, 66, 0, 0, 425, 428, 5, 64, 0, 0, 426, 428, 3, 76, 38, 0, 427,
3932
- 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429,
3933
- 430, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 432, 5, 67, 0, 0, 432, 75, 1, 0, 0, 0, 433,
3934
- 436, 3, 2, 1, 0, 434, 436, 3, 88, 44, 0, 435, 433, 1, 0, 0, 0, 435, 434, 1, 0, 0, 0, 436,
3935
- 77, 1, 0, 0, 0, 437, 442, 5, 56, 0, 0, 438, 439, 5, 2, 0, 0, 439, 441, 5, 56, 0, 0, 440,
3936
- 438, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443,
3937
- 451, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 2, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3938
- 448, 5, 3, 0, 0, 448, 450, 3, 72, 36, 0, 449, 445, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451,
3939
- 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 467, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454,
3940
- 455, 5, 56, 0, 0, 455, 456, 5, 3, 0, 0, 456, 463, 3, 72, 36, 0, 457, 458, 5, 2, 0, 0, 458,
3941
- 459, 5, 56, 0, 0, 459, 460, 5, 3, 0, 0, 460, 462, 3, 72, 36, 0, 461, 457, 1, 0, 0, 0, 462,
3942
- 465, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3943
- 463, 1, 0, 0, 0, 466, 437, 1, 0, 0, 0, 466, 454, 1, 0, 0, 0, 467, 79, 1, 0, 0, 0, 468, 473,
3944
- 5, 56, 0, 0, 469, 470, 5, 5, 0, 0, 470, 472, 5, 56, 0, 0, 471, 469, 1, 0, 0, 0, 472, 475,
3945
- 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 81, 1, 0, 0, 0, 475, 473, 1,
3946
- 0, 0, 0, 476, 478, 5, 52, 0, 0, 477, 479, 3, 60, 30, 0, 478, 477, 1, 0, 0, 0, 478, 479,
3947
- 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 484, 5, 53, 0, 0, 481, 482, 5, 5, 0, 0, 482, 484,
3948
- 5, 56, 0, 0, 483, 476, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 484, 83, 1, 0, 0, 0, 485, 487,
3949
- 3, 86, 43, 0, 486, 485, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 490,
3950
- 5, 56, 0, 0, 489, 491, 3, 82, 41, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490,
3951
- 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 85, 1, 0, 0, 0, 494, 496, 5, 42, 0, 0, 495, 494,
3952
- 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 499, 5, 44, 0, 0, 498, 500,
3953
- 3, 66, 33, 0, 499, 498, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 87, 1, 0, 0, 0, 501, 502,
3954
- 5, 22, 0, 0, 502, 503, 3, 66, 33, 0, 503, 89, 1, 0, 0, 0, 504, 505, 3, 106, 53, 0, 505,
3955
- 506, 5, 1, 0, 0, 506, 507, 3, 10, 5, 0, 507, 91, 1, 0, 0, 0, 508, 509, 5, 10, 0, 0, 509,
3956
- 510, 5, 11, 0, 0, 510, 511, 5, 1, 0, 0, 511, 512, 5, 64, 0, 0, 512, 515, 5, 66, 0, 0, 513,
3957
- 516, 5, 64, 0, 0, 514, 516, 3, 104, 52, 0, 515, 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0,
3958
- 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0,
3959
- 519, 520, 5, 67, 0, 0, 520, 93, 1, 0, 0, 0, 521, 522, 5, 64, 0, 0, 522, 525, 5, 66, 0,
3960
- 0, 523, 526, 5, 64, 0, 0, 524, 526, 3, 102, 51, 0, 525, 523, 1, 0, 0, 0, 525, 524, 1,
3961
- 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 1,
3962
- 0, 0, 0, 529, 530, 5, 67, 0, 0, 530, 95, 1, 0, 0, 0, 531, 532, 5, 10, 0, 0, 532, 536, 5,
3963
- 12, 0, 0, 533, 534, 5, 52, 0, 0, 534, 535, 5, 56, 0, 0, 535, 537, 5, 53, 0, 0, 536, 533,
3964
- 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 538, 539, 5, 1, 0, 0, 539, 540,
3965
- 3, 94, 47, 0, 540, 97, 1, 0, 0, 0, 541, 542, 5, 10, 0, 0, 542, 543, 5, 13, 0, 0, 543, 544,
3966
- 5, 1, 0, 0, 544, 545, 5, 64, 0, 0, 545, 549, 5, 66, 0, 0, 546, 550, 5, 64, 0, 0, 547, 550,
3967
- 3, 104, 52, 0, 548, 550, 3, 90, 45, 0, 549, 546, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549,
3968
- 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552,
3969
- 553, 1, 0, 0, 0, 553, 554, 5, 67, 0, 0, 554, 99, 1, 0, 0, 0, 555, 556, 5, 64, 0, 0, 556,
3970
- 559, 5, 66, 0, 0, 557, 560, 5, 64, 0, 0, 558, 560, 3, 104, 52, 0, 559, 557, 1, 0, 0, 0,
3971
- 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0,
3972
- 562, 563, 1, 0, 0, 0, 563, 564, 5, 67, 0, 0, 564, 101, 1, 0, 0, 0, 565, 567, 7, 11, 0,
3973
- 0, 566, 568, 5, 1, 0, 0, 567, 566, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 575, 1, 0, 0,
3974
- 0, 569, 576, 3, 60, 30, 0, 570, 571, 5, 52, 0, 0, 571, 572, 3, 60, 30, 0, 572, 573, 5,
3975
- 53, 0, 0, 573, 576, 1, 0, 0, 0, 574, 576, 3, 100, 50, 0, 575, 569, 1, 0, 0, 0, 575, 570,
3976
- 1, 0, 0, 0, 575, 574, 1, 0, 0, 0, 576, 592, 1, 0, 0, 0, 577, 578, 5, 25, 0, 0, 578, 583,
3977
- 5, 56, 0, 0, 579, 580, 5, 2, 0, 0, 580, 582, 5, 56, 0, 0, 581, 579, 1, 0, 0, 0, 582, 585,
3978
- 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 586, 1, 0, 0, 0, 585, 583,
3979
- 1, 0, 0, 0, 586, 587, 5, 26, 0, 0, 587, 588, 3, 66, 33, 0, 588, 589, 5, 1, 0, 0, 589, 590,
3980
- 3, 94, 47, 0, 590, 592, 1, 0, 0, 0, 591, 565, 1, 0, 0, 0, 591, 577, 1, 0, 0, 0, 592, 103,
3981
- 1, 0, 0, 0, 593, 594, 3, 106, 53, 0, 594, 595, 5, 1, 0, 0, 595, 596, 3, 108, 54, 0, 596,
3982
- 105, 1, 0, 0, 0, 597, 598, 7, 12, 0, 0, 598, 107, 1, 0, 0, 0, 599, 609, 3, 100, 50, 0,
3983
- 600, 605, 3, 66, 33, 0, 601, 602, 5, 2, 0, 0, 602, 604, 3, 66, 33, 0, 603, 601, 1, 0,
3984
- 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606, 609, 1, 0,
3985
- 0, 0, 607, 605, 1, 0, 0, 0, 608, 599, 1, 0, 0, 0, 608, 600, 1, 0, 0, 0, 609, 109, 1, 0,
3986
- 0, 0, 610, 613, 5, 56, 0, 0, 611, 614, 5, 57, 0, 0, 612, 614, 3, 66, 33, 0, 613, 611,
3987
- 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 617, 5, 56, 0, 0, 616, 610,
3988
- 1, 0, 0, 0, 616, 615, 1, 0, 0, 0, 617, 111, 1, 0, 0, 0, 618, 622, 5, 14, 0, 0, 619, 621,
3989
- 3, 110, 55, 0, 620, 619, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623,
3990
- 1, 0, 0, 0, 623, 113, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 636, 5, 6, 0, 0, 626, 631,
3991
- 3, 66, 33, 0, 627, 628, 5, 2, 0, 0, 628, 630, 3, 66, 33, 0, 629, 627, 1, 0, 0, 0, 630,
3992
- 633, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633,
3993
- 631, 1, 0, 0, 0, 634, 626, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
3994
- 637, 1, 0, 0, 0, 637, 639, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 640, 5, 7, 0, 0, 640,
3995
- 115, 1, 0, 0, 0, 641, 644, 5, 19, 0, 0, 642, 645, 5, 56, 0, 0, 643, 645, 3, 66, 33, 0,
3996
- 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 117, 1, 0, 0, 0, 646, 647, 5, 24, 0, 0,
3997
- 647, 648, 5, 56, 0, 0, 648, 119, 1, 0, 0, 0, 649, 650, 7, 13, 0, 0, 650, 651, 5, 1, 0,
3998
- 0, 651, 652, 3, 10, 5, 0, 652, 121, 1, 0, 0, 0, 653, 654, 5, 29, 0, 0, 654, 655, 3, 66,
3999
- 33, 0, 655, 656, 5, 1, 0, 0, 656, 660, 3, 10, 5, 0, 657, 659, 3, 124, 62, 0, 658, 657,
4000
- 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 664,
4001
- 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 665, 3, 126, 63, 0, 664, 663, 1, 0, 0, 0, 664, 665,
4002
- 1, 0, 0, 0, 665, 123, 1, 0, 0, 0, 666, 667, 5, 30, 0, 0, 667, 668, 5, 29, 0, 0, 668, 669,
4003
- 3, 66, 33, 0, 669, 670, 5, 1, 0, 0, 670, 671, 3, 10, 5, 0, 671, 125, 1, 0, 0, 0, 672, 673,
4004
- 5, 30, 0, 0, 673, 674, 5, 1, 0, 0, 674, 675, 3, 10, 5, 0, 675, 127, 1, 0, 0, 0, 676, 677,
4005
- 5, 27, 0, 0, 677, 678, 3, 66, 33, 0, 678, 679, 5, 1, 0, 0, 679, 680, 3, 10, 5, 0, 680,
4006
- 129, 1, 0, 0, 0, 681, 682, 5, 25, 0, 0, 682, 687, 5, 56, 0, 0, 683, 684, 5, 2, 0, 0, 684,
4007
- 686, 5, 56, 0, 0, 685, 683, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687,
4008
- 688, 1, 0, 0, 0, 688, 690, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 691, 5, 26, 0, 0, 691,
4009
- 692, 3, 66, 33, 0, 692, 693, 5, 1, 0, 0, 693, 694, 3, 10, 5, 0, 694, 131, 1, 0, 0, 0, 76,
4010
- 134, 136, 141, 143, 159, 166, 170, 178, 184, 186, 200, 202, 217, 221, 226, 230,
4011
- 238, 251, 262, 270, 272, 283, 294, 296, 302, 308, 312, 322, 340, 347, 355, 358,
4012
- 376, 386, 401, 403, 411, 419, 427, 429, 435, 442, 451, 463, 466, 473, 478, 483,
4013
- 486, 492, 495, 499, 515, 517, 525, 527, 536, 549, 551, 559, 561, 567, 575, 583,
4014
- 591, 605, 608, 613, 616, 622, 631, 636, 644, 660, 664, 687
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,
3768
+ 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3769
+ 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
4015
3962
  ];
4016
3963
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4017
3964
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4062,9 +4009,6 @@ class ExpressionContext extends antlr.ParserRuleContext {
4062
4009
  graph_expressions() {
4063
4010
  return this.getRuleContext(0, Graph_expressionsContext);
4064
4011
  }
4065
- flow_expressions() {
4066
- return this.getRuleContext(0, Flow_expressionsContext);
4067
- }
4068
4012
  assignment_expr() {
4069
4013
  return this.getRuleContext(0, Assignment_exprContext);
4070
4014
  }
@@ -4095,6 +4039,9 @@ class ExpressionContext extends antlr.ParserRuleContext {
4095
4039
  frame_expr() {
4096
4040
  return this.getRuleContext(0, Frame_exprContext);
4097
4041
  }
4042
+ flow_expressions() {
4043
+ return this.getRuleContext(0, Flow_expressionsContext);
4044
+ }
4098
4045
  get ruleIndex() {
4099
4046
  return CircuitScriptParser.RULE_expression;
4100
4047
  }
@@ -4121,11 +4068,11 @@ class Flow_expressionsContext extends antlr.ParserRuleContext {
4121
4068
  for_expr() {
4122
4069
  return this.getRuleContext(0, For_exprContext);
4123
4070
  }
4124
- break_keyword() {
4125
- return this.getRuleContext(0, Break_keywordContext);
4071
+ Break() {
4072
+ return this.getToken(CircuitScriptParser.Break, 0);
4126
4073
  }
4127
- continue_keyword() {
4128
- return this.getRuleContext(0, Continue_keywordContext);
4074
+ Continue() {
4075
+ return this.getToken(CircuitScriptParser.Continue, 0);
4129
4076
  }
4130
4077
  get ruleIndex() {
4131
4078
  return CircuitScriptParser.RULE_flow_expressions;
@@ -4767,46 +4714,6 @@ class At_block_pin_expression_complexContext extends antlr.ParserRuleContext {
4767
4714
  }
4768
4715
  }
4769
4716
  exports.At_block_pin_expression_complexContext = At_block_pin_expression_complexContext;
4770
- class Break_keywordContext extends antlr.ParserRuleContext {
4771
- constructor(parent, invokingState) {
4772
- super(parent, invokingState);
4773
- }
4774
- Break() {
4775
- return this.getToken(CircuitScriptParser.Break, 0);
4776
- }
4777
- get ruleIndex() {
4778
- return CircuitScriptParser.RULE_break_keyword;
4779
- }
4780
- accept(visitor) {
4781
- if (visitor.visitBreak_keyword) {
4782
- return visitor.visitBreak_keyword(this);
4783
- }
4784
- else {
4785
- return visitor.visitChildren(this);
4786
- }
4787
- }
4788
- }
4789
- exports.Break_keywordContext = Break_keywordContext;
4790
- class Continue_keywordContext extends antlr.ParserRuleContext {
4791
- constructor(parent, invokingState) {
4792
- super(parent, invokingState);
4793
- }
4794
- Continue() {
4795
- return this.getToken(CircuitScriptParser.Continue, 0);
4796
- }
4797
- get ruleIndex() {
4798
- return CircuitScriptParser.RULE_continue_keyword;
4799
- }
4800
- accept(visitor) {
4801
- if (visitor.visitContinue_keyword) {
4802
- return visitor.visitContinue_keyword(this);
4803
- }
4804
- else {
4805
- return visitor.visitChildren(this);
4806
- }
4807
- }
4808
- }
4809
- exports.Continue_keywordContext = Continue_keywordContext;
4810
4717
  class Assignment_exprContext extends antlr.ParserRuleContext {
4811
4718
  constructor(parent, invokingState) {
4812
4719
  super(parent, invokingState);