circuitscript 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/BaseVisitor.js +1 -0
  2. package/dist/cjs/annotate/RefdesAnnotationVisitor.js +1 -3
  3. package/dist/cjs/antlr/CircuitScriptParser.js +1070 -840
  4. package/dist/cjs/cache/serializer.js +1 -1
  5. package/dist/cjs/execute.js +18 -7
  6. package/dist/cjs/objects/BlockTypes.js +1 -0
  7. package/dist/cjs/objects/Frame.js +4 -0
  8. package/dist/cjs/regenerate-tests.js +12 -3
  9. package/dist/cjs/render/draw_symbols.js +18 -12
  10. package/dist/cjs/render/geometry.js +2 -2
  11. package/dist/cjs/render/layout.js +26 -2
  12. package/dist/cjs/sizing.js +3 -2
  13. package/dist/cjs/visitor.js +85 -18
  14. package/dist/esm/BaseVisitor.js +1 -0
  15. package/dist/esm/annotate/RefdesAnnotationVisitor.js +1 -3
  16. package/dist/esm/antlr/CircuitScriptParser.js +1063 -835
  17. package/dist/esm/antlr/CircuitScriptParserVisitor.js +2 -0
  18. package/dist/esm/cache/serializer.js +1 -1
  19. package/dist/esm/execute.js +18 -7
  20. package/dist/esm/objects/BlockTypes.js +1 -0
  21. package/dist/esm/objects/Frame.js +4 -0
  22. package/dist/esm/regenerate-tests.js +12 -3
  23. package/dist/esm/render/draw_symbols.js +18 -12
  24. package/dist/esm/render/geometry.js +2 -2
  25. package/dist/esm/render/layout.js +26 -2
  26. package/dist/esm/sizing.js +3 -2
  27. package/dist/esm/visitor.js +85 -18
  28. package/dist/libs/std.cst +3 -1
  29. package/dist/types/BaseVisitor.d.ts +2 -2
  30. package/dist/types/antlr/CircuitScriptParser.d.ts +83 -63
  31. package/dist/types/antlr/CircuitScriptParserVisitor.d.ts +4 -0
  32. package/dist/types/execute.d.ts +1 -0
  33. package/dist/types/objects/BlockTypes.d.ts +2 -1
  34. package/dist/types/objects/Frame.d.ts +4 -0
  35. package/dist/types/render/draw_symbols.d.ts +3 -3
  36. package/dist/types/render/geometry.d.ts +1 -0
  37. package/dist/types/render/layout.d.ts +6 -0
  38. package/dist/types/sizing.d.ts +1 -1
  39. package/dist/types/visitor.d.ts +2 -1
  40. package/libs/std.cst +3 -1
  41. package/package.json +5 -1
@@ -71,61 +71,63 @@ export class CircuitScriptParser extends antlr.Parser {
71
71
  static ID = 69;
72
72
  static RULE_script = 0;
73
73
  static RULE_expression = 1;
74
- static RULE_flow_expressions = 2;
75
- static RULE_graph_expressions = 3;
76
- static RULE_expressions_block = 4;
77
- static RULE_path_block = 5;
78
- static RULE_pin_select_expr = 6;
79
- static RULE_component_modifier_expr = 7;
80
- static RULE_data_expr_with_assignment = 8;
81
- static RULE_assignment_expr = 9;
82
- static RULE_add_component_expr = 10;
83
- static RULE_component_select_expr = 11;
84
- static RULE_at_component_expr = 12;
85
- static RULE_to_component_expr = 13;
86
- static RULE_at_block_header = 14;
87
- static RULE_at_block = 15;
88
- static RULE_at_block_expressions = 16;
89
- static RULE_at_block_pin_expr = 17;
90
- static RULE_keyword_assignment_expr = 18;
91
- static RULE_parameters = 19;
92
- static RULE_double_dot_property_set_expr = 20;
93
- static RULE_data_expr = 21;
94
- static RULE_value_expr = 22;
95
- static RULE_function_def_expr = 23;
96
- static RULE_function_expr = 24;
97
- static RULE_function_args_expr = 25;
98
- static RULE_function_return_expr = 26;
99
- static RULE_net_namespace_expr = 27;
100
- static RULE_callable_expr = 28;
101
- static RULE_trailer = 29;
102
- static RULE_property_block_expr = 30;
103
- static RULE_properties_block = 31;
104
- static RULE_graphic_expressions_block = 32;
105
- static RULE_create_expr = 33;
106
- static RULE_create_component_expr = 34;
107
- static RULE_create_graphic_expr = 35;
108
- static RULE_create_module_expr = 36;
109
- static RULE_graphic_expr = 37;
110
- static RULE_property_expr = 38;
111
- static RULE_property_key_expr = 39;
112
- static RULE_property_value_expr = 40;
113
- static RULE_wire_expr = 41;
114
- static RULE_point_expr = 42;
115
- static RULE_import_expr = 43;
116
- static RULE_frame_expr = 44;
117
- static RULE_if_expr = 45;
118
- static RULE_if_inner_expr = 46;
119
- static RULE_else_expr = 47;
120
- static RULE_while_expr = 48;
121
- static RULE_for_expr = 49;
122
- static RULE_part_set_expr = 50;
123
- static RULE_part_set_key = 51;
124
- static RULE_part_match_block = 52;
125
- static RULE_part_sub_expr = 53;
126
- static RULE_part_condition_expr = 54;
127
- static RULE_part_value_expr = 55;
128
- static RULE_annotation_comment_expr = 56;
74
+ static RULE_non_newline_expression = 2;
75
+ static RULE_flow_expressions = 3;
76
+ static RULE_graph_expressions = 4;
77
+ static RULE_expressions_block = 5;
78
+ static RULE_path_block = 6;
79
+ static RULE_pin_select_expr = 7;
80
+ static RULE_component_modifier_expr = 8;
81
+ static RULE_data_expr_with_assignment = 9;
82
+ static RULE_assignment_expr = 10;
83
+ static RULE_add_component_expr = 11;
84
+ static RULE_component_select_expr = 12;
85
+ static RULE_at_component_expr = 13;
86
+ static RULE_to_component_expr = 14;
87
+ static RULE_at_block_header = 15;
88
+ static RULE_at_block = 16;
89
+ static RULE_at_block_expressions = 17;
90
+ static RULE_at_block_expressions_inner = 18;
91
+ static RULE_at_block_pin_expr = 19;
92
+ static RULE_keyword_assignment_expr = 20;
93
+ static RULE_parameters = 21;
94
+ static RULE_double_dot_property_set_expr = 22;
95
+ static RULE_data_expr = 23;
96
+ static RULE_value_expr = 24;
97
+ static RULE_function_def_expr = 25;
98
+ static RULE_function_expr = 26;
99
+ static RULE_function_args_expr = 27;
100
+ static RULE_function_return_expr = 28;
101
+ static RULE_net_namespace_expr = 29;
102
+ static RULE_callable_expr = 30;
103
+ static RULE_trailer = 31;
104
+ static RULE_property_block_expr = 32;
105
+ static RULE_properties_block = 33;
106
+ static RULE_graphic_expressions_block = 34;
107
+ static RULE_create_expr = 35;
108
+ static RULE_create_component_expr = 36;
109
+ static RULE_create_graphic_expr = 37;
110
+ static RULE_create_module_expr = 38;
111
+ static RULE_graphic_expr = 39;
112
+ static RULE_property_expr = 40;
113
+ static RULE_property_key_expr = 41;
114
+ static RULE_property_value_expr = 42;
115
+ static RULE_wire_expr = 43;
116
+ static RULE_point_expr = 44;
117
+ static RULE_import_expr = 45;
118
+ static RULE_frame_expr = 46;
119
+ static RULE_if_expr = 47;
120
+ static RULE_if_inner_expr = 48;
121
+ static RULE_else_expr = 49;
122
+ static RULE_while_expr = 50;
123
+ static RULE_for_expr = 51;
124
+ static RULE_part_set_expr = 52;
125
+ static RULE_part_set_key = 53;
126
+ static RULE_part_match_block = 54;
127
+ static RULE_part_sub_expr = 55;
128
+ static RULE_part_condition_expr = 56;
129
+ static RULE_part_value_expr = 57;
130
+ static RULE_annotation_comment_expr = 58;
129
131
  static literalNames = [
130
132
  null, null, null, "'break'", "'branch'", "'create'", "'component'",
131
133
  "'graphic'", "'module'", "'wire'", "'pin'", "'add'", "'at'", "'to'",
@@ -151,21 +153,22 @@ export class CircuitScriptParser extends antlr.Parser {
151
153
  "PERCENTAGE_VALUE", "STRING_VALUE", "ID"
152
154
  ];
153
155
  static ruleNames = [
154
- "script", "expression", "flow_expressions", "graph_expressions",
155
- "expressions_block", "path_block", "pin_select_expr", "component_modifier_expr",
156
- "data_expr_with_assignment", "assignment_expr", "add_component_expr",
157
- "component_select_expr", "at_component_expr", "to_component_expr",
158
- "at_block_header", "at_block", "at_block_expressions", "at_block_pin_expr",
159
- "keyword_assignment_expr", "parameters", "double_dot_property_set_expr",
160
- "data_expr", "value_expr", "function_def_expr", "function_expr",
161
- "function_args_expr", "function_return_expr", "net_namespace_expr",
162
- "callable_expr", "trailer", "property_block_expr", "properties_block",
163
- "graphic_expressions_block", "create_expr", "create_component_expr",
164
- "create_graphic_expr", "create_module_expr", "graphic_expr", "property_expr",
165
- "property_key_expr", "property_value_expr", "wire_expr", "point_expr",
166
- "import_expr", "frame_expr", "if_expr", "if_inner_expr", "else_expr",
167
- "while_expr", "for_expr", "part_set_expr", "part_set_key", "part_match_block",
168
- "part_sub_expr", "part_condition_expr", "part_value_expr", "annotation_comment_expr",
156
+ "script", "expression", "non_newline_expression", "flow_expressions",
157
+ "graph_expressions", "expressions_block", "path_block", "pin_select_expr",
158
+ "component_modifier_expr", "data_expr_with_assignment", "assignment_expr",
159
+ "add_component_expr", "component_select_expr", "at_component_expr",
160
+ "to_component_expr", "at_block_header", "at_block", "at_block_expressions",
161
+ "at_block_expressions_inner", "at_block_pin_expr", "keyword_assignment_expr",
162
+ "parameters", "double_dot_property_set_expr", "data_expr", "value_expr",
163
+ "function_def_expr", "function_expr", "function_args_expr", "function_return_expr",
164
+ "net_namespace_expr", "callable_expr", "trailer", "property_block_expr",
165
+ "properties_block", "graphic_expressions_block", "create_expr",
166
+ "create_component_expr", "create_graphic_expr", "create_module_expr",
167
+ "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
168
+ "wire_expr", "point_expr", "import_expr", "frame_expr", "if_expr",
169
+ "if_inner_expr", "else_expr", "while_expr", "for_expr", "part_set_expr",
170
+ "part_set_key", "part_match_block", "part_sub_expr", "part_condition_expr",
171
+ "part_value_expr", "annotation_comment_expr",
169
172
  ];
170
173
  get grammarFileName() { return "CircuitScriptParser.g4"; }
171
174
  get literalNames() { return CircuitScriptParser.literalNames; }
@@ -187,25 +190,25 @@ export class CircuitScriptParser extends antlr.Parser {
187
190
  let alternative;
188
191
  this.enterOuterAlt(localContext, 1);
189
192
  {
190
- this.state = 118;
193
+ this.state = 122;
191
194
  this.errorHandler.sync(this);
192
195
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
193
196
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
194
197
  if (alternative === 1) {
195
198
  {
196
- this.state = 116;
199
+ this.state = 120;
197
200
  this.errorHandler.sync(this);
198
201
  switch (this.tokenStream.LA(1)) {
199
202
  case CircuitScriptParser.Import:
200
203
  case CircuitScriptParser.From:
201
204
  {
202
- this.state = 114;
205
+ this.state = 118;
203
206
  this.import_expr();
204
207
  }
205
208
  break;
206
209
  case CircuitScriptParser.NEWLINE:
207
210
  {
208
- this.state = 115;
211
+ this.state = 119;
209
212
  this.match(CircuitScriptParser.NEWLINE);
210
213
  }
211
214
  break;
@@ -214,25 +217,25 @@ export class CircuitScriptParser extends antlr.Parser {
214
217
  }
215
218
  }
216
219
  }
217
- this.state = 120;
220
+ this.state = 124;
218
221
  this.errorHandler.sync(this);
219
222
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
220
223
  }
221
- this.state = 124;
224
+ this.state = 128;
222
225
  this.errorHandler.sync(this);
223
226
  _la = this.tokenStream.LA(1);
224
227
  while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0)) {
225
228
  {
226
229
  {
227
- this.state = 121;
230
+ this.state = 125;
228
231
  this.expression();
229
232
  }
230
233
  }
231
- this.state = 126;
234
+ this.state = 130;
232
235
  this.errorHandler.sync(this);
233
236
  _la = this.tokenStream.LA(1);
234
237
  }
235
- this.state = 127;
238
+ this.state = 131;
236
239
  this.match(CircuitScriptParser.EOF);
237
240
  }
238
241
  }
@@ -254,79 +257,132 @@ export class CircuitScriptParser extends antlr.Parser {
254
257
  let localContext = new ExpressionContext(this.context, this.state);
255
258
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
256
259
  try {
257
- this.state = 139;
260
+ this.state = 135;
258
261
  this.errorHandler.sync(this);
259
- switch (this.interpreter.adaptivePredict(this.tokenStream, 3, this.context)) {
262
+ switch (this.tokenStream.LA(1)) {
263
+ case CircuitScriptParser.Break:
264
+ case CircuitScriptParser.Branch:
265
+ case CircuitScriptParser.Wire:
266
+ case CircuitScriptParser.Add:
267
+ case CircuitScriptParser.At:
268
+ case CircuitScriptParser.To:
269
+ case CircuitScriptParser.Point:
270
+ case CircuitScriptParser.Join:
271
+ case CircuitScriptParser.Parallel:
272
+ case CircuitScriptParser.Define:
273
+ case CircuitScriptParser.For:
274
+ case CircuitScriptParser.While:
275
+ case CircuitScriptParser.Continue:
276
+ case CircuitScriptParser.If:
277
+ case CircuitScriptParser.Frame:
278
+ case CircuitScriptParser.Sheet:
279
+ case CircuitScriptParser.Set:
280
+ case CircuitScriptParser.DoubleDot:
281
+ case CircuitScriptParser.Addition:
282
+ case CircuitScriptParser.Divide:
283
+ case CircuitScriptParser.ANNOTATION_START:
284
+ case CircuitScriptParser.ID:
285
+ this.enterOuterAlt(localContext, 1);
286
+ {
287
+ this.state = 133;
288
+ this.non_newline_expression();
289
+ }
290
+ break;
291
+ case CircuitScriptParser.NEWLINE:
292
+ this.enterOuterAlt(localContext, 2);
293
+ {
294
+ this.state = 134;
295
+ this.match(CircuitScriptParser.NEWLINE);
296
+ }
297
+ break;
298
+ default:
299
+ throw new antlr.NoViableAltException(this);
300
+ }
301
+ }
302
+ catch (re) {
303
+ if (re instanceof antlr.RecognitionException) {
304
+ this.errorHandler.reportError(this, re);
305
+ this.errorHandler.recover(this, re);
306
+ }
307
+ else {
308
+ throw re;
309
+ }
310
+ }
311
+ finally {
312
+ this.exitRule();
313
+ }
314
+ return localContext;
315
+ }
316
+ non_newline_expression() {
317
+ let localContext = new Non_newline_expressionContext(this.context, this.state);
318
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_non_newline_expression);
319
+ try {
320
+ this.state = 146;
321
+ this.errorHandler.sync(this);
322
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
260
323
  case 1:
261
324
  this.enterOuterAlt(localContext, 1);
262
325
  {
263
- this.state = 129;
326
+ this.state = 137;
264
327
  this.flow_expressions();
265
328
  }
266
329
  break;
267
330
  case 2:
268
331
  this.enterOuterAlt(localContext, 2);
269
332
  {
270
- this.state = 130;
333
+ this.state = 138;
271
334
  this.graph_expressions();
272
335
  }
273
336
  break;
274
337
  case 3:
275
338
  this.enterOuterAlt(localContext, 3);
276
339
  {
277
- this.state = 131;
340
+ this.state = 139;
278
341
  this.function_def_expr();
279
342
  }
280
343
  break;
281
344
  case 4:
282
345
  this.enterOuterAlt(localContext, 4);
283
346
  {
284
- this.state = 132;
347
+ this.state = 140;
285
348
  this.frame_expr();
286
349
  }
287
350
  break;
288
351
  case 5:
289
352
  this.enterOuterAlt(localContext, 5);
290
353
  {
291
- this.state = 133;
354
+ this.state = 141;
292
355
  this.part_set_expr();
293
356
  }
294
357
  break;
295
358
  case 6:
296
359
  this.enterOuterAlt(localContext, 6);
297
360
  {
298
- this.state = 134;
361
+ this.state = 142;
299
362
  this.annotation_comment_expr();
300
363
  }
301
364
  break;
302
365
  case 7:
303
366
  this.enterOuterAlt(localContext, 7);
304
367
  {
305
- this.state = 135;
368
+ this.state = 143;
306
369
  this.double_dot_property_set_expr();
307
370
  }
308
371
  break;
309
372
  case 8:
310
373
  this.enterOuterAlt(localContext, 8);
311
374
  {
312
- this.state = 136;
375
+ this.state = 144;
313
376
  this.assignment_expr();
314
377
  }
315
378
  break;
316
379
  case 9:
317
380
  this.enterOuterAlt(localContext, 9);
318
381
  {
319
- this.state = 137;
382
+ this.state = 145;
320
383
  this.callable_expr();
321
384
  }
322
385
  break;
323
- case 10:
324
- this.enterOuterAlt(localContext, 10);
325
- {
326
- this.state = 138;
327
- this.match(CircuitScriptParser.NEWLINE);
328
- }
329
- break;
330
386
  }
331
387
  }
332
388
  catch (re) {
@@ -345,43 +401,43 @@ export class CircuitScriptParser extends antlr.Parser {
345
401
  }
346
402
  flow_expressions() {
347
403
  let localContext = new Flow_expressionsContext(this.context, this.state);
348
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
404
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_flow_expressions);
349
405
  try {
350
- this.state = 146;
406
+ this.state = 153;
351
407
  this.errorHandler.sync(this);
352
408
  switch (this.tokenStream.LA(1)) {
353
409
  case CircuitScriptParser.If:
354
410
  this.enterOuterAlt(localContext, 1);
355
411
  {
356
- this.state = 141;
412
+ this.state = 148;
357
413
  this.if_expr();
358
414
  }
359
415
  break;
360
416
  case CircuitScriptParser.While:
361
417
  this.enterOuterAlt(localContext, 2);
362
418
  {
363
- this.state = 142;
419
+ this.state = 149;
364
420
  this.while_expr();
365
421
  }
366
422
  break;
367
423
  case CircuitScriptParser.For:
368
424
  this.enterOuterAlt(localContext, 3);
369
425
  {
370
- this.state = 143;
426
+ this.state = 150;
371
427
  this.for_expr();
372
428
  }
373
429
  break;
374
430
  case CircuitScriptParser.Break:
375
431
  this.enterOuterAlt(localContext, 4);
376
432
  {
377
- this.state = 144;
433
+ this.state = 151;
378
434
  this.match(CircuitScriptParser.Break);
379
435
  }
380
436
  break;
381
437
  case CircuitScriptParser.Continue:
382
438
  this.enterOuterAlt(localContext, 5);
383
439
  {
384
- this.state = 145;
440
+ this.state = 152;
385
441
  this.match(CircuitScriptParser.Continue);
386
442
  }
387
443
  break;
@@ -405,57 +461,57 @@ export class CircuitScriptParser extends antlr.Parser {
405
461
  }
406
462
  graph_expressions() {
407
463
  let localContext = new Graph_expressionsContext(this.context, this.state);
408
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
464
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_expressions);
409
465
  try {
410
- this.state = 155;
466
+ this.state = 162;
411
467
  this.errorHandler.sync(this);
412
- switch (this.interpreter.adaptivePredict(this.tokenStream, 5, this.context)) {
468
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
413
469
  case 1:
414
470
  this.enterOuterAlt(localContext, 1);
415
471
  {
416
- this.state = 148;
472
+ this.state = 155;
417
473
  this.add_component_expr();
418
474
  }
419
475
  break;
420
476
  case 2:
421
477
  this.enterOuterAlt(localContext, 2);
422
478
  {
423
- this.state = 149;
479
+ this.state = 156;
424
480
  this.at_component_expr();
425
481
  }
426
482
  break;
427
483
  case 3:
428
484
  this.enterOuterAlt(localContext, 3);
429
485
  {
430
- this.state = 150;
486
+ this.state = 157;
431
487
  this.at_block();
432
488
  }
433
489
  break;
434
490
  case 4:
435
491
  this.enterOuterAlt(localContext, 4);
436
492
  {
437
- this.state = 151;
493
+ this.state = 158;
438
494
  this.to_component_expr();
439
495
  }
440
496
  break;
441
497
  case 5:
442
498
  this.enterOuterAlt(localContext, 5);
443
499
  {
444
- this.state = 152;
500
+ this.state = 159;
445
501
  this.wire_expr();
446
502
  }
447
503
  break;
448
504
  case 6:
449
505
  this.enterOuterAlt(localContext, 6);
450
506
  {
451
- this.state = 153;
507
+ this.state = 160;
452
508
  this.point_expr();
453
509
  }
454
510
  break;
455
511
  case 7:
456
512
  this.enterOuterAlt(localContext, 7);
457
513
  {
458
- this.state = 154;
514
+ this.state = 161;
459
515
  this.path_block();
460
516
  }
461
517
  break;
@@ -477,30 +533,30 @@ export class CircuitScriptParser extends antlr.Parser {
477
533
  }
478
534
  expressions_block() {
479
535
  let localContext = new Expressions_blockContext(this.context, this.state);
480
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_expressions_block);
536
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_expressions_block);
481
537
  let _la;
482
538
  try {
483
539
  this.enterOuterAlt(localContext, 1);
484
540
  {
485
- this.state = 157;
541
+ this.state = 164;
486
542
  this.match(CircuitScriptParser.NEWLINE);
487
- this.state = 158;
543
+ this.state = 165;
488
544
  this.match(CircuitScriptParser.INDENT);
489
- this.state = 160;
545
+ this.state = 167;
490
546
  this.errorHandler.sync(this);
491
547
  _la = this.tokenStream.LA(1);
492
548
  do {
493
549
  {
494
550
  {
495
- this.state = 159;
551
+ this.state = 166;
496
552
  this.expression();
497
553
  }
498
554
  }
499
- this.state = 162;
555
+ this.state = 169;
500
556
  this.errorHandler.sync(this);
501
557
  _la = this.tokenStream.LA(1);
502
558
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0));
503
- this.state = 164;
559
+ this.state = 171;
504
560
  this.match(CircuitScriptParser.DEDENT);
505
561
  }
506
562
  }
@@ -520,12 +576,13 @@ export class CircuitScriptParser extends antlr.Parser {
520
576
  }
521
577
  path_block() {
522
578
  let localContext = new Path_blockContext(this.context, this.state);
523
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_path_block);
579
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_path_block);
524
580
  let _la;
525
581
  try {
582
+ let alternative;
526
583
  this.enterOuterAlt(localContext, 1);
527
584
  {
528
- this.state = 166;
585
+ this.state = 173;
529
586
  _la = this.tokenStream.LA(1);
530
587
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 114704) !== 0))) {
531
588
  this.errorHandler.recoverInline(this);
@@ -534,10 +591,48 @@ export class CircuitScriptParser extends antlr.Parser {
534
591
  this.errorHandler.reportMatch(this);
535
592
  this.consume();
536
593
  }
537
- this.state = 167;
594
+ this.state = 174;
538
595
  this.match(CircuitScriptParser.Colon);
539
- this.state = 168;
540
- this.expressions_block();
596
+ this.state = 182;
597
+ this.errorHandler.sync(this);
598
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
599
+ case 1:
600
+ {
601
+ this.state = 176;
602
+ this.errorHandler.sync(this);
603
+ alternative = 1;
604
+ do {
605
+ switch (alternative) {
606
+ case 1:
607
+ {
608
+ {
609
+ this.state = 175;
610
+ this.non_newline_expression();
611
+ }
612
+ }
613
+ break;
614
+ default:
615
+ throw new antlr.NoViableAltException(this);
616
+ }
617
+ this.state = 178;
618
+ this.errorHandler.sync(this);
619
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
620
+ } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
621
+ }
622
+ break;
623
+ case 2:
624
+ {
625
+ this.state = 180;
626
+ this.expressions_block();
627
+ }
628
+ break;
629
+ case 3:
630
+ {
631
+ this.state = 181;
632
+ this.at_block_expressions();
633
+ }
634
+ break;
635
+ }
541
636
  }
