circuitscript 0.5.7 → 0.6.1

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