circuitscript 0.1.11 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/BaseVisitor.js +78 -51
  2. package/dist/cjs/antlr/CircuitScriptParser.js +1059 -949
  3. package/dist/cjs/builtinMethods.js +5 -1
  4. package/dist/cjs/execute.js +43 -22
  5. package/dist/cjs/globals.js +7 -1
  6. package/dist/cjs/layout.js +50 -16
  7. package/dist/cjs/objects/ExecutionScope.js +3 -0
  8. package/dist/cjs/objects/Net.js +1 -0
  9. package/dist/cjs/objects/ParamDefinition.js +3 -0
  10. package/dist/cjs/objects/types.js +19 -10
  11. package/dist/cjs/render.js +48 -6
  12. package/dist/cjs/utils.js +16 -1
  13. package/dist/cjs/visitor.js +69 -52
  14. package/dist/esm/BaseVisitor.js +72 -45
  15. package/dist/esm/antlr/CircuitScriptParser.js +1052 -944
  16. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -2
  17. package/dist/esm/builtinMethods.js +6 -2
  18. package/dist/esm/execute.js +43 -22
  19. package/dist/esm/globals.js +6 -0
  20. package/dist/esm/layout.js +53 -17
  21. package/dist/esm/objects/ExecutionScope.js +3 -0
  22. package/dist/esm/objects/Net.js +1 -0
  23. package/dist/esm/objects/ParamDefinition.js +4 -1
  24. package/dist/esm/objects/types.js +21 -15
  25. package/dist/esm/render.js +49 -7
  26. package/dist/esm/utils.js +13 -0
  27. package/dist/esm/visitor.js +57 -40
  28. package/dist/types/BaseVisitor.d.ts +2 -2
  29. package/dist/types/antlr/CircuitScriptParser.d.ts +99 -83
  30. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -4
  31. package/dist/types/execute.d.ts +1 -0
  32. package/dist/types/globals.d.ts +5 -0
  33. package/dist/types/layout.d.ts +16 -3
  34. package/dist/types/objects/ExecutionScope.d.ts +15 -3
  35. package/dist/types/objects/Net.d.ts +1 -0
  36. package/dist/types/objects/types.d.ts +25 -18
  37. package/dist/types/utils.d.ts +3 -1
  38. package/dist/types/visitor.d.ts +3 -2
  39. package/package.json +1 -1
  40. /package/dist/libs/{lib.cst → std.cst} +0 -0
  41. /package/libs/{lib.cst → std.cst} +0 -0