542
637
  }
543
638
  catch (re) {
@@ -556,13 +651,13 @@ export class CircuitScriptParser extends antlr.Parser {
556
651
  }
557
652
  pin_select_expr() {
558
653
  let localContext = new Pin_select_exprContext(this.context, this.state);
559
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_pin_select_expr);
654
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
560
655
  try {
561
656
  this.enterOuterAlt(localContext, 1);
562
657
  {
563
- this.state = 170;
658
+ this.state = 184;
564
659
  this.match(CircuitScriptParser.Pin);
565
- this.state = 171;
660
+ this.state = 185;
566
661
  this.data_expr(0);
567
662
  }
568
663
  }
@@ -582,15 +677,15 @@ export class CircuitScriptParser extends antlr.Parser {
582
677
  }
583
678
  component_modifier_expr() {
584
679
  let localContext = new Component_modifier_exprContext(this.context, this.state);
585
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_component_modifier_expr);
680
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
586
681
  try {
587
682
  this.enterOuterAlt(localContext, 1);
588
683
  {
589
- this.state = 173;
684
+ this.state = 187;
590
685
  this.match(CircuitScriptParser.ID);
591
- this.state = 174;
686
+ this.state = 188;
592
687
  this.match(CircuitScriptParser.Colon);
593
- this.state = 175;
688
+ this.state = 189;
594
689
  this.data_expr(0);
595
690
  }
596
691
  }
@@ -610,50 +705,50 @@ export class CircuitScriptParser extends antlr.Parser {
610
705
  }
611
706
  data_expr_with_assignment() {
612
707
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
613
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_data_expr_with_assignment);
708
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
614
709
  let _la;
615
710
  try {
616
711
  let alternative;
617
712
  this.enterOuterAlt(localContext, 1);
618
713
  {
619
- this.state = 179;
714
+ this.state = 193;
620
715
  this.errorHandler.sync(this);
621
- switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
716
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 10, this.context)) {
622
717
  case 1:
623
718
  {
624
- this.state = 177;
719
+ this.state = 191;
625
720
  this.data_expr(0);
626
721
  }
627
722
  break;
628
723
  case 2:
629
724
  {
630
- this.state = 178;
725
+ this.state = 192;
631
726
  this.assignment_expr();
632
727
  }
633
728
  break;
634
729
  }
635
- this.state = 184;
730
+ this.state = 198;
636
731
  this.errorHandler.sync(this);
637
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
732
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 11, this.context);
638
733
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
639
734
  if (alternative === 1) {
640
735
  {
641
736
  {
642
- this.state = 181;
737
+ this.state = 195;
643
738
  this.component_modifier_expr();
644
739
  }
645
740
  }
646
741
  }
647
- this.state = 186;
742
+ this.state = 200;
648
743
  this.errorHandler.sync(this);
649
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
744
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 11, this.context);
650
745
  }
651
- this.state = 188;
746
+ this.state = 202;
652
747
  this.errorHandler.sync(this);
653
748
  _la = this.tokenStream.LA(1);
654
749
  if (_la === 10) {
655
750
  {
656
- this.state = 187;
751
+ this.state = 201;
657
752
  this.pin_select_expr();
658
753
  }
659
754
  }
@@ -675,14 +770,14 @@ export class CircuitScriptParser extends antlr.Parser {
675
770
  }
676
771
  assignment_expr() {
677
772
  let localContext = new Assignment_exprContext(this.context, this.state);
678
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_assignment_expr);
773
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_assignment_expr);
679
774
  let _la;
680
775
  try {
681
776
  this.enterOuterAlt(localContext, 1);
682
777
  {
683
- this.state = 190;
778
+ this.state = 204;
684
779
  this.callable_expr();
685
- this.state = 191;
780
+ this.state = 205;
686
781
  _la = this.tokenStream.LA(1);
687
782
  if (!(((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 507905) !== 0))) {
688
783
  this.errorHandler.recoverInline(this);
@@ -691,7 +786,7 @@ export class CircuitScriptParser extends antlr.Parser {
691
786
  this.errorHandler.reportMatch(this);
692
787
  this.consume();
693
788
  }
694
- this.state = 192;
789
+ this.state = 206;
695
790
  this.data_expr(0);
696
791
  }
697
792
  }
@@ -711,13 +806,13 @@ export class CircuitScriptParser extends antlr.Parser {
711
806
  }
712
807
  add_component_expr() {
713
808
  let localContext = new Add_component_exprContext(this.context, this.state);
714
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
809
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_add_component_expr);
715
810
  try {
716
811
  this.enterOuterAlt(localContext, 1);
717
812
  {
718
- this.state = 194;
813
+ this.state = 208;
719
814
  this.match(CircuitScriptParser.Add);
720
- this.state = 195;
815
+ this.state = 209;
721
816
  this.data_expr_with_assignment();
722
817
  }
723
818
  }
@@ -737,9 +832,9 @@ export class CircuitScriptParser extends antlr.Parser {
737
832
  }
738
833
  component_select_expr() {
739
834
  let localContext = new Component_select_exprContext(this.context, this.state);
740
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
835
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_component_select_expr);
741
836
  try {
742
- this.state = 200;
837
+ this.state = 214;
743
838
  this.errorHandler.sync(this);
744
839
  switch (this.tokenStream.LA(1)) {
745
840
  case CircuitScriptParser.Create:
@@ -758,21 +853,21 @@ export class CircuitScriptParser extends antlr.Parser {
758
853
  case CircuitScriptParser.ID:
759
854
  this.enterOuterAlt(localContext, 1);
760
855
  {
761
- this.state = 197;
856
+ this.state = 211;
762
857
  this.data_expr_with_assignment();
763
858
  }
764
859
  break;
765
860
  case CircuitScriptParser.Pin:
766
861
  this.enterOuterAlt(localContext, 2);
767
862
  {
768
- this.state = 198;
863
+ this.state = 212;
769
864
  this.pin_select_expr();
770
865
  }
771
866
  break;
772
867
  case CircuitScriptParser.Point:
773
868
  this.enterOuterAlt(localContext, 3);
774
869
  {
775
- this.state = 199;
870
+ this.state = 213;
776
871
  this.match(CircuitScriptParser.Point);
777
872
  }
778
873
  break;
@@ -796,13 +891,13 @@ export class CircuitScriptParser extends antlr.Parser {
796
891
  }
797
892
  at_component_expr() {
798
893
  let localContext = new At_component_exprContext(this.context, this.state);
799
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_at_component_expr);
894
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
800
895
  try {
801
896
  this.enterOuterAlt(localContext, 1);
802
897
  {
803
- this.state = 202;
898
+ this.state = 216;
804
899
  this.match(CircuitScriptParser.At);
805
- this.state = 203;
900
+ this.state = 217;
806
901
  this.component_select_expr();
807
902
  }
808
903
  }
@@ -822,28 +917,28 @@ export class CircuitScriptParser extends antlr.Parser {
822
917
  }
823
918
  to_component_expr() {
824
919
  let localContext = new To_component_exprContext(this.context, this.state);
825
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_to_component_expr);
920
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
826
921
  let _la;
827
922
  try {
828
923
  this.enterOuterAlt(localContext, 1);
829
924
  {
830
- this.state = 205;
925
+ this.state = 219;
831
926
  this.match(CircuitScriptParser.To);
832
- this.state = 206;
927
+ this.state = 220;
833
928
  this.component_select_expr();
834
- this.state = 211;
929
+ this.state = 225;
835
930
  this.errorHandler.sync(this);
836
931
  _la = this.tokenStream.LA(1);
837
932
  while (_la === 32) {
838
933
  {
839
934
  {
840
- this.state = 207;
935
+ this.state = 221;
841
936
  this.match(CircuitScriptParser.Comma);
842
- this.state = 208;
937
+ this.state = 222;
843
938
  this.component_select_expr();
844
939
  }
845
940
  }
846
- this.state = 213;
941
+ this.state = 227;
847
942
  this.errorHandler.sync(this);
848
943
  _la = this.tokenStream.LA(1);
849
944
  }
@@ -865,26 +960,26 @@ export class CircuitScriptParser extends antlr.Parser {
865
960
  }
866
961
  at_block_header() {
867
962
  let localContext = new At_block_headerContext(this.context, this.state);
868
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_at_block_header);
963
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_block_header);
869
964
  let _la;
870
965
  try {
871
966
  this.enterOuterAlt(localContext, 1);
872
967
  {
873
- this.state = 214;
968
+ this.state = 228;
874
969
  this.at_component_expr();
875
- this.state = 215;
970
+ this.state = 229;
876
971
  this.match(CircuitScriptParser.Colon);
877
- this.state = 219;
972
+ this.state = 233;
878
973
  this.errorHandler.sync(this);
879
974
  _la = this.tokenStream.LA(1);
880
975
  while (_la === 63) {
881
976
  {
882
977
  {
883
- this.state = 216;
978
+ this.state = 230;
884
979
  this.annotation_comment_expr();
885
980
  }
886
981
  }
887
- this.state = 221;
982
+ this.state = 235;
888
983
  this.errorHandler.sync(this);
889
984
  _la = this.tokenStream.LA(1);
890
985
  }
@@ -906,32 +1001,56 @@ export class CircuitScriptParser extends antlr.Parser {
906
1001
  }
907
1002
  at_block() {
908
1003
  let localContext = new At_blockContext(this.context, this.state);
909
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_block);
910
- let _la;
1004
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_block);
911
1005
  try {
912
1006
  this.enterOuterAlt(localContext, 1);
913
1007
  {
914
- this.state = 222;
1008
+ this.state = 236;
915
1009
  this.at_block_header();
916
- this.state = 223;
1010
+ this.state = 237;
1011
+ this.at_block_expressions();
1012
+ }
1013
+ }
1014
+ catch (re) {
1015
+ if (re instanceof antlr.RecognitionException) {
1016
+ this.errorHandler.reportError(this, re);
1017
+ this.errorHandler.recover(this, re);
1018
+ }
1019
+ else {
1020
+ throw re;
1021
+ }
1022
+ }
1023
+ finally {
1024
+ this.exitRule();
1025
+ }
1026
+ return localContext;
1027
+ }
1028
+ at_block_expressions() {
1029
+ let localContext = new At_block_expressionsContext(this.context, this.state);
1030
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block_expressions);
1031
+ let _la;
1032
+ try {
1033
+ this.enterOuterAlt(localContext, 1);
1034
+ {
1035
+ this.state = 239;
917
1036
  this.match(CircuitScriptParser.NEWLINE);
918
- this.state = 224;
1037
+ this.state = 240;
919
1038
  this.match(CircuitScriptParser.INDENT);
920
- this.state = 226;
1039
+ this.state = 242;
921
1040
  this.errorHandler.sync(this);
922
1041
  _la = this.tokenStream.LA(1);
923
1042
  do {
924
1043
  {
925
1044
  {
926
- this.state = 225;
927
- this.at_block_expressions();
1045
+ this.state = 241;
1046
+ this.at_block_expressions_inner();
928
1047
  }
929
1048
  }
930
- this.state = 228;
1049
+ this.state = 244;
931
1050
  this.errorHandler.sync(this);
932
1051
  _la = this.tokenStream.LA(1);
933
1052
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 12977157) !== 0));
934
- this.state = 230;
1053
+ this.state = 246;
935
1054
  this.match(CircuitScriptParser.DEDENT);
936
1055
  }
937
1056
  }
@@ -949,25 +1068,25 @@ export class CircuitScriptParser extends antlr.Parser {
949
1068
  }
950
1069
  return localContext;
951
1070
  }
952
- at_block_expressions() {
953
- let localContext = new At_block_expressionsContext(this.context, this.state);
954
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_block_expressions);
1071
+ at_block_expressions_inner() {
1072
+ let localContext = new At_block_expressions_innerContext(this.context, this.state);
1073
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions_inner);
955
1074
  try {
956
- this.state = 234;
1075
+ this.state = 250;
957
1076
  this.errorHandler.sync(this);
958
- switch (this.interpreter.adaptivePredict(this.tokenStream, 14, this.context)) {
1077
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 17, this.context)) {
959
1078
  case 1:
960
1079
  this.enterOuterAlt(localContext, 1);
961
1080
  {
962
- this.state = 232;
963
- this.expression();
1081
+ this.state = 248;
1082
+ this.at_block_pin_expr();
964
1083
  }
965
1084
  break;
966
1085
  case 2:
967
1086
  this.enterOuterAlt(localContext, 2);
968
1087
  {
969
- this.state = 233;
970
- this.at_block_pin_expr();
1088
+ this.state = 249;
1089
+ this.expression();
971
1090
  }
972
1091
  break;
973
1092
  }
@@ -988,35 +1107,77 @@ export class CircuitScriptParser extends antlr.Parser {
988
1107
  }
989
1108
  at_block_pin_expr() {
990
1109
  let localContext = new At_block_pin_exprContext(this.context, this.state);
991
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block_pin_expr);
1110
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_pin_expr);
992
1111
  try {
1112
+ let alternative;
993
1113
  this.enterOuterAlt(localContext, 1);
994
1114
  {
995
- this.state = 236;
1115
+ this.state = 252;
996
1116
  this.property_key_expr();
997
- this.state = 237;
1117
+ this.state = 253;
998
1118
  this.match(CircuitScriptParser.Colon);
999
- this.state = 241;
1119
+ this.state = 261;
1000
1120
  this.errorHandler.sync(this);
1001
- switch (this.interpreter.adaptivePredict(this.tokenStream, 15, this.context)) {
1002
- case 1:
1121
+ switch (this.tokenStream.LA(1)) {
1122
+ case CircuitScriptParser.Break:
1123
+ case CircuitScriptParser.Branch:
1124
+ case CircuitScriptParser.Wire:
1125
+ case CircuitScriptParser.Add:
1126
+ case CircuitScriptParser.At:
1127
+ case CircuitScriptParser.To:
1128
+ case CircuitScriptParser.Point:
1129
+ case CircuitScriptParser.Join:
1130
+ case CircuitScriptParser.Parallel:
1131
+ case CircuitScriptParser.Define:
1132
+ case CircuitScriptParser.For:
1133
+ case CircuitScriptParser.While:
1134
+ case CircuitScriptParser.Continue:
1135
+ case CircuitScriptParser.If:
1136
+ case CircuitScriptParser.Frame:
1137
+ case CircuitScriptParser.Sheet:
1138
+ case CircuitScriptParser.Set:
1139
+ case CircuitScriptParser.DoubleDot:
1140
+ case CircuitScriptParser.Addition:
1141
+ case CircuitScriptParser.Divide:
1142
+ case CircuitScriptParser.ANNOTATION_START:
1143
+ case CircuitScriptParser.ID:
1003
1144
  {
1004
- this.state = 238;
1005
- this.expression();
1145
+ this.state = 255;
1146
+ this.errorHandler.sync(this);
1147
+ alternative = 1;
1148
+ do {
1149
+ switch (alternative) {
1150
+ case 1:
1151
+ {
1152
+ {
1153
+ this.state = 254;
1154
+ this.non_newline_expression();
1155
+ }
1156
+ }
1157
+ break;
1158
+ default:
1159
+ throw new antlr.NoViableAltException(this);
1160
+ }
1161
+ this.state = 257;
1162
+ this.errorHandler.sync(this);
1163
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 18, this.context);
1164
+ } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
1006
1165
  }
1007
1166
  break;
1008
- case 2:
1167
+ case CircuitScriptParser.NEWLINE:
1009
1168
  {
1010
- this.state = 239;
1169
+ this.state = 259;
1011
1170
  this.expressions_block();
1012
1171
  }
1013
1172
  break;
1014
- case 3:
1173
+ case CircuitScriptParser.NOT_CONNECTED:
1015
1174
  {
1016
- this.state = 240;
1175
+ this.state = 260;
1017
1176
  this.match(CircuitScriptParser.NOT_CONNECTED);
1018
1177
  }
1019
1178
  break;
1179
+ default:
1180
+ throw new antlr.NoViableAltException(this);
1020
1181
  }
1021
1182
  }
1022
1183
  }
@@ -1036,15 +1197,15 @@ export class CircuitScriptParser extends antlr.Parser {
1036
1197
  }
1037
1198
  keyword_assignment_expr() {
1038
1199
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1039
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_keyword_assignment_expr);
1200
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_keyword_assignment_expr);
1040
1201
  try {
1041
1202
  this.enterOuterAlt(localContext, 1);
1042
1203
  {
1043
- this.state = 243;
1204
+ this.state = 263;
1044
1205
  this.match(CircuitScriptParser.ID);
1045
- this.state = 244;
1206
+ this.state = 264;
1046
1207
  this.match(CircuitScriptParser.Assign);
1047
- this.state = 245;
1208
+ this.state = 265;
1048
1209
  this.data_expr(0);
1049
1210
  }
1050
1211
  }
@@ -1064,61 +1225,61 @@ export class CircuitScriptParser extends antlr.Parser {
1064
1225
  }
1065
1226
  parameters() {
1066
1227
  let localContext = new ParametersContext(this.context, this.state);
1067
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_parameters);
1228
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_parameters);
1068
1229
  let _la;
1069
1230
  try {
1070
1231
  let alternative;
1071
1232
  this.enterOuterAlt(localContext, 1);
1072
1233
  {
1073
- this.state = 256;
1234
+ this.state = 276;
1074
1235
  this.errorHandler.sync(this);
1075
- switch (this.interpreter.adaptivePredict(this.tokenStream, 17, this.context)) {
1236
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 21, this.context)) {
1076
1237
  case 1:
1077
1238
  {
1078
1239
  {
1079
- this.state = 247;
1240
+ this.state = 267;
1080
1241
  this.data_expr(0);
1081
- this.state = 252;
1242
+ this.state = 272;
1082
1243
  this.errorHandler.sync(this);
1083
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 16, this.context);
1244
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
1084
1245
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1085
1246
  if (alternative === 1) {
1086
1247
  {
1087
1248
  {
1088
- this.state = 248;
1249
+ this.state = 268;
1089
1250
  this.match(CircuitScriptParser.Comma);
1090
- this.state = 249;
1251
+ this.state = 269;
1091
1252
  this.data_expr(0);
1092
1253
  }
1093
1254
  }
1094
1255
  }
1095
- this.state = 254;
1256
+ this.state = 274;
1096
1257
  this.errorHandler.sync(this);
1097
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 16, this.context);
1258
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
1098
1259
  }
1099
1260
  }
1100
1261
  }
1101
1262
  break;
1102
1263
  case 2:
1103
1264
  {
1104
- this.state = 255;
1265
+ this.state = 275;
1105
1266
  this.keyword_assignment_expr();
1106
1267
  }
1107
1268
  break;
1108
1269
  }
1109
- this.state = 262;
1270
+ this.state = 282;
1110
1271
  this.errorHandler.sync(this);
1111
1272
  _la = this.tokenStream.LA(1);
1112
1273
  while (_la === 32) {
1113
1274
  {
1114
1275
  {
1115
- this.state = 258;
1276
+ this.state = 278;
1116
1277
  this.match(CircuitScriptParser.Comma);
1117
- this.state = 259;
1278
+ this.state = 279;
1118
1279
  this.keyword_assignment_expr();
1119
1280
  }
1120
1281
  }
1121
- this.state = 264;
1282
+ this.state = 284;
1122
1283
  this.errorHandler.sync(this);
1123
1284
  _la = this.tokenStream.LA(1);
1124
1285
  }
@@ -1140,32 +1301,32 @@ export class CircuitScriptParser extends antlr.Parser {
1140
1301
  }
1141
1302
  double_dot_property_set_expr() {
1142
1303
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1143
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_double_dot_property_set_expr);
1304
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_double_dot_property_set_expr);
1144
1305
  let _la;
1145
1306
  try {
1146
1307
  this.enterOuterAlt(localContext, 1);
1147
1308
  {
1148
- this.state = 265;
1309
+ this.state = 285;
1149
1310
  this.match(CircuitScriptParser.DoubleDot);
1150
- this.state = 266;
1311
+ this.state = 286;
1151
1312
  this.match(CircuitScriptParser.ID);
1152
- this.state = 270;
1313
+ this.state = 290;
1153
1314
  this.errorHandler.sync(this);
1154
1315
  _la = this.tokenStream.LA(1);
1155
1316
  while (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 67108869) !== 0)) {
1156
1317
  {
1157
1318
  {
1158
- this.state = 267;
1319
+ this.state = 287;
1159
1320
  this.trailer();
1160
1321
  }
1161
1322
  }
1162
- this.state = 272;
1323
+ this.state = 292;
1163
1324
  this.errorHandler.sync(this);
1164
1325
  _la = this.tokenStream.LA(1);
1165
1326
  }
1166
- this.state = 273;
1327
+ this.state = 293;
1167
1328
  this.match(CircuitScriptParser.Assign);
1168
- this.state = 274;
1329
+ this.state = 294;
1169
1330
  this.data_expr(0);
1170
1331
  }
1171
1332
  }
@@ -1191,26 +1352,26 @@ export class CircuitScriptParser extends antlr.Parser {
1191
1352
  let parentState = this.state;
1192
1353
  let localContext = new Data_exprContext(this.context, parentState);
1193
1354
  let previousContext = localContext;
1194
- let _startState = 42;
1195
- this.enterRecursionRule(localContext, 42, CircuitScriptParser.RULE_data_expr, _p);
1355
+ let _startState = 46;
1356
+ this.enterRecursionRule(localContext, 46, CircuitScriptParser.RULE_data_expr, _p);
1196
1357
  let _la;
1197
1358
  try {
1198
1359
  let alternative;
1199
1360
  this.enterOuterAlt(localContext, 1);
1200
1361
  {
1201
- this.state = 302;
1362
+ this.state = 322;
1202
1363
  this.errorHandler.sync(this);
1203
- switch (this.interpreter.adaptivePredict(this.tokenStream, 22, this.context)) {
1364
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 26, this.context)) {
1204
1365
  case 1:
1205
1366
  {
1206
1367
  localContext = new RoundedBracketsExprContext(localContext);
1207
1368
  this.context = localContext;
1208
1369
  previousContext = localContext;
1209
- this.state = 277;
1370
+ this.state = 297;
1210
1371
  this.match(CircuitScriptParser.LParen);
1211
- this.state = 278;
1372
+ this.state = 298;
1212
1373
  this.data_expr(0);
1213
- this.state = 279;
1374
+ this.state = 299;
1214
1375
  this.match(CircuitScriptParser.RParen);
1215
1376
  }
1216
1377
  break;
@@ -1219,9 +1380,9 @@ export class CircuitScriptParser extends antlr.Parser {
1219
1380
  localContext = new CreateExprContext(localContext);
1220
1381
  this.context = localContext;
1221
1382
  previousContext = localContext;
1222
- this.state = 281;
1383
+ this.state = 301;
1223
1384
  this.match(CircuitScriptParser.Create);
1224
- this.state = 282;
1385
+ this.state = 302;
1225
1386
  this.create_expr();
1226
1387
  }
1227
1388
  break;
@@ -1230,7 +1391,7 @@ export class CircuitScriptParser extends antlr.Parser {
1230
1391
  localContext = new UnaryOperatorExprContext(localContext);
1231
1392
  this.context = localContext;
1232
1393
  previousContext = localContext;
1233
- this.state = 283;
1394
+ this.state = 303;
1234
1395
  _la = this.tokenStream.LA(1);
1235
1396
  if (!(_la === 27 || _la === 47)) {
1236
1397
  this.errorHandler.recoverInline(this);
@@ -1239,7 +1400,7 @@ export class CircuitScriptParser extends antlr.Parser {
1239
1400
  this.errorHandler.reportMatch(this);
1240
1401
  this.consume();
1241
1402
  }
1242
- this.state = 284;
1403
+ this.state = 304;
1243
1404
  this.data_expr(8);
1244
1405
  }
1245
1406
  break;
@@ -1248,39 +1409,39 @@ export class CircuitScriptParser extends antlr.Parser {
1248
1409
  localContext = new ArrayExprContext(localContext);
1249
1410
  this.context = localContext;
1250
1411
  previousContext = localContext;
1251
- this.state = 285;
1412
+ this.state = 305;
1252
1413
  this.match(CircuitScriptParser.LSquare);
1253
- this.state = 296;
1414
+ this.state = 316;
1254
1415
  this.errorHandler.sync(this);
1255
1416
  _la = this.tokenStream.LA(1);
1256
1417
  while (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1077936129) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 16588807) !== 0)) {
1257
1418
  {
1258
1419
  {
1259
- this.state = 286;
1420
+ this.state = 306;
1260
1421
  this.data_expr(0);
1261
- this.state = 291;
1422
+ this.state = 311;
1262
1423
  this.errorHandler.sync(this);
1263
1424
  _la = this.tokenStream.LA(1);
1264
1425
  while (_la === 32) {
1265
1426
  {
1266
1427
  {
1267
- this.state = 287;
1428
+ this.state = 307;
1268
1429
  this.match(CircuitScriptParser.Comma);
1269
- this.state = 288;
1430
+ this.state = 308;
1270
1431
  this.data_expr(0);
1271
1432
  }
1272
1433
  }
1273
- this.state = 293;
1434
+ this.state = 313;
1274
1435
  this.errorHandler.sync(this);
1275
1436
  _la = this.tokenStream.LA(1);
1276
1437
  }
1277
1438
  }
1278
1439
  }
1279
- this.state = 298;
1440
+ this.state = 318;
1280
1441
  this.errorHandler.sync(this);
1281
1442
  _la = this.tokenStream.LA(1);
1282
1443
  }
1283
- this.state = 299;
1444
+ this.state = 319;
1284
1445
  this.match(CircuitScriptParser.RSquare);
1285
1446
  }
1286
1447
  break;
@@ -1289,7 +1450,7 @@ export class CircuitScriptParser extends antlr.Parser {
1289
1450
  localContext = new ValueExprContext(localContext);
1290
1451
  this.context = localContext;
1291
1452
  previousContext = localContext;
1292
- this.state = 300;
1453
+ this.state = 320;
1293
1454
  this.value_expr();
1294
1455
  }
1295
1456
  break;
@@ -1298,15 +1459,15 @@ export class CircuitScriptParser extends antlr.Parser {
1298
1459
  localContext = new CallableExprContext(localContext);
1299
1460
  this.context = localContext;
1300
1461
  previousContext = localContext;
1301
- this.state = 301;
1462
+ this.state = 321;
1302
1463
  this.callable_expr();
1303
1464
  }
1304
1465
  break;
1305
1466
  }
