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