@@ -69,68 +69,70 @@ export class CircuitScriptParser extends antlr.Parser {
69
69
  static DEDENT = 67;
70
70
  static RULE_script = 0;
71
71
  static RULE_expression = 1;
72
- static RULE_expressions_block = 2;
73
- static RULE_path_blocks = 3;
74
- static RULE_path_block_inner = 4;
75
- static RULE_property_set_expr2 = 5;
76
- static RULE_assignment_expr2 = 6;
77
- static RULE_pin_select_expr = 7;
78
- static RULE_component_modifier_expr = 8;
79
- static RULE_data_expr_with_assignment = 9;
80
- static RULE_add_component_expr = 10;
81
- static RULE_component_select_expr = 11;
82
- static RULE_pin_select_expr2 = 12;
83
- static RULE_at_component_expr = 13;
84
- static RULE_to_component_expr = 14;
85
- static RULE_at_to_multiple_expr = 15;
86
- static RULE_at_to_multiple_line_expr = 16;
87
- static RULE_at_to_multiple_line_expr_to_pin = 17;
88
- static RULE_at_block = 18;
89
- static RULE_at_block_expressions = 19;
90
- static RULE_at_block_pin_expr = 20;
91
- static RULE_at_block_pin_expression_simple = 21;
92
- static RULE_at_block_pin_expression_complex = 22;
93
- static RULE_break_keyword = 23;
94
- static RULE_continue_keyword = 24;
95
- static RULE_assignment_expr = 25;
96
- static RULE_operator_assignment_expr = 26;
97
- static RULE_keyword_assignment_expr = 27;
98
- static RULE_parameters = 28;
99
- static RULE_property_set_expr = 29;
100
- static RULE_double_dot_property_set_expr = 30;
101
- static RULE_data_expr = 31;
102
- static RULE_binary_operator = 32;
103
- static RULE_unary_operator = 33;
104
- static RULE_value_expr = 34;
105
- static RULE_function_def_expr = 35;
106
- static RULE_function_expr = 36;
107
- static RULE_function_args_expr = 37;
108
- static RULE_atom_expr = 38;
109
- static RULE_trailer_expr = 39;
110
- static RULE_function_call_expr = 40;
111
- static RULE_net_namespace_expr = 41;
112
- static RULE_function_return_expr = 42;
113
- static RULE_property_block_expr = 43;
114
- static RULE_create_component_expr = 44;
115
- static RULE_graphic_expressions_block = 45;
116
- static RULE_create_graphic_expr = 46;
117
- static RULE_create_module_expr = 47;
118
- static RULE_nested_properties_inner = 48;
119
- static RULE_graphic_expr = 49;
120
- static RULE_property_expr = 50;
121
- static RULE_property_key_expr = 51;
122
- static RULE_property_value_expr = 52;
123
- static RULE_wire_atom_expr = 53;
124
- static RULE_wire_expr = 54;
125
- static RULE_array_expr = 55;
126
- static RULE_point_expr = 56;
127
- static RULE_import_expr = 57;
128
- static RULE_frame_expr = 58;
129
- static RULE_if_expr = 59;
130
- static RULE_if_inner_expr = 60;
131
- static RULE_else_expr = 61;
132
- static RULE_while_expr = 62;
133
- static RULE_for_expr = 63;
72
+ static RULE_flow_expressions = 2;
73
+ static RULE_graph_expressions = 3;
74
+ static RULE_graph_linear_expression = 4;
75
+ static RULE_expressions_block = 5;
76
+ static RULE_path_block = 6;
77
+ static RULE_property_set_expr2 = 7;
78
+ static RULE_assignment_expr2 = 8;
79
+ static RULE_pin_select_expr = 9;
80
+ static RULE_component_modifier_expr = 10;
81
+ static RULE_data_expr_with_assignment = 11;
82
+ static RULE_add_component_expr = 12;
83
+ static RULE_component_select_expr = 13;
84
+ static RULE_pin_select_expr2 = 14;
85
+ static RULE_at_component_expr = 15;
86
+ static RULE_to_component_expr = 16;
87
+ static RULE_at_to_multiple_expr = 17;
88
+ static RULE_at_to_multiple_line_expr = 18;
89
+ static RULE_at_to_multiple_line_expr_to_pin = 19;
90
+ static RULE_at_block = 20;
91
+ static RULE_at_block_expressions = 21;
92
+ static RULE_at_block_pin_expr = 22;
93
+ static RULE_at_block_pin_expression_simple = 23;
94
+ static RULE_at_block_pin_expression_complex = 24;
95
+ static RULE_break_keyword = 25;
96
+ static RULE_continue_keyword = 26;
97
+ static RULE_assignment_expr = 27;
98
+ static RULE_operator_assignment_expr = 28;
99
+ static RULE_keyword_assignment_expr = 29;
100
+ static RULE_parameters = 30;
101
+ static RULE_property_set_expr = 31;
102
+ static RULE_double_dot_property_set_expr = 32;
103
+ static RULE_data_expr = 33;
104
+ static RULE_binary_operator = 34;
105
+ static RULE_unary_operator = 35;
106
+ static RULE_value_expr = 36;
107
+ static RULE_function_def_expr = 37;
108
+ static RULE_function_expr = 38;
109
+ static RULE_function_args_expr = 39;
110
+ static RULE_atom_expr = 40;
111
+ static RULE_trailer_expr = 41;
112
+ static RULE_function_call_expr = 42;
113
+ static RULE_net_namespace_expr = 43;
114
+ static RULE_function_return_expr = 44;
115
+ static RULE_property_block_expr = 45;
116
+ static RULE_create_component_expr = 46;
117
+ static RULE_graphic_expressions_block = 47;
118
+ static RULE_create_graphic_expr = 48;
119
+ static RULE_create_module_expr = 49;
120
+ static RULE_nested_properties_inner = 50;
121
+ static RULE_graphic_expr = 51;
122
+ static RULE_property_expr = 52;
123
+ static RULE_property_key_expr = 53;
124
+ static RULE_property_value_expr = 54;
125
+ static RULE_wire_atom_expr = 55;
126
+ static RULE_wire_expr = 56;
127
+ static RULE_array_expr = 57;
128
+ static RULE_point_expr = 58;
129
+ static RULE_import_expr = 59;
130
+ static RULE_frame_expr = 60;
131
+ static RULE_if_expr = 61;
132
+ static RULE_if_inner_expr = 62;
133
+ static RULE_else_expr = 63;
134
+ static RULE_while_expr = 64;
135
+ static RULE_for_expr = 65;
134
136
  static literalNames = [
135
137
  null, "':'", "','", "'='", "'..'", "'.'", "'['", "']'", "'break'",
136
138
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -155,8 +157,9 @@ export class CircuitScriptParser extends antlr.Parser {
155
157
  "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
156
158
  ];
157
159
  static ruleNames = [
158
- "script", "expression", "expressions_block", "path_blocks", "path_block_inner",
159
- "property_set_expr2", "assignment_expr2", "pin_select_expr", "component_modifier_expr",
160
+ "script", "expression", "flow_expressions", "graph_expressions",
161
+ "graph_linear_expression", "expressions_block", "path_block", "property_set_expr2",
162
+ "assignment_expr2", "pin_select_expr", "component_modifier_expr",
160
163
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
161
164
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
162
165
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
@@ -194,24 +197,24 @@ export class CircuitScriptParser extends antlr.Parser {
194
197
  let alternative;
195
198
  this.enterOuterAlt(localContext, 1);
196
199
  {
197
- this.state = 132;
200
+ this.state = 136;
198
201
  this.errorHandler.sync(this);
199
202
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
200
203
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
201
204
  if (alternative === 1) {
202
205
  {
203
- this.state = 130;
206
+ this.state = 134;
204
207
  this.errorHandler.sync(this);
205
208
  switch (this.tokenStream.LA(1)) {
206
209
  case CircuitScriptParser.Import:
207
210
  {
208
- this.state = 128;
211
+ this.state = 132;
209
212
  this.import_expr();
210
213
  }
211
214
  break;
212
215
  case CircuitScriptParser.NEWLINE:
213
216
  {
214
- this.state = 129;
217
+ this.state = 133;
215
218
  this.match(CircuitScriptParser.NEWLINE);
216
219
  }
217
220
  break;
@@ -220,16 +223,16 @@ export class CircuitScriptParser extends antlr.Parser {
220
223
  }
221
224
  }
222
225
  }
223
- this.state = 134;
226
+ this.state = 138;
224
227
  this.errorHandler.sync(this);
225
228
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
226
229
  }
227
- this.state = 137;
230
+ this.state = 141;
228
231
  this.errorHandler.sync(this);
229
232
  _la = this.tokenStream.LA(1);
230
233
  do {
231
234
  {
232
- this.state = 137;
235
+ this.state = 141;
233
236
  this.errorHandler.sync(this);
234
237
  switch (this.tokenStream.LA(1)) {
235
238
  case CircuitScriptParser.T__3:
@@ -254,13 +257,13 @@ export class CircuitScriptParser extends antlr.Parser {
254
257
  case CircuitScriptParser.Divide:
255
258
  case CircuitScriptParser.ID:
256
259
  {
257
- this.state = 135;
260
+ this.state = 139;
258
261
  this.expression();
259
262
  }
260
263
  break;
261
264
  case CircuitScriptParser.NEWLINE:
262
265
  {
263
- this.state = 136;
266
+ this.state = 140;
264
267
  this.match(CircuitScriptParser.NEWLINE);
265
268
  }
266
269
  break;
@@ -268,11 +271,11 @@ export class CircuitScriptParser extends antlr.Parser {
268
271
  throw new antlr.NoViableAltException(this);
269
272
  }
270
273
  }
271
- this.state = 139;
274
+ this.state = 143;
272
275
  this.errorHandler.sync(this);
273
276
  _la = this.tokenStream.LA(1);
274
277
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
275
- this.state = 141;
278
+ this.state = 145;
276
279
  this.match(CircuitScriptParser.EOF);
277
280
  }
278
281
  }
@@ -294,161 +297,253 @@ export class CircuitScriptParser extends antlr.Parser {
294
297
  let localContext = new ExpressionContext(this.context, this.state);
295
298
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
296
299
  try {
297
- this.state = 165;
300
+ this.state = 159;
298
301
  this.errorHandler.sync(this);
299
302
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
300
303
  case 1:
301
304
  this.enterOuterAlt(localContext, 1);
302
305
  {
303
- this.state = 143;
304
- this.add_component_expr();
306
+ this.state = 147;
307
+ this.graph_expressions();
305
308
  }
306
309
  break;
307
310
  case 2:
308
311
  this.enterOuterAlt(localContext, 2);
309
312
  {
310
- this.state = 144;
311
- this.to_component_expr();
313
+ this.state = 148;
314
+ this.flow_expressions();
312
315
  }
313
316
  break;
314
317
  case 3:
315
318
  this.enterOuterAlt(localContext, 3);
316
319
  {
317
- this.state = 145;
318
- this.at_component_expr();
320
+ this.state = 149;
321
+ this.assignment_expr();
319
322
  }
320
323
  break;
321
324
  case 4:
322
325
  this.enterOuterAlt(localContext, 4);
323
326
  {
324
- this.state = 146;
325
- this.assignment_expr();
327
+ this.state = 150;
328
+ this.operator_assignment_expr();
326
329
  }
327
330
  break;
328
331
  case 5:
329
332
  this.enterOuterAlt(localContext, 5);
330
333
  {
331
- this.state = 147;
332
- this.operator_assignment_expr();
334
+ this.state = 151;
335
+ this.property_set_expr();
333
336
  }
334
337
  break;
335
338
  case 6:
336
339
  this.enterOuterAlt(localContext, 6);
337
340
  {
338
- this.state = 148;
339
- this.property_set_expr();
341
+ this.state = 152;
342
+ this.property_set_expr2();
340
343
  }
341
344
  break;
342
345
  case 7:
343
346
  this.enterOuterAlt(localContext, 7);
344
347
  {
345
- this.state = 149;
346
- this.property_set_expr2();
348
+ this.state = 153;
349
+ this.double_dot_property_set_expr();
347
350
  }
348
351
  break;
349
352
  case 8:
350
353
  this.enterOuterAlt(localContext, 8);
351
354
  {
352
- this.state = 150;
353
- this.double_dot_property_set_expr();
355
+ this.state = 154;
356
+ this.function_def_expr();
354
357
  }
355
358
  break;
356
359
  case 9:
357
360
  this.enterOuterAlt(localContext, 9);
358
361
  {
359
- this.state = 151;
360
- this.break_keyword();
362
+ this.state = 155;
363
+ this.function_call_expr();
361
364
  }
362
365
  break;
363
366
  case 10:
364
367
  this.enterOuterAlt(localContext, 10);
365
368
  {
366
- this.state = 152;
367
- this.continue_keyword();
369
+ this.state = 156;
370
+ this.import_expr();
368
371
  }
369
372
  break;
370
373
  case 11:
371
374
  this.enterOuterAlt(localContext, 11);
372
375
  {
373
- this.state = 153;
374
- this.function_def_expr();
376
+ this.state = 157;
377
+ this.atom_expr();
375
378
  }
376
379
  break;
377
380
  case 12:
378
381
  this.enterOuterAlt(localContext, 12);
379
382
  {
380
- this.state = 154;
381
- this.function_call_expr();
383
+ this.state = 158;
384
+ this.frame_expr();
382
385
  }
383
386
  break;
384
- case 13:
385
- this.enterOuterAlt(localContext, 13);
387
+ }
388
+ }
389
+ catch (re) {
390
+ if (re instanceof antlr.RecognitionException) {
391
+ this.errorHandler.reportError(this, re);
392
+ this.errorHandler.recover(this, re);
393
+ }
394
+ else {
395
+ throw re;
396
+ }
397
+ }
398
+ finally {
399
+ this.exitRule();
400
+ }
401
+ return localContext;
402
+ }
403
+ flow_expressions() {
404
+ let localContext = new Flow_expressionsContext(this.context, this.state);
405
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
406
+ try {
407
+ this.state = 166;
408
+ this.errorHandler.sync(this);
409
+ switch (this.tokenStream.LA(1)) {
410
+ case CircuitScriptParser.If:
411
+ this.enterOuterAlt(localContext, 1);
386
412
  {
387
- this.state = 155;
388
- this.wire_expr();
413
+ this.state = 161;
414
+ this.if_expr();
389
415
  }
390
416
  break;
391
- case 14:
392
- this.enterOuterAlt(localContext, 14);
417
+ case CircuitScriptParser.While:
418
+ this.enterOuterAlt(localContext, 2);
393
419
  {
394
- this.state = 156;
395
- this.import_expr();
420
+ this.state = 162;
421
+ this.while_expr();
396
422
  }
397
423
  break;
398
- case 15:
399
- this.enterOuterAlt(localContext, 15);
424
+ case CircuitScriptParser.For:
425
+ this.enterOuterAlt(localContext, 3);
400
426
  {
401
- this.state = 157;
402
- this.frame_expr();
427
+ this.state = 163;
428
+ this.for_expr();
403
429
  }
404
430
  break;
405
- case 16:
406
- this.enterOuterAlt(localContext, 16);
431
+ case CircuitScriptParser.Break:
432
+ this.enterOuterAlt(localContext, 4);
407
433
  {
408
- this.state = 158;
409
- this.atom_expr();
434
+ this.state = 164;
435
+ this.break_keyword();
410
436
  }
411
437
  break;
412
- case 17:
413
- this.enterOuterAlt(localContext, 17);
438
+ case CircuitScriptParser.Continue:
439
+ this.enterOuterAlt(localContext, 5);
414
440
  {
415
- this.state = 159;
416
- this.at_block();
441
+ this.state = 165;
442
+ this.continue_keyword();
417
443
  }
418
444
  break;
419
- case 18:
420
- this.enterOuterAlt(localContext, 18);
445
+ default:
446
+ throw new antlr.NoViableAltException(this);
447
+ }
448
+ }
449
+ catch (re) {
450
+ if (re instanceof antlr.RecognitionException) {
451
+ this.errorHandler.reportError(this, re);
452
+ this.errorHandler.recover(this, re);
453
+ }
454
+ else {
455
+ throw re;
456
+ }
457
+ }
458
+ finally {
459
+ this.exitRule();
460
+ }
461
+ return localContext;
462
+ }
463
+ graph_expressions() {
464
+ let localContext = new Graph_expressionsContext(this.context, this.state);
465
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
466
+ try {
467
+ this.state = 170;
468
+ this.errorHandler.sync(this);
469
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
470
+ case 1:
471
+ this.enterOuterAlt(localContext, 1);
421
472
  {
422
- this.state = 160;
423
- this.path_blocks();
473
+ this.state = 168;
474
+ this.graph_linear_expression();
424
475
  }
425
476
  break;
426
- case 19:
427
- this.enterOuterAlt(localContext, 19);
477
+ case 2:
478
+ this.enterOuterAlt(localContext, 2);
428
479
  {
429
- this.state = 161;
430
- this.point_expr();
480
+ this.state = 169;
481
+ this.path_block();
431
482
  }
432
483
  break;
433
- case 20:
434
- this.enterOuterAlt(localContext, 20);
484
+ }
485
+ }
486
+ catch (re) {
487
+ if (re instanceof antlr.RecognitionException) {
488
+ this.errorHandler.reportError(this, re);
489
+ this.errorHandler.recover(this, re);
490
+ }
491
+ else {
492
+ throw re;
493
+ }
494
+ }
495
+ finally {
496
+ this.exitRule();
497
+ }
498
+ return localContext;
499
+ }
500
+ graph_linear_expression() {
501
+ let localContext = new Graph_linear_expressionContext(this.context, this.state);
502
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
503
+ try {
504
+ this.state = 178;
505
+ this.errorHandler.sync(this);
506
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
507
+ case 1:
508
+ this.enterOuterAlt(localContext, 1);
435
509
  {
436
- this.state = 162;
437
- this.if_expr();
510
+ this.state = 172;
511
+ this.add_component_expr();
438
512
  }
439
513
  break;
440
- case 21:
441
- this.enterOuterAlt(localContext, 21);
514
+ case 2:
515
+ this.enterOuterAlt(localContext, 2);
442
516
  {
443
- this.state = 163;
444
- this.while_expr();
517
+ this.state = 173;
518
+ this.to_component_expr();
445
519
  }
446
520
  break;
447
- case 22:
448
- this.enterOuterAlt(localContext, 22);
521
+ case 3:
522
+ this.enterOuterAlt(localContext, 3);
449
523
  {
450
- this.state = 164;
451
- this.for_expr();
524
+ this.state = 174;
525
+ this.at_component_expr();
526
+ }
527
+ break;
528
+ case 4:
529
+ this.enterOuterAlt(localContext, 4);
530
+ {
531
+ this.state = 175;
532
+ this.at_block();
533
+ }
534
+ break;
535
+ case 5:
536
+ this.enterOuterAlt(localContext, 5);
537
+ {
538
+ this.state = 176;
539
+ this.wire_expr();
540
+ }
541
+ break;
542
+ case 6:
543
+ this.enterOuterAlt(localContext, 6);
544
+ {
545
+ this.state = 177;
546
+ this.point_expr();
452
547
  }
453
548
  break;
454
549
  }
@@ -469,26 +564,26 @@ export class CircuitScriptParser extends antlr.Parser {
469
564
  }
470
565
  expressions_block() {
471
566
  let localContext = new Expressions_blockContext(this.context, this.state);
472
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_expressions_block);
567
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_expressions_block);
473
568
  let _la;
474
569
  try {
475
570
  this.enterOuterAlt(localContext, 1);
476
571
  {
477
- this.state = 167;
572
+ this.state = 180;
478
573
  this.match(CircuitScriptParser.NEWLINE);
479
- this.state = 168;
574
+ this.state = 181;
480
575
  this.match(CircuitScriptParser.INDENT);
481
- this.state = 171;
576
+ this.state = 184;
482
577
  this.errorHandler.sync(this);
483
578
  _la = this.tokenStream.LA(1);
484
579
  do {
485
580
  {
486
- this.state = 171;
581
+ this.state = 184;
487
582
  this.errorHandler.sync(this);
488
583
  switch (this.tokenStream.LA(1)) {
489
584
  case CircuitScriptParser.NEWLINE:
490
585
  {
491
- this.state = 169;
586
+ this.state = 182;
492
587
  this.match(CircuitScriptParser.NEWLINE);
493
588
  }
494
589
  break;
@@ -514,7 +609,7 @@ export class CircuitScriptParser extends antlr.Parser {
514
609
  case CircuitScriptParser.Divide:
515
610
  case CircuitScriptParser.ID:
516
611
  {
517
- this.state = 170;
612
+ this.state = 183;
518
613
  this.expression();
519
614
  }
520
615
  break;
@@ -522,11 +617,11 @@ export class CircuitScriptParser extends antlr.Parser {
522
617
  throw new antlr.NoViableAltException(this);
523
618
  }
524
619
  }
525
- this.state = 173;
620
+ this.state = 186;
526
621
  this.errorHandler.sync(this);
527
622
  _la = this.tokenStream.LA(1);
528
623
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
529
- this.state = 175;
624
+ this.state = 188;
530
625
  this.match(CircuitScriptParser.DEDENT);
531
626
  }
532
627
  }
@@ -544,57 +639,14 @@ export class CircuitScriptParser extends antlr.Parser {
544
639
  }
545
640
  return localContext;
546
641
  }
547
- path_blocks() {
548
- let localContext = new Path_blocksContext(this.context, this.state);
549
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_path_blocks);
550
- try {
551
- let alternative;
552
- this.enterOuterAlt(localContext, 1);
553
- {
554
- this.state = 178;
555
- this.errorHandler.sync(this);
556
- alternative = 1;
557
- do {
558
- switch (alternative) {
559
- case 1:
560
- {
561
- {
562
- this.state = 177;
563
- this.path_block_inner();
564
- }
565
- }
566
- break;
567
- default:
568
- throw new antlr.NoViableAltException(this);
569
- }
570
- this.state = 180;
571
- this.errorHandler.sync(this);
572
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 7, this.context);
573
- } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
574
- }
575
- }
576
- catch (re) {
577
- if (re instanceof antlr.RecognitionException) {
578
- this.errorHandler.reportError(this, re);
579
- this.errorHandler.recover(this, re);
580
- }
581
- else {
582
- throw re;
583
- }
584
- }
585
- finally {
586
- this.exitRule();
587
- }
588
- return localContext;
589
- }
590
- path_block_inner() {
591
- let localContext = new Path_block_innerContext(this.context, this.state);
592
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_path_block_inner);
642
+ path_block() {
643
+ let localContext = new Path_blockContext(this.context, this.state);
644
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_path_block);
593
645
  let _la;
594
646
  try {
595
647
  this.enterOuterAlt(localContext, 1);
596
648
  {
597
- this.state = 182;
649
+ this.state = 190;
598
650
  _la = this.tokenStream.LA(1);
599
651
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
600
652
  this.errorHandler.recoverInline(this);
@@ -603,9 +655,9 @@ export class CircuitScriptParser extends antlr.Parser {
603
655
  this.errorHandler.reportMatch(this);
604
656
  this.consume();
605
657
  }
606
- this.state = 183;
658
+ this.state = 191;
607
659
  this.match(CircuitScriptParser.T__0);
608
- this.state = 184;
660
+ this.state = 192;
609
661
  this.expressions_block();
610
662
  }
611
663
  }
@@ -625,37 +677,37 @@ export class CircuitScriptParser extends antlr.Parser {
625
677
  }
626
678
  property_set_expr2() {
627
679
  let localContext = new Property_set_expr2Context(this.context, this.state);
628
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_property_set_expr2);
680
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_property_set_expr2);
629
681
  let _la;
630
682
  try {
631
683
  this.enterOuterAlt(localContext, 1);
632
684
  {
633
- this.state = 186;
685
+ this.state = 194;
634
686
  this.atom_expr();
635
- this.state = 187;
687
+ this.state = 195;
636
688
  this.match(CircuitScriptParser.T__0);
637
- this.state = 188;
689
+ this.state = 196;
638
690
  this.match(CircuitScriptParser.NEWLINE);
639
- this.state = 189;
691
+ this.state = 197;
640
692
  this.match(CircuitScriptParser.INDENT);
641
- this.state = 192;
693
+ this.state = 200;
642
694
  this.errorHandler.sync(this);
643
695
  _la = this.tokenStream.LA(1);
644
696
  do {
645
697
  {
646
- this.state = 192;
698
+ this.state = 200;
647
699
  this.errorHandler.sync(this);
648
700
  switch (this.tokenStream.LA(1)) {
649
701
  case CircuitScriptParser.NEWLINE:
650
702
  {
651
- this.state = 190;
703
+ this.state = 198;
652
704
  this.match(CircuitScriptParser.NEWLINE);
653
705
  }
654
706
  break;
655
707
  case CircuitScriptParser.ID:
656
708
  case CircuitScriptParser.INTEGER_VALUE:
657
709
  {
658
- this.state = 191;
710
+ this.state = 199;
659
711
  this.assignment_expr2();
660
712
  }
661
713
  break;
@@ -663,11 +715,11 @@ export class CircuitScriptParser extends antlr.Parser {
663
715
  throw new antlr.NoViableAltException(this);
664
716
  }
665
717
  }
666
- this.state = 194;
718
+ this.state = 202;
667
719
  this.errorHandler.sync(this);
668
720
  _la = this.tokenStream.LA(1);
669
721
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 259) !== 0));
670
- this.state = 196;
722
+ this.state = 204;
671
723
  this.match(CircuitScriptParser.DEDENT);
672
724
  }
673
725
  }
@@ -687,12 +739,12 @@ export class CircuitScriptParser extends antlr.Parser {
687
739
  }
688
740
  assignment_expr2() {
689
741
  let localContext = new Assignment_expr2Context(this.context, this.state);
690
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_assignment_expr2);
742
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_assignment_expr2);
691
743
  let _la;
692
744
  try {
693
745
  this.enterOuterAlt(localContext, 1);
694
746
  {
695
- this.state = 198;
747
+ this.state = 206;
696
748
  _la = this.tokenStream.LA(1);
697
749
  if (!(_la === 56 || _la === 57)) {
698
750
  this.errorHandler.recoverInline(this);
@@ -701,9 +753,9 @@ export class CircuitScriptParser extends antlr.Parser {
701
753
  this.errorHandler.reportMatch(this);
702
754
  this.consume();
703
755
  }
704
- this.state = 199;
756
+ this.state = 207;
705
757
  this.match(CircuitScriptParser.T__0);
706
- this.state = 200;
758
+ this.state = 208;
707
759
  this.value_expr();
708
760
  }
709
761
  }
@@ -723,13 +775,13 @@ export class CircuitScriptParser extends antlr.Parser {
723
775
  }
724
776
  pin_select_expr() {
725
777
  let localContext = new Pin_select_exprContext(this.context, this.state);
726
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
778
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_pin_select_expr);
727
779
  try {
728
780
  this.enterOuterAlt(localContext, 1);
729
781
  {
730
- this.state = 202;
782
+ this.state = 210;
731
783
  this.match(CircuitScriptParser.Pin);
732
- this.state = 203;
784
+ this.state = 211;
733
785
  this.data_expr(0);
734
786
  }
735
787
  }
@@ -749,15 +801,15 @@ export class CircuitScriptParser extends antlr.Parser {
749
801
  }
750
802
  component_modifier_expr() {
751
803
  let localContext = new Component_modifier_exprContext(this.context, this.state);
752
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
804
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_component_modifier_expr);
753
805
  try {
754
806
  this.enterOuterAlt(localContext, 1);
755
807
  {
756
- this.state = 205;
808
+ this.state = 213;
757
809
  this.match(CircuitScriptParser.ID);
758
- this.state = 206;
810
+ this.state = 214;
759
811
  this.match(CircuitScriptParser.T__0);
760
- this.state = 209;
812
+ this.state = 217;
761
813
  this.errorHandler.sync(this);
762
814
  switch (this.tokenStream.LA(1)) {
763
815
  case CircuitScriptParser.Minus:
@@ -768,13 +820,13 @@ export class CircuitScriptParser extends antlr.Parser {
768
820
  case CircuitScriptParser.STRING_VALUE:
769
821
  case CircuitScriptParser.PERCENTAGE_VALUE:
770
822
  {
771
- this.state = 207;
823
+ this.state = 215;
772
824
  this.value_expr();
773
825
  }
774
826
  break;
775
827
  case CircuitScriptParser.ID:
776
828
  {
777
- this.state = 208;
829
+ this.state = 216;
778
830
  this.match(CircuitScriptParser.ID);
779
831
  }
780
832
  break;
@@ -799,50 +851,50 @@ export class CircuitScriptParser extends antlr.Parser {
799
851
  }
800
852
  data_expr_with_assignment() {
801
853
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
802
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
854
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_data_expr_with_assignment);
803
855
  let _la;
804
856
  try {
805
857
  let alternative;
806
858
  this.enterOuterAlt(localContext, 1);
807
859
  {
808
- this.state = 213;
860
+ this.state = 221;
809
861
  this.errorHandler.sync(this);
810
- switch (this.interpreter.adaptivePredict(this.tokenStream, 11, this.context)) {
862
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
811
863
  case 1:
812
864
  {
813
- this.state = 211;
865
+ this.state = 219;
814
866
  this.data_expr(0);
815
867
  }
816
868
  break;
817
869
  case 2:
818
870
  {
819
- this.state = 212;
871
+ this.state = 220;
820
872
  this.assignment_expr();
821
873
  }
822
874
  break;
823
875
  }
824
- this.state = 218;
876
+ this.state = 226;
825
877
  this.errorHandler.sync(this);
826
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context);
878
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
827
879
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
828
880
  if (alternative === 1) {
829
881
  {
830
882
  {
831
- this.state = 215;
883
+ this.state = 223;
832
884
  this.component_modifier_expr();
833
885
  }
834
886
  }
835
887
  }
836
- this.state = 220;
888
+ this.state = 228;
837
889
  this.errorHandler.sync(this);
838
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 12, this.context);
890
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
839
891
  }
840
- this.state = 222;
892
+ this.state = 230;
841
893
  this.errorHandler.sync(this);
842
894
  _la = this.tokenStream.LA(1);
843
895
  if (_la === 15) {
844
896
  {
845
- this.state = 221;
897
+ this.state = 229;
846
898
  this.pin_select_expr();
847
899
  }
848
900
  }
@@ -864,13 +916,13 @@ export class CircuitScriptParser extends antlr.Parser {
864
916
  }
865
917
  add_component_expr() {
866
918
  let localContext = new Add_component_exprContext(this.context, this.state);
867
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
919
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_add_component_expr);
868
920
  try {
869
921
  this.enterOuterAlt(localContext, 1);
870
922
  {
871
- this.state = 224;
923
+ this.state = 232;
872
924
  this.match(CircuitScriptParser.Add);
873
- this.state = 225;
925
+ this.state = 233;
874
926
  this.data_expr_with_assignment();
875
927
  }
876
928
  }
@@ -890,9 +942,9 @@ export class CircuitScriptParser extends antlr.Parser {
890
942
  }
891
943
  component_select_expr() {
892
944
  let localContext = new Component_select_exprContext(this.context, this.state);
893
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
945
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
894
946
  try {
895
- this.state = 230;
947
+ this.state = 238;
896
948
  this.errorHandler.sync(this);
897
949
  switch (this.tokenStream.LA(1)) {
898
950
  case CircuitScriptParser.T__5:
@@ -911,21 +963,21 @@ export class CircuitScriptParser extends antlr.Parser {
911
963
  case CircuitScriptParser.PERCENTAGE_VALUE:
912
964
  this.enterOuterAlt(localContext, 1);
913
965
  {
914
- this.state = 227;
966
+ this.state = 235;
915
967
  this.data_expr_with_assignment();
916
968
  }
917
969
  break;
918
970
  case CircuitScriptParser.Pin:
919
971
  this.enterOuterAlt(localContext, 2);
920
972
  {
921
- this.state = 228;
973
+ this.state = 236;
922
974
  this.pin_select_expr();
923
975
  }
924
976
  break;
925
977
  case CircuitScriptParser.Point:
926
978
  this.enterOuterAlt(localContext, 3);
927
979
  {
928
- this.state = 229;
980
+ this.state = 237;
929
981
  this.match(CircuitScriptParser.Point);
930
982
  }
931
983
  break;
@@ -949,12 +1001,12 @@ export class CircuitScriptParser extends antlr.Parser {
949
1001
  }
950
1002
  pin_select_expr2() {
951
1003
  let localContext = new Pin_select_expr2Context(this.context, this.state);
952
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_pin_select_expr2);
1004
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_pin_select_expr2);
953
1005
  let _la;
954
1006
  try {
955
1007
  this.enterOuterAlt(localContext, 1);
956
1008
  {
957
- this.state = 232;
1009
+ this.state = 240;
958
1010
  _la = this.tokenStream.LA(1);
959
1011
  if (!(_la === 57 || _la === 60)) {
960
1012
  this.errorHandler.recoverInline(this);
@@ -981,13 +1033,13 @@ export class CircuitScriptParser extends antlr.Parser {
981
1033
  }
982
1034
  at_component_expr() {
983
1035
  let localContext = new At_component_exprContext(this.context, this.state);
984
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
1036
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_component_expr);
985
1037
  try {
986
1038
  this.enterOuterAlt(localContext, 1);
987
1039
  {
988
- this.state = 234;
1040
+ this.state = 242;
989
1041
  this.match(CircuitScriptParser.At);
990
- this.state = 235;
1042
+ this.state = 243;
991
1043
  this.component_select_expr();
992
1044
  }
993
1045
  }
@@ -1007,29 +1059,29 @@ export class CircuitScriptParser extends antlr.Parser {
1007
1059
  }
1008
1060
  to_component_expr() {
1009
1061
  let localContext = new To_component_exprContext(this.context, this.state);
1010
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
1062
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_to_component_expr);
1011
1063
  let _la;
1012
1064
  try {
1013
1065
  this.enterOuterAlt(localContext, 1);
1014
1066
  {
1015
- this.state = 237;
1067
+ this.state = 245;
1016
1068
  this.match(CircuitScriptParser.To);
1017
1069
  {
1018
- this.state = 238;
1070
+ this.state = 246;
1019
1071
  this.component_select_expr();
1020
- this.state = 243;
1072
+ this.state = 251;
1021
1073
  this.errorHandler.sync(this);
1022
1074
  _la = this.tokenStream.LA(1);
1023
1075
  while (_la === 2) {
1024
1076
  {
1025
1077
  {
1026
- this.state = 239;
1078
+ this.state = 247;
1027
1079
  this.match(CircuitScriptParser.T__1);
1028
- this.state = 240;
1080
+ this.state = 248;
1029
1081
  this.component_select_expr();
1030
1082
  }
1031
1083
  }
1032
- this.state = 245;
1084
+ this.state = 253;
1033
1085
  this.errorHandler.sync(this);
1034
1086
  _la = this.tokenStream.LA(1);
1035
1087
  }
@@ -1052,59 +1104,59 @@ export class CircuitScriptParser extends antlr.Parser {
1052
1104
  }
1053
1105
  at_to_multiple_expr() {
1054
1106
  let localContext = new At_to_multiple_exprContext(this.context, this.state);
1055
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_to_multiple_expr);
1107
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_expr);
1056
1108
  let _la;
1057
1109
  try {
1058
1110
  this.enterOuterAlt(localContext, 1);
1059
1111
  {
1060
- this.state = 246;
1112
+ this.state = 254;
1061
1113
  this.match(CircuitScriptParser.At);
1062
- this.state = 247;
1114
+ this.state = 255;
1063
1115
  this.component_select_expr();
1064
- this.state = 248;
1116
+ this.state = 256;
1065
1117
  this.match(CircuitScriptParser.To);
1066
- this.state = 249;
1118
+ this.state = 257;
1067
1119
  this.component_select_expr();
1068
- this.state = 254;
1120
+ this.state = 262;
1069
1121
  this.errorHandler.sync(this);
1070
1122
  _la = this.tokenStream.LA(1);
1071
1123
  while (_la === 2) {
1072
1124
  {
1073
1125
  {
1074
- this.state = 250;
1126
+ this.state = 258;
1075
1127
  this.match(CircuitScriptParser.T__1);
1076
- this.state = 251;
1128
+ this.state = 259;
1077
1129
  this.component_select_expr();
1078
1130
  }
1079
1131
  }
1080
- this.state = 256;
1132
+ this.state = 264;
1081
1133
  this.errorHandler.sync(this);
1082
1134
  _la = this.tokenStream.LA(1);
1083
1135
  }
1084
- this.state = 257;
1136
+ this.state = 265;
1085
1137
  this.match(CircuitScriptParser.T__0);
1086
- this.state = 258;
1138
+ this.state = 266;
1087
1139
  this.match(CircuitScriptParser.NEWLINE);
1088
- this.state = 259;
1140
+ this.state = 267;
1089
1141
  this.match(CircuitScriptParser.INDENT);
1090
- this.state = 262;
1142
+ this.state = 270;
1091
1143
  this.errorHandler.sync(this);
1092
1144
  _la = this.tokenStream.LA(1);
1093
1145
  do {
1094
1146
  {
1095
- this.state = 262;
1147
+ this.state = 270;
1096
1148
  this.errorHandler.sync(this);
1097
1149
  switch (this.tokenStream.LA(1)) {
1098
1150
  case CircuitScriptParser.NEWLINE:
1099
1151
  {
1100
- this.state = 260;
1152
+ this.state = 268;
1101
1153
  this.match(CircuitScriptParser.NEWLINE);
1102
1154
  }
1103
1155
  break;
1104
1156
  case CircuitScriptParser.INTEGER_VALUE:
1105
1157
  case CircuitScriptParser.STRING_VALUE:
1106
1158
  {
1107
- this.state = 261;
1159
+ this.state = 269;
1108
1160
  this.at_to_multiple_line_expr();
1109
1161
  }
1110
1162
  break;
@@ -1112,11 +1164,11 @@ export class CircuitScriptParser extends antlr.Parser {
1112
1164
  throw new antlr.NoViableAltException(this);
1113
1165
  }
1114
1166
  }
1115
- this.state = 264;
1167
+ this.state = 272;
1116
1168
  this.errorHandler.sync(this);
1117
1169
  _la = this.tokenStream.LA(1);
1118
1170
  } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
1119
- this.state = 266;
1171
+ this.state = 274;
1120
1172
  this.match(CircuitScriptParser.DEDENT);
1121
1173
  }
1122
1174
  }
@@ -1136,30 +1188,30 @@ export class CircuitScriptParser extends antlr.Parser {
1136
1188
  }
1137
1189
  at_to_multiple_line_expr() {
1138
1190
  let localContext = new At_to_multiple_line_exprContext(this.context, this.state);
1139
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_to_multiple_line_expr);
1191
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_to_multiple_line_expr);
1140
1192
  let _la;
1141
1193
  try {
1142
1194
  this.enterOuterAlt(localContext, 1);
1143
1195
  {
1144
- this.state = 268;
1196
+ this.state = 276;
1145
1197
  this.pin_select_expr2();
1146
- this.state = 269;
1198
+ this.state = 277;
1147
1199
  this.match(CircuitScriptParser.T__0);
1148
- this.state = 270;
1200
+ this.state = 278;
1149
1201
  this.at_to_multiple_line_expr_to_pin();
1150
- this.state = 275;
1202
+ this.state = 283;
1151
1203
  this.errorHandler.sync(this);
1152
1204
  _la = this.tokenStream.LA(1);
1153
1205
  while (_la === 2) {
1154
1206
  {
1155
1207
  {
1156
- this.state = 271;
1208
+ this.state = 279;
1157
1209
  this.match(CircuitScriptParser.T__1);
1158
- this.state = 272;
1210
+ this.state = 280;
1159
1211
  this.at_to_multiple_line_expr_to_pin();
1160
1212
  }
1161
1213
  }
1162
- this.state = 277;
1214
+ this.state = 285;
1163
1215
  this.errorHandler.sync(this);
1164
1216
  _la = this.tokenStream.LA(1);
1165
1217
  }
@@ -1181,12 +1233,12 @@ export class CircuitScriptParser extends antlr.Parser {
1181
1233
  }
1182
1234
  at_to_multiple_line_expr_to_pin() {
1183
1235
  let localContext = new At_to_multiple_line_expr_to_pinContext(this.context, this.state);
1184
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1236
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin);
1185
1237
  let _la;
1186
1238
  try {
1187
1239
  this.enterOuterAlt(localContext, 1);
1188
1240
  {
1189
- this.state = 278;
1241
+ this.state = 286;
1190
1242
  _la = this.tokenStream.LA(1);
1191
1243
  if (!(_la === 54 || _la === 57)) {
1192
1244
  this.errorHandler.recoverInline(this);
@@ -1213,30 +1265,30 @@ export class CircuitScriptParser extends antlr.Parser {
1213
1265
  }
1214
1266
  at_block() {
1215
1267
  let localContext = new At_blockContext(this.context, this.state);
1216
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block);
1268
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block);
1217
1269
  let _la;
1218
1270
  try {
1219
1271
  this.enterOuterAlt(localContext, 1);
1220
1272
  {
1221
- this.state = 280;
1273
+ this.state = 288;
1222
1274
  this.at_component_expr();
1223
- this.state = 281;
1275
+ this.state = 289;
1224
1276
  this.match(CircuitScriptParser.T__0);
1225
- this.state = 282;
1277
+ this.state = 290;
1226
1278
  this.match(CircuitScriptParser.NEWLINE);
1227
- this.state = 283;
1279
+ this.state = 291;
1228
1280
  this.match(CircuitScriptParser.INDENT);
1229
- this.state = 286;
1281
+ this.state = 294;
1230
1282
  this.errorHandler.sync(this);
1231
1283
  _la = this.tokenStream.LA(1);
1232
1284
  do {
1233
1285
  {
1234
- this.state = 286;
1286
+ this.state = 294;
1235
1287
  this.errorHandler.sync(this);
1236
1288
  switch (this.tokenStream.LA(1)) {
1237
1289
  case CircuitScriptParser.NEWLINE:
1238
1290
  {
1239
- this.state = 284;
1291
+ this.state = 292;
1240
1292
  this.match(CircuitScriptParser.NEWLINE);
1241
1293
  }
1242
1294
  break;
@@ -1264,7 +1316,7 @@ export class CircuitScriptParser extends antlr.Parser {
1264
1316
  case CircuitScriptParser.INTEGER_VALUE:
1265
1317
  case CircuitScriptParser.STRING_VALUE:
1266
1318
  {
1267
- this.state = 285;
1319
+ this.state = 293;
1268
1320
  this.at_block_expressions();
1269
1321
  }
1270
1322
  break;
@@ -1272,11 +1324,11 @@ export class CircuitScriptParser extends antlr.Parser {
1272
1324
  throw new antlr.NoViableAltException(this);
1273
1325
  }
1274
1326
  }
1275
- this.state = 288;
1327
+ this.state = 296;
1276
1328
  this.errorHandler.sync(this);
1277
1329
  _la = this.tokenStream.LA(1);
1278
1330
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1279
- this.state = 290;
1331
+ this.state = 298;
1280
1332
  this.match(CircuitScriptParser.DEDENT);
1281
1333
  }
1282
1334
  }
@@ -1296,9 +1348,9 @@ export class CircuitScriptParser extends antlr.Parser {
1296
1348
  }
1297
1349
  at_block_expressions() {
1298
1350
  let localContext = new At_block_expressionsContext(this.context, this.state);
1299
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_expressions);
1351
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1300
1352
  try {
1301
- this.state = 294;
1353
+ this.state = 302;
1302
1354
  this.errorHandler.sync(this);
1303
1355
  switch (this.tokenStream.LA(1)) {
1304
1356
  case CircuitScriptParser.T__3:
@@ -1324,7 +1376,7 @@ export class CircuitScriptParser extends antlr.Parser {
1324
1376
  case CircuitScriptParser.ID:
1325
1377
  this.enterOuterAlt(localContext, 1);
1326
1378
  {
1327
- this.state = 292;
1379
+ this.state = 300;
1328
1380
  this.expression();
1329
1381
  }
1330
1382
  break;
@@ -1332,7 +1384,7 @@ export class CircuitScriptParser extends antlr.Parser {
1332
1384
  case CircuitScriptParser.STRING_VALUE:
1333
1385
  this.enterOuterAlt(localContext, 2);
1334
1386
  {
1335
- this.state = 293;
1387
+ this.state = 301;
1336
1388
  this.at_block_pin_expr();
1337
1389
  }
1338
1390
  break;
@@ -1356,15 +1408,15 @@ export class CircuitScriptParser extends antlr.Parser {
1356
1408
  }
1357
1409
  at_block_pin_expr() {
1358
1410
  let localContext = new At_block_pin_exprContext(this.context, this.state);
1359
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_at_block_pin_expr);
1411
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expr);
1360
1412
  try {
1361
1413
  this.enterOuterAlt(localContext, 1);
1362
1414
  {
1363
- this.state = 296;
1415
+ this.state = 304;
1364
1416
  this.pin_select_expr2();
1365
- this.state = 297;
1417
+ this.state = 305;
1366
1418
  this.match(CircuitScriptParser.T__0);
1367
- this.state = 300;
1419
+ this.state = 308;
1368
1420
  this.errorHandler.sync(this);
1369
1421
  switch (this.tokenStream.LA(1)) {
1370
1422
  case CircuitScriptParser.T__3:
@@ -1390,13 +1442,13 @@ export class CircuitScriptParser extends antlr.Parser {
1390
1442
  case CircuitScriptParser.NOT_CONNECTED:
1391
1443
  case CircuitScriptParser.ID:
1392
1444
  {
1393
- this.state = 298;
1445
+ this.state = 306;
1394
1446
  this.at_block_pin_expression_simple();
1395
1447
  }
1396
1448
  break;
1397
1449
  case CircuitScriptParser.NEWLINE:
1398
1450
  {
1399
- this.state = 299;
1451
+ this.state = 307;
1400
1452
  this.at_block_pin_expression_complex();
1401
1453
  }
1402
1454
  break;
@@ -1421,11 +1473,11 @@ export class CircuitScriptParser extends antlr.Parser {
1421
1473
  }
1422
1474
  at_block_pin_expression_simple() {
1423
1475
  let localContext = new At_block_pin_expression_simpleContext(this.context, this.state);
1424
- this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1476
+ this.enterRule(localContext, 46, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1425
1477
  try {
1426
1478
  this.enterOuterAlt(localContext, 1);
1427
1479
  {
1428
- this.state = 304;
1480
+ this.state = 312;
1429
1481
  this.errorHandler.sync(this);
1430
1482
  switch (this.tokenStream.LA(1)) {
1431
1483
  case CircuitScriptParser.T__3:
@@ -1450,13 +1502,13 @@ export class CircuitScriptParser extends antlr.Parser {
1450
1502
  case CircuitScriptParser.Divide:
1451
1503
  case CircuitScriptParser.ID:
1452
1504
  {
1453
- this.state = 302;
1505
+ this.state = 310;
1454
1506
  this.expression();
1455
1507
  }
1456
1508
  break;
1457
1509
  case CircuitScriptParser.NOT_CONNECTED:
1458
1510
  {
1459
- this.state = 303;
1511
+ this.state = 311;
1460
1512
  this.match(CircuitScriptParser.NOT_CONNECTED);
1461
1513
  }
1462
1514
  break;
@@ -1481,11 +1533,11 @@ export class CircuitScriptParser extends antlr.Parser {
1481
1533
  }
1482
1534
  at_block_pin_expression_complex() {
1483
1535
  let localContext = new At_block_pin_expression_complexContext(this.context, this.state);
1484
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1536
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1485
1537
  try {
1486
1538
  this.enterOuterAlt(localContext, 1);
1487
1539
  {
1488
- this.state = 306;
1540
+ this.state = 314;
1489
1541
  this.expressions_block();
1490
1542
  }
1491
1543
  }
@@ -1505,11 +1557,11 @@ export class CircuitScriptParser extends antlr.Parser {
1505
1557
  }
1506
1558
  break_keyword() {
1507
1559
  let localContext = new Break_keywordContext(this.context, this.state);
1508
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_break_keyword);
1560
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_break_keyword);
1509
1561
  try {
1510
1562
  this.enterOuterAlt(localContext, 1);
1511
1563
  {
1512
- this.state = 308;
1564
+ this.state = 316;
1513
1565
  this.match(CircuitScriptParser.Break);
1514
1566
  }
1515
1567
  }
@@ -1529,11 +1581,11 @@ export class CircuitScriptParser extends antlr.Parser {
1529
1581
  }
1530
1582
  continue_keyword() {
1531
1583
  let localContext = new Continue_keywordContext(this.context, this.state);
1532
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_continue_keyword);
1584
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_continue_keyword);
1533
1585
  try {
1534
1586
  this.enterOuterAlt(localContext, 1);
1535
1587
  {
1536
- this.state = 310;
1588
+ this.state = 318;
1537
1589
  this.match(CircuitScriptParser.Continue);
1538
1590
  }
1539
1591
  }
@@ -1553,15 +1605,29 @@ export class CircuitScriptParser extends antlr.Parser {
1553
1605
  }
1554
1606
  assignment_expr() {
1555
1607
  let localContext = new Assignment_exprContext(this.context, this.state);
1556
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_assignment_expr);
1608
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_assignment_expr);
1557
1609
  try {
1558
1610
  this.enterOuterAlt(localContext, 1);
1559
1611
  {
1560
- this.state = 312;
1561
- this.atom_expr();
1562
- this.state = 313;
1612
+ this.state = 322;
1613
+ this.errorHandler.sync(this);
1614
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1615
+ case 1:
1616
+ {
1617
+ this.state = 320;
1618
+ this.atom_expr();
1619
+ }
1620
+ break;
1621
+ case 2:
1622
+ {
1623
+ this.state = 321;
1624
+ this.function_call_expr();
1625
+ }
1626
+ break;
1627
+ }
1628
+ this.state = 324;
1563
1629
  this.match(CircuitScriptParser.T__2);
1564
- this.state = 314;
1630
+ this.state = 325;
1565
1631
  this.data_expr(0);
1566
1632
  }
1567
1633
  }
@@ -1581,14 +1647,14 @@ export class CircuitScriptParser extends antlr.Parser {
1581
1647
  }
1582
1648
  operator_assignment_expr() {
1583
1649
  let localContext = new Operator_assignment_exprContext(this.context, this.state);
1584
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_operator_assignment_expr);
1650
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_operator_assignment_expr);
1585
1651
  let _la;
1586
1652
  try {
1587
1653
  this.enterOuterAlt(localContext, 1);
1588
1654
  {
1589
- this.state = 316;
1655
+ this.state = 327;
1590
1656
  this.atom_expr();
1591
- this.state = 317;
1657
+ this.state = 328;
1592
1658
  _la = this.tokenStream.LA(1);
1593
1659
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1594
1660
  this.errorHandler.recoverInline(this);
@@ -1597,7 +1663,7 @@ export class CircuitScriptParser extends antlr.Parser {
1597
1663
  this.errorHandler.reportMatch(this);
1598
1664
  this.consume();
1599
1665
  }
1600
- this.state = 318;
1666
+ this.state = 329;
1601
1667
  this.data_expr(0);
1602
1668
  }
1603
1669
  }
@@ -1617,15 +1683,15 @@ export class CircuitScriptParser extends antlr.Parser {
1617
1683
  }
1618
1684
  keyword_assignment_expr() {
1619
1685
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1620
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_keyword_assignment_expr);
1686
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_keyword_assignment_expr);
1621
1687
  try {
1622
1688
  this.enterOuterAlt(localContext, 1);
1623
1689
  {
1624
- this.state = 320;
1690
+ this.state = 331;
1625
1691
  this.match(CircuitScriptParser.ID);
1626
- this.state = 321;
1692
+ this.state = 332;
1627
1693
  this.match(CircuitScriptParser.T__2);
1628
- this.state = 322;
1694
+ this.state = 333;
1629
1695
  this.data_expr(0);
1630
1696
  }
1631
1697
  }
@@ -1645,50 +1711,50 @@ export class CircuitScriptParser extends antlr.Parser {
1645
1711
  }
1646
1712
  parameters() {
1647
1713
  let localContext = new ParametersContext(this.context, this.state);
1648
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_parameters);
1714
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_parameters);
1649
1715
  let _la;
1650
1716
  try {
1651
1717
  let alternative;
1652
- this.state = 347;
1718
+ this.state = 358;
1653
1719
  this.errorHandler.sync(this);
1654
- switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1720
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1655
1721
  case 1:
1656
1722
  this.enterOuterAlt(localContext, 1);
1657
1723
  {
1658
1724
  {
1659
- this.state = 324;
1725
+ this.state = 335;
1660
1726
  this.data_expr(0);
1661
- this.state = 329;
1727
+ this.state = 340;
1662
1728
  this.errorHandler.sync(this);
1663
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1729
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1664
1730
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1665
1731
  if (alternative === 1) {
1666
1732
  {
1667
1733
  {
1668
- this.state = 325;
1734
+ this.state = 336;
1669
1735
  this.match(CircuitScriptParser.T__1);
1670
- this.state = 326;
1736
+ this.state = 337;
1671
1737
  this.data_expr(0);
1672
1738
  }
1673
1739
  }
1674
1740
  }
1675
- this.state = 331;
1741
+ this.state = 342;
1676
1742
  this.errorHandler.sync(this);
1677
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 25, this.context);
1743
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1678
1744
  }
1679
- this.state = 336;
1745
+ this.state = 347;
1680
1746
  this.errorHandler.sync(this);
1681
1747
  _la = this.tokenStream.LA(1);
1682
1748
  while (_la === 2) {
1683
1749
  {
1684
1750
  {
1685
- this.state = 332;
1751
+ this.state = 343;
1686
1752
  this.match(CircuitScriptParser.T__1);
1687
- this.state = 333;
1753
+ this.state = 344;
1688
1754
  this.keyword_assignment_expr();
1689
1755
  }
1690
1756
  }
1691
- this.state = 338;
1757
+ this.state = 349;
1692
1758
  this.errorHandler.sync(this);
1693
1759
  _la = this.tokenStream.LA(1);
1694
1760
  }
@@ -1699,21 +1765,21 @@ export class CircuitScriptParser extends antlr.Parser {
1699
1765
  this.enterOuterAlt(localContext, 2);
1700
1766
  {
1701
1767
  {
1702
- this.state = 339;
1768
+ this.state = 350;
1703
1769
  this.keyword_assignment_expr();
1704
- this.state = 344;
1770
+ this.state = 355;
1705
1771
  this.errorHandler.sync(this);
1706
1772
  _la = this.tokenStream.LA(1);
1707
1773
  while (_la === 2) {
1708
1774
  {
1709
1775
  {
1710
- this.state = 340;
1776
+ this.state = 351;
1711
1777
  this.match(CircuitScriptParser.T__1);
1712
- this.state = 341;
1778
+ this.state = 352;
1713
1779
  this.keyword_assignment_expr();
1714
1780
  }
1715
1781
  }
1716
- this.state = 346;
1782
+ this.state = 357;
1717
1783
  this.errorHandler.sync(this);
1718
1784
  _la = this.tokenStream.LA(1);
1719
1785
  }
@@ -1738,15 +1804,15 @@ export class CircuitScriptParser extends antlr.Parser {
1738
1804
  }
1739
1805
  property_set_expr() {
1740
1806
  let localContext = new Property_set_exprContext(this.context, this.state);
1741
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_property_set_expr);
1807
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_property_set_expr);
1742
1808
  try {
1743
1809
  this.enterOuterAlt(localContext, 1);
1744
1810
  {
1745
- this.state = 349;
1811
+ this.state = 360;
1746
1812
  this.atom_expr();
1747
- this.state = 350;
1813
+ this.state = 361;
1748
1814
  this.match(CircuitScriptParser.T__2);
1749
- this.state = 351;
1815
+ this.state = 362;
1750
1816
  this.data_expr(0);
1751
1817
  }
1752
1818
  }
@@ -1766,17 +1832,17 @@ export class CircuitScriptParser extends antlr.Parser {
1766
1832
  }
1767
1833
  double_dot_property_set_expr() {
1768
1834
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1769
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_double_dot_property_set_expr);
1835
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_double_dot_property_set_expr);
1770
1836
  try {
1771
1837
  this.enterOuterAlt(localContext, 1);
1772
1838
  {
1773
- this.state = 353;
1839
+ this.state = 364;
1774
1840
  this.match(CircuitScriptParser.T__3);
1775
- this.state = 354;
1841
+ this.state = 365;
1776
1842
  this.match(CircuitScriptParser.ID);
1777
- this.state = 355;
1843
+ this.state = 366;
1778
1844
  this.match(CircuitScriptParser.T__2);
1779
- this.state = 356;
1845
+ this.state = 367;
1780
1846
  this.data_expr(0);
1781
1847
  }
1782
1848
  }
@@ -1802,26 +1868,26 @@ export class CircuitScriptParser extends antlr.Parser {
1802
1868
  let parentState = this.state;
1803
1869
  let localContext = new Data_exprContext(this.context, parentState);
1804
1870
  let previousContext = localContext;
1805
- let _startState = 62;
1806
- this.enterRecursionRule(localContext, 62, CircuitScriptParser.RULE_data_expr, _p);
1871
+ let _startState = 66;
1872
+ this.enterRecursionRule(localContext, 66, CircuitScriptParser.RULE_data_expr, _p);
1807
1873
  let _la;
1808
1874
  try {
1809
1875
  let alternative;
1810
1876
  this.enterOuterAlt(localContext, 1);
1811
1877
  {
1812
- this.state = 375;
1878
+ this.state = 386;
1813
1879
  this.errorHandler.sync(this);
1814
- switch (this.interpreter.adaptivePredict(this.tokenStream, 30, this.context)) {
1880
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1815
1881
  case 1:
1816
1882
  {
1817
1883
  localContext = new RoundedBracketsExprContext(localContext);
1818
1884
  this.context = localContext;
1819
1885
  previousContext = localContext;
1820
- this.state = 359;
1886
+ this.state = 370;
1821
1887
  this.match(CircuitScriptParser.OPEN_PAREN);
1822
- this.state = 360;
1888
+ this.state = 371;
1823
1889
  this.data_expr(0);
1824
- this.state = 361;
1890
+ this.state = 372;
1825
1891
  this.match(CircuitScriptParser.CLOSE_PAREN);
1826
1892
  }
1827
1893
  break;
@@ -1830,7 +1896,7 @@ export class CircuitScriptParser extends antlr.Parser {
1830
1896
  localContext = new ValueAtomExprContext(localContext);
1831
1897
  this.context = localContext;
1832
1898
  previousContext = localContext;
1833
- this.state = 365;
1899
+ this.state = 376;
1834
1900
  this.errorHandler.sync(this);
1835
1901
  switch (this.tokenStream.LA(1)) {
1836
1902
  case CircuitScriptParser.Minus:
@@ -1841,13 +1907,13 @@ export class CircuitScriptParser extends antlr.Parser {
1841
1907
  case CircuitScriptParser.STRING_VALUE:
1842
1908
  case CircuitScriptParser.PERCENTAGE_VALUE:
1843
1909
  {
1844
- this.state = 363;
1910
+ this.state = 374;
1845
1911
  this.value_expr();
1846
1912
  }
1847
1913
  break;
1848
1914
  case CircuitScriptParser.ID:
1849
1915
  {
1850
- this.state = 364;
1916
+ this.state = 375;
1851
1917
  this.atom_expr();
1852
1918
  }
1853
1919
  break;
@@ -1861,9 +1927,9 @@ export class CircuitScriptParser extends antlr.Parser {
1861
1927
  localContext = new UnaryOperatorExprContext(localContext);
1862
1928
  this.context = localContext;
1863
1929
  previousContext = localContext;
1864
- this.state = 367;
1930
+ this.state = 378;
1865
1931
  this.unary_operator();
1866
- this.state = 368;
1932
+ this.state = 379;
1867
1933
  this.data_expr(10);
1868
1934
  }
1869
1935
  break;
@@ -1872,7 +1938,7 @@ export class CircuitScriptParser extends antlr.Parser {
1872
1938
  localContext = new DataExprContext(localContext);
1873
1939
  this.context = localContext;
1874
1940
  previousContext = localContext;
1875
- this.state = 370;
1941
+ this.state = 381;
1876
1942
  this.create_component_expr();
1877
1943
  }
1878
1944
  break;
@@ -1881,7 +1947,7 @@ export class CircuitScriptParser extends antlr.Parser {
1881
1947
  localContext = new DataExprContext(localContext);
1882
1948
  this.context = localContext;
1883
1949
  previousContext = localContext;
1884
- this.state = 371;
1950
+ this.state = 382;
1885
1951
  this.create_graphic_expr();
1886
1952
  }
1887
1953
  break;
@@ -1890,7 +1956,7 @@ export class CircuitScriptParser extends antlr.Parser {
1890
1956
  localContext = new DataExprContext(localContext);
1891
1957
  this.context = localContext;
1892
1958
  previousContext = localContext;
1893
- this.state = 372;
1959
+ this.state = 383;
1894
1960
  this.create_module_expr();
1895
1961
  }
1896
1962
  break;
@@ -1899,7 +1965,7 @@ export class CircuitScriptParser extends antlr.Parser {
1899
1965
  localContext = new FunctionCallExprContext(localContext);
1900
1966
  this.context = localContext;
1901
1967
  previousContext = localContext;
1902
- this.state = 373;
1968
+ this.state = 384;
1903
1969
  this.function_call_expr();
1904
1970
  }
1905
1971
  break;
@@ -1908,15 +1974,15 @@ export class CircuitScriptParser extends antlr.Parser {
1908
1974
  localContext = new ArrayExprContext(localContext);
1909
1975
  this.context = localContext;
1910
1976
  previousContext = localContext;
1911
- this.state = 374;
1977
+ this.state = 385;
1912
1978
  this.array_expr();
1913
1979
  }
1914
1980
  break;
1915
1981
  }
1916
1982
  this.context.stop = this.tokenStream.LT(-1);
1917
- this.state = 392;
1983
+ this.state = 403;
1918
1984
  this.errorHandler.sync(this);
1919
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
1985
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1920
1986
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1921
1987
  if (alternative === 1) {
1922
1988
  if (this.parseListeners != null) {
@@ -1924,18 +1990,18 @@ export class CircuitScriptParser extends antlr.Parser {
1924
1990
  }
1925
1991
  previousContext = localContext;
1926
1992
  {
1927
- this.state = 390;
1993
+ this.state = 401;
1928
1994
  this.errorHandler.sync(this);
1929
- switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1995
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1930
1996
  case 1:
1931
1997
  {
1932
1998
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1933
1999
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1934
- this.state = 377;
2000
+ this.state = 388;
1935
2001
  if (!(this.precpred(this.context, 9))) {
1936
2002
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1937
2003
  }
1938
- this.state = 378;
2004
+ this.state = 389;
1939
2005
  _la = this.tokenStream.LA(1);
1940
2006
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1941
2007
  this.errorHandler.recoverInline(this);
@@ -1944,7 +2010,7 @@ export class CircuitScriptParser extends antlr.Parser {
1944
2010
  this.errorHandler.reportMatch(this);
1945
2011
  this.consume();
1946
2012
  }
1947
- this.state = 379;
2013
+ this.state = 390;
1948
2014
  this.data_expr(10);
1949
2015
  }
1950
2016
  break;
@@ -1952,11 +2018,11 @@ export class CircuitScriptParser extends antlr.Parser {
1952
2018
  {
1953
2019
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1954
2020
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1955
- this.state = 380;
2021
+ this.state = 391;
1956
2022
  if (!(this.precpred(this.context, 8))) {
1957
2023
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1958
2024
  }
1959
- this.state = 381;
2025
+ this.state = 392;
1960
2026
  _la = this.tokenStream.LA(1);
1961
2027
  if (!(_la === 42 || _la === 43)) {
1962
2028
  this.errorHandler.recoverInline(this);
@@ -1965,7 +2031,7 @@ export class CircuitScriptParser extends antlr.Parser {
1965
2031
  this.errorHandler.reportMatch(this);
1966
2032
  this.consume();
1967
2033
  }
1968
- this.state = 382;
2034
+ this.state = 393;
1969
2035
  this.data_expr(9);
1970
2036
  }
1971
2037
  break;
@@ -1973,13 +2039,13 @@ export class CircuitScriptParser extends antlr.Parser {
1973
2039
  {
1974
2040
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1975
2041
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1976
- this.state = 383;
2042
+ this.state = 394;
1977
2043
  if (!(this.precpred(this.context, 7))) {
1978
2044
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1979
2045
  }
1980
- this.state = 384;
2046
+ this.state = 395;
1981
2047
  this.binary_operator();
1982
- this.state = 385;
2048
+ this.state = 396;
1983
2049
  this.data_expr(8);
1984
2050
  }
1985
2051
  break;
@@ -1987,11 +2053,11 @@ export class CircuitScriptParser extends antlr.Parser {
1987
2053
  {
1988
2054
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1989
2055
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1990
- this.state = 387;
2056
+ this.state = 398;
1991
2057
  if (!(this.precpred(this.context, 6))) {
1992
2058
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1993
2059
  }
1994
- this.state = 388;
2060
+ this.state = 399;
1995
2061
  _la = this.tokenStream.LA(1);
1996
2062
  if (!(_la === 40 || _la === 41)) {
1997
2063
  this.errorHandler.recoverInline(this);
@@ -2000,16 +2066,16 @@ export class CircuitScriptParser extends antlr.Parser {
2000
2066
  this.errorHandler.reportMatch(this);
2001
2067
  this.consume();
2002
2068
  }
2003
- this.state = 389;
2069
+ this.state = 400;
2004
2070
  this.data_expr(7);
2005
2071
  }
2006
2072
  break;
2007
2073
  }
2008
2074
  }
2009
2075
  }
2010
- this.state = 394;
2076
+ this.state = 405;
2011
2077
  this.errorHandler.sync(this);
2012
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 32, this.context);
2078
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
2013
2079
  }
2014
2080
  }
2015
2081
  }
@@ -2029,12 +2095,12 @@ export class CircuitScriptParser extends antlr.Parser {
2029
2095
  }
2030
2096
  binary_operator() {
2031
2097
  let localContext = new Binary_operatorContext(this.context, this.state);
2032
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_binary_operator);
2098
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_binary_operator);
2033
2099
  let _la;
2034
2100
  try {
2035
2101
  this.enterOuterAlt(localContext, 1);
2036
2102
  {
2037
- this.state = 395;
2103
+ this.state = 406;
2038
2104
  _la = this.tokenStream.LA(1);
2039
2105
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
2040
2106
  this.errorHandler.recoverInline(this);
@@ -2061,12 +2127,12 @@ export class CircuitScriptParser extends antlr.Parser {
2061
2127
  }
2062
2128
  unary_operator() {
2063
2129
  let localContext = new Unary_operatorContext(this.context, this.state);
2064
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_unary_operator);
2130
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_unary_operator);
2065
2131
  let _la;
2066
2132
  try {
2067
2133
  this.enterOuterAlt(localContext, 1);
2068
2134
  {
2069
- this.state = 397;
2135
+ this.state = 408;
2070
2136
  _la = this.tokenStream.LA(1);
2071
2137
  if (!(_la === 31 || _la === 43)) {
2072
2138
  this.errorHandler.recoverInline(this);
@@ -2093,22 +2159,22 @@ export class CircuitScriptParser extends antlr.Parser {
2093
2159
  }
2094
2160
  value_expr() {
2095
2161
  let localContext = new Value_exprContext(this.context, this.state);
2096
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_value_expr);
2162
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_value_expr);
2097
2163
  let _la;
2098
2164
  try {
2099
2165
  this.enterOuterAlt(localContext, 1);
2100
2166
  {
2101
2167
  {
2102
- this.state = 400;
2168
+ this.state = 411;
2103
2169
  this.errorHandler.sync(this);
2104
2170
  _la = this.tokenStream.LA(1);
2105
2171
  if (_la === 43) {
2106
2172
  {
2107
- this.state = 399;
2173
+ this.state = 410;
2108
2174
  this.match(CircuitScriptParser.Minus);
2109
2175
  }
2110
2176
  }
2111
- this.state = 402;
2177
+ this.state = 413;
2112
2178
  _la = this.tokenStream.LA(1);
2113
2179
  if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
2114
2180
  this.errorHandler.recoverInline(this);
@@ -2136,45 +2202,45 @@ export class CircuitScriptParser extends antlr.Parser {
2136
2202
  }
2137
2203
  function_def_expr() {
2138
2204
  let localContext = new Function_def_exprContext(this.context, this.state);
2139
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_def_expr);
2205
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_def_expr);
2140
2206
  let _la;
2141
2207
  try {
2142
2208
  this.enterOuterAlt(localContext, 1);
2143
2209
  {
2144
- this.state = 404;
2210
+ this.state = 415;
2145
2211
  this.match(CircuitScriptParser.Define);
2146
- this.state = 405;
2212
+ this.state = 416;
2147
2213
  this.match(CircuitScriptParser.ID);
2148
- this.state = 406;
2214
+ this.state = 417;
2149
2215
  this.match(CircuitScriptParser.OPEN_PAREN);
2150
- this.state = 408;
2216
+ this.state = 419;
2151
2217
  this.errorHandler.sync(this);
2152
2218
  _la = this.tokenStream.LA(1);
2153
2219
  if (_la === 56) {
2154
2220
  {
2155
- this.state = 407;
2221
+ this.state = 418;
2156
2222
  this.function_args_expr();
2157
2223
  }
2158
2224
  }
2159
- this.state = 410;
2225
+ this.state = 421;
2160
2226
  this.match(CircuitScriptParser.CLOSE_PAREN);
2161
- this.state = 411;
2227
+ this.state = 422;
2162
2228
  this.match(CircuitScriptParser.T__0);
2163
- this.state = 412;
2229
+ this.state = 423;
2164
2230
  this.match(CircuitScriptParser.NEWLINE);
2165
- this.state = 413;
2231
+ this.state = 424;
2166
2232
  this.match(CircuitScriptParser.INDENT);
2167
- this.state = 416;
2233
+ this.state = 427;
2168
2234
  this.errorHandler.sync(this);
2169
2235
  _la = this.tokenStream.LA(1);
2170
2236
  do {
2171
2237
  {
2172
- this.state = 416;
2238
+ this.state = 427;
2173
2239
  this.errorHandler.sync(this);
2174
2240
  switch (this.tokenStream.LA(1)) {
2175
2241
  case CircuitScriptParser.NEWLINE:
2176
2242
  {
2177
- this.state = 414;
2243
+ this.state = 425;
2178
2244
  this.match(CircuitScriptParser.NEWLINE);
2179
2245
  }
2180
2246
  break;
@@ -2201,7 +2267,7 @@ export class CircuitScriptParser extends antlr.Parser {
2201
2267
  case CircuitScriptParser.Divide:
2202
2268
  case CircuitScriptParser.ID:
2203
2269
  {
2204
- this.state = 415;
2270
+ this.state = 426;
2205
2271
  this.function_expr();
2206
2272
  }
2207
2273
  break;
@@ -2209,11 +2275,11 @@ export class CircuitScriptParser extends antlr.Parser {
2209
2275
  throw new antlr.NoViableAltException(this);
2210
2276
  }
2211
2277
  }
2212
- this.state = 418;
2278
+ this.state = 429;
2213
2279
  this.errorHandler.sync(this);
2214
2280
  _la = this.tokenStream.LA(1);
2215
2281
  } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2216
- this.state = 420;
2282
+ this.state = 431;
2217
2283
  this.match(CircuitScriptParser.DEDENT);
2218
2284
  }
2219
2285
  }
@@ -2233,9 +2299,9 @@ export class CircuitScriptParser extends antlr.Parser {
2233
2299
  }
2234
2300
  function_expr() {
2235
2301
  let localContext = new Function_exprContext(this.context, this.state);
2236
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2302
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_expr);
2237
2303
  try {
2238
- this.state = 424;
2304
+ this.state = 435;
2239
2305
  this.errorHandler.sync(this);
2240
2306
  switch (this.tokenStream.LA(1)) {
2241
2307
  case CircuitScriptParser.T__3:
@@ -2261,14 +2327,14 @@ export class CircuitScriptParser extends antlr.Parser {
2261
2327
  case CircuitScriptParser.ID:
2262
2328
  this.enterOuterAlt(localContext, 1);
2263
2329
  {
2264
- this.state = 422;
2330
+ this.state = 433;
2265
2331
  this.expression();
2266
2332
  }
2267
2333
  break;
2268
2334
  case CircuitScriptParser.Return:
2269
2335
  this.enterOuterAlt(localContext, 2);
2270
2336
  {
2271
- this.state = 423;
2337
+ this.state = 434;
2272
2338
  this.function_return_expr();
2273
2339
  }
2274
2340
  break;
@@ -2292,53 +2358,53 @@ export class CircuitScriptParser extends antlr.Parser {
2292
2358
  }
2293
2359
  function_args_expr() {
2294
2360
  let localContext = new Function_args_exprContext(this.context, this.state);
2295
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_args_expr);
2361
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_function_args_expr);
2296
2362
  let _la;
2297
2363
  try {
2298
2364
  let alternative;
2299
- this.state = 455;
2365
+ this.state = 466;
2300
2366
  this.errorHandler.sync(this);
2301
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context)) {
2367
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2302
2368
  case 1:
2303
2369
  this.enterOuterAlt(localContext, 1);
2304
2370
  {
2305
- this.state = 426;
2371
+ this.state = 437;
2306
2372
  this.match(CircuitScriptParser.ID);
2307
- this.state = 431;
2373
+ this.state = 442;
2308
2374
  this.errorHandler.sync(this);
2309
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2375
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2310
2376
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2311
2377
  if (alternative === 1) {
2312
2378
  {
2313
2379
  {
2314
- this.state = 427;
2380
+ this.state = 438;
2315
2381
  this.match(CircuitScriptParser.T__1);
2316
- this.state = 428;
2382
+ this.state = 439;
2317
2383
  this.match(CircuitScriptParser.ID);
2318
2384
  }
2319
2385
  }
2320
2386
  }
2321
- this.state = 433;
2387
+ this.state = 444;
2322
2388
  this.errorHandler.sync(this);
2323
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 38, this.context);
2389
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2324
2390
  }
2325
- this.state = 440;
2391
+ this.state = 451;
2326
2392
  this.errorHandler.sync(this);
2327
2393
  _la = this.tokenStream.LA(1);
2328
2394
  while (_la === 2) {
2329
2395
  {
2330
2396
  {
2331
- this.state = 434;
2397
+ this.state = 445;
2332
2398
  this.match(CircuitScriptParser.T__1);
2333
- this.state = 435;
2399
+ this.state = 446;
2334
2400
  this.match(CircuitScriptParser.ID);
2335
- this.state = 436;
2401
+ this.state = 447;
2336
2402
  this.match(CircuitScriptParser.T__2);
2337
- this.state = 437;
2403
+ this.state = 448;
2338
2404
  this.value_expr();
2339
2405
  }
2340
2406
  }
2341
- this.state = 442;
2407
+ this.state = 453;
2342
2408
  this.errorHandler.sync(this);
2343
2409
  _la = this.tokenStream.LA(1);
2344
2410
  }
@@ -2347,29 +2413,29 @@ export class CircuitScriptParser extends antlr.Parser {
2347
2413
  case 2:
2348
2414
  this.enterOuterAlt(localContext, 2);
2349
2415
  {
2350
- this.state = 443;
2416
+ this.state = 454;
2351
2417
  this.match(CircuitScriptParser.ID);
2352
- this.state = 444;
2418
+ this.state = 455;
2353
2419
  this.match(CircuitScriptParser.T__2);
2354
- this.state = 445;
2420
+ this.state = 456;
2355
2421
  this.value_expr();
2356
- this.state = 452;
2422
+ this.state = 463;
2357
2423
  this.errorHandler.sync(this);
2358
2424
  _la = this.tokenStream.LA(1);
2359
2425
  while (_la === 2) {
2360
2426
  {
2361
2427
  {
2362
- this.state = 446;
2428
+ this.state = 457;
2363
2429
  this.match(CircuitScriptParser.T__1);
2364
- this.state = 447;
2430
+ this.state = 458;
2365
2431
  this.match(CircuitScriptParser.ID);
2366
- this.state = 448;
2432
+ this.state = 459;
2367
2433
  this.match(CircuitScriptParser.T__2);
2368
- this.state = 449;
2434
+ this.state = 460;
2369
2435
  this.value_expr();
2370
2436
  }
2371
2437
  }
2372
- this.state = 454;
2438
+ this.state = 465;
2373
2439
  this.errorHandler.sync(this);
2374
2440
  _la = this.tokenStream.LA(1);
2375
2441
  }
@@ -2393,30 +2459,30 @@ export class CircuitScriptParser extends antlr.Parser {
2393
2459
  }
2394
2460
  atom_expr() {
2395
2461
  let localContext = new Atom_exprContext(this.context, this.state);
2396
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_atom_expr);
2462
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_atom_expr);
2397
2463
  try {
2398
2464
  let alternative;
2399
2465
  this.enterOuterAlt(localContext, 1);
2400
2466
  {
2401
- this.state = 457;
2467
+ this.state = 468;
2402
2468
  this.match(CircuitScriptParser.ID);
2403
- this.state = 462;
2469
+ this.state = 473;
2404
2470
  this.errorHandler.sync(this);
2405
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2471
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2406
2472
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2407
2473
  if (alternative === 1) {
2408
2474
  {
2409
2475
  {
2410
- this.state = 458;
2476
+ this.state = 469;
2411
2477
  this.match(CircuitScriptParser.T__4);
2412
- this.state = 459;
2478
+ this.state = 470;
2413
2479
  this.match(CircuitScriptParser.ID);
2414
2480
  }
2415
2481
  }
2416
2482
  }
2417
- this.state = 464;
2483
+ this.state = 475;
2418
2484
  this.errorHandler.sync(this);
2419
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2485
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2420
2486
  }
2421
2487
  }
2422
2488
  }
@@ -2436,36 +2502,36 @@ export class CircuitScriptParser extends antlr.Parser {
2436
2502
  }
2437
2503
  trailer_expr() {
2438
2504
  let localContext = new Trailer_exprContext(this.context, this.state);
2439
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2505
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr);
2440
2506
  let _la;
2441
2507
  try {
2442
- this.state = 472;
2508
+ this.state = 483;
2443
2509
  this.errorHandler.sync(this);
2444
2510
  switch (this.tokenStream.LA(1)) {
2445
2511
  case CircuitScriptParser.OPEN_PAREN:
2446
2512
  this.enterOuterAlt(localContext, 1);
2447
2513
  {
2448
- this.state = 465;
2514
+ this.state = 476;
2449
2515
  this.match(CircuitScriptParser.OPEN_PAREN);
2450
- this.state = 467;
2516
+ this.state = 478;
2451
2517
  this.errorHandler.sync(this);
2452
2518
  _la = this.tokenStream.LA(1);
2453
2519
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2454
2520
  {
2455
- this.state = 466;
2521
+ this.state = 477;
2456
2522
  this.parameters();
2457
2523
  }
2458
2524
  }
2459
- this.state = 469;
2525
+ this.state = 480;
2460
2526
  this.match(CircuitScriptParser.CLOSE_PAREN);
2461
2527
  }
2462
2528
  break;
2463
2529
  case CircuitScriptParser.T__4:
2464
2530
  this.enterOuterAlt(localContext, 2);
2465
2531
  {
2466
- this.state = 470;
2532
+ this.state = 481;
2467
2533
  this.match(CircuitScriptParser.T__4);
2468
- this.state = 471;
2534
+ this.state = 482;
2469
2535
  this.match(CircuitScriptParser.ID);
2470
2536
  }
2471
2537
  break;
@@ -2489,24 +2555,24 @@ export class CircuitScriptParser extends antlr.Parser {
2489
2555
  }
2490
2556
  function_call_expr() {
2491
2557
  let localContext = new Function_call_exprContext(this.context, this.state);
2492
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_function_call_expr);
2558
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_call_expr);
2493
2559
  let _la;
2494
2560
  try {
2495
2561
  let alternative;
2496
2562
  this.enterOuterAlt(localContext, 1);
2497
2563
  {
2498
- this.state = 475;
2564
+ this.state = 486;
2499
2565
  this.errorHandler.sync(this);
2500
2566
  _la = this.tokenStream.LA(1);
2501
2567
  if (_la === 42 || _la === 44) {
2502
2568
  {
2503
- this.state = 474;
2569
+ this.state = 485;
2504
2570
  this.net_namespace_expr();
2505
2571
  }
2506
2572
  }
2507
- this.state = 477;
2573
+ this.state = 488;
2508
2574
  this.match(CircuitScriptParser.ID);
2509
- this.state = 479;
2575
+ this.state = 490;
2510
2576
  this.errorHandler.sync(this);
2511
2577
  alternative = 1;
2512
2578
  do {
@@ -2514,7 +2580,7 @@ export class CircuitScriptParser extends antlr.Parser {
2514
2580
  case 1:
2515
2581
  {
2516
2582
  {
2517
- this.state = 478;
2583
+ this.state = 489;
2518
2584
  this.trailer_expr();
2519
2585
  }
2520
2586
  }
@@ -2522,9 +2588,9 @@ export class CircuitScriptParser extends antlr.Parser {
2522
2588
  default:
2523
2589
  throw new antlr.NoViableAltException(this);
2524
2590
  }
2525
- this.state = 481;
2591
+ this.state = 492;
2526
2592
  this.errorHandler.sync(this);
2527
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2593
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2528
2594
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2529
2595
  }
2530
2596
  }
@@ -2544,28 +2610,28 @@ export class CircuitScriptParser extends antlr.Parser {
2544
2610
  }
2545
2611
  net_namespace_expr() {
2546
2612
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2547
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_net_namespace_expr);
2613
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_net_namespace_expr);
2548
2614
  let _la;
2549
2615
  try {
2550
2616
  this.enterOuterAlt(localContext, 1);
2551
2617
  {
2552
- this.state = 484;
2618
+ this.state = 495;
2553
2619
  this.errorHandler.sync(this);
2554
2620
  _la = this.tokenStream.LA(1);
2555
2621
  if (_la === 42) {
2556
2622
  {
2557
- this.state = 483;
2623
+ this.state = 494;
2558
2624
  this.match(CircuitScriptParser.Addition);
2559
2625
  }
2560
2626
  }
2561
- this.state = 486;
2627
+ this.state = 497;
2562
2628
  this.match(CircuitScriptParser.Divide);
2563
- this.state = 488;
2629
+ this.state = 499;
2564
2630
  this.errorHandler.sync(this);
2565
- switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2631
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2566
2632
  case 1:
2567
2633
  {
2568
- this.state = 487;
2634
+ this.state = 498;
2569
2635
  this.data_expr(0);
2570
2636
  }
2571
2637
  break;
@@ -2588,13 +2654,13 @@ export class CircuitScriptParser extends antlr.Parser {
2588
2654
  }
2589
2655
  function_return_expr() {
2590
2656
  let localContext = new Function_return_exprContext(this.context, this.state);
2591
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_return_expr);
2657
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_function_return_expr);
2592
2658
  try {
2593
2659
  this.enterOuterAlt(localContext, 1);
2594
2660
  {
2595
- this.state = 490;
2661
+ this.state = 501;
2596
2662
  this.match(CircuitScriptParser.Return);
2597
- this.state = 491;
2663
+ this.state = 502;
2598
2664
  this.data_expr(0);
2599
2665
  }
2600
2666
  }
@@ -2614,15 +2680,15 @@ export class CircuitScriptParser extends antlr.Parser {
2614
2680
  }
2615
2681
  property_block_expr() {
2616
2682
  let localContext = new Property_block_exprContext(this.context, this.state);
2617
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_property_block_expr);
2683
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_block_expr);
2618
2684
  try {
2619
2685
  this.enterOuterAlt(localContext, 1);
2620
2686
  {
2621
- this.state = 493;
2687
+ this.state = 504;
2622
2688
  this.property_key_expr();
2623
- this.state = 494;
2689
+ this.state = 505;
2624
2690
  this.match(CircuitScriptParser.T__0);
2625
- this.state = 495;
2691
+ this.state = 506;
2626
2692
  this.expressions_block();
2627
2693
  }
2628
2694
  }
@@ -2642,32 +2708,32 @@ export class CircuitScriptParser extends antlr.Parser {
2642
2708
  }
2643
2709
  create_component_expr() {
2644
2710
  let localContext = new Create_component_exprContext(this.context, this.state);
2645
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_create_component_expr);
2711
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_component_expr);
2646
2712
  let _la;
2647
2713
  try {
2648
2714
  this.enterOuterAlt(localContext, 1);
2649
2715
  {
2650
- this.state = 497;
2716
+ this.state = 508;
2651
2717
  this.match(CircuitScriptParser.Create);
2652
- this.state = 498;
2718
+ this.state = 509;
2653
2719
  this.match(CircuitScriptParser.Component);
2654
- this.state = 499;
2720
+ this.state = 510;
2655
2721
  this.match(CircuitScriptParser.T__0);
2656
- this.state = 500;
2722
+ this.state = 511;
2657
2723
  this.match(CircuitScriptParser.NEWLINE);
2658
- this.state = 501;
2724
+ this.state = 512;
2659
2725
  this.match(CircuitScriptParser.INDENT);
2660
- this.state = 504;
2726
+ this.state = 515;
2661
2727
  this.errorHandler.sync(this);
2662
2728
  _la = this.tokenStream.LA(1);
2663
2729
  do {
2664
2730
  {
2665
- this.state = 504;
2731
+ this.state = 515;
2666
2732
  this.errorHandler.sync(this);
2667
2733
  switch (this.tokenStream.LA(1)) {
2668
2734
  case CircuitScriptParser.NEWLINE:
2669
2735
  {
2670
- this.state = 502;
2736
+ this.state = 513;
2671
2737
  this.match(CircuitScriptParser.NEWLINE);
2672
2738
  }
2673
2739
  break;
@@ -2675,7 +2741,7 @@ export class CircuitScriptParser extends antlr.Parser {
2675
2741
  case CircuitScriptParser.INTEGER_VALUE:
2676
2742
  case CircuitScriptParser.STRING_VALUE:
2677
2743
  {
2678
- this.state = 503;
2744
+ this.state = 514;
2679
2745
  this.property_expr();
2680
2746
  }
2681
2747
  break;
@@ -2683,11 +2749,11 @@ export class CircuitScriptParser extends antlr.Parser {
2683
2749
  throw new antlr.NoViableAltException(this);
2684
2750
  }
2685
2751
  }
2686
- this.state = 506;
2752
+ this.state = 517;
2687
2753
  this.errorHandler.sync(this);
2688
2754
  _la = this.tokenStream.LA(1);
2689
2755
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2690
- this.state = 508;
2756
+ this.state = 519;
2691
2757
  this.match(CircuitScriptParser.DEDENT);
2692
2758
  }
2693
2759
  }
@@ -2707,26 +2773,26 @@ export class CircuitScriptParser extends antlr.Parser {
2707
2773
  }
2708
2774
  graphic_expressions_block() {
2709
2775
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2710
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_graphic_expressions_block);
2776
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_graphic_expressions_block);
2711
2777
  let _la;
2712
2778
  try {
2713
2779
  this.enterOuterAlt(localContext, 1);
2714
2780
  {
2715
- this.state = 510;
2781
+ this.state = 521;
2716
2782
  this.match(CircuitScriptParser.NEWLINE);
2717
- this.state = 511;
2783
+ this.state = 522;
2718
2784
  this.match(CircuitScriptParser.INDENT);
2719
- this.state = 514;
2785
+ this.state = 525;
2720
2786
  this.errorHandler.sync(this);
2721
2787
  _la = this.tokenStream.LA(1);
2722
2788
  do {
2723
2789
  {
2724
- this.state = 514;
2790
+ this.state = 525;
2725
2791
  this.errorHandler.sync(this);
2726
2792
  switch (this.tokenStream.LA(1)) {
2727
2793
  case CircuitScriptParser.NEWLINE:
2728
2794
  {
2729
- this.state = 512;
2795
+ this.state = 523;
2730
2796
  this.match(CircuitScriptParser.NEWLINE);
2731
2797
  }
2732
2798
  break;
@@ -2734,7 +2800,7 @@ export class CircuitScriptParser extends antlr.Parser {
2734
2800
  case CircuitScriptParser.For:
2735
2801
  case CircuitScriptParser.ID:
2736
2802
  {
2737
- this.state = 513;
2803
+ this.state = 524;
2738
2804
  this.graphic_expr();
2739
2805
  }
2740
2806
  break;
@@ -2742,11 +2808,11 @@ export class CircuitScriptParser extends antlr.Parser {
2742
2808
  throw new antlr.NoViableAltException(this);
2743
2809
  }
2744
2810
  }
2745
- this.state = 516;
2811
+ this.state = 527;
2746
2812
  this.errorHandler.sync(this);
2747
2813
  _la = this.tokenStream.LA(1);
2748
2814
  } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2749
- this.state = 518;
2815
+ this.state = 529;
2750
2816
  this.match(CircuitScriptParser.DEDENT);
2751
2817
  }
2752
2818
  }
@@ -2766,31 +2832,31 @@ export class CircuitScriptParser extends antlr.Parser {
2766
2832
  }
2767
2833
  create_graphic_expr() {
2768
2834
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2769
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_graphic_expr);
2835
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_graphic_expr);
2770
2836
  let _la;
2771
2837
  try {
2772
2838
  this.enterOuterAlt(localContext, 1);
2773
2839
  {
2774
- this.state = 520;
2840
+ this.state = 531;
2775
2841
  this.match(CircuitScriptParser.Create);
2776
- this.state = 521;
2842
+ this.state = 532;
2777
2843
  this.match(CircuitScriptParser.Graphic);
2778
- this.state = 525;
2844
+ this.state = 536;
2779
2845
  this.errorHandler.sync(this);
2780
2846
  _la = this.tokenStream.LA(1);
2781
2847
  if (_la === 52) {
2782
2848
  {
2783
- this.state = 522;
2849
+ this.state = 533;
2784
2850
  this.match(CircuitScriptParser.OPEN_PAREN);
2785
- this.state = 523;
2851
+ this.state = 534;
2786
2852
  this.match(CircuitScriptParser.ID);
2787
- this.state = 524;
2853
+ this.state = 535;
2788
2854
  this.match(CircuitScriptParser.CLOSE_PAREN);
2789
2855
  }
2790
2856
  }
2791
- this.state = 527;
2857
+ this.state = 538;
2792
2858
  this.match(CircuitScriptParser.T__0);
2793
- this.state = 528;
2859
+ this.state = 539;
2794
2860
  this.graphic_expressions_block();
2795
2861
  }
2796
2862
  }
@@ -2810,54 +2876,54 @@ export class CircuitScriptParser extends antlr.Parser {
2810
2876
  }
2811
2877
  create_module_expr() {
2812
2878
  let localContext = new Create_module_exprContext(this.context, this.state);
2813
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_module_expr);
2879
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_create_module_expr);
2814
2880
  let _la;
2815
2881
  try {
2816
2882
  this.enterOuterAlt(localContext, 1);
2817
2883
  {
2818
- this.state = 530;
2884
+ this.state = 541;
2819
2885
  this.match(CircuitScriptParser.Create);
2820
- this.state = 531;
2886
+ this.state = 542;
2821
2887
  this.match(CircuitScriptParser.Module);
2822
- this.state = 532;
2888
+ this.state = 543;
2823
2889
  this.match(CircuitScriptParser.T__0);
2824
- this.state = 533;
2890
+ this.state = 544;
2825
2891
  this.match(CircuitScriptParser.NEWLINE);
2826
- this.state = 534;
2892
+ this.state = 545;
2827
2893
  this.match(CircuitScriptParser.INDENT);
2828
- this.state = 538;
2894
+ this.state = 549;
2829
2895
  this.errorHandler.sync(this);
2830
2896
  _la = this.tokenStream.LA(1);
2831
2897
  do {
2832
2898
  {
2833
- this.state = 538;
2899
+ this.state = 549;
2834
2900
  this.errorHandler.sync(this);
2835
- switch (this.interpreter.adaptivePredict(this.tokenStream, 54, this.context)) {
2901
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2836
2902
  case 1:
2837
2903
  {
2838
- this.state = 535;
2904
+ this.state = 546;
2839
2905
  this.match(CircuitScriptParser.NEWLINE);
2840
2906
  }
2841
2907
  break;
2842
2908
  case 2:
2843
2909
  {
2844
- this.state = 536;
2910
+ this.state = 547;
2845
2911
  this.property_expr();
2846
2912
  }
2847
2913
  break;
2848
2914
  case 3:
2849
2915
  {
2850
- this.state = 537;
2916
+ this.state = 548;
2851
2917
  this.property_block_expr();
2852
2918
  }
2853
2919
  break;
2854
2920
  }
2855
2921
  }
2856
- this.state = 540;
2922
+ this.state = 551;
2857
2923
  this.errorHandler.sync(this);
2858
2924
  _la = this.tokenStream.LA(1);
2859
2925
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2860
- this.state = 542;
2926
+ this.state = 553;
2861
2927
  this.match(CircuitScriptParser.DEDENT);
2862
2928
  }
2863
2929
  }
@@ -2877,27 +2943,27 @@ export class CircuitScriptParser extends antlr.Parser {
2877
2943
  }
2878
2944
  nested_properties_inner() {
2879
2945
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2880
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_nested_properties_inner);
2946
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_nested_properties_inner);
2881
2947
  let _la;
2882
2948
  try {
2883
2949
  this.enterOuterAlt(localContext, 1);
2884
2950
  {
2885
2951
  {
2886
- this.state = 544;
2952
+ this.state = 555;
2887
2953
  this.match(CircuitScriptParser.NEWLINE);
2888
- this.state = 545;
2954
+ this.state = 556;
2889
2955
  this.match(CircuitScriptParser.INDENT);
2890
- this.state = 548;
2956
+ this.state = 559;
2891
2957
  this.errorHandler.sync(this);
2892
2958
  _la = this.tokenStream.LA(1);
2893
2959
  do {
2894
2960
  {
2895
- this.state = 548;
2961
+ this.state = 559;
2896
2962
  this.errorHandler.sync(this);
2897
2963
  switch (this.tokenStream.LA(1)) {
2898
2964
  case CircuitScriptParser.NEWLINE:
2899
2965
  {
2900
- this.state = 546;
2966
+ this.state = 557;
2901
2967
  this.match(CircuitScriptParser.NEWLINE);
2902
2968
  }
2903
2969
  break;
@@ -2905,7 +2971,7 @@ export class CircuitScriptParser extends antlr.Parser {
2905
2971
  case CircuitScriptParser.INTEGER_VALUE:
2906
2972
  case CircuitScriptParser.STRING_VALUE:
2907
2973
  {
2908
- this.state = 547;
2974
+ this.state = 558;
2909
2975
  this.property_expr();
2910
2976
  }
2911
2977
  break;
@@ -2913,11 +2979,11 @@ export class CircuitScriptParser extends antlr.Parser {
2913
2979
  throw new antlr.NoViableAltException(this);
2914
2980
  }
2915
2981
  }
2916
- this.state = 550;
2982
+ this.state = 561;
2917
2983
  this.errorHandler.sync(this);
2918
2984
  _la = this.tokenStream.LA(1);
2919
2985
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2920
- this.state = 552;
2986
+ this.state = 563;
2921
2987
  this.match(CircuitScriptParser.DEDENT);
2922
2988
  }
2923
2989
  }
@@ -2938,10 +3004,10 @@ export class CircuitScriptParser extends antlr.Parser {
2938
3004
  }
2939
3005
  graphic_expr() {
2940
3006
  let localContext = new Graphic_exprContext(this.context, this.state);
2941
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_graphic_expr);
3007
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2942
3008
  let _la;
2943
3009
  try {
2944
- this.state = 580;
3010
+ this.state = 591;
2945
3011
  this.errorHandler.sync(this);
2946
3012
  switch (this.tokenStream.LA(1)) {
2947
3013
  case CircuitScriptParser.Pin:
@@ -2949,7 +3015,7 @@ export class CircuitScriptParser extends antlr.Parser {
2949
3015
  localContext = new GraphicCommandExprContext(localContext);
2950
3016
  this.enterOuterAlt(localContext, 1);
2951
3017
  {
2952
- this.state = 554;
3018
+ this.state = 565;
2953
3019
  localContext._command = this.tokenStream.LT(1);
2954
3020
  _la = this.tokenStream.LA(1);
2955
3021
  if (!(_la === 15 || _la === 56)) {
@@ -2959,37 +3025,37 @@ export class CircuitScriptParser extends antlr.Parser {
2959
3025
  this.errorHandler.reportMatch(this);
2960
3026
  this.consume();
2961
3027
  }
2962
- this.state = 556;
3028
+ this.state = 567;
2963
3029
  this.errorHandler.sync(this);
2964
3030
  _la = this.tokenStream.LA(1);
2965
3031
  if (_la === 1) {
2966
3032
  {
2967
- this.state = 555;
3033
+ this.state = 566;
2968
3034
  this.match(CircuitScriptParser.T__0);
2969
3035
  }
2970
3036
  }
2971
- this.state = 564;
3037
+ this.state = 575;
2972
3038
  this.errorHandler.sync(this);
2973
- switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
3039
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2974
3040
  case 1:
2975
3041
  {
2976
- this.state = 558;
3042
+ this.state = 569;
2977
3043
  this.parameters();
2978
3044
  }
2979
3045
  break;
2980
3046
  case 2:
2981
3047
  {
2982
- this.state = 559;
3048
+ this.state = 570;
2983
3049
  this.match(CircuitScriptParser.OPEN_PAREN);
2984
- this.state = 560;
3050
+ this.state = 571;
2985
3051
  this.parameters();
2986
- this.state = 561;
3052
+ this.state = 572;
2987
3053
  this.match(CircuitScriptParser.CLOSE_PAREN);
2988
3054
  }
2989
3055
  break;
2990
3056
  case 3:
2991
3057
  {
2992
- this.state = 563;
3058
+ this.state = 574;
2993
3059
  this.nested_properties_inner();
2994
3060
  }
2995
3061
  break;
@@ -3000,33 +3066,33 @@ export class CircuitScriptParser extends antlr.Parser {
3000
3066
  localContext = new GraphicForExprContext(localContext);
3001
3067
  this.enterOuterAlt(localContext, 2);
3002
3068
  {
3003
- this.state = 566;
3069
+ this.state = 577;
3004
3070
  this.match(CircuitScriptParser.For);
3005
- this.state = 567;
3071
+ this.state = 578;
3006
3072
  this.match(CircuitScriptParser.ID);
3007
- this.state = 572;
3073
+ this.state = 583;
3008
3074
  this.errorHandler.sync(this);
3009
3075
  _la = this.tokenStream.LA(1);
3010
3076
  while (_la === 2) {
3011
3077
  {
3012
3078
  {
3013
- this.state = 568;
3079
+ this.state = 579;
3014
3080
  this.match(CircuitScriptParser.T__1);
3015
- this.state = 569;
3081
+ this.state = 580;
3016
3082
  this.match(CircuitScriptParser.ID);
3017
3083
  }
3018
3084
  }
3019
- this.state = 574;
3085
+ this.state = 585;
3020
3086
  this.errorHandler.sync(this);
3021
3087
  _la = this.tokenStream.LA(1);
3022
3088
  }
3023
- this.state = 575;
3089
+ this.state = 586;
3024
3090
  this.match(CircuitScriptParser.In);
3025
- this.state = 576;
3091
+ this.state = 587;
3026
3092
  this.data_expr(0);
3027
- this.state = 577;
3093
+ this.state = 588;
3028
3094
  this.match(CircuitScriptParser.T__0);
3029
- this.state = 578;
3095
+ this.state = 589;
3030
3096
  this.graphic_expressions_block();
3031
3097
  }
3032
3098
  break;
@@ -3050,15 +3116,15 @@ export class CircuitScriptParser extends antlr.Parser {
3050
3116
  }
3051
3117
  property_expr() {
3052
3118
  let localContext = new Property_exprContext(this.context, this.state);
3053
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_property_expr);
3119
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
3054
3120
  try {
3055
3121
  this.enterOuterAlt(localContext, 1);
3056
3122
  {
3057
- this.state = 582;
3123
+ this.state = 593;
3058
3124
  this.property_key_expr();
3059
- this.state = 583;
3125
+ this.state = 594;
3060
3126
  this.match(CircuitScriptParser.T__0);
3061
- this.state = 584;
3127
+ this.state = 595;
3062
3128
  this.property_value_expr();
3063
3129
  }
3064
3130
  }
@@ -3078,12 +3144,12 @@ export class CircuitScriptParser extends antlr.Parser {
3078
3144
  }
3079
3145
  property_key_expr() {
3080
3146
  let localContext = new Property_key_exprContext(this.context, this.state);
3081
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_key_expr);
3147
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_key_expr);
3082
3148
  let _la;
3083
3149
  try {
3084
3150
  this.enterOuterAlt(localContext, 1);
3085
3151
  {
3086
- this.state = 586;
3152
+ this.state = 597;
3087
3153
  _la = this.tokenStream.LA(1);
3088
3154
  if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
3089
3155
  this.errorHandler.recoverInline(this);
@@ -3110,17 +3176,17 @@ export class CircuitScriptParser extends antlr.Parser {
3110
3176
  }
3111
3177
  property_value_expr() {
3112
3178
  let localContext = new Property_value_exprContext(this.context, this.state);
3113
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_value_expr);
3179
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3114
3180
  let _la;
3115
3181
  try {
3116
- this.state = 597;
3182
+ this.state = 608;
3117
3183
  this.errorHandler.sync(this);
3118
3184
  switch (this.tokenStream.LA(1)) {
3119
3185
  case CircuitScriptParser.NEWLINE:
3120
3186
  localContext = new Nested_propertiesContext(localContext);
3121
3187
  this.enterOuterAlt(localContext, 1);
3122
3188
  {
3123
- this.state = 588;
3189
+ this.state = 599;
3124
3190
  this.nested_properties_inner();
3125
3191
  }
3126
3192
  break;
@@ -3141,21 +3207,21 @@ export class CircuitScriptParser extends antlr.Parser {
3141
3207
  localContext = new Single_line_propertyContext(localContext);
3142
3208
  this.enterOuterAlt(localContext, 2);
3143
3209
  {
3144
- this.state = 589;
3210
+ this.state = 600;
3145
3211
  this.data_expr(0);
3146
- this.state = 594;
3212
+ this.state = 605;
3147
3213
  this.errorHandler.sync(this);
3148
3214
  _la = this.tokenStream.LA(1);
3149
3215
  while (_la === 2) {
3150
3216
  {
3151
3217
  {
3152
- this.state = 590;
3218
+ this.state = 601;
3153
3219
  this.match(CircuitScriptParser.T__1);
3154
- this.state = 591;
3220
+ this.state = 602;
3155
3221
  this.data_expr(0);
3156
3222
  }
3157
3223
  }
3158
- this.state = 596;
3224
+ this.state = 607;
3159
3225
  this.errorHandler.sync(this);
3160
3226
  _la = this.tokenStream.LA(1);
3161
3227
  }
@@ -3181,29 +3247,29 @@ export class CircuitScriptParser extends antlr.Parser {
3181
3247
  }
3182
3248
  wire_atom_expr() {
3183
3249
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3184
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_wire_atom_expr);
3250
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3185
3251
  try {
3186
- this.state = 605;
3252
+ this.state = 616;
3187
3253
  this.errorHandler.sync(this);
3188
- switch (this.interpreter.adaptivePredict(this.tokenStream, 65, this.context)) {
3254
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3189
3255
  case 1:
3190
3256
  localContext = new Wire_expr_direction_valueContext(localContext);
3191
3257
  this.enterOuterAlt(localContext, 1);
3192
3258
  {
3193
- this.state = 599;
3259
+ this.state = 610;
3194
3260
  this.match(CircuitScriptParser.ID);
3195
- this.state = 602;
3261
+ this.state = 613;
3196
3262
  this.errorHandler.sync(this);
3197
- switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
3263
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 67, this.context)) {
3198
3264
  case 1:
3199
3265
  {
3200
- this.state = 600;
3266
+ this.state = 611;
3201
3267
  this.match(CircuitScriptParser.INTEGER_VALUE);
3202
3268
  }
3203
3269
  break;
3204
3270
  case 2:
3205
3271
  {
3206
- this.state = 601;
3272
+ this.state = 612;
3207
3273
  this.data_expr(0);
3208
3274
  }
3209
3275
  break;
@@ -3214,7 +3280,7 @@ export class CircuitScriptParser extends antlr.Parser {
3214
3280
  localContext = new Wire_expr_direction_onlyContext(localContext);
3215
3281
  this.enterOuterAlt(localContext, 2);
3216
3282
  {
3217
- this.state = 604;
3283
+ this.state = 615;
3218
3284
  this.match(CircuitScriptParser.ID);
3219
3285
  }
3220
3286
  break;
@@ -3236,28 +3302,28 @@ export class CircuitScriptParser extends antlr.Parser {
3236
3302
  }
3237
3303
  wire_expr() {
3238
3304
  let localContext = new Wire_exprContext(this.context, this.state);
3239
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_expr);
3305
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_wire_expr);
3240
3306
  try {
3241
3307
  let alternative;
3242
3308
  this.enterOuterAlt(localContext, 1);
3243
3309
  {
3244
- this.state = 607;
3310
+ this.state = 618;
3245
3311
  this.match(CircuitScriptParser.Wire);
3246
- this.state = 611;
3312
+ this.state = 622;
3247
3313
  this.errorHandler.sync(this);
3248
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3314
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3249
3315
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3250
3316
  if (alternative === 1) {
3251
3317
  {
3252
3318
  {
3253
- this.state = 608;
3319
+ this.state = 619;
3254
3320
  this.wire_atom_expr();
3255
3321
  }
3256
3322
  }
3257
3323
  }
3258
- this.state = 613;
3324
+ this.state = 624;
3259
3325
  this.errorHandler.sync(this);
3260
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 66, this.context);
3326
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3261
3327
  }
3262
3328
  }
3263
3329
  }
@@ -3277,44 +3343,44 @@ export class CircuitScriptParser extends antlr.Parser {
3277
3343
  }
3278
3344
  array_expr() {
3279
3345
  let localContext = new Array_exprContext(this.context, this.state);
3280
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_array_expr);
3346
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_array_expr);
3281
3347
  let _la;
3282
3348
  try {
3283
3349
  this.enterOuterAlt(localContext, 1);
3284
3350
  {
3285
- this.state = 614;
3286
- this.match(CircuitScriptParser.T__5);
3287
3351
  this.state = 625;
3352
+ this.match(CircuitScriptParser.T__5);
3353
+ this.state = 636;
3288
3354
  this.errorHandler.sync(this);
3289
3355
  _la = this.tokenStream.LA(1);
3290
3356
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484736) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3291
3357
  {
3292
3358
  {
3293
- this.state = 615;
3359
+ this.state = 626;
3294
3360
  this.data_expr(0);
3295
- this.state = 620;
3361
+ this.state = 631;
3296
3362
  this.errorHandler.sync(this);
3297
3363
  _la = this.tokenStream.LA(1);
3298
3364
  while (_la === 2) {
3299
3365
  {
3300
3366
  {
3301
- this.state = 616;
3367
+ this.state = 627;
3302
3368
  this.match(CircuitScriptParser.T__1);
3303
- this.state = 617;
3369
+ this.state = 628;
3304
3370
  this.data_expr(0);
3305
3371
  }
3306
3372
  }
3307
- this.state = 622;
3373
+ this.state = 633;
3308
3374
  this.errorHandler.sync(this);
3309
3375
  _la = this.tokenStream.LA(1);
3310
3376
  }
3311
3377
  }
3312
3378
  }
3313
- this.state = 627;
3379
+ this.state = 638;
3314
3380
  this.errorHandler.sync(this);
3315
3381
  _la = this.tokenStream.LA(1);
3316
3382
  }
3317
- this.state = 628;
3383
+ this.state = 639;
3318
3384
  this.match(CircuitScriptParser.T__6);
3319
3385
  }
3320
3386
  }
@@ -3334,24 +3400,24 @@ export class CircuitScriptParser extends antlr.Parser {
3334
3400
  }
3335
3401
  point_expr() {
3336
3402
  let localContext = new Point_exprContext(this.context, this.state);
3337
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_point_expr);
3403
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_point_expr);
3338
3404
  try {
3339
3405
  this.enterOuterAlt(localContext, 1);
3340
3406
  {
3341
- this.state = 630;
3407
+ this.state = 641;
3342
3408
  this.match(CircuitScriptParser.Point);
3343
- this.state = 633;
3409
+ this.state = 644;
3344
3410
  this.errorHandler.sync(this);
3345
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3411
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 72, this.context)) {
3346
3412
  case 1:
3347
3413
  {
3348
- this.state = 631;
3414
+ this.state = 642;
3349
3415
  this.match(CircuitScriptParser.ID);
3350
3416
  }
3351
3417
  break;
3352
3418
  case 2:
3353
3419
  {
3354
- this.state = 632;
3420
+ this.state = 643;
3355
3421
  this.data_expr(0);
3356
3422
  }
3357
3423
  break;
@@ -3374,13 +3440,13 @@ export class CircuitScriptParser extends antlr.Parser {
3374
3440
  }
3375
3441
  import_expr() {
3376
3442
  let localContext = new Import_exprContext(this.context, this.state);
3377
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_import_expr);
3443
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3378
3444
  try {
3379
3445
  this.enterOuterAlt(localContext, 1);
3380
3446
  {
3381
- this.state = 635;
3447
+ this.state = 646;
3382
3448
  this.match(CircuitScriptParser.Import);
3383
- this.state = 636;
3449
+ this.state = 647;
3384
3450
  this.match(CircuitScriptParser.ID);
3385
3451
  }
3386
3452
  }
@@ -3400,12 +3466,12 @@ export class CircuitScriptParser extends antlr.Parser {
3400
3466
  }
3401
3467
  frame_expr() {
3402
3468
  let localContext = new Frame_exprContext(this.context, this.state);
3403
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_frame_expr);
3469
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3404
3470
  let _la;
3405
3471
  try {
3406
3472
  this.enterOuterAlt(localContext, 1);
3407
3473
  {
3408
- this.state = 638;
3474
+ this.state = 649;
3409
3475
  _la = this.tokenStream.LA(1);
3410
3476
  if (!(_la === 32 || _la === 33)) {
3411
3477
  this.errorHandler.recoverInline(this);
@@ -3414,9 +3480,9 @@ export class CircuitScriptParser extends antlr.Parser {
3414
3480
  this.errorHandler.reportMatch(this);
3415
3481
  this.consume();
3416
3482
  }
3417
- this.state = 639;
3483
+ this.state = 650;
3418
3484
  this.match(CircuitScriptParser.T__0);
3419
- this.state = 640;
3485
+ this.state = 651;
3420
3486
  this.expressions_block();
3421
3487
  }
3422
3488
  }
@@ -3436,42 +3502,42 @@ export class CircuitScriptParser extends antlr.Parser {
3436
3502
  }
3437
3503
  if_expr() {
3438
3504
  let localContext = new If_exprContext(this.context, this.state);
3439
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_if_expr);
3505
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3440
3506
  let _la;
3441
3507
  try {
3442
3508
  let alternative;
3443
3509
  this.enterOuterAlt(localContext, 1);
3444
3510
  {
3445
- this.state = 642;
3511
+ this.state = 653;
3446
3512
  this.match(CircuitScriptParser.If);
3447
- this.state = 643;
3513
+ this.state = 654;
3448
3514
  this.data_expr(0);
3449
- this.state = 644;
3515
+ this.state = 655;
3450
3516
  this.match(CircuitScriptParser.T__0);
3451
- this.state = 645;
3517
+ this.state = 656;
3452
3518
  this.expressions_block();
3453
- this.state = 649;
3519
+ this.state = 660;
3454
3520
  this.errorHandler.sync(this);
3455
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3521
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3456
3522
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3457
3523
  if (alternative === 1) {
3458
3524
  {
3459
3525
  {
3460
- this.state = 646;
3526
+ this.state = 657;
3461
3527
  this.if_inner_expr();
3462
3528
  }
3463
3529
  }
3464
3530
  }
3465
- this.state = 651;
3531
+ this.state = 662;
3466
3532
  this.errorHandler.sync(this);
3467
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3533
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3468
3534
  }
3469
- this.state = 653;
3535
+ this.state = 664;
3470
3536
  this.errorHandler.sync(this);
3471
3537
  _la = this.tokenStream.LA(1);
3472
3538
  if (_la === 30) {
3473
3539
  {
3474
- this.state = 652;
3540
+ this.state = 663;
3475
3541
  this.else_expr();
3476
3542
  }
3477
3543
  }
@@ -3493,19 +3559,19 @@ export class CircuitScriptParser extends antlr.Parser {
3493
3559
  }
3494
3560
  if_inner_expr() {
3495
3561
  let localContext = new If_inner_exprContext(this.context, this.state);
3496
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_inner_expr);
3562
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3497
3563
  try {
3498
3564
  this.enterOuterAlt(localContext, 1);
3499
3565
  {
3500
- this.state = 655;
3566
+ this.state = 666;
3501
3567
  this.match(CircuitScriptParser.Else);
3502
- this.state = 656;
3568
+ this.state = 667;
3503
3569
  this.match(CircuitScriptParser.If);
3504
- this.state = 657;
3570
+ this.state = 668;
3505
3571
  this.data_expr(0);
3506
- this.state = 658;
3572
+ this.state = 669;
3507
3573
  this.match(CircuitScriptParser.T__0);
3508
- this.state = 659;
3574
+ this.state = 670;
3509
3575
  this.expressions_block();
3510
3576
  }
3511
3577
  }
@@ -3525,15 +3591,15 @@ export class CircuitScriptParser extends antlr.Parser {
3525
3591
  }
3526
3592
  else_expr() {
3527
3593
  let localContext = new Else_exprContext(this.context, this.state);
3528
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_else_expr);
3594
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3529
3595
  try {
3530
3596
  this.enterOuterAlt(localContext, 1);
3531
3597
  {
3532
- this.state = 661;
3598
+ this.state = 672;
3533
3599
  this.match(CircuitScriptParser.Else);
3534
- this.state = 662;
3600
+ this.state = 673;
3535
3601
  this.match(CircuitScriptParser.T__0);
3536
- this.state = 663;
3602
+ this.state = 674;
3537
3603
  this.expressions_block();
3538
3604
  }
3539
3605
  }
@@ -3553,17 +3619,17 @@ export class CircuitScriptParser extends antlr.Parser {
3553
3619
  }
3554
3620
  while_expr() {
3555
3621
  let localContext = new While_exprContext(this.context, this.state);
3556
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_while_expr);
3622
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3557
3623
  try {
3558
3624
  this.enterOuterAlt(localContext, 1);
3559
3625
  {
3560
- this.state = 665;
3626
+ this.state = 676;
3561
3627
  this.match(CircuitScriptParser.While);
3562
- this.state = 666;
3628
+ this.state = 677;
3563
3629
  this.data_expr(0);
3564
- this.state = 667;
3630
+ this.state = 678;
3565
3631
  this.match(CircuitScriptParser.T__0);
3566
- this.state = 668;
3632
+ this.state = 679;
3567
3633
  this.expressions_block();
3568
3634
  }
3569
3635
  }
@@ -3583,38 +3649,38 @@ export class CircuitScriptParser extends antlr.Parser {
3583
3649
  }
3584
3650
  for_expr() {
3585
3651
  let localContext = new For_exprContext(this.context, this.state);
3586
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_for_expr);
3652
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3587
3653
  let _la;
3588
3654
  try {
3589
3655
  this.enterOuterAlt(localContext, 1);
3590
3656
  {
3591
- this.state = 670;
3657
+ this.state = 681;
3592
3658
  this.match(CircuitScriptParser.For);
3593
- this.state = 671;
3659
+ this.state = 682;
3594
3660
  this.match(CircuitScriptParser.ID);
3595
- this.state = 676;
3661
+ this.state = 687;
3596
3662
  this.errorHandler.sync(this);
3597
3663
  _la = this.tokenStream.LA(1);
3598
3664
  while (_la === 2) {
3599
3665
  {
3600
3666
  {
3601
- this.state = 672;
3667
+ this.state = 683;
3602
3668
  this.match(CircuitScriptParser.T__1);
3603
- this.state = 673;
3669
+ this.state = 684;
3604
3670
  this.match(CircuitScriptParser.ID);
3605
3671
  }
3606
3672
  }
3607
- this.state = 678;
3673
+ this.state = 689;
3608
3674
  this.errorHandler.sync(this);
3609
3675
  _la = this.tokenStream.LA(1);
3610
3676
  }
3611
- this.state = 679;
3677
+ this.state = 690;
3612
3678
  this.match(CircuitScriptParser.In);
3613
- this.state = 680;
3679
+ this.state = 691;
3614
3680
  this.data_expr(0);
3615
- this.state = 681;
3681
+ this.state = 692;
3616
3682
  this.match(CircuitScriptParser.T__0);
3617
- this.state = 682;
3683
+ this.state = 693;
3618
3684
  this.expressions_block();
3619
3685
  }
3620
3686
  }
@@ -3634,7 +3700,7 @@ export class CircuitScriptParser extends antlr.Parser {
3634
3700
  }
3635
3701
  sempred(localContext, ruleIndex, predIndex) {
3636
3702
  switch (ruleIndex) {
3637
- case 31:
3703
+ case 33:
3638
3704
  return this.data_expr_sempred(localContext, predIndex);
3639
3705
  }
3640
3706
  return true;
@@ -3653,7 +3719,7 @@ export class CircuitScriptParser extends antlr.Parser {
3653
3719
  return true;
3654
3720
  }
3655
3721
  static _serializedATN = [
3656
- 4, 1, 67, 685, 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,
3722
+ 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,
3657
3723
  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,
3658
3724
  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,
3659
3725
  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,
@@ -3662,248 +3728,252 @@ export class CircuitScriptParser extends antlr.Parser {
3662
3728
  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,
3663
3729
  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,
3664
3730
  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,
3665
- 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,
3666
- 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,
3667
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3668
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 166, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 4, 2, 172, 8, 2, 11, 2,
3669
- 12, 2, 173, 1, 2, 1, 2, 1, 3, 4, 3, 179, 8, 3, 11, 3, 12, 3, 180, 1, 4, 1, 4, 1, 4, 1, 4, 1,
3670
- 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 193, 8, 5, 11, 5, 12, 5, 194, 1, 5, 1, 5, 1, 6, 1, 6,
3671
- 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 210, 8, 8, 1, 9, 1, 9, 3, 9, 214,
3672
- 8, 9, 1, 9, 5, 9, 217, 8, 9, 10, 9, 12, 9, 220, 9, 9, 1, 9, 3, 9, 223, 8, 9, 1, 10, 1, 10,
3673
- 1, 10, 1, 11, 1, 11, 1, 11, 3, 11, 231, 8, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 14,
3674
- 1, 14, 1, 14, 1, 14, 5, 14, 242, 8, 14, 10, 14, 12, 14, 245, 9, 14, 1, 15, 1, 15, 1, 15,
3675
- 1, 15, 1, 15, 1, 15, 5, 15, 253, 8, 15, 10, 15, 12, 15, 256, 9, 15, 1, 15, 1, 15, 1, 15,
3676
- 1, 15, 1, 15, 4, 15, 263, 8, 15, 11, 15, 12, 15, 264, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16,
3677
- 1, 16, 1, 16, 5, 16, 274, 8, 16, 10, 16, 12, 16, 277, 9, 16, 1, 17, 1, 17, 1, 18, 1, 18,
3678
- 1, 18, 1, 18, 1, 18, 1, 18, 4, 18, 287, 8, 18, 11, 18, 12, 18, 288, 1, 18, 1, 18, 1, 19,
3679
- 1, 19, 3, 19, 295, 8, 19, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 301, 8, 20, 1, 21, 1, 21, 3,
3680
- 21, 305, 8, 21, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1,
3681
- 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 328, 8,
3682
- 28, 10, 28, 12, 28, 331, 9, 28, 1, 28, 1, 28, 5, 28, 335, 8, 28, 10, 28, 12, 28, 338,
3683
- 9, 28, 1, 28, 1, 28, 1, 28, 5, 28, 343, 8, 28, 10, 28, 12, 28, 346, 9, 28, 3, 28, 348,
3684
- 8, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31,
3685
- 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 366, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3686
- 1, 31, 1, 31, 3, 31, 376, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3687
- 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 391, 8, 31, 10, 31, 12, 31, 394, 9, 31, 1, 32,
3688
- 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 401, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35,
3689
- 3, 35, 409, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 417, 8, 35, 11, 35,
3690
- 12, 35, 418, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 425, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37,
3691
- 430, 8, 37, 10, 37, 12, 37, 433, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 439, 8, 37,
3692
- 10, 37, 12, 37, 442, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 451,
3693
- 8, 37, 10, 37, 12, 37, 454, 9, 37, 3, 37, 456, 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 461,
3694
- 8, 38, 10, 38, 12, 38, 464, 9, 38, 1, 39, 1, 39, 3, 39, 468, 8, 39, 1, 39, 1, 39, 1, 39,
3695
- 3, 39, 473, 8, 39, 1, 40, 3, 40, 476, 8, 40, 1, 40, 1, 40, 4, 40, 480, 8, 40, 11, 40, 12,
3696
- 40, 481, 1, 41, 3, 41, 485, 8, 41, 1, 41, 1, 41, 3, 41, 489, 8, 41, 1, 42, 1, 42, 1, 42,
3697
- 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 4, 44, 505,
3698
- 8, 44, 11, 44, 12, 44, 506, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 515, 8, 45,
3699
- 11, 45, 12, 45, 516, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 3, 46, 526, 8, 46,
3700
- 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 539,
3701
- 8, 47, 11, 47, 12, 47, 540, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 4, 48, 549, 8, 48,
3702
- 11, 48, 12, 48, 550, 1, 48, 1, 48, 1, 49, 1, 49, 3, 49, 557, 8, 49, 1, 49, 1, 49, 1, 49,
3703
- 1, 49, 1, 49, 1, 49, 3, 49, 565, 8, 49, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 571, 8, 49, 10,
3704
- 49, 12, 49, 574, 9, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 3, 49, 581, 8, 49, 1, 50, 1,
3705
- 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 593, 8, 52, 10, 52, 12,
3706
- 52, 596, 9, 52, 3, 52, 598, 8, 52, 1, 53, 1, 53, 1, 53, 3, 53, 603, 8, 53, 1, 53, 3, 53,
3707
- 606, 8, 53, 1, 54, 1, 54, 5, 54, 610, 8, 54, 10, 54, 12, 54, 613, 9, 54, 1, 55, 1, 55,
3708
- 1, 55, 1, 55, 5, 55, 619, 8, 55, 10, 55, 12, 55, 622, 9, 55, 5, 55, 624, 8, 55, 10, 55,
3709
- 12, 55, 627, 9, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 3, 56, 634, 8, 56, 1, 57, 1, 57,
3710
- 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5, 59, 648, 8, 59,
3711
- 10, 59, 12, 59, 651, 9, 59, 1, 59, 3, 59, 654, 8, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60,
3712
- 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63,
3713
- 1, 63, 5, 63, 675, 8, 63, 10, 63, 12, 63, 678, 9, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63,
3714
- 1, 63, 0, 1, 62, 64, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3731
+ 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,
3732
+ 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,
3733
+ 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,
3734
+ 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,
3735
+ 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,
3736
+ 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,
3737
+ 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,
3738
+ 1, 10, 1, 10, 3, 10, 218, 8, 10, 1, 11, 1, 11, 3, 11, 222, 8, 11, 1, 11, 5, 11, 225, 8,
3739
+ 11, 10, 11, 12, 11, 228, 9, 11, 1, 11, 3, 11, 231, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1,
3740
+ 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,
3741
+ 16, 5, 16, 250, 8, 16, 10, 16, 12, 16, 253, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1,
3742
+ 17, 5, 17, 261, 8, 17, 10, 17, 12, 17, 264, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4,
3743
+ 17, 271, 8, 17, 11, 17, 12, 17, 272, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5,
3744
+ 18, 282, 8, 18, 10, 18, 12, 18, 285, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1,
3745
+ 20, 1, 20, 4, 20, 295, 8, 20, 11, 20, 12, 20, 296, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 303,
3746
+ 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,
3747
+ 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,
3748
+ 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,
3749
+ 8, 30, 10, 30, 12, 30, 342, 9, 30, 1, 30, 1, 30, 5, 30, 346, 8, 30, 10, 30, 12, 30, 349,
3750
+ 9, 30, 1, 30, 1, 30, 1, 30, 5, 30, 354, 8, 30, 10, 30, 12, 30, 357, 9, 30, 3, 30, 359,
3751
+ 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,
3752
+ 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,
3753
+ 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,
3754
+ 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 5, 33, 402, 8, 33, 10, 33, 12, 33, 405, 9, 33, 1, 34,
3755
+ 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,
3756
+ 3, 37, 420, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 4, 37, 428, 8, 37, 11, 37,
3757
+ 12, 37, 429, 1, 37, 1, 37, 1, 38, 1, 38, 3, 38, 436, 8, 38, 1, 39, 1, 39, 1, 39, 5, 39,
3758
+ 441, 8, 39, 10, 39, 12, 39, 444, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 450, 8, 39,
3759
+ 10, 39, 12, 39, 453, 9, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 462,
3760
+ 8, 39, 10, 39, 12, 39, 465, 9, 39, 3, 39, 467, 8, 39, 1, 40, 1, 40, 1, 40, 5, 40, 472,
3761
+ 8, 40, 10, 40, 12, 40, 475, 9, 40, 1, 41, 1, 41, 3, 41, 479, 8, 41, 1, 41, 1, 41, 1, 41,
3762
+ 3, 41, 484, 8, 41, 1, 42, 3, 42, 487, 8, 42, 1, 42, 1, 42, 4, 42, 491, 8, 42, 11, 42, 12,
3763
+ 42, 492, 1, 43, 3, 43, 496, 8, 43, 1, 43, 1, 43, 3, 43, 500, 8, 43, 1, 44, 1, 44, 1, 44,
3764
+ 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,
3765
+ 8, 46, 11, 46, 12, 46, 517, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 526, 8, 47,
3766
+ 11, 47, 12, 47, 527, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 537, 8, 48,
3767
+ 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,
3768
+ 8, 49, 11, 49, 12, 49, 551, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 560, 8, 50,
3769
+ 11, 50, 12, 50, 561, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 568, 8, 51, 1, 51, 1, 51, 1, 51,
3770
+ 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,
3771
+ 51, 12, 51, 585, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 592, 8, 51, 1, 52, 1,
3772
+ 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,
3773
+ 54, 607, 9, 54, 3, 54, 609, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 614, 8, 55, 1, 55, 3, 55,
3774
+ 617, 8, 55, 1, 56, 1, 56, 5, 56, 621, 8, 56, 10, 56, 12, 56, 624, 9, 56, 1, 57, 1, 57,
3775
+ 1, 57, 1, 57, 5, 57, 630, 8, 57, 10, 57, 12, 57, 633, 9, 57, 5, 57, 635, 8, 57, 10, 57,
3776
+ 12, 57, 638, 9, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 645, 8, 58, 1, 59, 1, 59,
3777
+ 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,
3778
+ 10, 61, 12, 61, 662, 9, 61, 1, 61, 3, 61, 665, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62,
3779
+ 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,
3780
+ 1, 65, 5, 65, 686, 8, 65, 10, 65, 12, 65, 689, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65,
3781
+ 1, 65, 0, 1, 66, 66, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3715
3782
  36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3716
3783
  80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
3717
- 118, 120, 122, 124, 126, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60,
3718
- 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39,
3719
- 2, 0, 31, 31, 43, 43, 2, 0, 55, 55, 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60,
3720
- 1, 0, 32, 33, 724, 0, 132, 1, 0, 0, 0, 2, 165, 1, 0, 0, 0, 4, 167, 1, 0, 0, 0, 6, 178, 1,
3721
- 0, 0, 0, 8, 182, 1, 0, 0, 0, 10, 186, 1, 0, 0, 0, 12, 198, 1, 0, 0, 0, 14, 202, 1, 0, 0, 0,
3722
- 16, 205, 1, 0, 0, 0, 18, 213, 1, 0, 0, 0, 20, 224, 1, 0, 0, 0, 22, 230, 1, 0, 0, 0, 24, 232,
3723
- 1, 0, 0, 0, 26, 234, 1, 0, 0, 0, 28, 237, 1, 0, 0, 0, 30, 246, 1, 0, 0, 0, 32, 268, 1, 0,
3724
- 0, 0, 34, 278, 1, 0, 0, 0, 36, 280, 1, 0, 0, 0, 38, 294, 1, 0, 0, 0, 40, 296, 1, 0, 0, 0,
3725
- 42, 304, 1, 0, 0, 0, 44, 306, 1, 0, 0, 0, 46, 308, 1, 0, 0, 0, 48, 310, 1, 0, 0, 0, 50, 312,
3726
- 1, 0, 0, 0, 52, 316, 1, 0, 0, 0, 54, 320, 1, 0, 0, 0, 56, 347, 1, 0, 0, 0, 58, 349, 1, 0,
3727
- 0, 0, 60, 353, 1, 0, 0, 0, 62, 375, 1, 0, 0, 0, 64, 395, 1, 0, 0, 0, 66, 397, 1, 0, 0, 0,
3728
- 68, 400, 1, 0, 0, 0, 70, 404, 1, 0, 0, 0, 72, 424, 1, 0, 0, 0, 74, 455, 1, 0, 0, 0, 76, 457,
3729
- 1, 0, 0, 0, 78, 472, 1, 0, 0, 0, 80, 475, 1, 0, 0, 0, 82, 484, 1, 0, 0, 0, 84, 490, 1, 0,
3730
- 0, 0, 86, 493, 1, 0, 0, 0, 88, 497, 1, 0, 0, 0, 90, 510, 1, 0, 0, 0, 92, 520, 1, 0, 0, 0,
3731
- 94, 530, 1, 0, 0, 0, 96, 544, 1, 0, 0, 0, 98, 580, 1, 0, 0, 0, 100, 582, 1, 0, 0, 0, 102,
3732
- 586, 1, 0, 0, 0, 104, 597, 1, 0, 0, 0, 106, 605, 1, 0, 0, 0, 108, 607, 1, 0, 0, 0, 110,
3733
- 614, 1, 0, 0, 0, 112, 630, 1, 0, 0, 0, 114, 635, 1, 0, 0, 0, 116, 638, 1, 0, 0, 0, 118,
3734
- 642, 1, 0, 0, 0, 120, 655, 1, 0, 0, 0, 122, 661, 1, 0, 0, 0, 124, 665, 1, 0, 0, 0, 126,
3735
- 670, 1, 0, 0, 0, 128, 131, 3, 114, 57, 0, 129, 131, 5, 64, 0, 0, 130, 128, 1, 0, 0, 0,
3736
- 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0,
3737
- 133, 137, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 138, 3, 2, 1, 0, 136, 138, 5, 64, 0, 0,
3738
- 137, 135, 1, 0, 0, 0, 137, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 137, 1, 0, 0, 0,
3739
- 139, 140, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 5, 0, 0, 1, 142, 1, 1, 0, 0, 0, 143,
3740
- 166, 3, 20, 10, 0, 144, 166, 3, 28, 14, 0, 145, 166, 3, 26, 13, 0, 146, 166, 3, 50, 25,
3741
- 0, 147, 166, 3, 52, 26, 0, 148, 166, 3, 58, 29, 0, 149, 166, 3, 10, 5, 0, 150, 166, 3,
3742
- 60, 30, 0, 151, 166, 3, 46, 23, 0, 152, 166, 3, 48, 24, 0, 153, 166, 3, 70, 35, 0, 154,
3743
- 166, 3, 80, 40, 0, 155, 166, 3, 108, 54, 0, 156, 166, 3, 114, 57, 0, 157, 166, 3, 116,
3744
- 58, 0, 158, 166, 3, 76, 38, 0, 159, 166, 3, 36, 18, 0, 160, 166, 3, 6, 3, 0, 161, 166,
3745
- 3, 112, 56, 0, 162, 166, 3, 118, 59, 0, 163, 166, 3, 124, 62, 0, 164, 166, 3, 126, 63,
3746
- 0, 165, 143, 1, 0, 0, 0, 165, 144, 1, 0, 0, 0, 165, 145, 1, 0, 0, 0, 165, 146, 1, 0, 0,
3747
- 0, 165, 147, 1, 0, 0, 0, 165, 148, 1, 0, 0, 0, 165, 149, 1, 0, 0, 0, 165, 150, 1, 0, 0,
3748
- 0, 165, 151, 1, 0, 0, 0, 165, 152, 1, 0, 0, 0, 165, 153, 1, 0, 0, 0, 165, 154, 1, 0, 0,
3749
- 0, 165, 155, 1, 0, 0, 0, 165, 156, 1, 0, 0, 0, 165, 157, 1, 0, 0, 0, 165, 158, 1, 0, 0,
3750
- 0, 165, 159, 1, 0, 0, 0, 165, 160, 1, 0, 0, 0, 165, 161, 1, 0, 0, 0, 165, 162, 1, 0, 0,
3751
- 0, 165, 163, 1, 0, 0, 0, 165, 164, 1, 0, 0, 0, 166, 3, 1, 0, 0, 0, 167, 168, 5, 64, 0, 0,
3752
- 168, 171, 5, 66, 0, 0, 169, 172, 5, 64, 0, 0, 170, 172, 3, 2, 1, 0, 171, 169, 1, 0, 0,
3753
- 0, 171, 170, 1, 0, 0, 0, 172, 173, 1, 0, 0, 0, 173, 171, 1, 0, 0, 0, 173, 174, 1, 0, 0,
3754
- 0, 174, 175, 1, 0, 0, 0, 175, 176, 5, 67, 0, 0, 176, 5, 1, 0, 0, 0, 177, 179, 3, 8, 4, 0,
3755
- 178, 177, 1, 0, 0, 0, 179, 180, 1, 0, 0, 0, 180, 178, 1, 0, 0, 0, 180, 181, 1, 0, 0, 0,
3756
- 181, 7, 1, 0, 0, 0, 182, 183, 7, 0, 0, 0, 183, 184, 5, 1, 0, 0, 184, 185, 3, 4, 2, 0, 185,
3757
- 9, 1, 0, 0, 0, 186, 187, 3, 76, 38, 0, 187, 188, 5, 1, 0, 0, 188, 189, 5, 64, 0, 0, 189,
3758
- 192, 5, 66, 0, 0, 190, 193, 5, 64, 0, 0, 191, 193, 3, 12, 6, 0, 192, 190, 1, 0, 0, 0, 192,
3759
- 191, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 195, 1, 0, 0, 0, 195,
3760
- 196, 1, 0, 0, 0, 196, 197, 5, 67, 0, 0, 197, 11, 1, 0, 0, 0, 198, 199, 7, 1, 0, 0, 199,
3761
- 200, 5, 1, 0, 0, 200, 201, 3, 68, 34, 0, 201, 13, 1, 0, 0, 0, 202, 203, 5, 15, 0, 0, 203,
3762
- 204, 3, 62, 31, 0, 204, 15, 1, 0, 0, 0, 205, 206, 5, 56, 0, 0, 206, 209, 5, 1, 0, 0, 207,
3763
- 210, 3, 68, 34, 0, 208, 210, 5, 56, 0, 0, 209, 207, 1, 0, 0, 0, 209, 208, 1, 0, 0, 0, 210,
3764
- 17, 1, 0, 0, 0, 211, 214, 3, 62, 31, 0, 212, 214, 3, 50, 25, 0, 213, 211, 1, 0, 0, 0, 213,
3765
- 212, 1, 0, 0, 0, 214, 218, 1, 0, 0, 0, 215, 217, 3, 16, 8, 0, 216, 215, 1, 0, 0, 0, 217,
3766
- 220, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 218, 219, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220,
3767
- 218, 1, 0, 0, 0, 221, 223, 3, 14, 7, 0, 222, 221, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223,
3768
- 19, 1, 0, 0, 0, 224, 225, 5, 16, 0, 0, 225, 226, 3, 18, 9, 0, 226, 21, 1, 0, 0, 0, 227,
3769
- 231, 3, 18, 9, 0, 228, 231, 3, 14, 7, 0, 229, 231, 5, 19, 0, 0, 230, 227, 1, 0, 0, 0, 230,
3770
- 228, 1, 0, 0, 0, 230, 229, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 233, 7, 2, 0, 0, 233, 25,
3771
- 1, 0, 0, 0, 234, 235, 5, 17, 0, 0, 235, 236, 3, 22, 11, 0, 236, 27, 1, 0, 0, 0, 237, 238,
3772
- 5, 18, 0, 0, 238, 243, 3, 22, 11, 0, 239, 240, 5, 2, 0, 0, 240, 242, 3, 22, 11, 0, 241,
3773
- 239, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244,
3774
- 29, 1, 0, 0, 0, 245, 243, 1, 0, 0, 0, 246, 247, 5, 17, 0, 0, 247, 248, 3, 22, 11, 0, 248,
3775
- 249, 5, 18, 0, 0, 249, 254, 3, 22, 11, 0, 250, 251, 5, 2, 0, 0, 251, 253, 3, 22, 11, 0,
3776
- 252, 250, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0,
3777
- 255, 257, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 5, 1, 0, 0, 258, 259, 5, 64, 0, 0,
3778
- 259, 262, 5, 66, 0, 0, 260, 263, 5, 64, 0, 0, 261, 263, 3, 32, 16, 0, 262, 260, 1, 0,
3779
- 0, 0, 262, 261, 1, 0, 0, 0, 263, 264, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 264, 265, 1, 0,
3780
- 0, 0, 265, 266, 1, 0, 0, 0, 266, 267, 5, 67, 0, 0, 267, 31, 1, 0, 0, 0, 268, 269, 3, 24,
3781
- 12, 0, 269, 270, 5, 1, 0, 0, 270, 275, 3, 34, 17, 0, 271, 272, 5, 2, 0, 0, 272, 274, 3,
3782
- 34, 17, 0, 273, 271, 1, 0, 0, 0, 274, 277, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276,
3783
- 1, 0, 0, 0, 276, 33, 1, 0, 0, 0, 277, 275, 1, 0, 0, 0, 278, 279, 7, 3, 0, 0, 279, 35, 1,
3784
- 0, 0, 0, 280, 281, 3, 26, 13, 0, 281, 282, 5, 1, 0, 0, 282, 283, 5, 64, 0, 0, 283, 286,
3785
- 5, 66, 0, 0, 284, 287, 5, 64, 0, 0, 285, 287, 3, 38, 19, 0, 286, 284, 1, 0, 0, 0, 286,
3786
- 285, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0, 289,
3787
- 290, 1, 0, 0, 0, 290, 291, 5, 67, 0, 0, 291, 37, 1, 0, 0, 0, 292, 295, 3, 2, 1, 0, 293,
3788
- 295, 3, 40, 20, 0, 294, 292, 1, 0, 0, 0, 294, 293, 1, 0, 0, 0, 295, 39, 1, 0, 0, 0, 296,
3789
- 297, 3, 24, 12, 0, 297, 300, 5, 1, 0, 0, 298, 301, 3, 42, 21, 0, 299, 301, 3, 44, 22,
3790
- 0, 300, 298, 1, 0, 0, 0, 300, 299, 1, 0, 0, 0, 301, 41, 1, 0, 0, 0, 302, 305, 3, 2, 1, 0,
3791
- 303, 305, 5, 54, 0, 0, 304, 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 43, 1, 0, 0, 0,
3792
- 306, 307, 3, 4, 2, 0, 307, 45, 1, 0, 0, 0, 308, 309, 5, 8, 0, 0, 309, 47, 1, 0, 0, 0, 310,
3793
- 311, 5, 28, 0, 0, 311, 49, 1, 0, 0, 0, 312, 313, 3, 76, 38, 0, 313, 314, 5, 3, 0, 0, 314,
3794
- 315, 3, 62, 31, 0, 315, 51, 1, 0, 0, 0, 316, 317, 3, 76, 38, 0, 317, 318, 7, 4, 0, 0, 318,
3795
- 319, 3, 62, 31, 0, 319, 53, 1, 0, 0, 0, 320, 321, 5, 56, 0, 0, 321, 322, 5, 3, 0, 0, 322,
3796
- 323, 3, 62, 31, 0, 323, 55, 1, 0, 0, 0, 324, 329, 3, 62, 31, 0, 325, 326, 5, 2, 0, 0, 326,
3797
- 328, 3, 62, 31, 0, 327, 325, 1, 0, 0, 0, 328, 331, 1, 0, 0, 0, 329, 327, 1, 0, 0, 0, 329,
3798
- 330, 1, 0, 0, 0, 330, 336, 1, 0, 0, 0, 331, 329, 1, 0, 0, 0, 332, 333, 5, 2, 0, 0, 333,
3799
- 335, 3, 54, 27, 0, 334, 332, 1, 0, 0, 0, 335, 338, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 336,
3800
- 337, 1, 0, 0, 0, 337, 348, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 339, 344, 3, 54, 27, 0, 340,
3801
- 341, 5, 2, 0, 0, 341, 343, 3, 54, 27, 0, 342, 340, 1, 0, 0, 0, 343, 346, 1, 0, 0, 0, 344,
3802
- 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345, 348, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 347,
3803
- 324, 1, 0, 0, 0, 347, 339, 1, 0, 0, 0, 348, 57, 1, 0, 0, 0, 349, 350, 3, 76, 38, 0, 350,
3804
- 351, 5, 3, 0, 0, 351, 352, 3, 62, 31, 0, 352, 59, 1, 0, 0, 0, 353, 354, 5, 4, 0, 0, 354,
3805
- 355, 5, 56, 0, 0, 355, 356, 5, 3, 0, 0, 356, 357, 3, 62, 31, 0, 357, 61, 1, 0, 0, 0, 358,
3806
- 359, 6, 31, -1, 0, 359, 360, 5, 52, 0, 0, 360, 361, 3, 62, 31, 0, 361, 362, 5, 53, 0,
3807
- 0, 362, 376, 1, 0, 0, 0, 363, 366, 3, 68, 34, 0, 364, 366, 3, 76, 38, 0, 365, 363, 1,
3808
- 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 376, 1, 0, 0, 0, 367, 368, 3, 66, 33, 0, 368, 369,
3809
- 3, 62, 31, 10, 369, 376, 1, 0, 0, 0, 370, 376, 3, 88, 44, 0, 371, 376, 3, 92, 46, 0, 372,
3810
- 376, 3, 94, 47, 0, 373, 376, 3, 80, 40, 0, 374, 376, 3, 110, 55, 0, 375, 358, 1, 0, 0,
3811
- 0, 375, 365, 1, 0, 0, 0, 375, 367, 1, 0, 0, 0, 375, 370, 1, 0, 0, 0, 375, 371, 1, 0, 0,
3812
- 0, 375, 372, 1, 0, 0, 0, 375, 373, 1, 0, 0, 0, 375, 374, 1, 0, 0, 0, 376, 392, 1, 0, 0,
3813
- 0, 377, 378, 10, 9, 0, 0, 378, 379, 7, 5, 0, 0, 379, 391, 3, 62, 31, 10, 380, 381, 10,
3814
- 8, 0, 0, 381, 382, 7, 6, 0, 0, 382, 391, 3, 62, 31, 9, 383, 384, 10, 7, 0, 0, 384, 385,
3815
- 3, 64, 32, 0, 385, 386, 3, 62, 31, 8, 386, 391, 1, 0, 0, 0, 387, 388, 10, 6, 0, 0, 388,
3816
- 389, 7, 7, 0, 0, 389, 391, 3, 62, 31, 7, 390, 377, 1, 0, 0, 0, 390, 380, 1, 0, 0, 0, 390,
3817
- 383, 1, 0, 0, 0, 390, 387, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392,
3818
- 393, 1, 0, 0, 0, 393, 63, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 396, 7, 8, 0, 0, 396, 65,
3819
- 1, 0, 0, 0, 397, 398, 7, 9, 0, 0, 398, 67, 1, 0, 0, 0, 399, 401, 5, 43, 0, 0, 400, 399,
3820
- 1, 0, 0, 0, 400, 401, 1, 0, 0, 0, 401, 402, 1, 0, 0, 0, 402, 403, 7, 10, 0, 0, 403, 69,
3821
- 1, 0, 0, 0, 404, 405, 5, 23, 0, 0, 405, 406, 5, 56, 0, 0, 406, 408, 5, 52, 0, 0, 407, 409,
3822
- 3, 74, 37, 0, 408, 407, 1, 0, 0, 0, 408, 409, 1, 0, 0, 0, 409, 410, 1, 0, 0, 0, 410, 411,
3823
- 5, 53, 0, 0, 411, 412, 5, 1, 0, 0, 412, 413, 5, 64, 0, 0, 413, 416, 5, 66, 0, 0, 414, 417,
3824
- 5, 64, 0, 0, 415, 417, 3, 72, 36, 0, 416, 414, 1, 0, 0, 0, 416, 415, 1, 0, 0, 0, 417, 418,
3825
- 1, 0, 0, 0, 418, 416, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421,
3826
- 5, 67, 0, 0, 421, 71, 1, 0, 0, 0, 422, 425, 3, 2, 1, 0, 423, 425, 3, 84, 42, 0, 424, 422,
3827
- 1, 0, 0, 0, 424, 423, 1, 0, 0, 0, 425, 73, 1, 0, 0, 0, 426, 431, 5, 56, 0, 0, 427, 428,
3828
- 5, 2, 0, 0, 428, 430, 5, 56, 0, 0, 429, 427, 1, 0, 0, 0, 430, 433, 1, 0, 0, 0, 431, 429,
3829
- 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 440, 1, 0, 0, 0, 433, 431, 1, 0, 0, 0, 434, 435,
3830
- 5, 2, 0, 0, 435, 436, 5, 56, 0, 0, 436, 437, 5, 3, 0, 0, 437, 439, 3, 68, 34, 0, 438, 434,
3831
- 1, 0, 0, 0, 439, 442, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441, 456,
3832
- 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 443, 444, 5, 56, 0, 0, 444, 445, 5, 3, 0, 0, 445, 452,
3833
- 3, 68, 34, 0, 446, 447, 5, 2, 0, 0, 447, 448, 5, 56, 0, 0, 448, 449, 5, 3, 0, 0, 449, 451,
3834
- 3, 68, 34, 0, 450, 446, 1, 0, 0, 0, 451, 454, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 452, 453,
3835
- 1, 0, 0, 0, 453, 456, 1, 0, 0, 0, 454, 452, 1, 0, 0, 0, 455, 426, 1, 0, 0, 0, 455, 443,
3836
- 1, 0, 0, 0, 456, 75, 1, 0, 0, 0, 457, 462, 5, 56, 0, 0, 458, 459, 5, 5, 0, 0, 459, 461,
3837
- 5, 56, 0, 0, 460, 458, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463,
3838
- 1, 0, 0, 0, 463, 77, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 467, 5, 52, 0, 0, 466, 468,
3839
- 3, 56, 28, 0, 467, 466, 1, 0, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469, 1, 0, 0, 0, 469, 473,
3840
- 5, 53, 0, 0, 470, 471, 5, 5, 0, 0, 471, 473, 5, 56, 0, 0, 472, 465, 1, 0, 0, 0, 472, 470,
3841
- 1, 0, 0, 0, 473, 79, 1, 0, 0, 0, 474, 476, 3, 82, 41, 0, 475, 474, 1, 0, 0, 0, 475, 476,
3842
- 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 479, 5, 56, 0, 0, 478, 480, 3, 78, 39, 0, 479, 478,
3843
- 1, 0, 0, 0, 480, 481, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 481, 482, 1, 0, 0, 0, 482, 81, 1,
3844
- 0, 0, 0, 483, 485, 5, 42, 0, 0, 484, 483, 1, 0, 0, 0, 484, 485, 1, 0, 0, 0, 485, 486, 1,
3845
- 0, 0, 0, 486, 488, 5, 44, 0, 0, 487, 489, 3, 62, 31, 0, 488, 487, 1, 0, 0, 0, 488, 489,
3846
- 1, 0, 0, 0, 489, 83, 1, 0, 0, 0, 490, 491, 5, 22, 0, 0, 491, 492, 3, 62, 31, 0, 492, 85,
3847
- 1, 0, 0, 0, 493, 494, 3, 102, 51, 0, 494, 495, 5, 1, 0, 0, 495, 496, 3, 4, 2, 0, 496, 87,
3848
- 1, 0, 0, 0, 497, 498, 5, 10, 0, 0, 498, 499, 5, 11, 0, 0, 499, 500, 5, 1, 0, 0, 500, 501,
3849
- 5, 64, 0, 0, 501, 504, 5, 66, 0, 0, 502, 505, 5, 64, 0, 0, 503, 505, 3, 100, 50, 0, 504,
3850
- 502, 1, 0, 0, 0, 504, 503, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506,
3851
- 507, 1, 0, 0, 0, 507, 508, 1, 0, 0, 0, 508, 509, 5, 67, 0, 0, 509, 89, 1, 0, 0, 0, 510,
3852
- 511, 5, 64, 0, 0, 511, 514, 5, 66, 0, 0, 512, 515, 5, 64, 0, 0, 513, 515, 3, 98, 49, 0,
3853
- 514, 512, 1, 0, 0, 0, 514, 513, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516, 514, 1, 0, 0, 0,
3854
- 516, 517, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 5, 67, 0, 0, 519, 91, 1, 0, 0, 0,
3855
- 520, 521, 5, 10, 0, 0, 521, 525, 5, 12, 0, 0, 522, 523, 5, 52, 0, 0, 523, 524, 5, 56,
3856
- 0, 0, 524, 526, 5, 53, 0, 0, 525, 522, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 527, 1, 0,
3857
- 0, 0, 527, 528, 5, 1, 0, 0, 528, 529, 3, 90, 45, 0, 529, 93, 1, 0, 0, 0, 530, 531, 5, 10,
3858
- 0, 0, 531, 532, 5, 13, 0, 0, 532, 533, 5, 1, 0, 0, 533, 534, 5, 64, 0, 0, 534, 538, 5,
3859
- 66, 0, 0, 535, 539, 5, 64, 0, 0, 536, 539, 3, 100, 50, 0, 537, 539, 3, 86, 43, 0, 538,
3860
- 535, 1, 0, 0, 0, 538, 536, 1, 0, 0, 0, 538, 537, 1, 0, 0, 0, 539, 540, 1, 0, 0, 0, 540,
3861
- 538, 1, 0, 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542, 543, 5, 67, 0, 0, 543,
3862
- 95, 1, 0, 0, 0, 544, 545, 5, 64, 0, 0, 545, 548, 5, 66, 0, 0, 546, 549, 5, 64, 0, 0, 547,
3863
- 549, 3, 100, 50, 0, 548, 546, 1, 0, 0, 0, 548, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550,
3864
- 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 5, 67, 0, 0, 553,
3865
- 97, 1, 0, 0, 0, 554, 556, 7, 11, 0, 0, 555, 557, 5, 1, 0, 0, 556, 555, 1, 0, 0, 0, 556,
3866
- 557, 1, 0, 0, 0, 557, 564, 1, 0, 0, 0, 558, 565, 3, 56, 28, 0, 559, 560, 5, 52, 0, 0, 560,
3867
- 561, 3, 56, 28, 0, 561, 562, 5, 53, 0, 0, 562, 565, 1, 0, 0, 0, 563, 565, 3, 96, 48, 0,
3868
- 564, 558, 1, 0, 0, 0, 564, 559, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 581, 1, 0, 0, 0,
3869
- 566, 567, 5, 25, 0, 0, 567, 572, 5, 56, 0, 0, 568, 569, 5, 2, 0, 0, 569, 571, 5, 56, 0,
3870
- 0, 570, 568, 1, 0, 0, 0, 571, 574, 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 572, 573, 1, 0, 0,
3871
- 0, 573, 575, 1, 0, 0, 0, 574, 572, 1, 0, 0, 0, 575, 576, 5, 26, 0, 0, 576, 577, 3, 62,
3872
- 31, 0, 577, 578, 5, 1, 0, 0, 578, 579, 3, 90, 45, 0, 579, 581, 1, 0, 0, 0, 580, 554, 1,
3873
- 0, 0, 0, 580, 566, 1, 0, 0, 0, 581, 99, 1, 0, 0, 0, 582, 583, 3, 102, 51, 0, 583, 584,
3874
- 5, 1, 0, 0, 584, 585, 3, 104, 52, 0, 585, 101, 1, 0, 0, 0, 586, 587, 7, 12, 0, 0, 587,
3875
- 103, 1, 0, 0, 0, 588, 598, 3, 96, 48, 0, 589, 594, 3, 62, 31, 0, 590, 591, 5, 2, 0, 0,
3876
- 591, 593, 3, 62, 31, 0, 592, 590, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0,
3877
- 0, 594, 595, 1, 0, 0, 0, 595, 598, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 588, 1, 0, 0,
3878
- 0, 597, 589, 1, 0, 0, 0, 598, 105, 1, 0, 0, 0, 599, 602, 5, 56, 0, 0, 600, 603, 5, 57,
3879
- 0, 0, 601, 603, 3, 62, 31, 0, 602, 600, 1, 0, 0, 0, 602, 601, 1, 0, 0, 0, 603, 606, 1,
3880
- 0, 0, 0, 604, 606, 5, 56, 0, 0, 605, 599, 1, 0, 0, 0, 605, 604, 1, 0, 0, 0, 606, 107, 1,
3881
- 0, 0, 0, 607, 611, 5, 14, 0, 0, 608, 610, 3, 106, 53, 0, 609, 608, 1, 0, 0, 0, 610, 613,
3882
- 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 611, 612, 1, 0, 0, 0, 612, 109, 1, 0, 0, 0, 613, 611,
3883
- 1, 0, 0, 0, 614, 625, 5, 6, 0, 0, 615, 620, 3, 62, 31, 0, 616, 617, 5, 2, 0, 0, 617, 619,
3884
- 3, 62, 31, 0, 618, 616, 1, 0, 0, 0, 619, 622, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 620, 621,
3885
- 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 623, 615, 1, 0, 0, 0, 624, 627,
3886
- 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 625, 626, 1, 0, 0, 0, 626, 628, 1, 0, 0, 0, 627, 625,
3887
- 1, 0, 0, 0, 628, 629, 5, 7, 0, 0, 629, 111, 1, 0, 0, 0, 630, 633, 5, 19, 0, 0, 631, 634,
3888
- 5, 56, 0, 0, 632, 634, 3, 62, 31, 0, 633, 631, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 113,
3889
- 1, 0, 0, 0, 635, 636, 5, 24, 0, 0, 636, 637, 5, 56, 0, 0, 637, 115, 1, 0, 0, 0, 638, 639,
3890
- 7, 13, 0, 0, 639, 640, 5, 1, 0, 0, 640, 641, 3, 4, 2, 0, 641, 117, 1, 0, 0, 0, 642, 643,
3891
- 5, 29, 0, 0, 643, 644, 3, 62, 31, 0, 644, 645, 5, 1, 0, 0, 645, 649, 3, 4, 2, 0, 646, 648,
3892
- 3, 120, 60, 0, 647, 646, 1, 0, 0, 0, 648, 651, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 649, 650,
3893
- 1, 0, 0, 0, 650, 653, 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 652, 654, 3, 122, 61, 0, 653, 652,
3894
- 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 119, 1, 0, 0, 0, 655, 656, 5, 30, 0, 0, 656, 657,
3895
- 5, 29, 0, 0, 657, 658, 3, 62, 31, 0, 658, 659, 5, 1, 0, 0, 659, 660, 3, 4, 2, 0, 660, 121,
3896
- 1, 0, 0, 0, 661, 662, 5, 30, 0, 0, 662, 663, 5, 1, 0, 0, 663, 664, 3, 4, 2, 0, 664, 123,
3897
- 1, 0, 0, 0, 665, 666, 5, 27, 0, 0, 666, 667, 3, 62, 31, 0, 667, 668, 5, 1, 0, 0, 668, 669,
3898
- 3, 4, 2, 0, 669, 125, 1, 0, 0, 0, 670, 671, 5, 25, 0, 0, 671, 676, 5, 56, 0, 0, 672, 673,
3899
- 5, 2, 0, 0, 673, 675, 5, 56, 0, 0, 674, 672, 1, 0, 0, 0, 675, 678, 1, 0, 0, 0, 676, 674,
3900
- 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 679, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0, 679, 680,
3901
- 5, 26, 0, 0, 680, 681, 3, 62, 31, 0, 681, 682, 5, 1, 0, 0, 682, 683, 3, 4, 2, 0, 683, 127,
3902
- 1, 0, 0, 0, 73, 130, 132, 137, 139, 165, 171, 173, 180, 192, 194, 209, 213, 218, 222,
3903
- 230, 243, 254, 262, 264, 275, 286, 288, 294, 300, 304, 329, 336, 344, 347, 365,
3904
- 375, 390, 392, 400, 408, 416, 418, 424, 431, 440, 452, 455, 462, 467, 472, 475,
3905
- 481, 484, 488, 504, 506, 514, 516, 525, 538, 540, 548, 550, 556, 564, 572, 580,
3906
- 594, 597, 602, 605, 611, 620, 625, 633, 649, 653, 676
3784
+ 118, 120, 122, 124, 126, 128, 130, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57,
3785
+ 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,
3786
+ 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,
3787
+ 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,
3788
+ 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,
3789
+ 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,
3790
+ 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,
3791
+ 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,
3792
+ 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,
3793
+ 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,
3794
+ 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,
3795
+ 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,
3796
+ 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,
3797
+ 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,
3798
+ 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,
3799
+ 0, 0, 102, 591, 1, 0, 0, 0, 104, 593, 1, 0, 0, 0, 106, 597, 1, 0, 0, 0, 108, 608, 1, 0,
3800
+ 0, 0, 110, 616, 1, 0, 0, 0, 112, 618, 1, 0, 0, 0, 114, 625, 1, 0, 0, 0, 116, 641, 1, 0,
3801
+ 0, 0, 118, 646, 1, 0, 0, 0, 120, 649, 1, 0, 0, 0, 122, 653, 1, 0, 0, 0, 124, 666, 1, 0,
3802
+ 0, 0, 126, 672, 1, 0, 0, 0, 128, 676, 1, 0, 0, 0, 130, 681, 1, 0, 0, 0, 132, 135, 3, 118,
3803
+ 59, 0, 133, 135, 5, 64, 0, 0, 134, 132, 1, 0, 0, 0, 134, 133, 1, 0, 0, 0, 135, 138, 1,
3804
+ 0, 0, 0, 136, 134, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 141, 1, 0, 0, 0, 138, 136, 1,
3805
+ 0, 0, 0, 139, 142, 3, 2, 1, 0, 140, 142, 5, 64, 0, 0, 141, 139, 1, 0, 0, 0, 141, 140, 1,
3806
+ 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 141, 1, 0, 0, 0, 143, 144, 1, 0, 0, 0, 144, 145, 1,
3807
+ 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,
3808
+ 2, 0, 149, 160, 3, 54, 27, 0, 150, 160, 3, 56, 28, 0, 151, 160, 3, 62, 31, 0, 152, 160,
3809
+ 3, 14, 7, 0, 153, 160, 3, 64, 32, 0, 154, 160, 3, 74, 37, 0, 155, 160, 3, 84, 42, 0, 156,
3810
+ 160, 3, 118, 59, 0, 157, 160, 3, 80, 40, 0, 158, 160, 3, 120, 60, 0, 159, 147, 1, 0,
3811
+ 0, 0, 159, 148, 1, 0, 0, 0, 159, 149, 1, 0, 0, 0, 159, 150, 1, 0, 0, 0, 159, 151, 1, 0,
3812
+ 0, 0, 159, 152, 1, 0, 0, 0, 159, 153, 1, 0, 0, 0, 159, 154, 1, 0, 0, 0, 159, 155, 1, 0,
3813
+ 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,
3814
+ 0, 161, 167, 3, 122, 61, 0, 162, 167, 3, 128, 64, 0, 163, 167, 3, 130, 65, 0, 164, 167,
3815
+ 3, 50, 25, 0, 165, 167, 3, 52, 26, 0, 166, 161, 1, 0, 0, 0, 166, 162, 1, 0, 0, 0, 166,
3816
+ 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,
3817
+ 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,
3818
+ 0, 0, 0, 172, 179, 3, 24, 12, 0, 173, 179, 3, 32, 16, 0, 174, 179, 3, 30, 15, 0, 175,
3819
+ 179, 3, 40, 20, 0, 176, 179, 3, 112, 56, 0, 177, 179, 3, 116, 58, 0, 178, 172, 1, 0,
3820
+ 0, 0, 178, 173, 1, 0, 0, 0, 178, 174, 1, 0, 0, 0, 178, 175, 1, 0, 0, 0, 178, 176, 1, 0,
3821
+ 0, 0, 178, 177, 1, 0, 0, 0, 179, 9, 1, 0, 0, 0, 180, 181, 5, 64, 0, 0, 181, 184, 5, 66,
3822
+ 0, 0, 182, 185, 5, 64, 0, 0, 183, 185, 3, 2, 1, 0, 184, 182, 1, 0, 0, 0, 184, 183, 1, 0,
3823
+ 0, 0, 185, 186, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 187, 1, 0, 0, 0, 187, 188, 1, 0,
3824
+ 0, 0, 188, 189, 5, 67, 0, 0, 189, 11, 1, 0, 0, 0, 190, 191, 7, 0, 0, 0, 191, 192, 5, 1,
3825
+ 0, 0, 192, 193, 3, 10, 5, 0, 193, 13, 1, 0, 0, 0, 194, 195, 3, 80, 40, 0, 195, 196, 5,
3826
+ 1, 0, 0, 196, 197, 5, 64, 0, 0, 197, 200, 5, 66, 0, 0, 198, 201, 5, 64, 0, 0, 199, 201,
3827
+ 3, 16, 8, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 200,
3828
+ 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 205, 5, 67, 0, 0, 205, 15,
3829
+ 1, 0, 0, 0, 206, 207, 7, 1, 0, 0, 207, 208, 5, 1, 0, 0, 208, 209, 3, 72, 36, 0, 209, 17,
3830
+ 1, 0, 0, 0, 210, 211, 5, 15, 0, 0, 211, 212, 3, 66, 33, 0, 212, 19, 1, 0, 0, 0, 213, 214,
3831
+ 5, 56, 0, 0, 214, 217, 5, 1, 0, 0, 215, 218, 3, 72, 36, 0, 216, 218, 5, 56, 0, 0, 217,
3832
+ 215, 1, 0, 0, 0, 217, 216, 1, 0, 0, 0, 218, 21, 1, 0, 0, 0, 219, 222, 3, 66, 33, 0, 220,
3833
+ 222, 3, 54, 27, 0, 221, 219, 1, 0, 0, 0, 221, 220, 1, 0, 0, 0, 222, 226, 1, 0, 0, 0, 223,
3834
+ 225, 3, 20, 10, 0, 224, 223, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 226,
3835
+ 227, 1, 0, 0, 0, 227, 230, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 229, 231, 3, 18, 9, 0, 230,
3836
+ 229, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 23, 1, 0, 0, 0, 232, 233, 5, 16, 0, 0, 233,
3837
+ 234, 3, 22, 11, 0, 234, 25, 1, 0, 0, 0, 235, 239, 3, 22, 11, 0, 236, 239, 3, 18, 9, 0,
3838
+ 237, 239, 5, 19, 0, 0, 238, 235, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 238, 237, 1, 0, 0, 0,
3839
+ 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,
3840
+ 244, 3, 26, 13, 0, 244, 31, 1, 0, 0, 0, 245, 246, 5, 18, 0, 0, 246, 251, 3, 26, 13, 0,
3841
+ 247, 248, 5, 2, 0, 0, 248, 250, 3, 26, 13, 0, 249, 247, 1, 0, 0, 0, 250, 253, 1, 0, 0,
3842
+ 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,
3843
+ 254, 255, 5, 17, 0, 0, 255, 256, 3, 26, 13, 0, 256, 257, 5, 18, 0, 0, 257, 262, 3, 26,
3844
+ 13, 0, 258, 259, 5, 2, 0, 0, 259, 261, 3, 26, 13, 0, 260, 258, 1, 0, 0, 0, 261, 264, 1,
3845
+ 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 265, 1, 0, 0, 0, 264, 262, 1,
3846
+ 0, 0, 0, 265, 266, 5, 1, 0, 0, 266, 267, 5, 64, 0, 0, 267, 270, 5, 66, 0, 0, 268, 271,
3847
+ 5, 64, 0, 0, 269, 271, 3, 36, 18, 0, 270, 268, 1, 0, 0, 0, 270, 269, 1, 0, 0, 0, 271, 272,
3848
+ 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 274, 1, 0, 0, 0, 274, 275,
3849
+ 5, 67, 0, 0, 275, 35, 1, 0, 0, 0, 276, 277, 3, 28, 14, 0, 277, 278, 5, 1, 0, 0, 278, 283,
3850
+ 3, 38, 19, 0, 279, 280, 5, 2, 0, 0, 280, 282, 3, 38, 19, 0, 281, 279, 1, 0, 0, 0, 282,
3851
+ 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,
3852
+ 1, 0, 0, 0, 286, 287, 7, 3, 0, 0, 287, 39, 1, 0, 0, 0, 288, 289, 3, 30, 15, 0, 289, 290,
3853
+ 5, 1, 0, 0, 290, 291, 5, 64, 0, 0, 291, 294, 5, 66, 0, 0, 292, 295, 5, 64, 0, 0, 293, 295,
3854
+ 3, 42, 21, 0, 294, 292, 1, 0, 0, 0, 294, 293, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 294,
3855
+ 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 5, 67, 0, 0, 299, 41,
3856
+ 1, 0, 0, 0, 300, 303, 3, 2, 1, 0, 301, 303, 3, 44, 22, 0, 302, 300, 1, 0, 0, 0, 302, 301,
3857
+ 1, 0, 0, 0, 303, 43, 1, 0, 0, 0, 304, 305, 3, 28, 14, 0, 305, 308, 5, 1, 0, 0, 306, 309,
3858
+ 3, 46, 23, 0, 307, 309, 3, 48, 24, 0, 308, 306, 1, 0, 0, 0, 308, 307, 1, 0, 0, 0, 309,
3859
+ 45, 1, 0, 0, 0, 310, 313, 3, 2, 1, 0, 311, 313, 5, 54, 0, 0, 312, 310, 1, 0, 0, 0, 312,
3860
+ 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,
3861
+ 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,
3862
+ 80, 40, 0, 321, 323, 3, 84, 42, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 324,
3863
+ 1, 0, 0, 0, 324, 325, 5, 3, 0, 0, 325, 326, 3, 66, 33, 0, 326, 55, 1, 0, 0, 0, 327, 328,
3864
+ 3, 80, 40, 0, 328, 329, 7, 4, 0, 0, 329, 330, 3, 66, 33, 0, 330, 57, 1, 0, 0, 0, 331, 332,
3865
+ 5, 56, 0, 0, 332, 333, 5, 3, 0, 0, 333, 334, 3, 66, 33, 0, 334, 59, 1, 0, 0, 0, 335, 340,
3866
+ 3, 66, 33, 0, 336, 337, 5, 2, 0, 0, 337, 339, 3, 66, 33, 0, 338, 336, 1, 0, 0, 0, 339,
3867
+ 342, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 347, 1, 0, 0, 0, 342,
3868
+ 340, 1, 0, 0, 0, 343, 344, 5, 2, 0, 0, 344, 346, 3, 58, 29, 0, 345, 343, 1, 0, 0, 0, 346,
3869
+ 349, 1, 0, 0, 0, 347, 345, 1, 0, 0, 0, 347, 348, 1, 0, 0, 0, 348, 359, 1, 0, 0, 0, 349,
3870
+ 347, 1, 0, 0, 0, 350, 355, 3, 58, 29, 0, 351, 352, 5, 2, 0, 0, 352, 354, 3, 58, 29, 0,
3871
+ 353, 351, 1, 0, 0, 0, 354, 357, 1, 0, 0, 0, 355, 353, 1, 0, 0, 0, 355, 356, 1, 0, 0, 0,
3872
+ 356, 359, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 335, 1, 0, 0, 0, 358, 350, 1, 0, 0, 0,
3873
+ 359, 61, 1, 0, 0, 0, 360, 361, 3, 80, 40, 0, 361, 362, 5, 3, 0, 0, 362, 363, 3, 66, 33,
3874
+ 0, 363, 63, 1, 0, 0, 0, 364, 365, 5, 4, 0, 0, 365, 366, 5, 56, 0, 0, 366, 367, 5, 3, 0,
3875
+ 0, 367, 368, 3, 66, 33, 0, 368, 65, 1, 0, 0, 0, 369, 370, 6, 33, -1, 0, 370, 371, 5, 52,
3876
+ 0, 0, 371, 372, 3, 66, 33, 0, 372, 373, 5, 53, 0, 0, 373, 387, 1, 0, 0, 0, 374, 377, 3,
3877
+ 72, 36, 0, 375, 377, 3, 80, 40, 0, 376, 374, 1, 0, 0, 0, 376, 375, 1, 0, 0, 0, 377, 387,
3878
+ 1, 0, 0, 0, 378, 379, 3, 70, 35, 0, 379, 380, 3, 66, 33, 10, 380, 387, 1, 0, 0, 0, 381,
3879
+ 387, 3, 92, 46, 0, 382, 387, 3, 96, 48, 0, 383, 387, 3, 98, 49, 0, 384, 387, 3, 84, 42,
3880
+ 0, 385, 387, 3, 114, 57, 0, 386, 369, 1, 0, 0, 0, 386, 376, 1, 0, 0, 0, 386, 378, 1, 0,
3881
+ 0, 0, 386, 381, 1, 0, 0, 0, 386, 382, 1, 0, 0, 0, 386, 383, 1, 0, 0, 0, 386, 384, 1, 0,
3882
+ 0, 0, 386, 385, 1, 0, 0, 0, 387, 403, 1, 0, 0, 0, 388, 389, 10, 9, 0, 0, 389, 390, 7, 5,
3883
+ 0, 0, 390, 402, 3, 66, 33, 10, 391, 392, 10, 8, 0, 0, 392, 393, 7, 6, 0, 0, 393, 402,
3884
+ 3, 66, 33, 9, 394, 395, 10, 7, 0, 0, 395, 396, 3, 68, 34, 0, 396, 397, 3, 66, 33, 8, 397,
3885
+ 402, 1, 0, 0, 0, 398, 399, 10, 6, 0, 0, 399, 400, 7, 7, 0, 0, 400, 402, 3, 66, 33, 7, 401,
3886
+ 388, 1, 0, 0, 0, 401, 391, 1, 0, 0, 0, 401, 394, 1, 0, 0, 0, 401, 398, 1, 0, 0, 0, 402,
3887
+ 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,
3888
+ 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,
3889
+ 0, 0, 0, 410, 412, 5, 43, 0, 0, 411, 410, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1,
3890
+ 0, 0, 0, 413, 414, 7, 10, 0, 0, 414, 73, 1, 0, 0, 0, 415, 416, 5, 23, 0, 0, 416, 417, 5,
3891
+ 56, 0, 0, 417, 419, 5, 52, 0, 0, 418, 420, 3, 78, 39, 0, 419, 418, 1, 0, 0, 0, 419, 420,
3892
+ 1, 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 422, 5, 53, 0, 0, 422, 423, 5, 1, 0, 0, 423, 424,
3893
+ 5, 64, 0, 0, 424, 427, 5, 66, 0, 0, 425, 428, 5, 64, 0, 0, 426, 428, 3, 76, 38, 0, 427,
3894
+ 425, 1, 0, 0, 0, 427, 426, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429,
3895
+ 430, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431, 432, 5, 67, 0, 0, 432, 75, 1, 0, 0, 0, 433,
3896
+ 436, 3, 2, 1, 0, 434, 436, 3, 88, 44, 0, 435, 433, 1, 0, 0, 0, 435, 434, 1, 0, 0, 0, 436,
3897
+ 77, 1, 0, 0, 0, 437, 442, 5, 56, 0, 0, 438, 439, 5, 2, 0, 0, 439, 441, 5, 56, 0, 0, 440,
3898
+ 438, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443,
3899
+ 451, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 446, 5, 2, 0, 0, 446, 447, 5, 56, 0, 0, 447,
3900
+ 448, 5, 3, 0, 0, 448, 450, 3, 72, 36, 0, 449, 445, 1, 0, 0, 0, 450, 453, 1, 0, 0, 0, 451,
3901
+ 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 467, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 454,
3902
+ 455, 5, 56, 0, 0, 455, 456, 5, 3, 0, 0, 456, 463, 3, 72, 36, 0, 457, 458, 5, 2, 0, 0, 458,
3903
+ 459, 5, 56, 0, 0, 459, 460, 5, 3, 0, 0, 460, 462, 3, 72, 36, 0, 461, 457, 1, 0, 0, 0, 462,
3904
+ 465, 1, 0, 0, 0, 463, 461, 1, 0, 0, 0, 463, 464, 1, 0, 0, 0, 464, 467, 1, 0, 0, 0, 465,
3905
+ 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,
3906
+ 5, 56, 0, 0, 469, 470, 5, 5, 0, 0, 470, 472, 5, 56, 0, 0, 471, 469, 1, 0, 0, 0, 472, 475,
3907
+ 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,
3908
+ 0, 0, 0, 476, 478, 5, 52, 0, 0, 477, 479, 3, 60, 30, 0, 478, 477, 1, 0, 0, 0, 478, 479,
3909
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 484, 5, 53, 0, 0, 481, 482, 5, 5, 0, 0, 482, 484,
3910
+ 5, 56, 0, 0, 483, 476, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 484, 83, 1, 0, 0, 0, 485, 487,
3911
+ 3, 86, 43, 0, 486, 485, 1, 0, 0, 0, 486, 487, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 490,
3912
+ 5, 56, 0, 0, 489, 491, 3, 82, 41, 0, 490, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 490,
3913
+ 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 85, 1, 0, 0, 0, 494, 496, 5, 42, 0, 0, 495, 494,
3914
+ 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 499, 5, 44, 0, 0, 498, 500,
3915
+ 3, 66, 33, 0, 499, 498, 1, 0, 0, 0, 499, 500, 1, 0, 0, 0, 500, 87, 1, 0, 0, 0, 501, 502,
3916
+ 5, 22, 0, 0, 502, 503, 3, 66, 33, 0, 503, 89, 1, 0, 0, 0, 504, 505, 3, 106, 53, 0, 505,
3917
+ 506, 5, 1, 0, 0, 506, 507, 3, 10, 5, 0, 507, 91, 1, 0, 0, 0, 508, 509, 5, 10, 0, 0, 509,
3918
+ 510, 5, 11, 0, 0, 510, 511, 5, 1, 0, 0, 511, 512, 5, 64, 0, 0, 512, 515, 5, 66, 0, 0, 513,
3919
+ 516, 5, 64, 0, 0, 514, 516, 3, 104, 52, 0, 515, 513, 1, 0, 0, 0, 515, 514, 1, 0, 0, 0,
3920
+ 516, 517, 1, 0, 0, 0, 517, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0,
3921
+ 519, 520, 5, 67, 0, 0, 520, 93, 1, 0, 0, 0, 521, 522, 5, 64, 0, 0, 522, 525, 5, 66, 0,
3922
+ 0, 523, 526, 5, 64, 0, 0, 524, 526, 3, 102, 51, 0, 525, 523, 1, 0, 0, 0, 525, 524, 1,
3923
+ 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 1,
3924
+ 0, 0, 0, 529, 530, 5, 67, 0, 0, 530, 95, 1, 0, 0, 0, 531, 532, 5, 10, 0, 0, 532, 536, 5,
3925
+ 12, 0, 0, 533, 534, 5, 52, 0, 0, 534, 535, 5, 56, 0, 0, 535, 537, 5, 53, 0, 0, 536, 533,
3926
+ 1, 0, 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 538, 539, 5, 1, 0, 0, 539, 540,
3927
+ 3, 94, 47, 0, 540, 97, 1, 0, 0, 0, 541, 542, 5, 10, 0, 0, 542, 543, 5, 13, 0, 0, 543, 544,
3928
+ 5, 1, 0, 0, 544, 545, 5, 64, 0, 0, 545, 549, 5, 66, 0, 0, 546, 550, 5, 64, 0, 0, 547, 550,
3929
+ 3, 104, 52, 0, 548, 550, 3, 90, 45, 0, 549, 546, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549,
3930
+ 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552,
3931
+ 553, 1, 0, 0, 0, 553, 554, 5, 67, 0, 0, 554, 99, 1, 0, 0, 0, 555, 556, 5, 64, 0, 0, 556,
3932
+ 559, 5, 66, 0, 0, 557, 560, 5, 64, 0, 0, 558, 560, 3, 104, 52, 0, 559, 557, 1, 0, 0, 0,
3933
+ 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561, 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0,
3934
+ 562, 563, 1, 0, 0, 0, 563, 564, 5, 67, 0, 0, 564, 101, 1, 0, 0, 0, 565, 567, 7, 11, 0,
3935
+ 0, 566, 568, 5, 1, 0, 0, 567, 566, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 575, 1, 0, 0,
3936
+ 0, 569, 576, 3, 60, 30, 0, 570, 571, 5, 52, 0, 0, 571, 572, 3, 60, 30, 0, 572, 573, 5,
3937
+ 53, 0, 0, 573, 576, 1, 0, 0, 0, 574, 576, 3, 100, 50, 0, 575, 569, 1, 0, 0, 0, 575, 570,
3938
+ 1, 0, 0, 0, 575, 574, 1, 0, 0, 0, 576, 592, 1, 0, 0, 0, 577, 578, 5, 25, 0, 0, 578, 583,
3939
+ 5, 56, 0, 0, 579, 580, 5, 2, 0, 0, 580, 582, 5, 56, 0, 0, 581, 579, 1, 0, 0, 0, 582, 585,
3940
+ 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 586, 1, 0, 0, 0, 585, 583,
3941
+ 1, 0, 0, 0, 586, 587, 5, 26, 0, 0, 587, 588, 3, 66, 33, 0, 588, 589, 5, 1, 0, 0, 589, 590,
3942
+ 3, 94, 47, 0, 590, 592, 1, 0, 0, 0, 591, 565, 1, 0, 0, 0, 591, 577, 1, 0, 0, 0, 592, 103,
3943
+ 1, 0, 0, 0, 593, 594, 3, 106, 53, 0, 594, 595, 5, 1, 0, 0, 595, 596, 3, 108, 54, 0, 596,
3944
+ 105, 1, 0, 0, 0, 597, 598, 7, 12, 0, 0, 598, 107, 1, 0, 0, 0, 599, 609, 3, 100, 50, 0,
3945
+ 600, 605, 3, 66, 33, 0, 601, 602, 5, 2, 0, 0, 602, 604, 3, 66, 33, 0, 603, 601, 1, 0,
3946
+ 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605, 606, 1, 0, 0, 0, 606, 609, 1, 0,
3947
+ 0, 0, 607, 605, 1, 0, 0, 0, 608, 599, 1, 0, 0, 0, 608, 600, 1, 0, 0, 0, 609, 109, 1, 0,
3948
+ 0, 0, 610, 613, 5, 56, 0, 0, 611, 614, 5, 57, 0, 0, 612, 614, 3, 66, 33, 0, 613, 611,
3949
+ 1, 0, 0, 0, 613, 612, 1, 0, 0, 0, 614, 617, 1, 0, 0, 0, 615, 617, 5, 56, 0, 0, 616, 610,
3950
+ 1, 0, 0, 0, 616, 615, 1, 0, 0, 0, 617, 111, 1, 0, 0, 0, 618, 622, 5, 14, 0, 0, 619, 621,
3951
+ 3, 110, 55, 0, 620, 619, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623,
3952
+ 1, 0, 0, 0, 623, 113, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 636, 5, 6, 0, 0, 626, 631,
3953
+ 3, 66, 33, 0, 627, 628, 5, 2, 0, 0, 628, 630, 3, 66, 33, 0, 629, 627, 1, 0, 0, 0, 630,
3954
+ 633, 1, 0, 0, 0, 631, 629, 1, 0, 0, 0, 631, 632, 1, 0, 0, 0, 632, 635, 1, 0, 0, 0, 633,
3955
+ 631, 1, 0, 0, 0, 634, 626, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
3956
+ 637, 1, 0, 0, 0, 637, 639, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 640, 5, 7, 0, 0, 640,
3957
+ 115, 1, 0, 0, 0, 641, 644, 5, 19, 0, 0, 642, 645, 5, 56, 0, 0, 643, 645, 3, 66, 33, 0,
3958
+ 644, 642, 1, 0, 0, 0, 644, 643, 1, 0, 0, 0, 645, 117, 1, 0, 0, 0, 646, 647, 5, 24, 0, 0,
3959
+ 647, 648, 5, 56, 0, 0, 648, 119, 1, 0, 0, 0, 649, 650, 7, 13, 0, 0, 650, 651, 5, 1, 0,
3960
+ 0, 651, 652, 3, 10, 5, 0, 652, 121, 1, 0, 0, 0, 653, 654, 5, 29, 0, 0, 654, 655, 3, 66,
3961
+ 33, 0, 655, 656, 5, 1, 0, 0, 656, 660, 3, 10, 5, 0, 657, 659, 3, 124, 62, 0, 658, 657,
3962
+ 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 664,
3963
+ 1, 0, 0, 0, 662, 660, 1, 0, 0, 0, 663, 665, 3, 126, 63, 0, 664, 663, 1, 0, 0, 0, 664, 665,
3964
+ 1, 0, 0, 0, 665, 123, 1, 0, 0, 0, 666, 667, 5, 30, 0, 0, 667, 668, 5, 29, 0, 0, 668, 669,
3965
+ 3, 66, 33, 0, 669, 670, 5, 1, 0, 0, 670, 671, 3, 10, 5, 0, 671, 125, 1, 0, 0, 0, 672, 673,
3966
+ 5, 30, 0, 0, 673, 674, 5, 1, 0, 0, 674, 675, 3, 10, 5, 0, 675, 127, 1, 0, 0, 0, 676, 677,
3967
+ 5, 27, 0, 0, 677, 678, 3, 66, 33, 0, 678, 679, 5, 1, 0, 0, 679, 680, 3, 10, 5, 0, 680,
3968
+ 129, 1, 0, 0, 0, 681, 682, 5, 25, 0, 0, 682, 687, 5, 56, 0, 0, 683, 684, 5, 2, 0, 0, 684,
3969
+ 686, 5, 56, 0, 0, 685, 683, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687,
3970
+ 688, 1, 0, 0, 0, 688, 690, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 691, 5, 26, 0, 0, 691,
3971
+ 692, 3, 66, 33, 0, 692, 693, 5, 1, 0, 0, 693, 694, 3, 10, 5, 0, 694, 131, 1, 0, 0, 0, 76,
3972
+ 134, 136, 141, 143, 159, 166, 170, 178, 184, 186, 200, 202, 217, 221, 226, 230,
3973
+ 238, 251, 262, 270, 272, 283, 294, 296, 302, 308, 312, 322, 340, 347, 355, 358,
3974
+ 376, 386, 401, 403, 411, 419, 427, 429, 435, 442, 451, 463, 466, 473, 478, 483,
3975
+ 486, 492, 495, 499, 515, 517, 525, 527, 536, 549, 551, 559, 561, 567, 575, 583,
3976
+ 591, 605, 608, 613, 616, 622, 631, 636, 644, 660, 664, 687
3907
3977
  ];
3908
3978
  static __ATN;
3909
3979
  static get _ATN() {
@@ -3961,14 +4031,11 @@ export class ExpressionContext extends antlr.ParserRuleContext {
3961
4031
  constructor(parent, invokingState) {
3962
4032
  super(parent, invokingState);
3963
4033
  }
3964
- add_component_expr() {
3965
- return this.getRuleContext(0, Add_component_exprContext);
3966
- }
3967
- to_component_expr() {
3968
- return this.getRuleContext(0, To_component_exprContext);
4034
+ graph_expressions() {
4035
+ return this.getRuleContext(0, Graph_expressionsContext);
3969
4036
  }
3970
- at_component_expr() {
3971
- return this.getRuleContext(0, At_component_exprContext);
4037
+ flow_expressions() {
4038
+ return this.getRuleContext(0, Flow_expressionsContext);
3972
4039
  }
3973
4040
  assignment_expr() {
3974
4041
  return this.getRuleContext(0, Assignment_exprContext);
@@ -3985,38 +4052,36 @@ export class ExpressionContext extends antlr.ParserRuleContext {
3985
4052
  double_dot_property_set_expr() {
3986
4053
  return this.getRuleContext(0, Double_dot_property_set_exprContext);
3987
4054
  }
3988
- break_keyword() {
3989
- return this.getRuleContext(0, Break_keywordContext);
3990
- }
3991
- continue_keyword() {
3992
- return this.getRuleContext(0, Continue_keywordContext);
3993
- }
3994
4055
  function_def_expr() {
3995
4056
  return this.getRuleContext(0, Function_def_exprContext);
3996
4057
  }
3997
4058
  function_call_expr() {
3998
4059
  return this.getRuleContext(0, Function_call_exprContext);
3999
4060
  }
4000
- wire_expr() {
4001
- return this.getRuleContext(0, Wire_exprContext);
4002
- }
4003
4061
  import_expr() {
4004
4062
  return this.getRuleContext(0, Import_exprContext);
4005
4063
  }
4006
- frame_expr() {
4007
- return this.getRuleContext(0, Frame_exprContext);
4008
- }
4009
4064
  atom_expr() {
4010
4065
  return this.getRuleContext(0, Atom_exprContext);
4011
4066
  }
4012
- at_block() {
4013
- return this.getRuleContext(0, At_blockContext);
4067
+ frame_expr() {
4068
+ return this.getRuleContext(0, Frame_exprContext);
4014
4069
  }
4015
- path_blocks() {
4016
- return this.getRuleContext(0, Path_blocksContext);
4070
+ get ruleIndex() {
4071
+ return CircuitScriptParser.RULE_expression;
4017
4072
  }
4018
- point_expr() {
4019
- return this.getRuleContext(0, Point_exprContext);
4073
+ accept(visitor) {
4074
+ if (visitor.visitExpression) {
4075
+ return visitor.visitExpression(this);
4076
+ }
4077
+ else {
4078
+ return visitor.visitChildren(this);
4079
+ }
4080
+ }
4081
+ }
4082
+ export class Flow_expressionsContext extends antlr.ParserRuleContext {
4083
+ constructor(parent, invokingState) {
4084
+ super(parent, invokingState);
4020
4085
  }
4021
4086
  if_expr() {
4022
4087
  return this.getRuleContext(0, If_exprContext);
@@ -4027,12 +4092,74 @@ export class ExpressionContext extends antlr.ParserRuleContext {
4027
4092
  for_expr() {
4028
4093
  return this.getRuleContext(0, For_exprContext);
4029
4094
  }
4095
+ break_keyword() {
4096
+ return this.getRuleContext(0, Break_keywordContext);
4097
+ }
4098
+ continue_keyword() {
4099
+ return this.getRuleContext(0, Continue_keywordContext);
4100
+ }
4030
4101
  get ruleIndex() {
4031
- return CircuitScriptParser.RULE_expression;
4102
+ return CircuitScriptParser.RULE_flow_expressions;
4032
4103
  }
4033
4104
  accept(visitor) {
4034
- if (visitor.visitExpression) {
4035
- return visitor.visitExpression(this);
4105
+ if (visitor.visitFlow_expressions) {
4106
+ return visitor.visitFlow_expressions(this);
4107
+ }
4108
+ else {
4109
+ return visitor.visitChildren(this);
4110
+ }
4111
+ }
4112
+ }
4113
+ export class Graph_expressionsContext extends antlr.ParserRuleContext {
4114
+ constructor(parent, invokingState) {
4115
+ super(parent, invokingState);
4116
+ }
4117
+ graph_linear_expression() {
4118
+ return this.getRuleContext(0, Graph_linear_expressionContext);
4119
+ }
4120
+ path_block() {
4121
+ return this.getRuleContext(0, Path_blockContext);
4122
+ }
4123
+ get ruleIndex() {
4124
+ return CircuitScriptParser.RULE_graph_expressions;
4125
+ }
4126
+ accept(visitor) {
4127
+ if (visitor.visitGraph_expressions) {
4128
+ return visitor.visitGraph_expressions(this);
4129
+ }
4130
+ else {
4131
+ return visitor.visitChildren(this);
4132
+ }
4133
+ }
4134
+ }
4135
+ export class Graph_linear_expressionContext extends antlr.ParserRuleContext {
4136
+ constructor(parent, invokingState) {
4137
+ super(parent, invokingState);
4138
+ }
4139
+ add_component_expr() {
4140
+ return this.getRuleContext(0, Add_component_exprContext);
4141
+ }
4142
+ to_component_expr() {
4143
+ return this.getRuleContext(0, To_component_exprContext);
4144
+ }
4145
+ at_component_expr() {
4146
+ return this.getRuleContext(0, At_component_exprContext);
4147
+ }
4148
+ at_block() {
4149
+ return this.getRuleContext(0, At_blockContext);
4150
+ }
4151
+ wire_expr() {
4152
+ return this.getRuleContext(0, Wire_exprContext);
4153
+ }
4154
+ point_expr() {
4155
+ return this.getRuleContext(0, Point_exprContext);
4156
+ }
4157
+ get ruleIndex() {
4158
+ return CircuitScriptParser.RULE_graph_linear_expression;
4159
+ }
4160
+ accept(visitor) {
4161
+ if (visitor.visitGraph_linear_expression) {
4162
+ return visitor.visitGraph_linear_expression(this);
4036
4163
  }
4037
4164
  else {
4038
4165
  return visitor.visitChildren(this);
@@ -4075,29 +4202,7 @@ export class Expressions_blockContext extends antlr.ParserRuleContext {
4075
4202
  }
4076
4203
  }
4077
4204
  }
4078
- export class Path_blocksContext extends antlr.ParserRuleContext {
4079
- constructor(parent, invokingState) {
4080
- super(parent, invokingState);
4081
- }
4082
- path_block_inner(i) {
4083
- if (i === undefined) {
4084
- return this.getRuleContexts(Path_block_innerContext);
4085
- }
4086
- return this.getRuleContext(i, Path_block_innerContext);
4087
- }
4088
- get ruleIndex() {
4089
- return CircuitScriptParser.RULE_path_blocks;
4090
- }
4091
- accept(visitor) {
4092
- if (visitor.visitPath_blocks) {
4093
- return visitor.visitPath_blocks(this);
4094
- }
4095
- else {
4096
- return visitor.visitChildren(this);
4097
- }
4098
- }
4099
- }
4100
- export class Path_block_innerContext extends antlr.ParserRuleContext {
4205
+ export class Path_blockContext extends antlr.ParserRuleContext {
4101
4206
  constructor(parent, invokingState) {
4102
4207
  super(parent, invokingState);
4103
4208
  }
@@ -4117,11 +4222,11 @@ export class Path_block_innerContext extends antlr.ParserRuleContext {
4117
4222
  return this.getToken(CircuitScriptParser.Point, 0);
4118
4223
  }
4119
4224
  get ruleIndex() {
4120
- return CircuitScriptParser.RULE_path_block_inner;
4225
+ return CircuitScriptParser.RULE_path_block;
4121
4226
  }
4122
4227
  accept(visitor) {
4123
- if (visitor.visitPath_block_inner) {
4124
- return visitor.visitPath_block_inner(this);
4228
+ if (visitor.visitPath_block) {
4229
+ return visitor.visitPath_block(this);
4125
4230
  }
4126
4231
  else {
4127
4232
  return visitor.visitChildren(this);
@@ -4652,11 +4757,14 @@ export class Assignment_exprContext extends antlr.ParserRuleContext {
4652
4757
  constructor(parent, invokingState) {
4653
4758
  super(parent, invokingState);
4654
4759
  }
4760
+ data_expr() {
4761
+ return this.getRuleContext(0, Data_exprContext);
4762
+ }
4655
4763
  atom_expr() {
4656
4764
  return this.getRuleContext(0, Atom_exprContext);
4657
4765
  }
4658
- data_expr() {
4659
- return this.getRuleContext(0, Data_exprContext);
4766
+ function_call_expr() {
4767
+ return this.getRuleContext(0, Function_call_exprContext);
4660
4768
  }
4661
4769
  get ruleIndex() {
4662
4770
  return CircuitScriptParser.RULE_assignment_expr;