1306
1467
  this.context.stop = this.tokenStream.LT(-1);
1307
- this.state = 318;
1468
+ this.state = 338;
1308
1469
  this.errorHandler.sync(this);
1309
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 24, this.context);
1470
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1310
1471
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1311
1472
  if (alternative === 1) {
1312
1473
  if (this.parseListeners != null) {
@@ -1314,18 +1475,18 @@ export class CircuitScriptParser extends antlr.Parser {
1314
1475
  }
1315
1476
  previousContext = localContext;
1316
1477
  {
1317
- this.state = 316;
1478
+ this.state = 336;
1318
1479
  this.errorHandler.sync(this);
1319
- switch (this.interpreter.adaptivePredict(this.tokenStream, 23, this.context)) {
1480
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1320
1481
  case 1:
1321
1482
  {
1322
1483
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1323
1484
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1324
- this.state = 304;
1485
+ this.state = 324;
1325
1486
  if (!(this.precpred(this.context, 6))) {
1326
1487
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1327
1488
  }
1328
- this.state = 305;
1489
+ this.state = 325;
1329
1490
  _la = this.tokenStream.LA(1);
1330
1491
  if (!(((((_la - 48)) & ~0x1F) === 0 && ((1 << (_la - 48)) & 7) !== 0))) {
1331
1492
  this.errorHandler.recoverInline(this);
@@ -1334,7 +1495,7 @@ export class CircuitScriptParser extends antlr.Parser {
1334
1495
  this.errorHandler.reportMatch(this);
1335
1496
  this.consume();
1336
1497
  }
1337
- this.state = 306;
1498
+ this.state = 326;
1338
1499
  this.data_expr(7);
1339
1500
  }
1340
1501
  break;
@@ -1342,11 +1503,11 @@ export class CircuitScriptParser extends antlr.Parser {
1342
1503
  {
1343
1504
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1344
1505
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1345
- this.state = 307;
1506
+ this.state = 327;
1346
1507
  if (!(this.precpred(this.context, 5))) {
1347
1508
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1348
1509
  }
1349
- this.state = 308;
1510
+ this.state = 328;
1350
1511
  _la = this.tokenStream.LA(1);
1351
1512
  if (!(_la === 46 || _la === 47)) {
1352
1513
  this.errorHandler.recoverInline(this);
@@ -1355,7 +1516,7 @@ export class CircuitScriptParser extends antlr.Parser {
1355
1516
  this.errorHandler.reportMatch(this);
1356
1517
  this.consume();
1357
1518
  }
1358
- this.state = 309;
1519
+ this.state = 329;
1359
1520
  this.data_expr(6);
1360
1521
  }
1361
1522
  break;
@@ -1363,11 +1524,11 @@ export class CircuitScriptParser extends antlr.Parser {
1363
1524
  {
1364
1525
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1365
1526
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1366
- this.state = 310;
1527
+ this.state = 330;
1367
1528
  if (!(this.precpred(this.context, 4))) {
1368
1529
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1369
1530
  }
1370
- this.state = 311;
1531
+ this.state = 331;
1371
1532
  _la = this.tokenStream.LA(1);
1372
1533
  if (!(((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & 63) !== 0))) {
1373
1534
  this.errorHandler.recoverInline(this);
@@ -1376,7 +1537,7 @@ export class CircuitScriptParser extends antlr.Parser {
1376
1537
  this.errorHandler.reportMatch(this);
1377
1538
  this.consume();
1378
1539
  }
1379
- this.state = 312;
1540
+ this.state = 332;
1380
1541
  this.data_expr(5);
1381
1542
  }
1382
1543
  break;
@@ -1384,11 +1545,11 @@ export class CircuitScriptParser extends antlr.Parser {
1384
1545
  {
1385
1546
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1386
1547
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1387
- this.state = 313;
1548
+ this.state = 333;
1388
1549
  if (!(this.precpred(this.context, 3))) {
1389
1550
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
1390
1551
  }
1391
- this.state = 314;
1552
+ this.state = 334;
1392
1553
  _la = this.tokenStream.LA(1);
1393
1554
  if (!(_la === 44 || _la === 45)) {
1394
1555
  this.errorHandler.recoverInline(this);
@@ -1397,16 +1558,16 @@ export class CircuitScriptParser extends antlr.Parser {
1397
1558
  this.errorHandler.reportMatch(this);
1398
1559
  this.consume();
1399
1560
  }
1400
- this.state = 315;
1561
+ this.state = 335;
1401
1562
  this.data_expr(4);
1402
1563
  }
1403
1564
  break;
1404
1565
  }
1405
1566
  }
1406
1567
  }
1407
- this.state = 320;
1568
+ this.state = 340;
1408
1569
  this.errorHandler.sync(this);
1409
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 24, this.context);
1570
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1410
1571
  }
1411
1572
  }
1412
1573
  }
@@ -1426,21 +1587,21 @@ export class CircuitScriptParser extends antlr.Parser {
1426
1587
  }
1427
1588
  value_expr() {
1428
1589
  let localContext = new Value_exprContext(this.context, this.state);
1429
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_value_expr);
1590
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_value_expr);
1430
1591
  let _la;
1431
1592
  try {
1432
1593
  this.enterOuterAlt(localContext, 1);
1433
1594
  {
1434
- this.state = 322;
1595
+ this.state = 342;
1435
1596
  this.errorHandler.sync(this);
1436
1597
  _la = this.tokenStream.LA(1);
1437
1598
  if (_la === 47) {
1438
1599
  {
1439
- this.state = 321;
1600
+ this.state = 341;
1440
1601
  this.match(CircuitScriptParser.Minus);
1441
1602
  }
1442
1603
  }
1443
- this.state = 324;
1604
+ this.state = 344;
1444
1605
  _la = this.tokenStream.LA(1);
1445
1606
  if (!(((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & 125) !== 0))) {
1446
1607
  this.errorHandler.recoverInline(this);
@@ -1467,49 +1628,49 @@ export class CircuitScriptParser extends antlr.Parser {
1467
1628
  }
1468
1629
  function_def_expr() {
1469
1630
  let localContext = new Function_def_exprContext(this.context, this.state);
1470
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_function_def_expr);
1631
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_function_def_expr);
1471
1632
  let _la;
1472
1633
  try {
1473
1634
  this.enterOuterAlt(localContext, 1);
1474
1635
  {
1475
- this.state = 326;
1636
+ this.state = 346;
1476
1637
  this.match(CircuitScriptParser.Define);
1477
- this.state = 327;
1638
+ this.state = 347;
1478
1639
  this.match(CircuitScriptParser.ID);
1479
- this.state = 328;
1640
+ this.state = 348;
1480
1641
  this.match(CircuitScriptParser.LParen);
1481
- this.state = 330;
1642
+ this.state = 350;
1482
1643
  this.errorHandler.sync(this);
1483
1644
  _la = this.tokenStream.LA(1);
1484
1645
  if (_la === 69) {
1485
1646
  {
1486
- this.state = 329;
1647
+ this.state = 349;
1487
1648
  this.function_args_expr();
1488
1649
  }
1489
1650
  }
1490
- this.state = 332;
1651
+ this.state = 352;
1491
1652
  this.match(CircuitScriptParser.RParen);
1492
- this.state = 333;
1653
+ this.state = 353;
1493
1654
  this.match(CircuitScriptParser.Colon);
1494
- this.state = 334;
1655
+ this.state = 354;
1495
1656
  this.match(CircuitScriptParser.NEWLINE);
1496
- this.state = 335;
1657
+ this.state = 355;
1497
1658
  this.match(CircuitScriptParser.INDENT);
1498
- this.state = 337;
1659
+ this.state = 357;
1499
1660
  this.errorHandler.sync(this);
1500
1661
  _la = this.tokenStream.LA(1);
1501
1662
  do {
1502
1663
  {
1503
1664
  {
1504
- this.state = 336;
1665
+ this.state = 356;
1505
1666
  this.function_expr();
1506
1667
  }
1507
1668
  }
1508
- this.state = 339;
1669
+ this.state = 359;
1509
1670
  this.errorHandler.sync(this);
1510
1671
  _la = this.tokenStream.LA(1);
1511
1672
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390032195) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0));
1512
- this.state = 341;
1673
+ this.state = 361;
1513
1674
  this.match(CircuitScriptParser.DEDENT);
1514
1675
  }
1515
1676
  }
@@ -1529,9 +1690,9 @@ export class CircuitScriptParser extends antlr.Parser {
1529
1690
  }
1530
1691
  function_expr() {
1531
1692
  let localContext = new Function_exprContext(this.context, this.state);
1532
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_function_expr);
1693
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_function_expr);
1533
1694
  try {
1534
- this.state = 345;
1695
+ this.state = 365;
1535
1696
  this.errorHandler.sync(this);
1536
1697
  switch (this.tokenStream.LA(1)) {
1537
1698
  case CircuitScriptParser.Break:
@@ -1559,14 +1720,14 @@ export class CircuitScriptParser extends antlr.Parser {
1559
1720
  case CircuitScriptParser.ID:
1560
1721
  this.enterOuterAlt(localContext, 1);
1561
1722
  {
1562
- this.state = 343;
1723
+ this.state = 363;
1563
1724
  this.expression();
1564
1725
  }
1565
1726
  break;
1566
1727
  case CircuitScriptParser.Return:
1567
1728
  this.enterOuterAlt(localContext, 2);
1568
1729
  {
1569
- this.state = 344;
1730
+ this.state = 364;
1570
1731
  this.function_return_expr();
1571
1732
  }
1572
1733
  break;
@@ -1590,46 +1751,46 @@ export class CircuitScriptParser extends antlr.Parser {
1590
1751
  }
1591
1752
  function_args_expr() {
1592
1753
  let localContext = new Function_args_exprContext(this.context, this.state);
1593
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_function_args_expr);
1754
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_function_args_expr);
1594
1755
  let _la;
1595
1756
  try {
1596
1757
  let alternative;
1597
1758
  this.enterOuterAlt(localContext, 1);
1598
1759
  {
1599
- this.state = 347;
1760
+ this.state = 367;
1600
1761
  this.match(CircuitScriptParser.ID);
1601
- this.state = 357;
1762
+ this.state = 377;
1602
1763
  this.errorHandler.sync(this);
1603
1764
  switch (this.tokenStream.LA(1)) {
1604
1765
  case CircuitScriptParser.Comma:
1605
1766
  case CircuitScriptParser.RParen:
1606
1767
  {
1607
- this.state = 352;
1768
+ this.state = 372;
1608
1769
  this.errorHandler.sync(this);
1609
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1770
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 33, this.context);
1610
1771
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1611
1772
  if (alternative === 1) {
1612
1773
  {
1613
1774
  {
1614
- this.state = 348;
1775
+ this.state = 368;
1615
1776
  this.match(CircuitScriptParser.Comma);
1616
- this.state = 349;
1777
+ this.state = 369;
1617
1778
  this.match(CircuitScriptParser.ID);
1618
1779
  }
1619
1780
  }
1620
1781
  }
1621
- this.state = 354;
1782
+ this.state = 374;
1622
1783
  this.errorHandler.sync(this);
1623
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1784
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 33, this.context);
1624
1785
  }
1625
1786
  }
1626
1787
  break;
1627
1788
  case CircuitScriptParser.Assign:
1628
1789
  {
1629
1790
  {
1630
- this.state = 355;
1791
+ this.state = 375;
1631
1792
  this.match(CircuitScriptParser.Assign);
1632
- this.state = 356;
1793
+ this.state = 376;
1633
1794
  this.value_expr();
1634
1795
  }
1635
1796
  }
@@ -1637,23 +1798,23 @@ export class CircuitScriptParser extends antlr.Parser {
1637
1798
  default:
1638
1799
  throw new antlr.NoViableAltException(this);
1639
1800
  }
1640
- this.state = 365;
1801
+ this.state = 385;
1641
1802
  this.errorHandler.sync(this);
1642
1803
  _la = this.tokenStream.LA(1);
1643
1804
  while (_la === 32) {
1644
1805
  {
1645
1806
  {
1646
- this.state = 359;
1807
+ this.state = 379;
1647
1808
  this.match(CircuitScriptParser.Comma);
1648
- this.state = 360;
1809
+ this.state = 380;
1649
1810
  this.match(CircuitScriptParser.ID);
1650
- this.state = 361;
1811
+ this.state = 381;
1651
1812
  this.match(CircuitScriptParser.Assign);
1652
- this.state = 362;
1813
+ this.state = 382;
1653
1814
  this.value_expr();
1654
1815
  }
1655
1816
  }
1656
- this.state = 367;
1817
+ this.state = 387;
1657
1818
  this.errorHandler.sync(this);
1658
1819
  _la = this.tokenStream.LA(1);
1659
1820
  }
@@ -1675,13 +1836,13 @@ export class CircuitScriptParser extends antlr.Parser {
1675
1836
  }
1676
1837
  function_return_expr() {
1677
1838
  let localContext = new Function_return_exprContext(this.context, this.state);
1678
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_function_return_expr);
1839
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_function_return_expr);
1679
1840
  try {
1680
1841
  this.enterOuterAlt(localContext, 1);
1681
1842
  {
1682
- this.state = 368;
1843
+ this.state = 388;
1683
1844
  this.match(CircuitScriptParser.Return);
1684
- this.state = 369;
1845
+ this.state = 389;
1685
1846
  this.data_expr(0);
1686
1847
  }
1687
1848
  }
@@ -1701,28 +1862,28 @@ export class CircuitScriptParser extends antlr.Parser {
1701
1862
  }
1702
1863
  net_namespace_expr() {
1703
1864
  let localContext = new Net_namespace_exprContext(this.context, this.state);
1704
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_net_namespace_expr);
1865
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_net_namespace_expr);
1705
1866
  let _la;
1706
1867
  try {
1707
1868
  this.enterOuterAlt(localContext, 1);
1708
1869
  {
1709
- this.state = 372;
1870
+ this.state = 392;
1710
1871
  this.errorHandler.sync(this);
1711
1872
  _la = this.tokenStream.LA(1);
1712
1873
  if (_la === 46) {
1713
1874
  {
1714
- this.state = 371;
1875
+ this.state = 391;
1715
1876
  this.match(CircuitScriptParser.Addition);
1716
1877
  }
1717
1878
  }
1718
- this.state = 374;
1879
+ this.state = 394;
1719
1880
  this.match(CircuitScriptParser.Divide);
1720
- this.state = 376;
1881
+ this.state = 396;
1721
1882
  this.errorHandler.sync(this);
1722
- switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1883
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 37, this.context)) {
1723
1884
  case 1:
1724
1885
  {
1725
- this.state = 375;
1886
+ this.state = 395;
1726
1887
  this.data_expr(0);
1727
1888
  }
1728
1889
  break;
@@ -1745,38 +1906,38 @@ export class CircuitScriptParser extends antlr.Parser {
1745
1906
  }
1746
1907
  callable_expr() {
1747
1908
  let localContext = new Callable_exprContext(this.context, this.state);
1748
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_callable_expr);
1909
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_callable_expr);
1749
1910
  let _la;
1750
1911
  try {
1751
1912
  let alternative;
1752
1913
  this.enterOuterAlt(localContext, 1);
1753
1914
  {
1754
- this.state = 379;
1915
+ this.state = 399;
1755
1916
  this.errorHandler.sync(this);
1756
1917
  _la = this.tokenStream.LA(1);
1757
1918
  if (_la === 46 || _la === 48) {
1758
1919
  {
1759
- this.state = 378;
1920
+ this.state = 398;
1760
1921
  this.net_namespace_expr();
1761
1922
  }
1762
1923
  }
1763
- this.state = 381;
1924
+ this.state = 401;
1764
1925
  this.match(CircuitScriptParser.ID);
1765
- this.state = 385;
1926
+ this.state = 405;
1766
1927
  this.errorHandler.sync(this);
1767
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1928
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
1768
1929
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1769
1930
  if (alternative === 1) {
1770
1931
  {
1771
1932
  {
1772
- this.state = 382;
1933
+ this.state = 402;
1773
1934
  this.trailer();
1774
1935
  }
1775
1936
  }
1776
1937
  }
1777
- this.state = 387;
1938
+ this.state = 407;
1778
1939
  this.errorHandler.sync(this);
1779
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1940
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
1780
1941
  }
1781
1942
  }
1782
1943
  }
@@ -1796,47 +1957,47 @@ export class CircuitScriptParser extends antlr.Parser {
1796
1957
  }
1797
1958
  trailer() {
1798
1959
  let localContext = new TrailerContext(this.context, this.state);
1799
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_trailer);
1960
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_trailer);
1800
1961
  let _la;
1801
1962
  try {
1802
- this.state = 399;
1963
+ this.state = 419;
1803
1964
  this.errorHandler.sync(this);
1804
1965
  switch (this.tokenStream.LA(1)) {
1805
1966
  case CircuitScriptParser.LParen:
1806
1967
  this.enterOuterAlt(localContext, 1);
1807
1968
  {
1808
- this.state = 388;
1969
+ this.state = 408;
1809
1970
  this.match(CircuitScriptParser.LParen);
1810
- this.state = 390;
1971
+ this.state = 410;
1811
1972
  this.errorHandler.sync(this);
1812
1973
  _la = this.tokenStream.LA(1);
1813
1974
  if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1077936129) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 16588807) !== 0)) {
1814
1975
  {
1815
- this.state = 389;
1976
+ this.state = 409;
1816
1977
  this.parameters();
1817
1978
  }
1818
1979
  }
1819
- this.state = 392;
1980
+ this.state = 412;
1820
1981
  this.match(CircuitScriptParser.RParen);
1821
1982
  }
1822
1983
  break;
1823
1984
  case CircuitScriptParser.Dot:
1824
1985
  this.enterOuterAlt(localContext, 2);
1825
1986
  {
1826
- this.state = 393;
1987
+ this.state = 413;
1827
1988
  this.match(CircuitScriptParser.Dot);
1828
- this.state = 394;
1989
+ this.state = 414;
1829
1990
  this.match(CircuitScriptParser.ID);
1830
1991
  }
1831
1992
  break;
1832
1993
  case CircuitScriptParser.LSquare:
1833
1994
  this.enterOuterAlt(localContext, 3);
1834
1995
  {
1835
- this.state = 395;
1996
+ this.state = 415;
1836
1997
  this.match(CircuitScriptParser.LSquare);
1837
- this.state = 396;
1998
+ this.state = 416;
1838
1999
  this.data_expr(0);
1839
- this.state = 397;
2000
+ this.state = 417;
1840
2001
  this.match(CircuitScriptParser.RSquare);
1841
2002
  }
1842
2003
  break;
@@ -1860,15 +2021,15 @@ export class CircuitScriptParser extends antlr.Parser {
1860
2021
  }
1861
2022
  property_block_expr() {
1862
2023
  let localContext = new Property_block_exprContext(this.context, this.state);
1863
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_property_block_expr);
2024
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_property_block_expr);
1864
2025
  try {
1865
2026
  this.enterOuterAlt(localContext, 1);
1866
2027
  {
1867
- this.state = 401;
2028
+ this.state = 421;
1868
2029
  this.property_key_expr();
1869
- this.state = 402;
2030
+ this.state = 422;
1870
2031
  this.match(CircuitScriptParser.Colon);
1871
- this.state = 403;
2032
+ this.state = 423;
1872
2033
  this.expressions_block();
1873
2034
  }
1874
2035
  }
@@ -1888,34 +2049,34 @@ export class CircuitScriptParser extends antlr.Parser {
1888
2049
  }
1889
2050
  properties_block() {
1890
2051
  let localContext = new Properties_blockContext(this.context, this.state);
1891
- this.enterRule(localContext, 62, CircuitScriptParser.RULE_properties_block);
2052
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_properties_block);
1892
2053
  let _la;
1893
2054
  try {
1894
2055
  this.enterOuterAlt(localContext, 1);
1895
2056
  {
1896
- this.state = 405;
2057
+ this.state = 425;
1897
2058
  this.match(CircuitScriptParser.NEWLINE);
1898
- this.state = 406;
2059
+ this.state = 426;
1899
2060
  this.match(CircuitScriptParser.INDENT);
1900
- this.state = 409;
2061
+ this.state = 429;
1901
2062
  this.errorHandler.sync(this);
1902
2063
  _la = this.tokenStream.LA(1);
1903
2064
  do {
1904
2065
  {
1905
- this.state = 409;
2066
+ this.state = 429;
1906
2067
  this.errorHandler.sync(this);
1907
2068
  switch (this.tokenStream.LA(1)) {
1908
2069
  case CircuitScriptParser.INTEGER_VALUE:
1909
2070
  case CircuitScriptParser.STRING_VALUE:
1910
2071
  case CircuitScriptParser.ID:
1911
2072
  {
1912
- this.state = 407;
2073
+ this.state = 427;
1913
2074
  this.property_expr();
1914
2075
  }
1915
2076
  break;
1916
2077
  case CircuitScriptParser.NEWLINE:
1917
2078
  {
1918
- this.state = 408;
2079
+ this.state = 428;
1919
2080
  this.match(CircuitScriptParser.NEWLINE);
1920
2081
  }
1921
2082
  break;
@@ -1923,11 +2084,11 @@ export class CircuitScriptParser extends antlr.Parser {
1923
2084
  throw new antlr.NoViableAltException(this);
1924
2085
  }
1925
2086
  }
1926
- this.state = 411;
2087
+ this.state = 431;
1927
2088
  this.errorHandler.sync(this);
1928
2089
  _la = this.tokenStream.LA(1);
1929
2090
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 12545) !== 0));
1930
- this.state = 413;
2091
+ this.state = 433;
1931
2092
  this.match(CircuitScriptParser.DEDENT);
1932
2093
  }
1933
2094
  }
@@ -1947,26 +2108,26 @@ export class CircuitScriptParser extends antlr.Parser {
1947
2108
  }
1948
2109
  graphic_expressions_block() {
1949
2110
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
1950
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_graphic_expressions_block);
2111
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_graphic_expressions_block);
1951
2112
  let _la;
1952
2113
  try {
1953
2114
  this.enterOuterAlt(localContext, 1);
1954
2115
  {
1955
- this.state = 415;
2116
+ this.state = 435;
1956
2117
  this.match(CircuitScriptParser.NEWLINE);
1957
- this.state = 416;
2118
+ this.state = 436;
1958
2119
  this.match(CircuitScriptParser.INDENT);
1959
- this.state = 419;
2120
+ this.state = 439;
1960
2121
  this.errorHandler.sync(this);
1961
2122
  _la = this.tokenStream.LA(1);
1962
2123
  do {
1963
2124
  {
1964
- this.state = 419;
2125
+ this.state = 439;
1965
2126
  this.errorHandler.sync(this);
1966
2127
  switch (this.tokenStream.LA(1)) {
1967
2128
  case CircuitScriptParser.NEWLINE:
1968
2129
  {
1969
- this.state = 417;
2130
+ this.state = 437;
1970
2131
  this.match(CircuitScriptParser.NEWLINE);
1971
2132
  }
1972
2133
  break;
@@ -1974,7 +2135,7 @@ export class CircuitScriptParser extends antlr.Parser {
1974
2135
  case CircuitScriptParser.For:
1975
2136
  case CircuitScriptParser.ID:
1976
2137
  {
1977
- this.state = 418;
2138
+ this.state = 438;
1978
2139
  this.graphic_expr();
1979
2140
  }
1980
2141
  break;
@@ -1982,11 +2143,11 @@ export class CircuitScriptParser extends antlr.Parser {
1982
2143
  throw new antlr.NoViableAltException(this);
1983
2144
  }
1984
2145
  }
1985
- this.state = 421;
2146
+ this.state = 441;
1986
2147
  this.errorHandler.sync(this);
1987
2148
  _la = this.tokenStream.LA(1);
1988
2149
  } while (_la === 10 || _la === 21 || _la === 56 || _la === 69);
1989
- this.state = 423;
2150
+ this.state = 443;
1990
2151
  this.match(CircuitScriptParser.DEDENT);
1991
2152
  }
1992
2153
  }
@@ -2006,29 +2167,29 @@ export class CircuitScriptParser extends antlr.Parser {
2006
2167
  }
2007
2168
  create_expr() {
2008
2169
  let localContext = new Create_exprContext(this.context, this.state);
2009
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_create_expr);
2170
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_create_expr);
2010
2171
  try {
2011
- this.state = 428;
2172
+ this.state = 448;
2012
2173
  this.errorHandler.sync(this);
2013
2174
  switch (this.tokenStream.LA(1)) {
2014
2175
  case CircuitScriptParser.Component:
2015
2176
  this.enterOuterAlt(localContext, 1);
2016
2177
  {
2017
- this.state = 425;
2178
+ this.state = 445;
2018
2179
  this.create_component_expr();
2019
2180
  }
2020
2181
  break;
2021
2182
  case CircuitScriptParser.Graphic:
2022
2183
  this.enterOuterAlt(localContext, 2);
2023
2184
  {
2024
- this.state = 426;
2185
+ this.state = 446;
2025
2186
  this.create_graphic_expr();
2026
2187
  }
2027
2188
  break;
2028
2189
  case CircuitScriptParser.Module:
2029
2190
  this.enterOuterAlt(localContext, 3);
2030
2191
  {
2031
- this.state = 427;
2192
+ this.state = 447;
2032
2193
  this.create_module_expr();
2033
2194
  }
2034
2195
  break;
@@ -2052,15 +2213,15 @@ export class CircuitScriptParser extends antlr.Parser {
2052
2213
  }
2053
2214
  create_component_expr() {
2054
2215
  let localContext = new Create_component_exprContext(this.context, this.state);
2055
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_create_component_expr);
2216
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_create_component_expr);
2056
2217
  try {
2057
2218
  this.enterOuterAlt(localContext, 1);
2058
2219
  {
2059
- this.state = 430;
2220
+ this.state = 450;
2060
2221
  this.match(CircuitScriptParser.Component);
2061
- this.state = 431;
2222
+ this.state = 451;
2062
2223
  this.match(CircuitScriptParser.Colon);
2063
- this.state = 432;
2224
+ this.state = 452;
2064
2225
  this.properties_block();
2065
2226
  }
2066
2227
  }
@@ -2080,29 +2241,29 @@ export class CircuitScriptParser extends antlr.Parser {
2080
2241
  }
2081
2242
  create_graphic_expr() {
2082
2243
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2083
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_create_graphic_expr);
2244
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_create_graphic_expr);
2084
2245
  let _la;
2085
2246
  try {
2086
2247
  this.enterOuterAlt(localContext, 1);
2087
2248
  {
2088
- this.state = 434;
2249
+ this.state = 454;
2089
2250
  this.match(CircuitScriptParser.Graphic);
2090
- this.state = 438;
2251
+ this.state = 458;
2091
2252
  this.errorHandler.sync(this);
2092
2253
  _la = this.tokenStream.LA(1);
2093
2254
  if (_la === 59) {
2094
2255
  {
2095
- this.state = 435;
2256
+ this.state = 455;
2096
2257
  this.match(CircuitScriptParser.LParen);
2097
- this.state = 436;
2258
+ this.state = 456;
2098
2259
  this.match(CircuitScriptParser.ID);
2099
- this.state = 437;
2260
+ this.state = 457;
2100
2261
  this.match(CircuitScriptParser.RParen);
2101
2262
  }
2102
2263
  }
2103
- this.state = 440;
2264
+ this.state = 460;
2104
2265
  this.match(CircuitScriptParser.Colon);
2105
- this.state = 441;
2266
+ this.state = 461;
2106
2267
  this.graphic_expressions_block();
2107
2268
  }
2108
2269
  }
@@ -2122,52 +2283,52 @@ export class CircuitScriptParser extends antlr.Parser {
2122
2283
  }
2123
2284
  create_module_expr() {
2124
2285
  let localContext = new Create_module_exprContext(this.context, this.state);
2125
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_create_module_expr);
2286
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_create_module_expr);
2126
2287
  let _la;
2127
2288
  try {
2128
2289
  this.enterOuterAlt(localContext, 1);
2129
2290
  {
2130
- this.state = 443;
2291
+ this.state = 463;
2131
2292
  this.match(CircuitScriptParser.Module);
2132
- this.state = 444;
2293
+ this.state = 464;
2133
2294
  this.match(CircuitScriptParser.Colon);
2134
- this.state = 445;
2295
+ this.state = 465;
2135
2296
  this.match(CircuitScriptParser.NEWLINE);
2136
- this.state = 446;
2297
+ this.state = 466;
2137
2298
  this.match(CircuitScriptParser.INDENT);
2138
- this.state = 450;
2299
+ this.state = 470;
2139
2300
  this.errorHandler.sync(this);
2140
2301
  _la = this.tokenStream.LA(1);
2141
2302
  do {
2142
2303
  {
2143
- this.state = 450;
2304
+ this.state = 470;
2144
2305
  this.errorHandler.sync(this);
2145
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2306
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2146
2307
  case 1:
2147
2308
  {
2148
- this.state = 447;
2309
+ this.state = 467;
2149
2310
  this.property_expr();
2150
2311
  }
2151
2312
  break;
2152
2313
  case 2:
2153
2314
  {
2154
- this.state = 448;
2315
+ this.state = 468;
2155
2316
  this.property_block_expr();
2156
2317
  }
2157
2318
  break;
2158
2319
  case 3:
2159
2320
  {
2160
- this.state = 449;
2321
+ this.state = 469;
2161
2322
  this.match(CircuitScriptParser.NEWLINE);
2162
2323
  }
2163
2324
  break;
2164
2325
  }
2165
2326
  }
2166
- this.state = 452;
2327
+ this.state = 472;
2167
2328
  this.errorHandler.sync(this);
2168
2329
  _la = this.tokenStream.LA(1);
2169
2330
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 12545) !== 0));
2170
- this.state = 454;
2331
+ this.state = 474;
2171
2332
  this.match(CircuitScriptParser.DEDENT);
2172
2333
  }
2173
2334
  }
@@ -2187,43 +2348,43 @@ export class CircuitScriptParser extends antlr.Parser {
2187
2348
  }
2188
2349
  graphic_expr() {
2189
2350
  let localContext = new Graphic_exprContext(this.context, this.state);
2190
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_graphic_expr);
2351
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_graphic_expr);
2191
2352
  let _la;
2192
2353
  try {
2193
- this.state = 480;
2354
+ this.state = 500;
2194
2355
  this.errorHandler.sync(this);
2195
2356
  switch (this.tokenStream.LA(1)) {
2196
2357
  case CircuitScriptParser.For:
2197
2358
  localContext = new GraphicForExprContext(localContext);
2198
2359
  this.enterOuterAlt(localContext, 1);
2199
2360
  {
2200
- this.state = 456;
2361
+ this.state = 476;
2201
2362
  this.match(CircuitScriptParser.For);
2202
- this.state = 457;
2363
+ this.state = 477;
2203
2364
  this.match(CircuitScriptParser.ID);
2204
- this.state = 462;
2365
+ this.state = 482;
2205
2366
  this.errorHandler.sync(this);
2206
2367
  _la = this.tokenStream.LA(1);
2207
2368
  while (_la === 32) {
2208
2369
  {
2209
2370
  {
2210
- this.state = 458;
2371
+ this.state = 478;
2211
2372
  this.match(CircuitScriptParser.Comma);
2212
- this.state = 459;
2373
+ this.state = 479;
2213
2374
  this.match(CircuitScriptParser.ID);
2214
2375
  }
2215
2376
  }
2216
- this.state = 464;
2377
+ this.state = 484;
2217
2378
  this.errorHandler.sync(this);
2218
2379
  _la = this.tokenStream.LA(1);
2219
2380
  }
2220
- this.state = 465;
2381
+ this.state = 485;
2221
2382
  this.match(CircuitScriptParser.In);
2222
- this.state = 466;
2383
+ this.state = 486;
2223
2384
  this.data_expr(0);
2224
- this.state = 467;
2385
+ this.state = 487;
2225
2386
  this.match(CircuitScriptParser.Colon);
2226
- this.state = 468;
2387
+ this.state = 488;
2227
2388
  this.graphic_expressions_block();
2228
2389
  }
2229
2390
  break;
@@ -2232,7 +2393,7 @@ export class CircuitScriptParser extends antlr.Parser {
2232
2393
  localContext = new GraphicCommandExprContext(localContext);
2233
2394
  this.enterOuterAlt(localContext, 2);
2234
2395
  {
2235
- this.state = 470;
2396
+ this.state = 490;
2236
2397
  localContext._command = this.tokenStream.LT(1);
2237
2398
  _la = this.tokenStream.LA(1);
2238
2399
  if (!(_la === 10 || _la === 69)) {
@@ -2242,30 +2403,30 @@ export class CircuitScriptParser extends antlr.Parser {
2242
2403
  this.errorHandler.reportMatch(this);
2243
2404
  this.consume();
2244
2405
  }
2245
- this.state = 471;
2406
+ this.state = 491;
2246
2407
  this.match(CircuitScriptParser.Colon);
2247
- this.state = 478;
2408
+ this.state = 498;
2248
2409
  this.errorHandler.sync(this);
2249
- switch (this.interpreter.adaptivePredict(this.tokenStream, 47, this.context)) {
2410
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2250
2411
  case 1:
2251
2412
  {
2252
- this.state = 472;
2413
+ this.state = 492;
2253
2414
  this.parameters();
2254
2415
  }
2255
2416
  break;
2256
2417
  case 2:
2257
2418
  {
2258
- this.state = 473;
2419
+ this.state = 493;
2259
2420
  this.match(CircuitScriptParser.LParen);
2260
- this.state = 474;
2421
+ this.state = 494;
2261
2422
  this.parameters();
2262
- this.state = 475;
2423
+ this.state = 495;
2263
2424
  this.match(CircuitScriptParser.RParen);
2264
2425
  }
2265
2426
  break;
2266
2427
  case 3:
2267
2428
  {
2268
- this.state = 477;
2429
+ this.state = 497;
2269
2430
  this.properties_block();
2270
2431
  }
2271
2432
  break;
@@ -2292,15 +2453,15 @@ export class CircuitScriptParser extends antlr.Parser {
2292
2453
  }
2293
2454
  property_expr() {
2294
2455
  let localContext = new Property_exprContext(this.context, this.state);
2295
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_property_expr);
2456
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_property_expr);
2296
2457
  try {
2297
2458
  this.enterOuterAlt(localContext, 1);
2298
2459
  {
2299
- this.state = 482;
2460
+ this.state = 502;
2300
2461
  this.property_key_expr();
2301
- this.state = 483;
2462
+ this.state = 503;
2302
2463
  this.match(CircuitScriptParser.Colon);
2303
- this.state = 484;
2464
+ this.state = 504;
2304
2465
  this.property_value_expr();
2305
2466
  }
2306
2467
  }
@@ -2320,12 +2481,12 @@ export class CircuitScriptParser extends antlr.Parser {
2320
2481
  }
2321
2482
  property_key_expr() {
2322
2483
  let localContext = new Property_key_exprContext(this.context, this.state);
2323
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_property_key_expr);
2484
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_property_key_expr);
2324
2485
  let _la;
2325
2486
  try {
2326
2487
  this.enterOuterAlt(localContext, 1);
2327
2488
  {
2328
- this.state = 486;
2489
+ this.state = 506;
2329
2490
  _la = this.tokenStream.LA(1);
2330
2491
  if (!(((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 49) !== 0))) {
2331
2492
  this.errorHandler.recoverInline(this);
@@ -2352,17 +2513,17 @@ export class CircuitScriptParser extends antlr.Parser {
2352
2513
  }
2353
2514
  property_value_expr() {
2354
2515
  let localContext = new Property_value_exprContext(this.context, this.state);
2355
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_property_value_expr);
2516
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_property_value_expr);
2356
2517
  let _la;
2357
2518
  try {
2358
- this.state = 497;
2519
+ this.state = 517;
2359
2520
  this.errorHandler.sync(this);
2360
2521
  switch (this.tokenStream.LA(1)) {
2361
2522
  case CircuitScriptParser.NEWLINE:
2362
2523
  localContext = new Nested_propertiesContext(localContext);
2363
2524
  this.enterOuterAlt(localContext, 1);
2364
2525
  {
2365
- this.state = 488;
2526
+ this.state = 508;
2366
2527
  this.properties_block();
2367
2528
  }
2368
2529
  break;
@@ -2383,21 +2544,21 @@ export class CircuitScriptParser extends antlr.Parser {
2383
2544
  localContext = new Single_line_propertyContext(localContext);
2384
2545
  this.enterOuterAlt(localContext, 2);
2385
2546
  {
2386
- this.state = 489;
2547
+ this.state = 509;
2387
2548
  this.data_expr(0);
2388
- this.state = 494;
2549
+ this.state = 514;
2389
2550
  this.errorHandler.sync(this);
2390
2551
  _la = this.tokenStream.LA(1);
2391
2552
  while (_la === 32) {
2392
2553
  {
2393
2554
  {
2394
- this.state = 490;
2555
+ this.state = 510;
2395
2556
  this.match(CircuitScriptParser.Comma);
2396
- this.state = 491;
2557
+ this.state = 511;
2397
2558
  this.data_expr(0);
2398
2559
  }
2399
2560
  }
2400
- this.state = 496;
2561
+ this.state = 516;
2401
2562
  this.errorHandler.sync(this);
2402
2563
  _la = this.tokenStream.LA(1);
2403
2564
  }
@@ -2423,14 +2584,14 @@ export class CircuitScriptParser extends antlr.Parser {
2423
2584
  }
2424
2585
  wire_expr() {
2425
2586
  let localContext = new Wire_exprContext(this.context, this.state);
2426
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_wire_expr);
2587
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_wire_expr);
2427
2588
  try {
2428
2589
  let alternative;
2429
2590
  this.enterOuterAlt(localContext, 1);
2430
2591
  {
2431
- this.state = 499;
2592
+ this.state = 519;
2432
2593
  this.match(CircuitScriptParser.Wire);
2433
- this.state = 504;
2594
+ this.state = 524;
2434
2595
  this.errorHandler.sync(this);
2435
2596
  alternative = 1;
2436
2597
  do {
@@ -2438,14 +2599,14 @@ export class CircuitScriptParser extends antlr.Parser {
2438
2599
  case 1:
2439
2600
  {
2440
2601
  {
2441
- this.state = 500;
2602
+ this.state = 520;
2442
2603
  this.match(CircuitScriptParser.ID);
2443
- this.state = 502;
2604
+ this.state = 522;
2444
2605
  this.errorHandler.sync(this);
2445
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2606
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 55, this.context)) {
2446
2607
  case 1:
2447
2608
  {
2448
- this.state = 501;
2609
+ this.state = 521;
2449
2610
  this.data_expr(0);
2450
2611
  }
2451
2612
  break;
@@ -2456,9 +2617,9 @@ export class CircuitScriptParser extends antlr.Parser {
2456
2617
  default:
2457
2618
  throw new antlr.NoViableAltException(this);
2458
2619
  }
2459
- this.state = 506;
2620
+ this.state = 526;
2460
2621
  this.errorHandler.sync(this);
2461
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 52, this.context);
2622
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 56, this.context);
2462
2623
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2463
2624
  }
2464
2625
  }
@@ -2478,13 +2639,13 @@ export class CircuitScriptParser extends antlr.Parser {
2478
2639
  }
2479
2640
  point_expr() {
2480
2641
  let localContext = new Point_exprContext(this.context, this.state);
2481
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_point_expr);
2642
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_point_expr);
2482
2643
  try {
2483
2644
  this.enterOuterAlt(localContext, 1);
2484
2645
  {
2485
- this.state = 508;
2646
+ this.state = 528;
2486
2647
  this.match(CircuitScriptParser.Point);
2487
- this.state = 509;
2648
+ this.state = 529;
2488
2649
  this.data_expr(0);
2489
2650
  }
2490
2651
  }
@@ -2504,26 +2665,26 @@ export class CircuitScriptParser extends antlr.Parser {
2504
2665
  }
2505
2666
  import_expr() {
2506
2667
  let localContext = new Import_exprContext(this.context, this.state);
2507
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_import_expr);
2668
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_import_expr);
2508
2669
  let _la;
2509
2670
  try {
2510
- this.state = 533;
2671
+ this.state = 553;
2511
2672
  this.errorHandler.sync(this);
2512
2673
  switch (this.tokenStream.LA(1)) {
2513
2674
  case CircuitScriptParser.Import:
2514
2675
  localContext = new Import_simpleContext(localContext);
2515
2676
  this.enterOuterAlt(localContext, 1);
2516
2677
  {
2517
- this.state = 511;
2678
+ this.state = 531;
2518
2679
  this.match(CircuitScriptParser.Import);
2519
- this.state = 512;
2680
+ this.state = 532;
2520
2681
  localContext._libraryName = this.match(CircuitScriptParser.STRING_VALUE);
2521
- this.state = 514;
2682
+ this.state = 534;
2522
2683
  this.errorHandler.sync(this);
2523
- switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2684
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2524
2685
  case 1:
2525
2686
  {
2526
- this.state = 513;
2687
+ this.state = 533;
2527
2688
  this.annotation_comment_expr();
2528
2689
  }
2529
2690
  break;
@@ -2534,41 +2695,41 @@ export class CircuitScriptParser extends antlr.Parser {
2534
2695
  localContext = new Import_specific_or_allContext(localContext);
2535
2696
  this.enterOuterAlt(localContext, 2);
2536
2697
  {
2537
- this.state = 516;
2698
+ this.state = 536;
2538
2699
  this.match(CircuitScriptParser.From);
2539
- this.state = 517;
2700
+ this.state = 537;
2540
2701
  localContext._libraryName = this.match(CircuitScriptParser.STRING_VALUE);
2541
- this.state = 518;
2702
+ this.state = 538;
2542
2703
  this.match(CircuitScriptParser.Import);
2543
- this.state = 528;
2704
+ this.state = 548;
2544
2705
  this.errorHandler.sync(this);
2545
2706
  switch (this.tokenStream.LA(1)) {
2546
2707
  case CircuitScriptParser.Multiply:
2547
2708
  {
2548
- this.state = 519;
2709
+ this.state = 539;
2549
2710
  localContext._all = this.match(CircuitScriptParser.Multiply);
2550
2711
  }
2551
2712
  break;
2552
2713
  case CircuitScriptParser.ID:
2553
2714
  {
2554
2715
  {
2555
- this.state = 520;
2716
+ this.state = 540;
2556
2717
  localContext._ID = this.match(CircuitScriptParser.ID);
2557
2718
  localContext._funcNames.push(localContext._ID);
2558
- this.state = 525;
2719
+ this.state = 545;
2559
2720
  this.errorHandler.sync(this);
2560
2721
  _la = this.tokenStream.LA(1);
2561
2722
  while (_la === 32) {
2562
2723
  {
2563
2724
  {
2564
- this.state = 521;
2725
+ this.state = 541;
2565
2726
  this.match(CircuitScriptParser.Comma);
2566
- this.state = 522;
2727
+ this.state = 542;
2567
2728
  localContext._ID = this.match(CircuitScriptParser.ID);
2568
2729
  localContext._funcNames.push(localContext._ID);
2569
2730
  }
2570
2731
  }
2571
- this.state = 527;
2732
+ this.state = 547;
2572
2733
  this.errorHandler.sync(this);
2573
2734
  _la = this.tokenStream.LA(1);
2574
2735
  }
@@ -2578,12 +2739,12 @@ export class CircuitScriptParser extends antlr.Parser {
2578
2739
  default:
2579
2740
  throw new antlr.NoViableAltException(this);
2580
2741
  }
2581
- this.state = 531;
2742
+ this.state = 551;
2582
2743
  this.errorHandler.sync(this);
2583
- switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
2744
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
2584
2745
  case 1:
2585
2746
  {
2586
- this.state = 530;
2747
+ this.state = 550;
2587
2748
  this.annotation_comment_expr();
2588
2749
  }
2589
2750
  break;
@@ -2610,12 +2771,12 @@ export class CircuitScriptParser extends antlr.Parser {
2610
2771
  }
2611
2772
  frame_expr() {
2612
2773
  let localContext = new Frame_exprContext(this.context, this.state);
2613
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_frame_expr);
2774
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_frame_expr);
2614
2775
  let _la;
2615
2776
  try {
2616
2777
  this.enterOuterAlt(localContext, 1);
2617
2778
  {
2618
- this.state = 535;
2779
+ this.state = 555;
2619
2780
  _la = this.tokenStream.LA(1);
2620
2781
  if (!(_la === 28 || _la === 29)) {
2621
2782
  this.errorHandler.recoverInline(this);
@@ -2624,10 +2785,18 @@ export class CircuitScriptParser extends antlr.Parser {
2624
2785
  this.errorHandler.reportMatch(this);
2625
2786
  this.consume();
2626
2787
  }
2627
- this.state = 536;
2788
+ this.state = 556;
2628
2789
  this.match(CircuitScriptParser.Colon);
2629
- this.state = 537;
2630
- this.expressions_block();
2790
+ this.state = 558;
2791
+ this.errorHandler.sync(this);
2792
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2793
+ case 1:
2794
+ {
2795
+ this.state = 557;
2796
+ this.expressions_block();
2797
+ }
2798
+ break;
2799
+ }
2631
2800
  }
2632
2801
  }
2633
2802
  catch (re) {
@@ -2646,42 +2815,42 @@ export class CircuitScriptParser extends antlr.Parser {
2646
2815
  }
2647
2816
  if_expr() {
2648
2817
  let localContext = new If_exprContext(this.context, this.state);
2649
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_if_expr);
2818
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_if_expr);
2650
2819
  let _la;
2651
2820
  try {
2652
2821
  let alternative;
2653
2822
  this.enterOuterAlt(localContext, 1);
2654
2823
  {
2655
- this.state = 539;
2824
+ this.state = 560;
2656
2825
  this.match(CircuitScriptParser.If);
2657
- this.state = 540;
2826
+ this.state = 561;
2658
2827
  this.data_expr(0);
2659
- this.state = 541;
2828
+ this.state = 562;
2660
2829
  this.match(CircuitScriptParser.Colon);
2661
- this.state = 542;
2830
+ this.state = 563;
2662
2831
  this.expressions_block();
2663
- this.state = 546;
2832
+ this.state = 567;
2664
2833
  this.errorHandler.sync(this);
2665
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 58, this.context);
2834
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2666
2835
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2667
2836
  if (alternative === 1) {
2668
2837
  {
2669
2838
  {
2670
- this.state = 543;
2839
+ this.state = 564;
2671
2840
  this.if_inner_expr();
2672
2841
  }
2673
2842
  }
2674
2843
  }
2675
- this.state = 548;
2844
+ this.state = 569;
2676
2845
  this.errorHandler.sync(this);
2677
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 58, this.context);
2846
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2678
2847
  }
2679
- this.state = 550;
2848
+ this.state = 571;
2680
2849
  this.errorHandler.sync(this);
2681
2850
  _la = this.tokenStream.LA(1);
2682
2851
  if (_la === 26) {
2683
2852
  {
2684
- this.state = 549;
2853
+ this.state = 570;
2685
2854
  this.else_expr();
2686
2855
  }
2687
2856
  }
@@ -2703,19 +2872,19 @@ export class CircuitScriptParser extends antlr.Parser {
2703
2872
  }
2704
2873
  if_inner_expr() {
2705
2874
  let localContext = new If_inner_exprContext(this.context, this.state);
2706
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_if_inner_expr);
2875
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_if_inner_expr);
2707
2876
  try {
2708
2877
  this.enterOuterAlt(localContext, 1);
2709
2878
  {
2710
- this.state = 552;
2879
+ this.state = 573;
2711
2880
  this.match(CircuitScriptParser.Else);
2712
- this.state = 553;
2881
+ this.state = 574;
2713
2882
  this.match(CircuitScriptParser.If);
2714
- this.state = 554;
2883
+ this.state = 575;
2715
2884
  this.data_expr(0);
2716
- this.state = 555;
2885
+ this.state = 576;
2717
2886
  this.match(CircuitScriptParser.Colon);
2718
- this.state = 556;
2887
+ this.state = 577;
2719
2888
  this.expressions_block();
2720
2889
  }
2721
2890
  }
@@ -2735,15 +2904,15 @@ export class CircuitScriptParser extends antlr.Parser {
2735
2904
  }
2736
2905
  else_expr() {
2737
2906
  let localContext = new Else_exprContext(this.context, this.state);
2738
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_else_expr);
2907
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_else_expr);
2739
2908
  try {
2740
2909
  this.enterOuterAlt(localContext, 1);
2741
2910
  {
2742
- this.state = 558;
2911
+ this.state = 579;
2743
2912
  this.match(CircuitScriptParser.Else);
2744
- this.state = 559;
2913
+ this.state = 580;
2745
2914
  this.match(CircuitScriptParser.Colon);
2746
- this.state = 560;
2915
+ this.state = 581;
2747
2916
  this.expressions_block();
2748
2917
  }
2749
2918
  }
@@ -2763,17 +2932,17 @@ export class CircuitScriptParser extends antlr.Parser {
2763
2932
  }
2764
2933
  while_expr() {
2765
2934
  let localContext = new While_exprContext(this.context, this.state);
2766
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_while_expr);
2935
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_while_expr);
2767
2936
  try {
2768
2937
  this.enterOuterAlt(localContext, 1);
2769
2938
  {
2770
- this.state = 562;
2939
+ this.state = 583;
2771
2940
  this.match(CircuitScriptParser.While);
2772
- this.state = 563;
2941
+ this.state = 584;
2773
2942
  this.data_expr(0);
2774
- this.state = 564;
2943
+ this.state = 585;
2775
2944
  this.match(CircuitScriptParser.Colon);
2776
- this.state = 565;
2945
+ this.state = 586;
2777
2946
  this.expressions_block();
2778
2947
  }
2779
2948
  }
@@ -2793,38 +2962,38 @@ export class CircuitScriptParser extends antlr.Parser {
2793
2962
  }
2794
2963
  for_expr() {
2795
2964
  let localContext = new For_exprContext(this.context, this.state);
2796
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_for_expr);
2965
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_for_expr);
2797
2966
  let _la;
2798
2967
  try {
2799
2968
  this.enterOuterAlt(localContext, 1);
2800
2969
  {
2801
- this.state = 567;
2970
+ this.state = 588;
2802
2971
  this.match(CircuitScriptParser.For);
2803
- this.state = 568;
2972
+ this.state = 589;
2804
2973
  this.match(CircuitScriptParser.ID);
2805
- this.state = 573;
2974
+ this.state = 594;
2806
2975
  this.errorHandler.sync(this);
2807
2976
  _la = this.tokenStream.LA(1);
2808
2977
  while (_la === 32) {
2809
2978
  {
2810
2979
  {
2811
- this.state = 569;
2980
+ this.state = 590;
2812
2981
  this.match(CircuitScriptParser.Comma);
2813
- this.state = 570;
2982
+ this.state = 591;
2814
2983
  this.match(CircuitScriptParser.ID);
2815
2984
  }
2816
2985
  }
2817
- this.state = 575;
2986
+ this.state = 596;
2818
2987
  this.errorHandler.sync(this);
2819
2988
  _la = this.tokenStream.LA(1);
2820
2989
  }
2821
- this.state = 576;
2990
+ this.state = 597;
2822
2991
  this.match(CircuitScriptParser.In);
2823
- this.state = 577;
2992
+ this.state = 598;
2824
2993
  this.data_expr(0);
2825
- this.state = 578;
2994
+ this.state = 599;
2826
2995
  this.match(CircuitScriptParser.Colon);
2827
- this.state = 579;
2996
+ this.state = 600;
2828
2997
  this.expressions_block();
2829
2998
  }
2830
2999
  }
@@ -2844,36 +3013,36 @@ export class CircuitScriptParser extends antlr.Parser {
2844
3013
  }
2845
3014
  part_set_expr() {
2846
3015
  let localContext = new Part_set_exprContext(this.context, this.state);
2847
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_part_set_expr);
3016
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_part_set_expr);
2848
3017
  let _la;
2849
3018
  try {
2850
3019
  this.enterOuterAlt(localContext, 1);
2851
3020
  {
2852
- this.state = 581;
3021
+ this.state = 602;
2853
3022
  this.match(CircuitScriptParser.Set);
2854
- this.state = 582;
3023
+ this.state = 603;
2855
3024
  this.match(CircuitScriptParser.Colon);
2856
- this.state = 583;
3025
+ this.state = 604;
2857
3026
  this.data_expr(0);
2858
- this.state = 588;
3027
+ this.state = 609;
2859
3028
  this.errorHandler.sync(this);
2860
3029
  _la = this.tokenStream.LA(1);
2861
3030
  while (_la === 32) {
2862
3031
  {
2863
3032
  {
2864
- this.state = 584;
3033
+ this.state = 605;
2865
3034
  this.match(CircuitScriptParser.Comma);
2866
- this.state = 585;
3035
+ this.state = 606;
2867
3036
  this.data_expr(0);
2868
3037
  }
2869
3038
  }
2870
- this.state = 590;
3039
+ this.state = 611;
2871
3040
  this.errorHandler.sync(this);
2872
3041
  _la = this.tokenStream.LA(1);
2873
3042
  }
2874
- this.state = 591;
3043
+ this.state = 612;
2875
3044
  this.match(CircuitScriptParser.Colon);
2876
- this.state = 592;
3045
+ this.state = 613;
2877
3046
  this.part_match_block();
2878
3047
  }
2879
3048
  }
@@ -2893,12 +3062,12 @@ export class CircuitScriptParser extends antlr.Parser {
2893
3062
  }
2894
3063
  part_set_key() {
2895
3064
  let localContext = new Part_set_keyContext(this.context, this.state);
2896
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_part_set_key);
3065
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_part_set_key);
2897
3066
  let _la;
2898
3067
  try {
2899
3068
  this.enterOuterAlt(localContext, 1);
2900
3069
  {
2901
- this.state = 594;
3070
+ this.state = 615;
2902
3071
  _la = this.tokenStream.LA(1);
2903
3072
  if (!(((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 61) !== 0))) {
2904
3073
  this.errorHandler.recoverInline(this);
@@ -2925,30 +3094,30 @@ export class CircuitScriptParser extends antlr.Parser {
2925
3094
  }
2926
3095
  part_match_block() {
2927
3096
  let localContext = new Part_match_blockContext(this.context, this.state);
2928
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_part_match_block);
3097
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_part_match_block);
2929
3098
  let _la;
2930
3099
  try {
2931
3100
  this.enterOuterAlt(localContext, 1);
2932
3101
  {
2933
- this.state = 596;
3102
+ this.state = 617;
2934
3103
  this.match(CircuitScriptParser.NEWLINE);
2935
- this.state = 597;
3104
+ this.state = 618;
2936
3105
  this.match(CircuitScriptParser.INDENT);
2937
- this.state = 599;
3106
+ this.state = 620;
2938
3107
  this.errorHandler.sync(this);
2939
3108
  _la = this.tokenStream.LA(1);
2940
3109
  do {
2941
3110
  {
2942
3111
  {
2943
- this.state = 598;
3112
+ this.state = 619;
2944
3113
  this.part_sub_expr();
2945
3114
  }
2946
3115
  }
2947
- this.state = 601;
3116
+ this.state = 622;
2948
3117
  this.errorHandler.sync(this);
2949
3118
  _la = this.tokenStream.LA(1);
2950
3119
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 15617) !== 0));
2951
- this.state = 603;
3120
+ this.state = 624;
2952
3121
  this.match(CircuitScriptParser.DEDENT);
2953
3122
  }
2954
3123
  }
@@ -2968,29 +3137,29 @@ export class CircuitScriptParser extends antlr.Parser {
2968
3137
  }
2969
3138
  part_sub_expr() {
2970
3139
  let localContext = new Part_sub_exprContext(this.context, this.state);
2971
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_part_sub_expr);
3140
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_part_sub_expr);
2972
3141
  try {
2973
- this.state = 608;
3142
+ this.state = 629;
2974
3143
  this.errorHandler.sync(this);
2975
- switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
3144
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
2976
3145
  case 1:
2977
3146
  this.enterOuterAlt(localContext, 1);
2978
3147
  {
2979
- this.state = 605;
3148
+ this.state = 626;
2980
3149
  this.part_condition_expr();
2981
3150
  }
2982
3151
  break;
2983
3152
  case 2:
2984
3153
  this.enterOuterAlt(localContext, 2);
2985
3154
  {
2986
- this.state = 606;
3155
+ this.state = 627;
2987
3156
  this.part_value_expr();
2988
3157
  }
2989
3158
  break;
2990
3159
  case 3:
2991
3160
  this.enterOuterAlt(localContext, 3);
2992
3161
  {
2993
- this.state = 607;
3162
+ this.state = 628;
2994
3163
  this.match(CircuitScriptParser.NEWLINE);
2995
3164
  }
2996
3165
  break;
@@ -3012,68 +3181,68 @@ export class CircuitScriptParser extends antlr.Parser {
3012
3181
  }
3013
3182
  part_condition_expr() {
3014
3183
  let localContext = new Part_condition_exprContext(this.context, this.state);
3015
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_part_condition_expr);
3184
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_part_condition_expr);
3016
3185
  let _la;
3017
3186
  try {
3018
3187
  let alternative;
3019
3188
  this.enterOuterAlt(localContext, 1);
3020
3189
  {
3021
- this.state = 610;
3190
+ this.state = 631;
3022
3191
  localContext._part_set_key = this.part_set_key();
3023
3192
  localContext._key_id.push(localContext._part_set_key);
3024
- this.state = 611;
3193
+ this.state = 632;
3025
3194
  this.match(CircuitScriptParser.Colon);
3026
- this.state = 612;
3195
+ this.state = 633;
3027
3196
  localContext._data_expr = this.data_expr(0);
3028
3197
  localContext._values.push(localContext._data_expr);
3029
- this.state = 620;
3198
+ this.state = 641;
3030
3199
  this.errorHandler.sync(this);
3031
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3200
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3032
3201
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3033
3202
  if (alternative === 1) {
3034
3203
  {
3035
3204
  {
3036
- this.state = 613;
3205
+ this.state = 634;
3037
3206
  this.match(CircuitScriptParser.Comma);
3038
- this.state = 614;
3207
+ this.state = 635;
3039
3208
  localContext._part_set_key = this.part_set_key();
3040
3209
  localContext._key_id.push(localContext._part_set_key);
3041
- this.state = 615;
3210
+ this.state = 636;
3042
3211
  this.match(CircuitScriptParser.Colon);
3043
- this.state = 616;
3212
+ this.state = 637;
3044
3213
  localContext._data_expr = this.data_expr(0);
3045
3214
  localContext._values.push(localContext._data_expr);
3046
3215
  }
3047
3216
  }
3048
3217
  }
3049
- this.state = 622;
3218
+ this.state = 643;
3050
3219
  this.errorHandler.sync(this);
3051
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3220
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
3052
3221
  }
3053
- this.state = 627;
3222
+ this.state = 648;
3054
3223
  this.errorHandler.sync(this);
3055
3224
  _la = this.tokenStream.LA(1);
3056
3225
  while (_la === 32) {
3057
3226
  {
3058
3227
  {
3059
- this.state = 623;
3228
+ this.state = 644;
3060
3229
  this.match(CircuitScriptParser.Comma);
3061
- this.state = 624;
3230
+ this.state = 645;
3062
3231
  localContext._id_only = this.part_set_key();
3063
3232
  }
3064
3233
  }
3065
- this.state = 629;
3234
+ this.state = 650;
3066
3235
  this.errorHandler.sync(this);
3067
3236
  _la = this.tokenStream.LA(1);
3068
3237
  }
3069
- this.state = 630;
3238
+ this.state = 651;
3070
3239
  this.match(CircuitScriptParser.Colon);
3071
- this.state = 640;
3240
+ this.state = 661;
3072
3241
  this.errorHandler.sync(this);
3073
3242
  switch (this.tokenStream.LA(1)) {
3074
3243
  case CircuitScriptParser.NEWLINE:
3075
3244
  {
3076
- this.state = 631;
3245
+ this.state = 652;
3077
3246
  this.part_match_block();
3078
3247
  }
3079
3248
  break;
@@ -3093,23 +3262,23 @@ export class CircuitScriptParser extends antlr.Parser {
3093
3262
  case CircuitScriptParser.ID:
3094
3263
  {
3095
3264
  {
3096
- this.state = 632;
3265
+ this.state = 653;
3097
3266
  localContext._data_expr = this.data_expr(0);
3098
3267
  localContext._last_data.push(localContext._data_expr);
3099
- this.state = 637;
3268
+ this.state = 658;
3100
3269
  this.errorHandler.sync(this);
3101
3270
  _la = this.tokenStream.LA(1);
3102
3271
  while (_la === 32) {
3103
3272
  {
3104
3273
  {
3105
- this.state = 633;
3274
+ this.state = 654;
3106
3275
  this.match(CircuitScriptParser.Comma);
3107
- this.state = 634;
3276
+ this.state = 655;
3108
3277
  localContext._data_expr = this.data_expr(0);
3109
3278
  localContext._last_data.push(localContext._data_expr);
3110
3279
  }
3111
3280
  }
3112
- this.state = 639;
3281
+ this.state = 660;
3113
3282
  this.errorHandler.sync(this);
3114
3283
  _la = this.tokenStream.LA(1);
3115
3284
  }
@@ -3137,21 +3306,21 @@ export class CircuitScriptParser extends antlr.Parser {
3137
3306
  }
3138
3307
  part_value_expr() {
3139
3308
  let localContext = new Part_value_exprContext(this.context, this.state);
3140
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_part_value_expr);
3309
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_part_value_expr);
3141
3310
  let _la;
3142
3311
  try {
3143
3312
  this.enterOuterAlt(localContext, 1);
3144
3313
  {
3145
- this.state = 642;
3314
+ this.state = 663;
3146
3315
  this.part_set_key();
3147
- this.state = 643;
3316
+ this.state = 664;
3148
3317
  this.match(CircuitScriptParser.Colon);
3149
- this.state = 653;
3318
+ this.state = 674;
3150
3319
  this.errorHandler.sync(this);
3151
3320
  switch (this.tokenStream.LA(1)) {
3152
3321
  case CircuitScriptParser.NEWLINE:
3153
3322
  {
3154
- this.state = 644;
3323
+ this.state = 665;
3155
3324
  this.part_match_block();
3156
3325
  }
3157
3326
  break;
@@ -3170,21 +3339,21 @@ export class CircuitScriptParser extends antlr.Parser {
3170
3339
  case CircuitScriptParser.STRING_VALUE:
3171
3340
  case CircuitScriptParser.ID:
3172
3341
  {
3173
- this.state = 645;
3342
+ this.state = 666;
3174
3343
  this.data_expr(0);
3175
- this.state = 650;
3344
+ this.state = 671;
3176
3345
  this.errorHandler.sync(this);
3177
3346
  _la = this.tokenStream.LA(1);
3178
3347
  while (_la === 32) {
3179
3348
  {
3180
3349
  {
3181
- this.state = 646;
3350
+ this.state = 667;
3182
3351
  this.match(CircuitScriptParser.Comma);
3183
- this.state = 647;
3352
+ this.state = 668;
3184
3353
  this.data_expr(0);
3185
3354
  }
3186
3355
  }
3187
- this.state = 652;
3356
+ this.state = 673;
3188
3357
  this.errorHandler.sync(this);
3189
3358
  _la = this.tokenStream.LA(1);
3190
3359
  }
@@ -3211,22 +3380,22 @@ export class CircuitScriptParser extends antlr.Parser {
3211
3380
  }
3212
3381
  annotation_comment_expr() {
3213
3382
  let localContext = new Annotation_comment_exprContext(this.context, this.state);
3214
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_annotation_comment_expr);
3383
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_annotation_comment_expr);
3215
3384
  let _la;
3216
3385
  try {
3217
3386
  let alternative;
3218
3387
  this.enterOuterAlt(localContext, 1);
3219
3388
  {
3220
- this.state = 655;
3389
+ this.state = 676;
3221
3390
  this.match(CircuitScriptParser.ANNOTATION_START);
3222
- this.state = 659;
3391
+ this.state = 680;
3223
3392
  this.errorHandler.sync(this);
3224
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3393
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3225
3394
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3226
3395
  if (alternative === 1) {
3227
3396
  {
3228
3397
  {
3229
- this.state = 656;
3398
+ this.state = 677;
3230
3399
  _la = this.tokenStream.LA(1);
3231
3400
  if (!(_la === 47 || _la === 69)) {
3232
3401
  this.errorHandler.recoverInline(this);
@@ -3238,9 +3407,9 @@ export class CircuitScriptParser extends antlr.Parser {
3238
3407
  }
3239
3408
  }
3240
3409
  }
3241
- this.state = 661;
3410
+ this.state = 682;
3242
3411
  this.errorHandler.sync(this);
3243
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3412
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3244
3413
  }
3245
3414
  }
3246
3415
  }
@@ -3260,7 +3429,7 @@ export class CircuitScriptParser extends antlr.Parser {
3260
3429
  }
3261
3430
  sempred(localContext, ruleIndex, predIndex) {
3262
3431
  switch (ruleIndex) {
3263
- case 21:
3432
+ case 23:
3264
3433
  return this.data_expr_sempred(localContext, predIndex);
3265
3434
  }
3266
3435
  return true;
@@ -3279,7 +3448,7 @@ export class CircuitScriptParser extends antlr.Parser {
3279
3448
  return true;
3280
3449
  }
3281
3450
  static _serializedATN = [
3282
- 4, 1, 69, 663, 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,
3451
+ 4, 1, 69, 684, 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,
3283
3452
  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,
3284
3453
  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,
3285
3454
  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,
@@ -3287,243 +3456,252 @@ export class CircuitScriptParser extends antlr.Parser {
3287
3456
  7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39,
3288
3457
  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,
3289
3458
  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,
3290
- 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 1, 0, 1, 0, 5, 0, 117, 8, 0, 10, 0,
3291
- 12, 0, 120, 9, 0, 1, 0, 5, 0, 123, 8, 0, 10, 0, 12, 0, 126, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1,
3292
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 140, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3,
3293
- 2, 147, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 156, 8, 3, 1, 4, 1, 4, 1, 4, 4,
3294
- 4, 161, 8, 4, 11, 4, 12, 4, 162, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7,
3295
- 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 3, 8, 180, 8, 8, 1, 8, 5, 8, 183, 8, 8, 10, 8, 12, 8, 186, 9,
3296
- 8, 1, 8, 3, 8, 189, 8, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11,
3297
- 3, 11, 201, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 5, 13, 210, 8, 13, 10,
3298
- 13, 12, 13, 213, 9, 13, 1, 14, 1, 14, 1, 14, 5, 14, 218, 8, 14, 10, 14, 12, 14, 221, 9,
3299
- 14, 1, 15, 1, 15, 1, 15, 1, 15, 4, 15, 227, 8, 15, 11, 15, 12, 15, 228, 1, 15, 1, 15, 1,
3300
- 16, 1, 16, 3, 16, 235, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 242, 8, 17, 1, 18,
3301
- 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 5, 19, 251, 8, 19, 10, 19, 12, 19, 254, 9, 19,
3302
- 1, 19, 3, 19, 257, 8, 19, 1, 19, 1, 19, 5, 19, 261, 8, 19, 10, 19, 12, 19, 264, 9, 19,
3303
- 1, 20, 1, 20, 1, 20, 5, 20, 269, 8, 20, 10, 20, 12, 20, 272, 9, 20, 1, 20, 1, 20, 1, 20,
3304
- 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21,
3305
- 5, 21, 290, 8, 21, 10, 21, 12, 21, 293, 9, 21, 5, 21, 295, 8, 21, 10, 21, 12, 21, 298,
3306
- 9, 21, 1, 21, 1, 21, 1, 21, 3, 21, 303, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21,
3307
- 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 317, 8, 21, 10, 21, 12, 21, 320, 9, 21,
3308
- 1, 22, 3, 22, 323, 8, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 331, 8, 23, 1,
3309
- 23, 1, 23, 1, 23, 1, 23, 1, 23, 4, 23, 338, 8, 23, 11, 23, 12, 23, 339, 1, 23, 1, 23, 1,
3310
- 24, 1, 24, 3, 24, 346, 8, 24, 1, 25, 1, 25, 1, 25, 5, 25, 351, 8, 25, 10, 25, 12, 25, 354,
3311
- 9, 25, 1, 25, 1, 25, 3, 25, 358, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 364, 8, 25, 10,
3312
- 25, 12, 25, 367, 9, 25, 1, 26, 1, 26, 1, 26, 1, 27, 3, 27, 373, 8, 27, 1, 27, 1, 27, 3,
3313
- 27, 377, 8, 27, 1, 28, 3, 28, 380, 8, 28, 1, 28, 1, 28, 5, 28, 384, 8, 28, 10, 28, 12,
3314
- 28, 387, 9, 28, 1, 29, 1, 29, 3, 29, 391, 8, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29,
3315
- 1, 29, 3, 29, 400, 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 4, 31,
3316
- 410, 8, 31, 11, 31, 12, 31, 411, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 4, 32, 420,
3317
- 8, 32, 11, 32, 12, 32, 421, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 3, 33, 429, 8, 33, 1, 34,
3318
- 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 439, 8, 35, 1, 35, 1, 35, 1, 35,
3319
- 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36, 451, 8, 36, 11, 36, 12, 36, 452,
3320
- 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 461, 8, 37, 10, 37, 12, 37, 464, 9, 37,
3321
- 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37,
3322
- 3, 37, 479, 8, 37, 3, 37, 481, 8, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 40, 1,
3323
- 40, 1, 40, 1, 40, 5, 40, 493, 8, 40, 10, 40, 12, 40, 496, 9, 40, 3, 40, 498, 8, 40, 1,
3324
- 41, 1, 41, 1, 41, 3, 41, 503, 8, 41, 4, 41, 505, 8, 41, 11, 41, 12, 41, 506, 1, 42, 1,
3325
- 42, 1, 42, 1, 43, 1, 43, 1, 43, 3, 43, 515, 8, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1,
3326
- 43, 1, 43, 5, 43, 524, 8, 43, 10, 43, 12, 43, 527, 9, 43, 3, 43, 529, 8, 43, 1, 43, 3,
3327
- 43, 532, 8, 43, 3, 43, 534, 8, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45,
3328
- 1, 45, 5, 45, 545, 8, 45, 10, 45, 12, 45, 548, 9, 45, 1, 45, 3, 45, 551, 8, 45, 1, 46,
3329
- 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48,
3330
- 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 572, 8, 49, 10, 49, 12, 49, 575, 9, 49, 1, 49,
3331
- 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 587, 8, 50, 10, 50,
3332
- 12, 50, 590, 9, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 4, 52, 600,
3333
- 8, 52, 11, 52, 12, 52, 601, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 3, 53, 609, 8, 53, 1, 54,
3334
- 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 619, 8, 54, 10, 54, 12, 54, 622,
3335
- 9, 54, 1, 54, 1, 54, 5, 54, 626, 8, 54, 10, 54, 12, 54, 629, 9, 54, 1, 54, 1, 54, 1, 54,
3336
- 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54, 3, 54, 641, 8, 54, 1, 55,
3337
- 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 649, 8, 55, 10, 55, 12, 55, 652, 9, 55, 3, 55,
3338
- 654, 8, 55, 1, 56, 1, 56, 5, 56, 658, 8, 56, 10, 56, 12, 56, 661, 9, 56, 1, 56, 0, 1, 42,
3339
- 57, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,
3340
- 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86,
3341
- 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 0, 13, 2, 0, 4, 4, 14, 16,
3342
- 2, 0, 37, 37, 51, 55, 2, 0, 27, 27, 47, 47, 1, 0, 48, 50, 1, 0, 46, 47, 1, 0, 38, 43, 1,
3343
- 0, 44, 45, 2, 0, 62, 62, 64, 68, 2, 0, 10, 10, 69, 69, 2, 0, 64, 64, 68, 69, 1, 0, 28, 29,
3344
- 2, 0, 64, 64, 66, 69, 2, 0, 47, 47, 69, 69, 705, 0, 118, 1, 0, 0, 0, 2, 139, 1, 0, 0, 0,
3345
- 4, 146, 1, 0, 0, 0, 6, 155, 1, 0, 0, 0, 8, 157, 1, 0, 0, 0, 10, 166, 1, 0, 0, 0, 12, 170,
3346
- 1, 0, 0, 0, 14, 173, 1, 0, 0, 0, 16, 179, 1, 0, 0, 0, 18, 190, 1, 0, 0, 0, 20, 194, 1, 0,
3347
- 0, 0, 22, 200, 1, 0, 0, 0, 24, 202, 1, 0, 0, 0, 26, 205, 1, 0, 0, 0, 28, 214, 1, 0, 0, 0,
3348
- 30, 222, 1, 0, 0, 0, 32, 234, 1, 0, 0, 0, 34, 236, 1, 0, 0, 0, 36, 243, 1, 0, 0, 0, 38, 256,
3349
- 1, 0, 0, 0, 40, 265, 1, 0, 0, 0, 42, 302, 1, 0, 0, 0, 44, 322, 1, 0, 0, 0, 46, 326, 1, 0,
3350
- 0, 0, 48, 345, 1, 0, 0, 0, 50, 347, 1, 0, 0, 0, 52, 368, 1, 0, 0, 0, 54, 372, 1, 0, 0, 0,
3351
- 56, 379, 1, 0, 0, 0, 58, 399, 1, 0, 0, 0, 60, 401, 1, 0, 0, 0, 62, 405, 1, 0, 0, 0, 64, 415,
3352
- 1, 0, 0, 0, 66, 428, 1, 0, 0, 0, 68, 430, 1, 0, 0, 0, 70, 434, 1, 0, 0, 0, 72, 443, 1, 0,
3353
- 0, 0, 74, 480, 1, 0, 0, 0, 76, 482, 1, 0, 0, 0, 78, 486, 1, 0, 0, 0, 80, 497, 1, 0, 0, 0,
3354
- 82, 499, 1, 0, 0, 0, 84, 508, 1, 0, 0, 0, 86, 533, 1, 0, 0, 0, 88, 535, 1, 0, 0, 0, 90, 539,
3355
- 1, 0, 0, 0, 92, 552, 1, 0, 0, 0, 94, 558, 1, 0, 0, 0, 96, 562, 1, 0, 0, 0, 98, 567, 1, 0,
3356
- 0, 0, 100, 581, 1, 0, 0, 0, 102, 594, 1, 0, 0, 0, 104, 596, 1, 0, 0, 0, 106, 608, 1, 0,
3357
- 0, 0, 108, 610, 1, 0, 0, 0, 110, 642, 1, 0, 0, 0, 112, 655, 1, 0, 0, 0, 114, 117, 3, 86,
3358
- 43, 0, 115, 117, 5, 56, 0, 0, 116, 114, 1, 0, 0, 0, 116, 115, 1, 0, 0, 0, 117, 120, 1,
3359
- 0, 0, 0, 118, 116, 1, 0, 0, 0, 118, 119, 1, 0, 0, 0, 119, 124, 1, 0, 0, 0, 120, 118, 1,
3360
- 0, 0, 0, 121, 123, 3, 2, 1, 0, 122, 121, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1,
3361
- 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 5,
3362
- 0, 0, 1, 128, 1, 1, 0, 0, 0, 129, 140, 3, 4, 2, 0, 130, 140, 3, 6, 3, 0, 131, 140, 3, 46,
3363
- 23, 0, 132, 140, 3, 88, 44, 0, 133, 140, 3, 100, 50, 0, 134, 140, 3, 112, 56, 0, 135,
3364
- 140, 3, 40, 20, 0, 136, 140, 3, 18, 9, 0, 137, 140, 3, 56, 28, 0, 138, 140, 5, 56, 0,
3365
- 0, 139, 129, 1, 0, 0, 0, 139, 130, 1, 0, 0, 0, 139, 131, 1, 0, 0, 0, 139, 132, 1, 0, 0,
3366
- 0, 139, 133, 1, 0, 0, 0, 139, 134, 1, 0, 0, 0, 139, 135, 1, 0, 0, 0, 139, 136, 1, 0, 0,
3367
- 0, 139, 137, 1, 0, 0, 0, 139, 138, 1, 0, 0, 0, 140, 3, 1, 0, 0, 0, 141, 147, 3, 90, 45,
3368
- 0, 142, 147, 3, 96, 48, 0, 143, 147, 3, 98, 49, 0, 144, 147, 5, 3, 0, 0, 145, 147, 5,
3369
- 24, 0, 0, 146, 141, 1, 0, 0, 0, 146, 142, 1, 0, 0, 0, 146, 143, 1, 0, 0, 0, 146, 144, 1,
3370
- 0, 0, 0, 146, 145, 1, 0, 0, 0, 147, 5, 1, 0, 0, 0, 148, 156, 3, 20, 10, 0, 149, 156, 3,
3371
- 24, 12, 0, 150, 156, 3, 30, 15, 0, 151, 156, 3, 26, 13, 0, 152, 156, 3, 82, 41, 0, 153,
3372
- 156, 3, 84, 42, 0, 154, 156, 3, 10, 5, 0, 155, 148, 1, 0, 0, 0, 155, 149, 1, 0, 0, 0, 155,
3373
- 150, 1, 0, 0, 0, 155, 151, 1, 0, 0, 0, 155, 152, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155,
3374
- 154, 1, 0, 0, 0, 156, 7, 1, 0, 0, 0, 157, 158, 5, 56, 0, 0, 158, 160, 5, 1, 0, 0, 159, 161,
3375
- 3, 2, 1, 0, 160, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163,
3376
- 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 165, 5, 2, 0, 0, 165, 9, 1, 0, 0, 0, 166, 167, 7,
3377
- 0, 0, 0, 167, 168, 5, 31, 0, 0, 168, 169, 3, 8, 4, 0, 169, 11, 1, 0, 0, 0, 170, 171, 5,
3378
- 10, 0, 0, 171, 172, 3, 42, 21, 0, 172, 13, 1, 0, 0, 0, 173, 174, 5, 69, 0, 0, 174, 175,
3379
- 5, 31, 0, 0, 175, 176, 3, 42, 21, 0, 176, 15, 1, 0, 0, 0, 177, 180, 3, 42, 21, 0, 178,
3380
- 180, 3, 18, 9, 0, 179, 177, 1, 0, 0, 0, 179, 178, 1, 0, 0, 0, 180, 184, 1, 0, 0, 0, 181,
3381
- 183, 3, 14, 7, 0, 182, 181, 1, 0, 0, 0, 183, 186, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184,
3382
- 185, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 187, 189, 3, 12, 6, 0, 188,
3383
- 187, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 17, 1, 0, 0, 0, 190, 191, 3, 56, 28, 0, 191,
3384
- 192, 7, 1, 0, 0, 192, 193, 3, 42, 21, 0, 193, 19, 1, 0, 0, 0, 194, 195, 5, 11, 0, 0, 195,
3385
- 196, 3, 16, 8, 0, 196, 21, 1, 0, 0, 0, 197, 201, 3, 16, 8, 0, 198, 201, 3, 12, 6, 0, 199,
3386
- 201, 5, 14, 0, 0, 200, 197, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201,
3387
- 23, 1, 0, 0, 0, 202, 203, 5, 12, 0, 0, 203, 204, 3, 22, 11, 0, 204, 25, 1, 0, 0, 0, 205,
3388
- 206, 5, 13, 0, 0, 206, 211, 3, 22, 11, 0, 207, 208, 5, 32, 0, 0, 208, 210, 3, 22, 11,
3389
- 0, 209, 207, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, 212, 1, 0, 0,
3390
- 0, 212, 27, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 214, 215, 3, 24, 12, 0, 215, 219, 5, 31,
3391
- 0, 0, 216, 218, 3, 112, 56, 0, 217, 216, 1, 0, 0, 0, 218, 221, 1, 0, 0, 0, 219, 217, 1,
3392
- 0, 0, 0, 219, 220, 1, 0, 0, 0, 220, 29, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 222, 223, 3, 28,
3393
- 14, 0, 223, 224, 5, 56, 0, 0, 224, 226, 5, 1, 0, 0, 225, 227, 3, 32, 16, 0, 226, 225,
3394
- 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 230,
3395
- 1, 0, 0, 0, 230, 231, 5, 2, 0, 0, 231, 31, 1, 0, 0, 0, 232, 235, 3, 2, 1, 0, 233, 235, 3,
3396
- 34, 17, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 33, 1, 0, 0, 0, 236, 237, 3,
3397
- 78, 39, 0, 237, 241, 5, 31, 0, 0, 238, 242, 3, 2, 1, 0, 239, 242, 3, 8, 4, 0, 240, 242,
3398
- 5, 61, 0, 0, 241, 238, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 35,
3399
- 1, 0, 0, 0, 243, 244, 5, 69, 0, 0, 244, 245, 5, 37, 0, 0, 245, 246, 3, 42, 21, 0, 246,
3400
- 37, 1, 0, 0, 0, 247, 252, 3, 42, 21, 0, 248, 249, 5, 32, 0, 0, 249, 251, 3, 42, 21, 0,
3401
- 250, 248, 1, 0, 0, 0, 251, 254, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0,
3402
- 253, 257, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 255, 257, 3, 36, 18, 0, 256, 247, 1, 0, 0,
3403
- 0, 256, 255, 1, 0, 0, 0, 257, 262, 1, 0, 0, 0, 258, 259, 5, 32, 0, 0, 259, 261, 3, 36,
3404
- 18, 0, 260, 258, 1, 0, 0, 0, 261, 264, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0,
3405
- 0, 0, 263, 39, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 265, 266, 5, 34, 0, 0, 266, 270, 5, 69,
3406
- 0, 0, 267, 269, 3, 58, 29, 0, 268, 267, 1, 0, 0, 0, 269, 272, 1, 0, 0, 0, 270, 268, 1,
3407
- 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 273, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 273, 274, 5,
3408
- 37, 0, 0, 274, 275, 3, 42, 21, 0, 275, 41, 1, 0, 0, 0, 276, 277, 6, 21, -1, 0, 277, 278,
3409
- 5, 59, 0, 0, 278, 279, 3, 42, 21, 0, 279, 280, 5, 60, 0, 0, 280, 303, 1, 0, 0, 0, 281,
3410
- 282, 5, 5, 0, 0, 282, 303, 3, 66, 33, 0, 283, 284, 7, 2, 0, 0, 284, 303, 3, 42, 21, 8,
3411
- 285, 296, 5, 35, 0, 0, 286, 291, 3, 42, 21, 0, 287, 288, 5, 32, 0, 0, 288, 290, 3, 42,
3412
- 21, 0, 289, 287, 1, 0, 0, 0, 290, 293, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 291, 292, 1, 0,
3413
- 0, 0, 292, 295, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294, 286, 1, 0, 0, 0, 295, 298, 1, 0,
3414
- 0, 0, 296, 294, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 299, 1, 0, 0, 0, 298, 296, 1, 0,
3415
- 0, 0, 299, 303, 5, 36, 0, 0, 300, 303, 3, 44, 22, 0, 301, 303, 3, 56, 28, 0, 302, 276,
3416
- 1, 0, 0, 0, 302, 281, 1, 0, 0, 0, 302, 283, 1, 0, 0, 0, 302, 285, 1, 0, 0, 0, 302, 300,
3417
- 1, 0, 0, 0, 302, 301, 1, 0, 0, 0, 303, 318, 1, 0, 0, 0, 304, 305, 10, 6, 0, 0, 305, 306,
3418
- 7, 3, 0, 0, 306, 317, 3, 42, 21, 7, 307, 308, 10, 5, 0, 0, 308, 309, 7, 4, 0, 0, 309, 317,
3419
- 3, 42, 21, 6, 310, 311, 10, 4, 0, 0, 311, 312, 7, 5, 0, 0, 312, 317, 3, 42, 21, 5, 313,
3420
- 314, 10, 3, 0, 0, 314, 315, 7, 6, 0, 0, 315, 317, 3, 42, 21, 4, 316, 304, 1, 0, 0, 0, 316,
3421
- 307, 1, 0, 0, 0, 316, 310, 1, 0, 0, 0, 316, 313, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318,
3422
- 316, 1, 0, 0, 0, 318, 319, 1, 0, 0, 0, 319, 43, 1, 0, 0, 0, 320, 318, 1, 0, 0, 0, 321, 323,
3423
- 5, 47, 0, 0, 322, 321, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 325,
3424
- 7, 7, 0, 0, 325, 45, 1, 0, 0, 0, 326, 327, 5, 18, 0, 0, 327, 328, 5, 69, 0, 0, 328, 330,
3425
- 5, 59, 0, 0, 329, 331, 3, 50, 25, 0, 330, 329, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332,
3426
- 1, 0, 0, 0, 332, 333, 5, 60, 0, 0, 333, 334, 5, 31, 0, 0, 334, 335, 5, 56, 0, 0, 335, 337,
3427
- 5, 1, 0, 0, 336, 338, 3, 48, 24, 0, 337, 336, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 337,
3428
- 1, 0, 0, 0, 339, 340, 1, 0, 0, 0, 340, 341, 1, 0, 0, 0, 341, 342, 5, 2, 0, 0, 342, 47, 1,
3429
- 0, 0, 0, 343, 346, 3, 2, 1, 0, 344, 346, 3, 52, 26, 0, 345, 343, 1, 0, 0, 0, 345, 344,
3430
- 1, 0, 0, 0, 346, 49, 1, 0, 0, 0, 347, 357, 5, 69, 0, 0, 348, 349, 5, 32, 0, 0, 349, 351,
3431
- 5, 69, 0, 0, 350, 348, 1, 0, 0, 0, 351, 354, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 352, 353,
3432
- 1, 0, 0, 0, 353, 358, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 355, 356, 5, 37, 0, 0, 356, 358,
3433
- 3, 44, 22, 0, 357, 352, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 365, 1, 0, 0, 0, 359, 360,
3434
- 5, 32, 0, 0, 360, 361, 5, 69, 0, 0, 361, 362, 5, 37, 0, 0, 362, 364, 3, 44, 22, 0, 363,
3435
- 359, 1, 0, 0, 0, 364, 367, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366,
3436
- 51, 1, 0, 0, 0, 367, 365, 1, 0, 0, 0, 368, 369, 5, 17, 0, 0, 369, 370, 3, 42, 21, 0, 370,
3437
- 53, 1, 0, 0, 0, 371, 373, 5, 46, 0, 0, 372, 371, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373,
3438
- 374, 1, 0, 0, 0, 374, 376, 5, 48, 0, 0, 375, 377, 3, 42, 21, 0, 376, 375, 1, 0, 0, 0, 376,
3439
- 377, 1, 0, 0, 0, 377, 55, 1, 0, 0, 0, 378, 380, 3, 54, 27, 0, 379, 378, 1, 0, 0, 0, 379,
3440
- 380, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 385, 5, 69, 0, 0, 382, 384, 3, 58, 29, 0, 383,
3441
- 382, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386,
3442
- 57, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 390, 5, 59, 0, 0, 389, 391, 3, 38, 19, 0, 390,
3443
- 389, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 400, 5, 60, 0, 0, 393,
3444
- 394, 5, 33, 0, 0, 394, 400, 5, 69, 0, 0, 395, 396, 5, 35, 0, 0, 396, 397, 3, 42, 21, 0,
3445
- 397, 398, 5, 36, 0, 0, 398, 400, 1, 0, 0, 0, 399, 388, 1, 0, 0, 0, 399, 393, 1, 0, 0, 0,
3446
- 399, 395, 1, 0, 0, 0, 400, 59, 1, 0, 0, 0, 401, 402, 3, 78, 39, 0, 402, 403, 5, 31, 0,
3447
- 0, 403, 404, 3, 8, 4, 0, 404, 61, 1, 0, 0, 0, 405, 406, 5, 56, 0, 0, 406, 409, 5, 1, 0,
3448
- 0, 407, 410, 3, 76, 38, 0, 408, 410, 5, 56, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0,
3449
- 0, 0, 410, 411, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0,
3450
- 0, 0, 413, 414, 5, 2, 0, 0, 414, 63, 1, 0, 0, 0, 415, 416, 5, 56, 0, 0, 416, 419, 5, 1,
3451
- 0, 0, 417, 420, 5, 56, 0, 0, 418, 420, 3, 74, 37, 0, 419, 417, 1, 0, 0, 0, 419, 418, 1,
3452
- 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 423, 1,
3453
- 0, 0, 0, 423, 424, 5, 2, 0, 0, 424, 65, 1, 0, 0, 0, 425, 429, 3, 68, 34, 0, 426, 429, 3,
3454
- 70, 35, 0, 427, 429, 3, 72, 36, 0, 428, 425, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 427,
3455
- 1, 0, 0, 0, 429, 67, 1, 0, 0, 0, 430, 431, 5, 6, 0, 0, 431, 432, 5, 31, 0, 0, 432, 433,
3456
- 3, 62, 31, 0, 433, 69, 1, 0, 0, 0, 434, 438, 5, 7, 0, 0, 435, 436, 5, 59, 0, 0, 436, 437,
3457
- 5, 69, 0, 0, 437, 439, 5, 60, 0, 0, 438, 435, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440,
3458
- 1, 0, 0, 0, 440, 441, 5, 31, 0, 0, 441, 442, 3, 64, 32, 0, 442, 71, 1, 0, 0, 0, 443, 444,
3459
- 5, 8, 0, 0, 444, 445, 5, 31, 0, 0, 445, 446, 5, 56, 0, 0, 446, 450, 5, 1, 0, 0, 447, 451,
3460
- 3, 76, 38, 0, 448, 451, 3, 60, 30, 0, 449, 451, 5, 56, 0, 0, 450, 447, 1, 0, 0, 0, 450,
3461
- 448, 1, 0, 0, 0, 450, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 452,
3462
- 453, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454, 455, 5, 2, 0, 0, 455, 73, 1, 0, 0, 0, 456, 457,
3463
- 5, 21, 0, 0, 457, 462, 5, 69, 0, 0, 458, 459, 5, 32, 0, 0, 459, 461, 5, 69, 0, 0, 460,
3464
- 458, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463,
3465
- 465, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 466, 5, 22, 0, 0, 466, 467, 3, 42, 21, 0, 467,
3466
- 468, 5, 31, 0, 0, 468, 469, 3, 64, 32, 0, 469, 481, 1, 0, 0, 0, 470, 471, 7, 8, 0, 0, 471,
3467
- 478, 5, 31, 0, 0, 472, 479, 3, 38, 19, 0, 473, 474, 5, 59, 0, 0, 474, 475, 3, 38, 19,
3468
- 0, 475, 476, 5, 60, 0, 0, 476, 479, 1, 0, 0, 0, 477, 479, 3, 62, 31, 0, 478, 472, 1, 0,
3469
- 0, 0, 478, 473, 1, 0, 0, 0, 478, 477, 1, 0, 0, 0, 479, 481, 1, 0, 0, 0, 480, 456, 1, 0,
3470
- 0, 0, 480, 470, 1, 0, 0, 0, 481, 75, 1, 0, 0, 0, 482, 483, 3, 78, 39, 0, 483, 484, 5, 31,
3471
- 0, 0, 484, 485, 3, 80, 40, 0, 485, 77, 1, 0, 0, 0, 486, 487, 7, 9, 0, 0, 487, 79, 1, 0,
3472
- 0, 0, 488, 498, 3, 62, 31, 0, 489, 494, 3, 42, 21, 0, 490, 491, 5, 32, 0, 0, 491, 493,
3473
- 3, 42, 21, 0, 492, 490, 1, 0, 0, 0, 493, 496, 1, 0, 0, 0, 494, 492, 1, 0, 0, 0, 494, 495,
3474
- 1, 0, 0, 0, 495, 498, 1, 0, 0, 0, 496, 494, 1, 0, 0, 0, 497, 488, 1, 0, 0, 0, 497, 489,
3475
- 1, 0, 0, 0, 498, 81, 1, 0, 0, 0, 499, 504, 5, 9, 0, 0, 500, 502, 5, 69, 0, 0, 501, 503,
3476
- 3, 42, 21, 0, 502, 501, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 505, 1, 0, 0, 0, 504, 500,
3477
- 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 504, 1, 0, 0, 0, 506, 507, 1, 0, 0, 0, 507, 83, 1,
3478
- 0, 0, 0, 508, 509, 5, 14, 0, 0, 509, 510, 3, 42, 21, 0, 510, 85, 1, 0, 0, 0, 511, 512,
3479
- 5, 19, 0, 0, 512, 514, 5, 68, 0, 0, 513, 515, 3, 112, 56, 0, 514, 513, 1, 0, 0, 0, 514,
3480
- 515, 1, 0, 0, 0, 515, 534, 1, 0, 0, 0, 516, 517, 5, 20, 0, 0, 517, 518, 5, 68, 0, 0, 518,
3481
- 528, 5, 19, 0, 0, 519, 529, 5, 49, 0, 0, 520, 525, 5, 69, 0, 0, 521, 522, 5, 32, 0, 0,
3482
- 522, 524, 5, 69, 0, 0, 523, 521, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0,
3483
- 525, 526, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528, 519, 1, 0, 0, 0,
3484
- 528, 520, 1, 0, 0, 0, 529, 531, 1, 0, 0, 0, 530, 532, 3, 112, 56, 0, 531, 530, 1, 0, 0,
3485
- 0, 531, 532, 1, 0, 0, 0, 532, 534, 1, 0, 0, 0, 533, 511, 1, 0, 0, 0, 533, 516, 1, 0, 0,
3486
- 0, 534, 87, 1, 0, 0, 0, 535, 536, 7, 10, 0, 0, 536, 537, 5, 31, 0, 0, 537, 538, 3, 8, 4,
3487
- 0, 538, 89, 1, 0, 0, 0, 539, 540, 5, 25, 0, 0, 540, 541, 3, 42, 21, 0, 541, 542, 5, 31,
3488
- 0, 0, 542, 546, 3, 8, 4, 0, 543, 545, 3, 92, 46, 0, 544, 543, 1, 0, 0, 0, 545, 548, 1,
3489
- 0, 0, 0, 546, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 550, 1, 0, 0, 0, 548, 546, 1,
3490
- 0, 0, 0, 549, 551, 3, 94, 47, 0, 550, 549, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 91, 1,
3491
- 0, 0, 0, 552, 553, 5, 26, 0, 0, 553, 554, 5, 25, 0, 0, 554, 555, 3, 42, 21, 0, 555, 556,
3492
- 5, 31, 0, 0, 556, 557, 3, 8, 4, 0, 557, 93, 1, 0, 0, 0, 558, 559, 5, 26, 0, 0, 559, 560,
3493
- 5, 31, 0, 0, 560, 561, 3, 8, 4, 0, 561, 95, 1, 0, 0, 0, 562, 563, 5, 23, 0, 0, 563, 564,
3494
- 3, 42, 21, 0, 564, 565, 5, 31, 0, 0, 565, 566, 3, 8, 4, 0, 566, 97, 1, 0, 0, 0, 567, 568,
3495
- 5, 21, 0, 0, 568, 573, 5, 69, 0, 0, 569, 570, 5, 32, 0, 0, 570, 572, 5, 69, 0, 0, 571,
3496
- 569, 1, 0, 0, 0, 572, 575, 1, 0, 0, 0, 573, 571, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574,
3497
- 576, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 576, 577, 5, 22, 0, 0, 577, 578, 3, 42, 21, 0, 578,
3498
- 579, 5, 31, 0, 0, 579, 580, 3, 8, 4, 0, 580, 99, 1, 0, 0, 0, 581, 582, 5, 30, 0, 0, 582,
3499
- 583, 5, 31, 0, 0, 583, 588, 3, 42, 21, 0, 584, 585, 5, 32, 0, 0, 585, 587, 3, 42, 21,
3500
- 0, 586, 584, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0,
3501
- 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 31, 0, 0, 592, 593, 3, 104,
3502
- 52, 0, 593, 101, 1, 0, 0, 0, 594, 595, 7, 11, 0, 0, 595, 103, 1, 0, 0, 0, 596, 597, 5,
3503
- 56, 0, 0, 597, 599, 5, 1, 0, 0, 598, 600, 3, 106, 53, 0, 599, 598, 1, 0, 0, 0, 600, 601,
3504
- 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604,
3505
- 5, 2, 0, 0, 604, 105, 1, 0, 0, 0, 605, 609, 3, 108, 54, 0, 606, 609, 3, 110, 55, 0, 607,
3506
- 609, 5, 56, 0, 0, 608, 605, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609,
3507
- 107, 1, 0, 0, 0, 610, 611, 3, 102, 51, 0, 611, 612, 5, 31, 0, 0, 612, 620, 3, 42, 21,
3508
- 0, 613, 614, 5, 32, 0, 0, 614, 615, 3, 102, 51, 0, 615, 616, 5, 31, 0, 0, 616, 617, 3,
3509
- 42, 21, 0, 617, 619, 1, 0, 0, 0, 618, 613, 1, 0, 0, 0, 619, 622, 1, 0, 0, 0, 620, 618,
3510
- 1, 0, 0, 0, 620, 621, 1, 0, 0, 0, 621, 627, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 623, 624,
3511
- 5, 32, 0, 0, 624, 626, 3, 102, 51, 0, 625, 623, 1, 0, 0, 0, 626, 629, 1, 0, 0, 0, 627,
3512
- 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 630,
3513
- 640, 5, 31, 0, 0, 631, 641, 3, 104, 52, 0, 632, 637, 3, 42, 21, 0, 633, 634, 5, 32, 0,
3514
- 0, 634, 636, 3, 42, 21, 0, 635, 633, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0,
3515
- 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 631, 1, 0,
3516
- 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0, 0, 0, 642, 643, 3, 102, 51, 0, 643, 653, 5,
3517
- 31, 0, 0, 644, 654, 3, 104, 52, 0, 645, 650, 3, 42, 21, 0, 646, 647, 5, 32, 0, 0, 647,
3518
- 649, 3, 42, 21, 0, 648, 646, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650,
3519
- 651, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 653, 644, 1, 0, 0, 0, 653,
3520
- 645, 1, 0, 0, 0, 654, 111, 1, 0, 0, 0, 655, 659, 5, 63, 0, 0, 656, 658, 7, 12, 0, 0, 657,
3521
- 656, 1, 0, 0, 0, 658, 661, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660,
3522
- 113, 1, 0, 0, 0, 661, 659, 1, 0, 0, 0, 71, 116, 118, 124, 139, 146, 155, 162, 179, 184,
3523
- 188, 200, 211, 219, 228, 234, 241, 252, 256, 262, 270, 291, 296, 302, 316, 318,
3524
- 322, 330, 339, 345, 352, 357, 365, 372, 376, 379, 385, 390, 399, 409, 411, 419,
3525
- 421, 428, 438, 450, 452, 462, 478, 480, 494, 497, 502, 506, 514, 525, 528, 531,
3526
- 533, 546, 550, 573, 588, 601, 608, 620, 627, 637, 640, 650, 653, 659
3459
+ 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 1, 0,
3460
+ 1, 0, 5, 0, 121, 8, 0, 10, 0, 12, 0, 124, 9, 0, 1, 0, 5, 0, 127, 8, 0, 10, 0, 12, 0, 130,
3461
+ 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 136, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
3462
+ 1, 2, 3, 2, 147, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 154, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4,
3463
+ 1, 4, 1, 4, 1, 4, 3, 4, 163, 8, 4, 1, 5, 1, 5, 1, 5, 4, 5, 168, 8, 5, 11, 5, 12, 5, 169, 1,
3464
+ 5, 1, 5, 1, 6, 1, 6, 1, 6, 4, 6, 177, 8, 6, 11, 6, 12, 6, 178, 1, 6, 1, 6, 3, 6, 183, 8, 6,
3465
+ 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 194, 8, 9, 1, 9, 5, 9, 197, 8, 9,
3466
+ 10, 9, 12, 9, 200, 9, 9, 1, 9, 3, 9, 203, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11,
3467
+ 1, 11, 1, 12, 1, 12, 1, 12, 3, 12, 215, 8, 12, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14,
3468
+ 1, 14, 5, 14, 224, 8, 14, 10, 14, 12, 14, 227, 9, 14, 1, 15, 1, 15, 1, 15, 5, 15, 232,
3469
+ 8, 15, 10, 15, 12, 15, 235, 9, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 4, 17, 243,
3470
+ 8, 17, 11, 17, 12, 17, 244, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 251, 8, 18, 1, 19, 1, 19,
3471
+ 1, 19, 4, 19, 256, 8, 19, 11, 19, 12, 19, 257, 1, 19, 1, 19, 3, 19, 262, 8, 19, 1, 20,
3472
+ 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 5, 21, 271, 8, 21, 10, 21, 12, 21, 274, 9, 21,
3473
+ 1, 21, 3, 21, 277, 8, 21, 1, 21, 1, 21, 5, 21, 281, 8, 21, 10, 21, 12, 21, 284, 9, 21,
3474
+ 1, 22, 1, 22, 1, 22, 5, 22, 289, 8, 22, 10, 22, 12, 22, 292, 9, 22, 1, 22, 1, 22, 1, 22,
3475
+ 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23,
3476
+ 5, 23, 310, 8, 23, 10, 23, 12, 23, 313, 9, 23, 5, 23, 315, 8, 23, 10, 23, 12, 23, 318,
3477
+ 9, 23, 1, 23, 1, 23, 1, 23, 3, 23, 323, 8, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23,
3478
+ 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 337, 8, 23, 10, 23, 12, 23, 340, 9, 23,
3479
+ 1, 24, 3, 24, 343, 8, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 351, 8, 25, 1,
3480
+ 25, 1, 25, 1, 25, 1, 25, 1, 25, 4, 25, 358, 8, 25, 11, 25, 12, 25, 359, 1, 25, 1, 25, 1,
3481
+ 26, 1, 26, 3, 26, 366, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 371, 8, 27, 10, 27, 12, 27, 374,
3482
+ 9, 27, 1, 27, 1, 27, 3, 27, 378, 8, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 384, 8, 27, 10,
3483
+ 27, 12, 27, 387, 9, 27, 1, 28, 1, 28, 1, 28, 1, 29, 3, 29, 393, 8, 29, 1, 29, 1, 29, 3,
3484
+ 29, 397, 8, 29, 1, 30, 3, 30, 400, 8, 30, 1, 30, 1, 30, 5, 30, 404, 8, 30, 10, 30, 12,
3485
+ 30, 407, 9, 30, 1, 31, 1, 31, 3, 31, 411, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3486
+ 1, 31, 3, 31, 420, 8, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 4, 33,
3487
+ 430, 8, 33, 11, 33, 12, 33, 431, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 4, 34, 440,
3488
+ 8, 34, 11, 34, 12, 34, 441, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 449, 8, 35, 1, 36,
3489
+ 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 3, 37, 459, 8, 37, 1, 37, 1, 37, 1, 37,
3490
+ 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 4, 38, 471, 8, 38, 11, 38, 12, 38, 472,
3491
+ 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 481, 8, 39, 10, 39, 12, 39, 484, 9, 39,
3492
+ 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39,
3493
+ 3, 39, 499, 8, 39, 3, 39, 501, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 42, 1,
3494
+ 42, 1, 42, 1, 42, 5, 42, 513, 8, 42, 10, 42, 12, 42, 516, 9, 42, 3, 42, 518, 8, 42, 1,
3495
+ 43, 1, 43, 1, 43, 3, 43, 523, 8, 43, 4, 43, 525, 8, 43, 11, 43, 12, 43, 526, 1, 44, 1,
3496
+ 44, 1, 44, 1, 45, 1, 45, 1, 45, 3, 45, 535, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1,
3497
+ 45, 1, 45, 5, 45, 544, 8, 45, 10, 45, 12, 45, 547, 9, 45, 3, 45, 549, 8, 45, 1, 45, 3,
3498
+ 45, 552, 8, 45, 3, 45, 554, 8, 45, 1, 46, 1, 46, 1, 46, 3, 46, 559, 8, 46, 1, 47, 1, 47,
3499
+ 1, 47, 1, 47, 1, 47, 5, 47, 566, 8, 47, 10, 47, 12, 47, 569, 9, 47, 1, 47, 3, 47, 572,
3500
+ 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50,
3501
+ 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 593, 8, 51, 10, 51, 12, 51, 596,
3502
+ 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 608,
3503
+ 8, 52, 10, 52, 12, 52, 611, 9, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54,
3504
+ 4, 54, 621, 8, 54, 11, 54, 12, 54, 622, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 3, 55, 630,
3505
+ 8, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 640, 8, 56, 10, 56,
3506
+ 12, 56, 643, 9, 56, 1, 56, 1, 56, 5, 56, 647, 8, 56, 10, 56, 12, 56, 650, 9, 56, 1, 56,
3507
+ 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 657, 8, 56, 10, 56, 12, 56, 660, 9, 56, 3, 56, 662,
3508
+ 8, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 670, 8, 57, 10, 57, 12, 57, 673,
3509
+ 9, 57, 3, 57, 675, 8, 57, 1, 58, 1, 58, 5, 58, 679, 8, 58, 10, 58, 12, 58, 682, 9, 58,
3510
+ 1, 58, 0, 1, 46, 59, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3511
+ 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3512
+ 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
3513
+ 0, 13, 2, 0, 4, 4, 14, 16, 2, 0, 37, 37, 51, 55, 2, 0, 27, 27, 47, 47, 1, 0, 48, 50, 1, 0,
3514
+ 46, 47, 1, 0, 38, 43, 1, 0, 44, 45, 2, 0, 62, 62, 64, 68, 2, 0, 10, 10, 69, 69, 2, 0, 64,
3515
+ 64, 68, 69, 1, 0, 28, 29, 2, 0, 64, 64, 66, 69, 2, 0, 47, 47, 69, 69, 729, 0, 122, 1, 0,
3516
+ 0, 0, 2, 135, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 6, 153, 1, 0, 0, 0, 8, 162, 1, 0, 0, 0, 10, 164,
3517
+ 1, 0, 0, 0, 12, 173, 1, 0, 0, 0, 14, 184, 1, 0, 0, 0, 16, 187, 1, 0, 0, 0, 18, 193, 1, 0,
3518
+ 0, 0, 20, 204, 1, 0, 0, 0, 22, 208, 1, 0, 0, 0, 24, 214, 1, 0, 0, 0, 26, 216, 1, 0, 0, 0,
3519
+ 28, 219, 1, 0, 0, 0, 30, 228, 1, 0, 0, 0, 32, 236, 1, 0, 0, 0, 34, 239, 1, 0, 0, 0, 36, 250,
3520
+ 1, 0, 0, 0, 38, 252, 1, 0, 0, 0, 40, 263, 1, 0, 0, 0, 42, 276, 1, 0, 0, 0, 44, 285, 1, 0,
3521
+ 0, 0, 46, 322, 1, 0, 0, 0, 48, 342, 1, 0, 0, 0, 50, 346, 1, 0, 0, 0, 52, 365, 1, 0, 0, 0,
3522
+ 54, 367, 1, 0, 0, 0, 56, 388, 1, 0, 0, 0, 58, 392, 1, 0, 0, 0, 60, 399, 1, 0, 0, 0, 62, 419,
3523
+ 1, 0, 0, 0, 64, 421, 1, 0, 0, 0, 66, 425, 1, 0, 0, 0, 68, 435, 1, 0, 0, 0, 70, 448, 1, 0,
3524
+ 0, 0, 72, 450, 1, 0, 0, 0, 74, 454, 1, 0, 0, 0, 76, 463, 1, 0, 0, 0, 78, 500, 1, 0, 0, 0,
3525
+ 80, 502, 1, 0, 0, 0, 82, 506, 1, 0, 0, 0, 84, 517, 1, 0, 0, 0, 86, 519, 1, 0, 0, 0, 88, 528,
3526
+ 1, 0, 0, 0, 90, 553, 1, 0, 0, 0, 92, 555, 1, 0, 0, 0, 94, 560, 1, 0, 0, 0, 96, 573, 1, 0,
3527
+ 0, 0, 98, 579, 1, 0, 0, 0, 100, 583, 1, 0, 0, 0, 102, 588, 1, 0, 0, 0, 104, 602, 1, 0, 0,
3528
+ 0, 106, 615, 1, 0, 0, 0, 108, 617, 1, 0, 0, 0, 110, 629, 1, 0, 0, 0, 112, 631, 1, 0, 0,
3529
+ 0, 114, 663, 1, 0, 0, 0, 116, 676, 1, 0, 0, 0, 118, 121, 3, 90, 45, 0, 119, 121, 5, 56,
3530
+ 0, 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 124, 1, 0, 0, 0, 122, 120, 1, 0,
3531
+ 0, 0, 122, 123, 1, 0, 0, 0, 123, 128, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 125, 127, 3, 2,
3532
+ 1, 0, 126, 125, 1, 0, 0, 0, 127, 130, 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 128, 129, 1, 0,
3533
+ 0, 0, 129, 131, 1, 0, 0, 0, 130, 128, 1, 0, 0, 0, 131, 132, 5, 0, 0, 1, 132, 1, 1, 0, 0,
3534
+ 0, 133, 136, 3, 4, 2, 0, 134, 136, 5, 56, 0, 0, 135, 133, 1, 0, 0, 0, 135, 134, 1, 0, 0,
3535
+ 0, 136, 3, 1, 0, 0, 0, 137, 147, 3, 6, 3, 0, 138, 147, 3, 8, 4, 0, 139, 147, 3, 50, 25,
3536
+ 0, 140, 147, 3, 92, 46, 0, 141, 147, 3, 104, 52, 0, 142, 147, 3, 116, 58, 0, 143, 147,
3537
+ 3, 44, 22, 0, 144, 147, 3, 20, 10, 0, 145, 147, 3, 60, 30, 0, 146, 137, 1, 0, 0, 0, 146,
3538
+ 138, 1, 0, 0, 0, 146, 139, 1, 0, 0, 0, 146, 140, 1, 0, 0, 0, 146, 141, 1, 0, 0, 0, 146,
3539
+ 142, 1, 0, 0, 0, 146, 143, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 145, 1, 0, 0, 0, 147,
3540
+ 5, 1, 0, 0, 0, 148, 154, 3, 94, 47, 0, 149, 154, 3, 100, 50, 0, 150, 154, 3, 102, 51,
3541
+ 0, 151, 154, 5, 3, 0, 0, 152, 154, 5, 24, 0, 0, 153, 148, 1, 0, 0, 0, 153, 149, 1, 0, 0,
3542
+ 0, 153, 150, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 152, 1, 0, 0, 0, 154, 7, 1, 0, 0, 0,
3543
+ 155, 163, 3, 22, 11, 0, 156, 163, 3, 26, 13, 0, 157, 163, 3, 32, 16, 0, 158, 163, 3,
3544
+ 28, 14, 0, 159, 163, 3, 86, 43, 0, 160, 163, 3, 88, 44, 0, 161, 163, 3, 12, 6, 0, 162,
3545
+ 155, 1, 0, 0, 0, 162, 156, 1, 0, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162,
3546
+ 159, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 9, 1, 0, 0, 0, 164, 165,
3547
+ 5, 56, 0, 0, 165, 167, 5, 1, 0, 0, 166, 168, 3, 2, 1, 0, 167, 166, 1, 0, 0, 0, 168, 169,
3548
+ 1, 0, 0, 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 172,
3549
+ 5, 2, 0, 0, 172, 11, 1, 0, 0, 0, 173, 174, 7, 0, 0, 0, 174, 182, 5, 31, 0, 0, 175, 177,
3550
+ 3, 4, 2, 0, 176, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179,
3551
+ 1, 0, 0, 0, 179, 183, 1, 0, 0, 0, 180, 183, 3, 10, 5, 0, 181, 183, 3, 34, 17, 0, 182, 176,
3552
+ 1, 0, 0, 0, 182, 180, 1, 0, 0, 0, 182, 181, 1, 0, 0, 0, 183, 13, 1, 0, 0, 0, 184, 185, 5,
3553
+ 10, 0, 0, 185, 186, 3, 46, 23, 0, 186, 15, 1, 0, 0, 0, 187, 188, 5, 69, 0, 0, 188, 189,
3554
+ 5, 31, 0, 0, 189, 190, 3, 46, 23, 0, 190, 17, 1, 0, 0, 0, 191, 194, 3, 46, 23, 0, 192,
3555
+ 194, 3, 20, 10, 0, 193, 191, 1, 0, 0, 0, 193, 192, 1, 0, 0, 0, 194, 198, 1, 0, 0, 0, 195,
3556
+ 197, 3, 16, 8, 0, 196, 195, 1, 0, 0, 0, 197, 200, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198,
3557
+ 199, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 201, 203, 3, 14, 7, 0, 202,
3558
+ 201, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 19, 1, 0, 0, 0, 204, 205, 3, 60, 30, 0, 205,
3559
+ 206, 7, 1, 0, 0, 206, 207, 3, 46, 23, 0, 207, 21, 1, 0, 0, 0, 208, 209, 5, 11, 0, 0, 209,
3560
+ 210, 3, 18, 9, 0, 210, 23, 1, 0, 0, 0, 211, 215, 3, 18, 9, 0, 212, 215, 3, 14, 7, 0, 213,
3561
+ 215, 5, 14, 0, 0, 214, 211, 1, 0, 0, 0, 214, 212, 1, 0, 0, 0, 214, 213, 1, 0, 0, 0, 215,
3562
+ 25, 1, 0, 0, 0, 216, 217, 5, 12, 0, 0, 217, 218, 3, 24, 12, 0, 218, 27, 1, 0, 0, 0, 219,
3563
+ 220, 5, 13, 0, 0, 220, 225, 3, 24, 12, 0, 221, 222, 5, 32, 0, 0, 222, 224, 3, 24, 12,
3564
+ 0, 223, 221, 1, 0, 0, 0, 224, 227, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 225, 226, 1, 0, 0,
3565
+ 0, 226, 29, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 228, 229, 3, 26, 13, 0, 229, 233, 5, 31,
3566
+ 0, 0, 230, 232, 3, 116, 58, 0, 231, 230, 1, 0, 0, 0, 232, 235, 1, 0, 0, 0, 233, 231, 1,
3567
+ 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 31, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 236, 237, 3, 30,
3568
+ 15, 0, 237, 238, 3, 34, 17, 0, 238, 33, 1, 0, 0, 0, 239, 240, 5, 56, 0, 0, 240, 242, 5,
3569
+ 1, 0, 0, 241, 243, 3, 36, 18, 0, 242, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 242,
3570
+ 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 246, 1, 0, 0, 0, 246, 247, 5, 2, 0, 0, 247, 35, 1,
3571
+ 0, 0, 0, 248, 251, 3, 38, 19, 0, 249, 251, 3, 2, 1, 0, 250, 248, 1, 0, 0, 0, 250, 249,
3572
+ 1, 0, 0, 0, 251, 37, 1, 0, 0, 0, 252, 253, 3, 82, 41, 0, 253, 261, 5, 31, 0, 0, 254, 256,
3573
+ 3, 4, 2, 0, 255, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258,
3574
+ 1, 0, 0, 0, 258, 262, 1, 0, 0, 0, 259, 262, 3, 10, 5, 0, 260, 262, 5, 61, 0, 0, 261, 255,
3575
+ 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 39, 1, 0, 0, 0, 263, 264, 5,
3576
+ 69, 0, 0, 264, 265, 5, 37, 0, 0, 265, 266, 3, 46, 23, 0, 266, 41, 1, 0, 0, 0, 267, 272,
3577
+ 3, 46, 23, 0, 268, 269, 5, 32, 0, 0, 269, 271, 3, 46, 23, 0, 270, 268, 1, 0, 0, 0, 271,
3578
+ 274, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 277, 1, 0, 0, 0, 274,
3579
+ 272, 1, 0, 0, 0, 275, 277, 3, 40, 20, 0, 276, 267, 1, 0, 0, 0, 276, 275, 1, 0, 0, 0, 277,
3580
+ 282, 1, 0, 0, 0, 278, 279, 5, 32, 0, 0, 279, 281, 3, 40, 20, 0, 280, 278, 1, 0, 0, 0, 281,
3581
+ 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 43, 1, 0, 0, 0, 284, 282,
3582
+ 1, 0, 0, 0, 285, 286, 5, 34, 0, 0, 286, 290, 5, 69, 0, 0, 287, 289, 3, 62, 31, 0, 288,
3583
+ 287, 1, 0, 0, 0, 289, 292, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291,
3584
+ 293, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 293, 294, 5, 37, 0, 0, 294, 295, 3, 46, 23, 0, 295,
3585
+ 45, 1, 0, 0, 0, 296, 297, 6, 23, -1, 0, 297, 298, 5, 59, 0, 0, 298, 299, 3, 46, 23, 0,
3586
+ 299, 300, 5, 60, 0, 0, 300, 323, 1, 0, 0, 0, 301, 302, 5, 5, 0, 0, 302, 323, 3, 70, 35,
3587
+ 0, 303, 304, 7, 2, 0, 0, 304, 323, 3, 46, 23, 8, 305, 316, 5, 35, 0, 0, 306, 311, 3, 46,
3588
+ 23, 0, 307, 308, 5, 32, 0, 0, 308, 310, 3, 46, 23, 0, 309, 307, 1, 0, 0, 0, 310, 313,
3589
+ 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 315, 1, 0, 0, 0, 313, 311,
3590
+ 1, 0, 0, 0, 314, 306, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317,
3591
+ 1, 0, 0, 0, 317, 319, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 323, 5, 36, 0, 0, 320, 323,
3592
+ 3, 48, 24, 0, 321, 323, 3, 60, 30, 0, 322, 296, 1, 0, 0, 0, 322, 301, 1, 0, 0, 0, 322,
3593
+ 303, 1, 0, 0, 0, 322, 305, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323,
3594
+ 338, 1, 0, 0, 0, 324, 325, 10, 6, 0, 0, 325, 326, 7, 3, 0, 0, 326, 337, 3, 46, 23, 7, 327,
3595
+ 328, 10, 5, 0, 0, 328, 329, 7, 4, 0, 0, 329, 337, 3, 46, 23, 6, 330, 331, 10, 4, 0, 0,
3596
+ 331, 332, 7, 5, 0, 0, 332, 337, 3, 46, 23, 5, 333, 334, 10, 3, 0, 0, 334, 335, 7, 6, 0,
3597
+ 0, 335, 337, 3, 46, 23, 4, 336, 324, 1, 0, 0, 0, 336, 327, 1, 0, 0, 0, 336, 330, 1, 0,
3598
+ 0, 0, 336, 333, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 339, 1, 0,
3599
+ 0, 0, 339, 47, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 341, 343, 5, 47, 0, 0, 342, 341, 1, 0,
3600
+ 0, 0, 342, 343, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 7, 7, 0, 0, 345, 49, 1, 0, 0,
3601
+ 0, 346, 347, 5, 18, 0, 0, 347, 348, 5, 69, 0, 0, 348, 350, 5, 59, 0, 0, 349, 351, 3, 54,
3602
+ 27, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 353, 5, 60,
3603
+ 0, 0, 353, 354, 5, 31, 0, 0, 354, 355, 5, 56, 0, 0, 355, 357, 5, 1, 0, 0, 356, 358, 3,
3604
+ 52, 26, 0, 357, 356, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359, 357, 1, 0, 0, 0, 359, 360,
3605
+ 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 5, 2, 0, 0, 362, 51, 1, 0, 0, 0, 363, 366, 3,
3606
+ 2, 1, 0, 364, 366, 3, 56, 28, 0, 365, 363, 1, 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 53, 1,
3607
+ 0, 0, 0, 367, 377, 5, 69, 0, 0, 368, 369, 5, 32, 0, 0, 369, 371, 5, 69, 0, 0, 370, 368,
3608
+ 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 378,
3609
+ 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 376, 5, 37, 0, 0, 376, 378, 3, 48, 24, 0, 377, 372,
3610
+ 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 378, 385, 1, 0, 0, 0, 379, 380, 5, 32, 0, 0, 380, 381,
3611
+ 5, 69, 0, 0, 381, 382, 5, 37, 0, 0, 382, 384, 3, 48, 24, 0, 383, 379, 1, 0, 0, 0, 384,
3612
+ 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 55, 1, 0, 0, 0, 387, 385,
3613
+ 1, 0, 0, 0, 388, 389, 5, 17, 0, 0, 389, 390, 3, 46, 23, 0, 390, 57, 1, 0, 0, 0, 391, 393,
3614
+ 5, 46, 0, 0, 392, 391, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 396,
3615
+ 5, 48, 0, 0, 395, 397, 3, 46, 23, 0, 396, 395, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 59,
3616
+ 1, 0, 0, 0, 398, 400, 3, 58, 29, 0, 399, 398, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 400, 401,
3617
+ 1, 0, 0, 0, 401, 405, 5, 69, 0, 0, 402, 404, 3, 62, 31, 0, 403, 402, 1, 0, 0, 0, 404, 407,
3618
+ 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 61, 1, 0, 0, 0, 407, 405, 1,
3619
+ 0, 0, 0, 408, 410, 5, 59, 0, 0, 409, 411, 3, 42, 21, 0, 410, 409, 1, 0, 0, 0, 410, 411,
3620
+ 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 420, 5, 60, 0, 0, 413, 414, 5, 33, 0, 0, 414, 420,
3621
+ 5, 69, 0, 0, 415, 416, 5, 35, 0, 0, 416, 417, 3, 46, 23, 0, 417, 418, 5, 36, 0, 0, 418,
3622
+ 420, 1, 0, 0, 0, 419, 408, 1, 0, 0, 0, 419, 413, 1, 0, 0, 0, 419, 415, 1, 0, 0, 0, 420,
3623
+ 63, 1, 0, 0, 0, 421, 422, 3, 82, 41, 0, 422, 423, 5, 31, 0, 0, 423, 424, 3, 10, 5, 0, 424,
3624
+ 65, 1, 0, 0, 0, 425, 426, 5, 56, 0, 0, 426, 429, 5, 1, 0, 0, 427, 430, 3, 80, 40, 0, 428,
3625
+ 430, 5, 56, 0, 0, 429, 427, 1, 0, 0, 0, 429, 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431,
3626
+ 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 434, 5, 2, 0, 0, 434,
3627
+ 67, 1, 0, 0, 0, 435, 436, 5, 56, 0, 0, 436, 439, 5, 1, 0, 0, 437, 440, 5, 56, 0, 0, 438,
3628
+ 440, 3, 78, 39, 0, 439, 437, 1, 0, 0, 0, 439, 438, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441,
3629
+ 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 444, 5, 2, 0, 0, 444,
3630
+ 69, 1, 0, 0, 0, 445, 449, 3, 72, 36, 0, 446, 449, 3, 74, 37, 0, 447, 449, 3, 76, 38, 0,
3631
+ 448, 445, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 448, 447, 1, 0, 0, 0, 449, 71, 1, 0, 0, 0, 450,
3632
+ 451, 5, 6, 0, 0, 451, 452, 5, 31, 0, 0, 452, 453, 3, 66, 33, 0, 453, 73, 1, 0, 0, 0, 454,
3633
+ 458, 5, 7, 0, 0, 455, 456, 5, 59, 0, 0, 456, 457, 5, 69, 0, 0, 457, 459, 5, 60, 0, 0, 458,
3634
+ 455, 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 5, 31, 0, 0, 461,
3635
+ 462, 3, 68, 34, 0, 462, 75, 1, 0, 0, 0, 463, 464, 5, 8, 0, 0, 464, 465, 5, 31, 0, 0, 465,
3636
+ 466, 5, 56, 0, 0, 466, 470, 5, 1, 0, 0, 467, 471, 3, 80, 40, 0, 468, 471, 3, 64, 32, 0,
3637
+ 469, 471, 5, 56, 0, 0, 470, 467, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 469, 1, 0, 0, 0,
3638
+ 471, 472, 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0,
3639
+ 474, 475, 5, 2, 0, 0, 475, 77, 1, 0, 0, 0, 476, 477, 5, 21, 0, 0, 477, 482, 5, 69, 0, 0,
3640
+ 478, 479, 5, 32, 0, 0, 479, 481, 5, 69, 0, 0, 480, 478, 1, 0, 0, 0, 481, 484, 1, 0, 0,
3641
+ 0, 482, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 485, 1, 0, 0, 0, 484, 482, 1, 0, 0,
3642
+ 0, 485, 486, 5, 22, 0, 0, 486, 487, 3, 46, 23, 0, 487, 488, 5, 31, 0, 0, 488, 489, 3,
3643
+ 68, 34, 0, 489, 501, 1, 0, 0, 0, 490, 491, 7, 8, 0, 0, 491, 498, 5, 31, 0, 0, 492, 499,
3644
+ 3, 42, 21, 0, 493, 494, 5, 59, 0, 0, 494, 495, 3, 42, 21, 0, 495, 496, 5, 60, 0, 0, 496,
3645
+ 499, 1, 0, 0, 0, 497, 499, 3, 66, 33, 0, 498, 492, 1, 0, 0, 0, 498, 493, 1, 0, 0, 0, 498,
3646
+ 497, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 476, 1, 0, 0, 0, 500, 490, 1, 0, 0, 0, 501,
3647
+ 79, 1, 0, 0, 0, 502, 503, 3, 82, 41, 0, 503, 504, 5, 31, 0, 0, 504, 505, 3, 84, 42, 0,
3648
+ 505, 81, 1, 0, 0, 0, 506, 507, 7, 9, 0, 0, 507, 83, 1, 0, 0, 0, 508, 518, 3, 66, 33, 0,
3649
+ 509, 514, 3, 46, 23, 0, 510, 511, 5, 32, 0, 0, 511, 513, 3, 46, 23, 0, 512, 510, 1, 0,
3650
+ 0, 0, 513, 516, 1, 0, 0, 0, 514, 512, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 518, 1, 0,
3651
+ 0, 0, 516, 514, 1, 0, 0, 0, 517, 508, 1, 0, 0, 0, 517, 509, 1, 0, 0, 0, 518, 85, 1, 0, 0,
3652
+ 0, 519, 524, 5, 9, 0, 0, 520, 522, 5, 69, 0, 0, 521, 523, 3, 46, 23, 0, 522, 521, 1, 0,
3653
+ 0, 0, 522, 523, 1, 0, 0, 0, 523, 525, 1, 0, 0, 0, 524, 520, 1, 0, 0, 0, 525, 526, 1, 0,
3654
+ 0, 0, 526, 524, 1, 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 87, 1, 0, 0, 0, 528, 529, 5, 14,
3655
+ 0, 0, 529, 530, 3, 46, 23, 0, 530, 89, 1, 0, 0, 0, 531, 532, 5, 19, 0, 0, 532, 534, 5,
3656
+ 68, 0, 0, 533, 535, 3, 116, 58, 0, 534, 533, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 554,
3657
+ 1, 0, 0, 0, 536, 537, 5, 20, 0, 0, 537, 538, 5, 68, 0, 0, 538, 548, 5, 19, 0, 0, 539, 549,
3658
+ 5, 49, 0, 0, 540, 545, 5, 69, 0, 0, 541, 542, 5, 32, 0, 0, 542, 544, 5, 69, 0, 0, 543,
3659
+ 541, 1, 0, 0, 0, 544, 547, 1, 0, 0, 0, 545, 543, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546,
3660
+ 549, 1, 0, 0, 0, 547, 545, 1, 0, 0, 0, 548, 539, 1, 0, 0, 0, 548, 540, 1, 0, 0, 0, 549,
3661
+ 551, 1, 0, 0, 0, 550, 552, 3, 116, 58, 0, 551, 550, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552,
3662
+ 554, 1, 0, 0, 0, 553, 531, 1, 0, 0, 0, 553, 536, 1, 0, 0, 0, 554, 91, 1, 0, 0, 0, 555, 556,
3663
+ 7, 10, 0, 0, 556, 558, 5, 31, 0, 0, 557, 559, 3, 10, 5, 0, 558, 557, 1, 0, 0, 0, 558, 559,
3664
+ 1, 0, 0, 0, 559, 93, 1, 0, 0, 0, 560, 561, 5, 25, 0, 0, 561, 562, 3, 46, 23, 0, 562, 563,
3665
+ 5, 31, 0, 0, 563, 567, 3, 10, 5, 0, 564, 566, 3, 96, 48, 0, 565, 564, 1, 0, 0, 0, 566,
3666
+ 569, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 571, 1, 0, 0, 0, 569,
3667
+ 567, 1, 0, 0, 0, 570, 572, 3, 98, 49, 0, 571, 570, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572,
3668
+ 95, 1, 0, 0, 0, 573, 574, 5, 26, 0, 0, 574, 575, 5, 25, 0, 0, 575, 576, 3, 46, 23, 0, 576,
3669
+ 577, 5, 31, 0, 0, 577, 578, 3, 10, 5, 0, 578, 97, 1, 0, 0, 0, 579, 580, 5, 26, 0, 0, 580,
3670
+ 581, 5, 31, 0, 0, 581, 582, 3, 10, 5, 0, 582, 99, 1, 0, 0, 0, 583, 584, 5, 23, 0, 0, 584,
3671
+ 585, 3, 46, 23, 0, 585, 586, 5, 31, 0, 0, 586, 587, 3, 10, 5, 0, 587, 101, 1, 0, 0, 0,
3672
+ 588, 589, 5, 21, 0, 0, 589, 594, 5, 69, 0, 0, 590, 591, 5, 32, 0, 0, 591, 593, 5, 69,
3673
+ 0, 0, 592, 590, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0, 0, 594, 595, 1, 0,
3674
+ 0, 0, 595, 597, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 598, 5, 22, 0, 0, 598, 599, 3, 46,
3675
+ 23, 0, 599, 600, 5, 31, 0, 0, 600, 601, 3, 10, 5, 0, 601, 103, 1, 0, 0, 0, 602, 603, 5,
3676
+ 30, 0, 0, 603, 604, 5, 31, 0, 0, 604, 609, 3, 46, 23, 0, 605, 606, 5, 32, 0, 0, 606, 608,
3677
+ 3, 46, 23, 0, 607, 605, 1, 0, 0, 0, 608, 611, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 609, 610,
3678
+ 1, 0, 0, 0, 610, 612, 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 612, 613, 5, 31, 0, 0, 613, 614,
3679
+ 3, 108, 54, 0, 614, 105, 1, 0, 0, 0, 615, 616, 7, 11, 0, 0, 616, 107, 1, 0, 0, 0, 617,
3680
+ 618, 5, 56, 0, 0, 618, 620, 5, 1, 0, 0, 619, 621, 3, 110, 55, 0, 620, 619, 1, 0, 0, 0,
3681
+ 621, 622, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0,
3682
+ 624, 625, 5, 2, 0, 0, 625, 109, 1, 0, 0, 0, 626, 630, 3, 112, 56, 0, 627, 630, 3, 114,
3683
+ 57, 0, 628, 630, 5, 56, 0, 0, 629, 626, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 628, 1,
3684
+ 0, 0, 0, 630, 111, 1, 0, 0, 0, 631, 632, 3, 106, 53, 0, 632, 633, 5, 31, 0, 0, 633, 641,
3685
+ 3, 46, 23, 0, 634, 635, 5, 32, 0, 0, 635, 636, 3, 106, 53, 0, 636, 637, 5, 31, 0, 0, 637,
3686
+ 638, 3, 46, 23, 0, 638, 640, 1, 0, 0, 0, 639, 634, 1, 0, 0, 0, 640, 643, 1, 0, 0, 0, 641,
3687
+ 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 648, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 644,
3688
+ 645, 5, 32, 0, 0, 645, 647, 3, 106, 53, 0, 646, 644, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0,
3689
+ 648, 646, 1, 0, 0, 0, 648, 649, 1, 0, 0, 0, 649, 651, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0,
3690
+ 651, 661, 5, 31, 0, 0, 652, 662, 3, 108, 54, 0, 653, 658, 3, 46, 23, 0, 654, 655, 5,
3691
+ 32, 0, 0, 655, 657, 3, 46, 23, 0, 656, 654, 1, 0, 0, 0, 657, 660, 1, 0, 0, 0, 658, 656,
3692
+ 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 661, 652,
3693
+ 1, 0, 0, 0, 661, 653, 1, 0, 0, 0, 662, 113, 1, 0, 0, 0, 663, 664, 3, 106, 53, 0, 664, 674,
3694
+ 5, 31, 0, 0, 665, 675, 3, 108, 54, 0, 666, 671, 3, 46, 23, 0, 667, 668, 5, 32, 0, 0, 668,
3695
+ 670, 3, 46, 23, 0, 669, 667, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671,
3696
+ 672, 1, 0, 0, 0, 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 665, 1, 0, 0, 0, 674,
3697
+ 666, 1, 0, 0, 0, 675, 115, 1, 0, 0, 0, 676, 680, 5, 63, 0, 0, 677, 679, 7, 12, 0, 0, 678,
3698
+ 677, 1, 0, 0, 0, 679, 682, 1, 0, 0, 0, 680, 678, 1, 0, 0, 0, 680, 681, 1, 0, 0, 0, 681,
3699
+ 117, 1, 0, 0, 0, 682, 680, 1, 0, 0, 0, 76, 120, 122, 128, 135, 146, 153, 162, 169, 178,
3700
+ 182, 193, 198, 202, 214, 225, 233, 244, 250, 257, 261, 272, 276, 282, 290, 311,
3701
+ 316, 322, 336, 338, 342, 350, 359, 365, 372, 377, 385, 392, 396, 399, 405, 410,
3702
+ 419, 429, 431, 439, 441, 448, 458, 470, 472, 482, 498, 500, 514, 517, 522, 526,
3703
+ 534, 545, 548, 551, 553, 558, 567, 571, 594, 609, 622, 629, 641, 648, 658, 661,
3704
+ 671, 674, 680
3527
3705
  ];
3528
3706
  static __ATN;
3529
3707
  static get _ATN() {
@@ -3578,6 +3756,28 @@ export class ScriptContext extends antlr.ParserRuleContext {
3578
3756
  }
3579
3757
  }
3580
3758
  export class ExpressionContext extends antlr.ParserRuleContext {
3759
+ constructor(parent, invokingState) {
3760
+ super(parent, invokingState);
3761
+ }
3762
+ non_newline_expression() {
3763
+ return this.getRuleContext(0, Non_newline_expressionContext);
3764
+ }
3765
+ NEWLINE() {
3766
+ return this.getToken(CircuitScriptParser.NEWLINE, 0);
3767
+ }
3768
+ get ruleIndex() {
3769
+ return CircuitScriptParser.RULE_expression;
3770
+ }
3771
+ accept(visitor) {
3772
+ if (visitor.visitExpression) {
3773
+ return visitor.visitExpression(this);
3774
+ }
3775
+ else {
3776
+ return visitor.visitChildren(this);
3777
+ }
3778
+ }
3779
+ }
3780
+ export class Non_newline_expressionContext extends antlr.ParserRuleContext {
3581
3781
  constructor(parent, invokingState) {
3582
3782
  super(parent, invokingState);
3583
3783
  }
@@ -3608,15 +3808,12 @@ export class ExpressionContext extends antlr.ParserRuleContext {
3608
3808
  callable_expr() {
3609
3809
  return this.getRuleContext(0, Callable_exprContext);
3610
3810
  }
3611
- NEWLINE() {
3612
- return this.getToken(CircuitScriptParser.NEWLINE, 0);
3613
- }
3614
3811
  get ruleIndex() {
3615
- return CircuitScriptParser.RULE_expression;
3812
+ return CircuitScriptParser.RULE_non_newline_expression;
3616
3813
  }
3617
3814
  accept(visitor) {
3618
- if (visitor.visitExpression) {
3619
- return visitor.visitExpression(this);
3815
+ if (visitor.visitNon_newline_expression) {
3816
+ return visitor.visitNon_newline_expression(this);
3620
3817
  }
3621
3818
  else {
3622
3819
  return visitor.visitChildren(this);
@@ -3729,9 +3926,6 @@ export class Path_blockContext extends antlr.ParserRuleContext {
3729
3926
  Colon() {
3730
3927
  return this.getToken(CircuitScriptParser.Colon, 0);
3731
3928
  }
3732
- expressions_block() {
3733
- return this.getRuleContext(0, Expressions_blockContext);
3734
- }
3735
3929
  Branch() {
3736
3930
  return this.getToken(CircuitScriptParser.Branch, 0);
3737
3931
  }
@@ -3744,6 +3938,18 @@ export class Path_blockContext extends antlr.ParserRuleContext {
3744
3938
  Point() {
3745
3939
  return this.getToken(CircuitScriptParser.Point, 0);
3746
3940
  }
3941
+ expressions_block() {
3942
+ return this.getRuleContext(0, Expressions_blockContext);
3943
+ }
3944
+ at_block_expressions() {
3945
+ return this.getRuleContext(0, At_block_expressionsContext);
3946
+ }
3947
+ non_newline_expression(i) {
3948
+ if (i === undefined) {
3949
+ return this.getRuleContexts(Non_newline_expressionContext);
3950
+ }
3951
+ return this.getRuleContext(i, Non_newline_expressionContext);
3952
+ }
3747
3953
  get ruleIndex() {
3748
3954
  return CircuitScriptParser.RULE_path_block;
3749
3955
  }
@@ -4011,6 +4217,25 @@ export class At_blockContext extends antlr.ParserRuleContext {
4011
4217
  at_block_header() {
4012
4218
  return this.getRuleContext(0, At_block_headerContext);
4013
4219
  }
4220
+ at_block_expressions() {
4221
+ return this.getRuleContext(0, At_block_expressionsContext);
4222
+ }
4223
+ get ruleIndex() {
4224
+ return CircuitScriptParser.RULE_at_block;
4225
+ }
4226
+ accept(visitor) {
4227
+ if (visitor.visitAt_block) {
4228
+ return visitor.visitAt_block(this);
4229
+ }
4230
+ else {
4231
+ return visitor.visitChildren(this);
4232
+ }
4233
+ }
4234
+ }
4235
+ export class At_block_expressionsContext extends antlr.ParserRuleContext {
4236
+ constructor(parent, invokingState) {
4237
+ super(parent, invokingState);
4238
+ }
4014
4239
  NEWLINE() {
4015
4240
  return this.getToken(CircuitScriptParser.NEWLINE, 0);
4016
4241
  }
@@ -4020,40 +4245,40 @@ export class At_blockContext extends antlr.ParserRuleContext {
4020
4245
  DEDENT() {
4021
4246
  return this.getToken(CircuitScriptParser.DEDENT, 0);
4022
4247
  }
4023
- at_block_expressions(i) {
4248
+ at_block_expressions_inner(i) {
4024
4249
  if (i === undefined) {
4025
- return this.getRuleContexts(At_block_expressionsContext);
4250
+ return this.getRuleContexts(At_block_expressions_innerContext);
4026
4251
  }
4027
- return this.getRuleContext(i, At_block_expressionsContext);
4252
+ return this.getRuleContext(i, At_block_expressions_innerContext);
4028
4253
  }
4029
4254
  get ruleIndex() {
4030
- return CircuitScriptParser.RULE_at_block;
4255
+ return CircuitScriptParser.RULE_at_block_expressions;
4031
4256
  }
4032
4257
  accept(visitor) {
4033
- if (visitor.visitAt_block) {
4034
- return visitor.visitAt_block(this);
4258
+ if (visitor.visitAt_block_expressions) {
4259
+ return visitor.visitAt_block_expressions(this);
4035
4260
  }
4036
4261
  else {
4037
4262
  return visitor.visitChildren(this);
4038
4263
  }
4039
4264
  }
4040
4265
  }
4041
- export class At_block_expressionsContext extends antlr.ParserRuleContext {
4266
+ export class At_block_expressions_innerContext extends antlr.ParserRuleContext {
4042
4267
  constructor(parent, invokingState) {
4043
4268
  super(parent, invokingState);
4044
4269
  }
4045
- expression() {
4046
- return this.getRuleContext(0, ExpressionContext);
4047
- }
4048
4270
  at_block_pin_expr() {
4049
4271
  return this.getRuleContext(0, At_block_pin_exprContext);
4050
4272
  }
4273
+ expression() {
4274
+ return this.getRuleContext(0, ExpressionContext);
4275
+ }
4051
4276
  get ruleIndex() {
4052
- return CircuitScriptParser.RULE_at_block_expressions;
4277
+ return CircuitScriptParser.RULE_at_block_expressions_inner;
4053
4278
  }
4054
4279
  accept(visitor) {
4055
- if (visitor.visitAt_block_expressions) {
4056
- return visitor.visitAt_block_expressions(this);
4280
+ if (visitor.visitAt_block_expressions_inner) {
4281
+ return visitor.visitAt_block_expressions_inner(this);
4057
4282
  }
4058
4283
  else {
4059
4284
  return visitor.visitChildren(this);
@@ -4070,15 +4295,18 @@ export class At_block_pin_exprContext extends antlr.ParserRuleContext {
4070
4295
  Colon() {
4071
4296
  return this.getToken(CircuitScriptParser.Colon, 0);
4072
4297
  }
4073
- expression() {
4074
- return this.getRuleContext(0, ExpressionContext);
4075
- }
4076
4298
  expressions_block() {
4077
4299
  return this.getRuleContext(0, Expressions_blockContext);
4078
4300
  }
4079
4301
  NOT_CONNECTED() {
4080
4302
  return this.getToken(CircuitScriptParser.NOT_CONNECTED, 0);
4081
4303
  }
4304
+ non_newline_expression(i) {
4305
+ if (i === undefined) {
4306
+ return this.getRuleContexts(Non_newline_expressionContext);
4307
+ }
4308
+ return this.getRuleContext(i, Non_newline_expressionContext);
4309
+ }
4082
4310
  get ruleIndex() {
4083
4311
  return CircuitScriptParser.RULE_at_block_pin_expr;
4084
4312
  }
@@ -5292,15 +5520,15 @@ export class Frame_exprContext extends antlr.ParserRuleContext {
5292
5520
  Colon() {
5293
5521
  return this.getToken(CircuitScriptParser.Colon, 0);
5294
5522
  }
5295
- expressions_block() {
5296
- return this.getRuleContext(0, Expressions_blockContext);
5297
- }
5298
5523
  Frame() {
5299
5524
  return this.getToken(CircuitScriptParser.Frame, 0);
5300
5525
  }
5301
5526
  Sheet() {
5302
5527
  return this.getToken(CircuitScriptParser.Sheet, 0);
5303
5528
  }
5529
+ expressions_block() {
5530
+ return this.getRuleContext(0, Expressions_blockContext);
5531
+ }
5304
5532
  get ruleIndex() {
5305
5533
  return CircuitScriptParser.RULE_frame_expr;
5306
5534
  }