circuitscript 0.5.7 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/BaseVisitor.js +1 -0
  2. package/dist/cjs/annotate/RefdesAnnotationVisitor.js +1 -3
  3. package/dist/cjs/antlr/CircuitScriptParser.js +1070 -840
  4. package/dist/cjs/cache/serializer.js +1 -1
  5. package/dist/cjs/execute.js +12 -7
  6. package/dist/cjs/objects/BlockTypes.js +1 -0
  7. package/dist/cjs/objects/Frame.js +4 -0
  8. package/dist/cjs/render/draw_symbols.js +18 -12
  9. package/dist/cjs/render/geometry.js +2 -2
  10. package/dist/cjs/render/layout.js +26 -2
  11. package/dist/cjs/sizing.js +3 -2
  12. package/dist/cjs/visitor.js +85 -18
  13. package/dist/esm/BaseVisitor.js +1 -0
  14. package/dist/esm/annotate/RefdesAnnotationVisitor.js +1 -3
  15. package/dist/esm/antlr/CircuitScriptParser.js +1063 -835
  16. package/dist/esm/antlr/CircuitScriptParserVisitor.js +2 -0
  17. package/dist/esm/cache/serializer.js +1 -1
  18. package/dist/esm/execute.js +12 -7
  19. package/dist/esm/objects/BlockTypes.js +1 -0
  20. package/dist/esm/objects/Frame.js +4 -0
  21. package/dist/esm/render/draw_symbols.js +18 -12
  22. package/dist/esm/render/geometry.js +2 -2
  23. package/dist/esm/render/layout.js +26 -2
  24. package/dist/esm/sizing.js +3 -2
  25. package/dist/esm/visitor.js +85 -18
  26. package/dist/libs/std.cst +3 -1
  27. package/dist/types/BaseVisitor.d.ts +2 -2
  28. package/dist/types/antlr/CircuitScriptParser.d.ts +83 -63
  29. package/dist/types/antlr/CircuitScriptParserVisitor.d.ts +4 -0
  30. package/dist/types/execute.d.ts +1 -0
  31. package/dist/types/objects/BlockTypes.d.ts +2 -1
  32. package/dist/types/objects/Frame.d.ts +4 -0
  33. package/dist/types/render/draw_symbols.d.ts +3 -3
  34. package/dist/types/render/geometry.d.ts +1 -0
  35. package/dist/types/render/layout.d.ts +6 -0
  36. package/dist/types/sizing.d.ts +1 -1
  37. package/dist/types/visitor.d.ts +2 -1
  38. package/libs/std.cst +3 -1
  39. package/package.json +1 -1
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.GraphicCommandExprContext = exports.Graphic_exprContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = exports.Create_exprContext = exports.Graphic_expressions_blockContext = exports.Properties_blockContext = exports.Property_block_exprContext = exports.TrailerContext = exports.Callable_exprContext = exports.Net_namespace_exprContext = exports.Function_return_exprContext = exports.Function_args_exprContext = exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.CallableExprContext = exports.UnaryOperatorExprContext = exports.CreateExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.ArrayExprContext = exports.ValueExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.At_block_pin_exprContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_block_headerContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Assignment_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Path_blockContext = exports.Expressions_blockContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
- exports.Annotation_comment_exprContext = exports.Part_value_exprContext = exports.Part_condition_exprContext = exports.Part_sub_exprContext = exports.Part_match_blockContext = exports.Part_set_keyContext = exports.Part_set_exprContext = exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_simpleContext = exports.Import_specific_or_allContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = void 0;
26
+ exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Create_component_exprContext = exports.Create_exprContext = exports.Graphic_expressions_blockContext = exports.Properties_blockContext = exports.Property_block_exprContext = exports.TrailerContext = exports.Callable_exprContext = exports.Net_namespace_exprContext = exports.Function_return_exprContext = exports.Function_args_exprContext = exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.CallableExprContext = exports.UnaryOperatorExprContext = exports.CreateExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.ArrayExprContext = exports.ValueExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.At_block_pin_exprContext = exports.At_block_expressions_innerContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_block_headerContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Assignment_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Path_blockContext = exports.Expressions_blockContext = exports.Graph_expressionsContext = exports.Flow_expressionsContext = exports.Non_newline_expressionContext = exports.ExpressionContext = exports.ScriptContext = exports.CircuitScriptParser = void 0;
27
+ exports.Annotation_comment_exprContext = exports.Part_value_exprContext = exports.Part_condition_exprContext = exports.Part_sub_exprContext = exports.Part_match_blockContext = exports.Part_set_keyContext = exports.Part_set_exprContext = exports.For_exprContext = exports.While_exprContext = exports.Else_exprContext = exports.If_inner_exprContext = exports.If_exprContext = exports.Frame_exprContext = exports.Import_simpleContext = exports.Import_specific_or_allContext = exports.Import_exprContext = exports.Point_exprContext = exports.Wire_exprContext = exports.Nested_propertiesContext = exports.Single_line_propertyContext = exports.Property_value_exprContext = exports.Property_key_exprContext = exports.Property_exprContext = exports.GraphicForExprContext = exports.GraphicCommandExprContext = exports.Graphic_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScriptParser.g4"; }
@@ -47,25 +47,25 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 118;
50
+ this.state = 122;
51
51
  this.errorHandler.sync(this);
52
52
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
53
53
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
54
54
  if (alternative === 1) {
55
55
  {
56
- this.state = 116;
56
+ this.state = 120;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  case CircuitScriptParser.From:
61
61
  {
62
- this.state = 114;
62
+ this.state = 118;
63
63
  this.import_expr();
64
64
  }
65
65
  break;
66
66
  case CircuitScriptParser.NEWLINE:
67
67
  {
68
- this.state = 115;
68
+ this.state = 119;
69
69
  this.match(CircuitScriptParser.NEWLINE);
70
70
  }
71
71
  break;
@@ -74,25 +74,25 @@ class CircuitScriptParser extends antlr.Parser {
74
74
  }
75
75
  }
76
76
  }
77
- this.state = 120;
77
+ this.state = 124;
78
78
  this.errorHandler.sync(this);
79
79
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
80
80
  }
81
- this.state = 124;
81
+ this.state = 128;
82
82
  this.errorHandler.sync(this);
83
83
  _la = this.tokenStream.LA(1);
84
84
  while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0)) {
85
85
  {
86
86
  {
87
- this.state = 121;
87
+ this.state = 125;
88
88
  this.expression();
89
89
  }
90
90
  }
91
- this.state = 126;
91
+ this.state = 130;
92
92
  this.errorHandler.sync(this);
93
93
  _la = this.tokenStream.LA(1);
94
94
  }
95
- this.state = 127;
95
+ this.state = 131;
96
96
  this.match(CircuitScriptParser.EOF);
97
97
  }
98
98
  }
@@ -114,79 +114,132 @@ class CircuitScriptParser extends antlr.Parser {
114
114
  let localContext = new ExpressionContext(this.context, this.state);
115
115
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
116
116
  try {
117
- this.state = 139;
117
+ this.state = 135;
118
118
  this.errorHandler.sync(this);
119
- switch (this.interpreter.adaptivePredict(this.tokenStream, 3, this.context)) {
119
+ switch (this.tokenStream.LA(1)) {
120
+ case CircuitScriptParser.Break:
121
+ case CircuitScriptParser.Branch:
122
+ case CircuitScriptParser.Wire:
123
+ case CircuitScriptParser.Add:
124
+ case CircuitScriptParser.At:
125
+ case CircuitScriptParser.To:
126
+ case CircuitScriptParser.Point:
127
+ case CircuitScriptParser.Join:
128
+ case CircuitScriptParser.Parallel:
129
+ case CircuitScriptParser.Define:
130
+ case CircuitScriptParser.For:
131
+ case CircuitScriptParser.While:
132
+ case CircuitScriptParser.Continue:
133
+ case CircuitScriptParser.If:
134
+ case CircuitScriptParser.Frame:
135
+ case CircuitScriptParser.Sheet:
136
+ case CircuitScriptParser.Set:
137
+ case CircuitScriptParser.DoubleDot:
138
+ case CircuitScriptParser.Addition:
139
+ case CircuitScriptParser.Divide:
140
+ case CircuitScriptParser.ANNOTATION_START:
141
+ case CircuitScriptParser.ID:
142
+ this.enterOuterAlt(localContext, 1);
143
+ {
144
+ this.state = 133;
145
+ this.non_newline_expression();
146
+ }
147
+ break;
148
+ case CircuitScriptParser.NEWLINE:
149
+ this.enterOuterAlt(localContext, 2);
150
+ {
151
+ this.state = 134;
152
+ this.match(CircuitScriptParser.NEWLINE);
153
+ }
154
+ break;
155
+ default:
156
+ throw new antlr.NoViableAltException(this);
157
+ }
158
+ }
159
+ catch (re) {
160
+ if (re instanceof antlr.RecognitionException) {
161
+ this.errorHandler.reportError(this, re);
162
+ this.errorHandler.recover(this, re);
163
+ }
164
+ else {
165
+ throw re;
166
+ }
167
+ }
168
+ finally {
169
+ this.exitRule();
170
+ }
171
+ return localContext;
172
+ }
173
+ non_newline_expression() {
174
+ let localContext = new Non_newline_expressionContext(this.context, this.state);
175
+ this.enterRule(localContext, 4, CircuitScriptParser.RULE_non_newline_expression);
176
+ try {
177
+ this.state = 146;
178
+ this.errorHandler.sync(this);
179
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
120
180
  case 1:
121
181
  this.enterOuterAlt(localContext, 1);
122
182
  {
123
- this.state = 129;
183
+ this.state = 137;
124
184
  this.flow_expressions();
125
185
  }
126
186
  break;
127
187
  case 2:
128
188
  this.enterOuterAlt(localContext, 2);
129
189
  {
130
- this.state = 130;
190
+ this.state = 138;
131
191
  this.graph_expressions();
132
192
  }
133
193
  break;
134
194
  case 3:
135
195
  this.enterOuterAlt(localContext, 3);
136
196
  {
137
- this.state = 131;
197
+ this.state = 139;
138
198
  this.function_def_expr();
139
199
  }
140
200
  break;
141
201
  case 4:
142
202
  this.enterOuterAlt(localContext, 4);
143
203
  {
144
- this.state = 132;
204
+ this.state = 140;
145
205
  this.frame_expr();
146
206
  }
147
207
  break;
148
208
  case 5:
149
209
  this.enterOuterAlt(localContext, 5);
150
210
  {
151
- this.state = 133;
211
+ this.state = 141;
152
212
  this.part_set_expr();
153
213
  }
154
214
  break;
155
215
  case 6:
156
216
  this.enterOuterAlt(localContext, 6);
157
217
  {
158
- this.state = 134;
218
+ this.state = 142;
159
219
  this.annotation_comment_expr();
160
220
  }
161
221
  break;
162
222
  case 7:
163
223
  this.enterOuterAlt(localContext, 7);
164
224
  {
165
- this.state = 135;
225
+ this.state = 143;
166
226
  this.double_dot_property_set_expr();
167
227
  }
168
228
  break;
169
229
  case 8:
170
230
  this.enterOuterAlt(localContext, 8);
171
231
  {
172
- this.state = 136;
232
+ this.state = 144;
173
233
  this.assignment_expr();
174
234
  }
175
235
  break;
176
236
  case 9:
177
237
  this.enterOuterAlt(localContext, 9);
178
238
  {
179
- this.state = 137;
239
+ this.state = 145;
180
240
  this.callable_expr();
181
241
  }
182
242
  break;
183
- case 10:
184
- this.enterOuterAlt(localContext, 10);
185
- {
186
- this.state = 138;
187
- this.match(CircuitScriptParser.NEWLINE);
188
- }
189
- break;
190
243
  }
191
244
  }
192
245
  catch (re) {
@@ -205,43 +258,43 @@ class CircuitScriptParser extends antlr.Parser {
205
258
  }
206
259
  flow_expressions() {
207
260
  let localContext = new Flow_expressionsContext(this.context, this.state);
208
- this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
261
+ this.enterRule(localContext, 6, CircuitScriptParser.RULE_flow_expressions);
209
262
  try {
210
- this.state = 146;
263
+ this.state = 153;
211
264
  this.errorHandler.sync(this);
212
265
  switch (this.tokenStream.LA(1)) {
213
266
  case CircuitScriptParser.If:
214
267
  this.enterOuterAlt(localContext, 1);
215
268
  {
216
- this.state = 141;
269
+ this.state = 148;
217
270
  this.if_expr();
218
271
  }
219
272
  break;
220
273
  case CircuitScriptParser.While:
221
274
  this.enterOuterAlt(localContext, 2);
222
275
  {
223
- this.state = 142;
276
+ this.state = 149;
224
277
  this.while_expr();
225
278
  }
226
279
  break;
227
280
  case CircuitScriptParser.For:
228
281
  this.enterOuterAlt(localContext, 3);
229
282
  {
230
- this.state = 143;
283
+ this.state = 150;
231
284
  this.for_expr();
232
285
  }
233
286
  break;
234
287
  case CircuitScriptParser.Break:
235
288
  this.enterOuterAlt(localContext, 4);
236
289
  {
237
- this.state = 144;
290
+ this.state = 151;
238
291
  this.match(CircuitScriptParser.Break);
239
292
  }
240
293
  break;
241
294
  case CircuitScriptParser.Continue:
242
295
  this.enterOuterAlt(localContext, 5);
243
296
  {
244
- this.state = 145;
297
+ this.state = 152;
245
298
  this.match(CircuitScriptParser.Continue);
246
299
  }
247
300
  break;
@@ -265,57 +318,57 @@ class CircuitScriptParser extends antlr.Parser {
265
318
  }
266
319
  graph_expressions() {
267
320
  let localContext = new Graph_expressionsContext(this.context, this.state);
268
- this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
321
+ this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_expressions);
269
322
  try {
270
- this.state = 155;
323
+ this.state = 162;
271
324
  this.errorHandler.sync(this);
272
- switch (this.interpreter.adaptivePredict(this.tokenStream, 5, this.context)) {
325
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
273
326
  case 1:
274
327
  this.enterOuterAlt(localContext, 1);
275
328
  {
276
- this.state = 148;
329
+ this.state = 155;
277
330
  this.add_component_expr();
278
331
  }
279
332
  break;
280
333
  case 2:
281
334
  this.enterOuterAlt(localContext, 2);
282
335
  {
283
- this.state = 149;
336
+ this.state = 156;
284
337
  this.at_component_expr();
285
338
  }
286
339
  break;
287
340
  case 3:
288
341
  this.enterOuterAlt(localContext, 3);
289
342
  {
290
- this.state = 150;
343
+ this.state = 157;
291
344
  this.at_block();
292
345
  }
293
346
  break;
294
347
  case 4:
295
348
  this.enterOuterAlt(localContext, 4);
296
349
  {
297
- this.state = 151;
350
+ this.state = 158;
298
351
  this.to_component_expr();
299
352
  }
300
353
  break;
301
354
  case 5:
302
355
  this.enterOuterAlt(localContext, 5);
303
356
  {
304
- this.state = 152;
357
+ this.state = 159;
305
358
  this.wire_expr();
306
359
  }
307
360
  break;
308
361
  case 6:
309
362
  this.enterOuterAlt(localContext, 6);
310
363
  {
311
- this.state = 153;
364
+ this.state = 160;
312
365
  this.point_expr();
313
366
  }
314
367
  break;
315
368
  case 7:
316
369
  this.enterOuterAlt(localContext, 7);
317
370
  {
318
- this.state = 154;
371
+ this.state = 161;
319
372
  this.path_block();
320
373
  }
321
374
  break;
@@ -337,30 +390,30 @@ class CircuitScriptParser extends antlr.Parser {
337
390
  }
338
391
  expressions_block() {
339
392
  let localContext = new Expressions_blockContext(this.context, this.state);
340
- this.enterRule(localContext, 8, CircuitScriptParser.RULE_expressions_block);
393
+ this.enterRule(localContext, 10, CircuitScriptParser.RULE_expressions_block);
341
394
  let _la;
342
395
  try {
343
396
  this.enterOuterAlt(localContext, 1);
344
397
  {
345
- this.state = 157;
398
+ this.state = 164;
346
399
  this.match(CircuitScriptParser.NEWLINE);
347
- this.state = 158;
400
+ this.state = 165;
348
401
  this.match(CircuitScriptParser.INDENT);
349
- this.state = 160;
402
+ this.state = 167;
350
403
  this.errorHandler.sync(this);
351
404
  _la = this.tokenStream.LA(1);
352
405
  do {
353
406
  {
354
407
  {
355
- this.state = 159;
408
+ this.state = 166;
356
409
  this.expression();
357
410
  }
358
411
  }
359
- this.state = 162;
412
+ this.state = 169;
360
413
  this.errorHandler.sync(this);
361
414
  _la = this.tokenStream.LA(1);
362
415
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0));
363
- this.state = 164;
416
+ this.state = 171;
364
417
  this.match(CircuitScriptParser.DEDENT);
365
418
  }
366
419
  }
@@ -380,12 +433,13 @@ class CircuitScriptParser extends antlr.Parser {
380
433
  }
381
434
  path_block() {
382
435
  let localContext = new Path_blockContext(this.context, this.state);
383
- this.enterRule(localContext, 10, CircuitScriptParser.RULE_path_block);
436
+ this.enterRule(localContext, 12, CircuitScriptParser.RULE_path_block);
384
437
  let _la;
385
438
  try {
439
+ let alternative;
386
440
  this.enterOuterAlt(localContext, 1);
387
441
  {
388
- this.state = 166;
442
+ this.state = 173;
389
443
  _la = this.tokenStream.LA(1);
390
444
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 114704) !== 0))) {
391
445
  this.errorHandler.recoverInline(this);
@@ -394,10 +448,48 @@ class CircuitScriptParser extends antlr.Parser {
394
448
  this.errorHandler.reportMatch(this);
395
449
  this.consume();
396
450
  }
397
- this.state = 167;
451
+ this.state = 174;
398
452
  this.match(CircuitScriptParser.Colon);
399
- this.state = 168;
400
- this.expressions_block();
453
+ this.state = 182;
454
+ this.errorHandler.sync(this);
455
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 9, this.context)) {
456
+ case 1:
457
+ {
458
+ this.state = 176;
459
+ this.errorHandler.sync(this);
460
+ alternative = 1;
461
+ do {
462
+ switch (alternative) {
463
+ case 1:
464
+ {
465
+ {
466
+ this.state = 175;
467
+ this.non_newline_expression();
468
+ }
469
+ }
470
+ break;
471
+ default:
472
+ throw new antlr.NoViableAltException(this);
473
+ }
474
+ this.state = 178;
475
+ this.errorHandler.sync(this);
476
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
477
+ } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
478
+ }
479
+ break;
480
+ case 2:
481
+ {
482
+ this.state = 180;
483
+ this.expressions_block();
484
+ }
485
+ break;
486
+ case 3:
487
+ {
488
+ this.state = 181;
489
+ this.at_block_expressions();
490
+ }
491
+ break;
492
+ }
401
493
  }
402
494
  }
403
495
  catch (re) {
@@ -416,13 +508,13 @@ class CircuitScriptParser extends antlr.Parser {
416
508
  }
417
509
  pin_select_expr() {
418
510
  let localContext = new Pin_select_exprContext(this.context, this.state);
419
- this.enterRule(localContext, 12, CircuitScriptParser.RULE_pin_select_expr);
511
+ this.enterRule(localContext, 14, CircuitScriptParser.RULE_pin_select_expr);
420
512
  try {
421
513
  this.enterOuterAlt(localContext, 1);
422
514
  {
423
- this.state = 170;
515
+ this.state = 184;
424
516
  this.match(CircuitScriptParser.Pin);
425
- this.state = 171;
517
+ this.state = 185;
426
518
  this.data_expr(0);
427
519
  }
428
520
  }
@@ -442,15 +534,15 @@ class CircuitScriptParser extends antlr.Parser {
442
534
  }
443
535
  component_modifier_expr() {
444
536
  let localContext = new Component_modifier_exprContext(this.context, this.state);
445
- this.enterRule(localContext, 14, CircuitScriptParser.RULE_component_modifier_expr);
537
+ this.enterRule(localContext, 16, CircuitScriptParser.RULE_component_modifier_expr);
446
538
  try {
447
539
  this.enterOuterAlt(localContext, 1);
448
540
  {
449
- this.state = 173;
541
+ this.state = 187;
450
542
  this.match(CircuitScriptParser.ID);
451
- this.state = 174;
543
+ this.state = 188;
452
544
  this.match(CircuitScriptParser.Colon);
453
- this.state = 175;
545
+ this.state = 189;
454
546
  this.data_expr(0);
455
547
  }
456
548
  }
@@ -470,50 +562,50 @@ class CircuitScriptParser extends antlr.Parser {
470
562
  }
471
563
  data_expr_with_assignment() {
472
564
  let localContext = new Data_expr_with_assignmentContext(this.context, this.state);
473
- this.enterRule(localContext, 16, CircuitScriptParser.RULE_data_expr_with_assignment);
565
+ this.enterRule(localContext, 18, CircuitScriptParser.RULE_data_expr_with_assignment);
474
566
  let _la;
475
567
  try {
476
568
  let alternative;
477
569
  this.enterOuterAlt(localContext, 1);
478
570
  {
479
- this.state = 179;
571
+ this.state = 193;
480
572
  this.errorHandler.sync(this);
481
- switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
573
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 10, this.context)) {
482
574
  case 1:
483
575
  {
484
- this.state = 177;
576
+ this.state = 191;
485
577
  this.data_expr(0);
486
578
  }
487
579
  break;
488
580
  case 2:
489
581
  {
490
- this.state = 178;
582
+ this.state = 192;
491
583
  this.assignment_expr();
492
584
  }
493
585
  break;
494
586
  }
495
- this.state = 184;
587
+ this.state = 198;
496
588
  this.errorHandler.sync(this);
497
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
589
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 11, this.context);
498
590
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
499
591
  if (alternative === 1) {
500
592
  {
501
593
  {
502
- this.state = 181;
594
+ this.state = 195;
503
595
  this.component_modifier_expr();
504
596
  }
505
597
  }
506
598
  }
507
- this.state = 186;
599
+ this.state = 200;
508
600
  this.errorHandler.sync(this);
509
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 8, this.context);
601
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 11, this.context);
510
602
  }
511
- this.state = 188;
603
+ this.state = 202;
512
604
  this.errorHandler.sync(this);
513
605
  _la = this.tokenStream.LA(1);
514
606
  if (_la === 10) {
515
607
  {
516
- this.state = 187;
608
+ this.state = 201;
517
609
  this.pin_select_expr();
518
610
  }
519
611
  }
@@ -535,14 +627,14 @@ class CircuitScriptParser extends antlr.Parser {
535
627
  }
536
628
  assignment_expr() {
537
629
  let localContext = new Assignment_exprContext(this.context, this.state);
538
- this.enterRule(localContext, 18, CircuitScriptParser.RULE_assignment_expr);
630
+ this.enterRule(localContext, 20, CircuitScriptParser.RULE_assignment_expr);
539
631
  let _la;
540
632
  try {
541
633
  this.enterOuterAlt(localContext, 1);
542
634
  {
543
- this.state = 190;
635
+ this.state = 204;
544
636
  this.callable_expr();
545
- this.state = 191;
637
+ this.state = 205;
546
638
  _la = this.tokenStream.LA(1);
547
639
  if (!(((((_la - 37)) & ~0x1F) === 0 && ((1 << (_la - 37)) & 507905) !== 0))) {
548
640
  this.errorHandler.recoverInline(this);
@@ -551,7 +643,7 @@ class CircuitScriptParser extends antlr.Parser {
551
643
  this.errorHandler.reportMatch(this);
552
644
  this.consume();
553
645
  }
554
- this.state = 192;
646
+ this.state = 206;
555
647
  this.data_expr(0);
556
648
  }
557
649
  }
@@ -571,13 +663,13 @@ class CircuitScriptParser extends antlr.Parser {
571
663
  }
572
664
  add_component_expr() {
573
665
  let localContext = new Add_component_exprContext(this.context, this.state);
574
- this.enterRule(localContext, 20, CircuitScriptParser.RULE_add_component_expr);
666
+ this.enterRule(localContext, 22, CircuitScriptParser.RULE_add_component_expr);
575
667
  try {
576
668
  this.enterOuterAlt(localContext, 1);
577
669
  {
578
- this.state = 194;
670
+ this.state = 208;
579
671
  this.match(CircuitScriptParser.Add);
580
- this.state = 195;
672
+ this.state = 209;
581
673
  this.data_expr_with_assignment();
582
674
  }
583
675
  }
@@ -597,9 +689,9 @@ class CircuitScriptParser extends antlr.Parser {
597
689
  }
598
690
  component_select_expr() {
599
691
  let localContext = new Component_select_exprContext(this.context, this.state);
600
- this.enterRule(localContext, 22, CircuitScriptParser.RULE_component_select_expr);
692
+ this.enterRule(localContext, 24, CircuitScriptParser.RULE_component_select_expr);
601
693
  try {
602
- this.state = 200;
694
+ this.state = 214;
603
695
  this.errorHandler.sync(this);
604
696
  switch (this.tokenStream.LA(1)) {
605
697
  case CircuitScriptParser.Create:
@@ -618,21 +710,21 @@ class CircuitScriptParser extends antlr.Parser {
618
710
  case CircuitScriptParser.ID:
619
711
  this.enterOuterAlt(localContext, 1);
620
712
  {
621
- this.state = 197;
713
+ this.state = 211;
622
714
  this.data_expr_with_assignment();
623
715
  }
624
716
  break;
625
717
  case CircuitScriptParser.Pin:
626
718
  this.enterOuterAlt(localContext, 2);
627
719
  {
628
- this.state = 198;
720
+ this.state = 212;
629
721
  this.pin_select_expr();
630
722
  }
631
723
  break;
632
724
  case CircuitScriptParser.Point:
633
725
  this.enterOuterAlt(localContext, 3);
634
726
  {
635
- this.state = 199;
727
+ this.state = 213;
636
728
  this.match(CircuitScriptParser.Point);
637
729
  }
638
730
  break;
@@ -656,13 +748,13 @@ class CircuitScriptParser extends antlr.Parser {
656
748
  }
657
749
  at_component_expr() {
658
750
  let localContext = new At_component_exprContext(this.context, this.state);
659
- this.enterRule(localContext, 24, CircuitScriptParser.RULE_at_component_expr);
751
+ this.enterRule(localContext, 26, CircuitScriptParser.RULE_at_component_expr);
660
752
  try {
661
753
  this.enterOuterAlt(localContext, 1);
662
754
  {
663
- this.state = 202;
755
+ this.state = 216;
664
756
  this.match(CircuitScriptParser.At);
665
- this.state = 203;
757
+ this.state = 217;
666
758
  this.component_select_expr();
667
759
  }
668
760
  }
@@ -682,28 +774,28 @@ class CircuitScriptParser extends antlr.Parser {
682
774
  }
683
775
  to_component_expr() {
684
776
  let localContext = new To_component_exprContext(this.context, this.state);
685
- this.enterRule(localContext, 26, CircuitScriptParser.RULE_to_component_expr);
777
+ this.enterRule(localContext, 28, CircuitScriptParser.RULE_to_component_expr);
686
778
  let _la;
687
779
  try {
688
780
  this.enterOuterAlt(localContext, 1);
689
781
  {
690
- this.state = 205;
782
+ this.state = 219;
691
783
  this.match(CircuitScriptParser.To);
692
- this.state = 206;
784
+ this.state = 220;
693
785
  this.component_select_expr();
694
- this.state = 211;
786
+ this.state = 225;
695
787
  this.errorHandler.sync(this);
696
788
  _la = this.tokenStream.LA(1);
697
789
  while (_la === 32) {
698
790
  {
699
791
  {
700
- this.state = 207;
792
+ this.state = 221;
701
793
  this.match(CircuitScriptParser.Comma);
702
- this.state = 208;
794
+ this.state = 222;
703
795
  this.component_select_expr();
704
796
  }
705
797
  }
706
- this.state = 213;
798
+ this.state = 227;
707
799
  this.errorHandler.sync(this);
708
800
  _la = this.tokenStream.LA(1);
709
801
  }
@@ -725,26 +817,26 @@ class CircuitScriptParser extends antlr.Parser {
725
817
  }
726
818
  at_block_header() {
727
819
  let localContext = new At_block_headerContext(this.context, this.state);
728
- this.enterRule(localContext, 28, CircuitScriptParser.RULE_at_block_header);
820
+ this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_block_header);
729
821
  let _la;
730
822
  try {
731
823
  this.enterOuterAlt(localContext, 1);
732
824
  {
733
- this.state = 214;
825
+ this.state = 228;
734
826
  this.at_component_expr();
735
- this.state = 215;
827
+ this.state = 229;
736
828
  this.match(CircuitScriptParser.Colon);
737
- this.state = 219;
829
+ this.state = 233;
738
830
  this.errorHandler.sync(this);
739
831
  _la = this.tokenStream.LA(1);
740
832
  while (_la === 63) {
741
833
  {
742
834
  {
743
- this.state = 216;
835
+ this.state = 230;
744
836
  this.annotation_comment_expr();
745
837
  }
746
838
  }
747
- this.state = 221;
839
+ this.state = 235;
748
840
  this.errorHandler.sync(this);
749
841
  _la = this.tokenStream.LA(1);
750
842
  }
@@ -766,32 +858,56 @@ class CircuitScriptParser extends antlr.Parser {
766
858
  }
767
859
  at_block() {
768
860
  let localContext = new At_blockContext(this.context, this.state);
769
- this.enterRule(localContext, 30, CircuitScriptParser.RULE_at_block);
770
- let _la;
861
+ this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_block);
771
862
  try {
772
863
  this.enterOuterAlt(localContext, 1);
773
864
  {
774
- this.state = 222;
865
+ this.state = 236;
775
866
  this.at_block_header();
776
- this.state = 223;
867
+ this.state = 237;
868
+ this.at_block_expressions();
869
+ }
870
+ }
871
+ catch (re) {
872
+ if (re instanceof antlr.RecognitionException) {
873
+ this.errorHandler.reportError(this, re);
874
+ this.errorHandler.recover(this, re);
875
+ }
876
+ else {
877
+ throw re;
878
+ }
879
+ }
880
+ finally {
881
+ this.exitRule();
882
+ }
883
+ return localContext;
884
+ }
885
+ at_block_expressions() {
886
+ let localContext = new At_block_expressionsContext(this.context, this.state);
887
+ this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block_expressions);
888
+ let _la;
889
+ try {
890
+ this.enterOuterAlt(localContext, 1);
891
+ {
892
+ this.state = 239;
777
893
  this.match(CircuitScriptParser.NEWLINE);
778
- this.state = 224;
894
+ this.state = 240;
779
895
  this.match(CircuitScriptParser.INDENT);
780
- this.state = 226;
896
+ this.state = 242;
781
897
  this.errorHandler.sync(this);
782
898
  _la = this.tokenStream.LA(1);
783
899
  do {
784
900
  {
785
901
  {
786
- this.state = 225;
787
- this.at_block_expressions();
902
+ this.state = 241;
903
+ this.at_block_expressions_inner();
788
904
  }
789
905
  }
790
- this.state = 228;
906
+ this.state = 244;
791
907
  this.errorHandler.sync(this);
792
908
  _la = this.tokenStream.LA(1);
793
909
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390015811) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 12977157) !== 0));
794
- this.state = 230;
910
+ this.state = 246;
795
911
  this.match(CircuitScriptParser.DEDENT);
796
912
  }
797
913
  }
@@ -809,25 +925,25 @@ class CircuitScriptParser extends antlr.Parser {
809
925
  }
810
926
  return localContext;
811
927
  }
812
- at_block_expressions() {
813
- let localContext = new At_block_expressionsContext(this.context, this.state);
814
- this.enterRule(localContext, 32, CircuitScriptParser.RULE_at_block_expressions);
928
+ at_block_expressions_inner() {
929
+ let localContext = new At_block_expressions_innerContext(this.context, this.state);
930
+ this.enterRule(localContext, 36, CircuitScriptParser.RULE_at_block_expressions_inner);
815
931
  try {
816
- this.state = 234;
932
+ this.state = 250;
817
933
  this.errorHandler.sync(this);
818
- switch (this.interpreter.adaptivePredict(this.tokenStream, 14, this.context)) {
934
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 17, this.context)) {
819
935
  case 1:
820
936
  this.enterOuterAlt(localContext, 1);
821
937
  {
822
- this.state = 232;
823
- this.expression();
938
+ this.state = 248;
939
+ this.at_block_pin_expr();
824
940
  }
825
941
  break;
826
942
  case 2:
827
943
  this.enterOuterAlt(localContext, 2);
828
944
  {
829
- this.state = 233;
830
- this.at_block_pin_expr();
945
+ this.state = 249;
946
+ this.expression();
831
947
  }
832
948
  break;
833
949
  }
@@ -848,35 +964,77 @@ class CircuitScriptParser extends antlr.Parser {
848
964
  }
849
965
  at_block_pin_expr() {
850
966
  let localContext = new At_block_pin_exprContext(this.context, this.state);
851
- this.enterRule(localContext, 34, CircuitScriptParser.RULE_at_block_pin_expr);
967
+ this.enterRule(localContext, 38, CircuitScriptParser.RULE_at_block_pin_expr);
852
968
  try {
969
+ let alternative;
853
970
  this.enterOuterAlt(localContext, 1);
854
971
  {
855
- this.state = 236;
972
+ this.state = 252;
856
973
  this.property_key_expr();
857
- this.state = 237;
974
+ this.state = 253;
858
975
  this.match(CircuitScriptParser.Colon);
859
- this.state = 241;
976
+ this.state = 261;
860
977
  this.errorHandler.sync(this);
861
- switch (this.interpreter.adaptivePredict(this.tokenStream, 15, this.context)) {
862
- case 1:
978
+ switch (this.tokenStream.LA(1)) {
979
+ case CircuitScriptParser.Break:
980
+ case CircuitScriptParser.Branch:
981
+ case CircuitScriptParser.Wire:
982
+ case CircuitScriptParser.Add:
983
+ case CircuitScriptParser.At:
984
+ case CircuitScriptParser.To:
985
+ case CircuitScriptParser.Point:
986
+ case CircuitScriptParser.Join:
987
+ case CircuitScriptParser.Parallel:
988
+ case CircuitScriptParser.Define:
989
+ case CircuitScriptParser.For:
990
+ case CircuitScriptParser.While:
991
+ case CircuitScriptParser.Continue:
992
+ case CircuitScriptParser.If:
993
+ case CircuitScriptParser.Frame:
994
+ case CircuitScriptParser.Sheet:
995
+ case CircuitScriptParser.Set:
996
+ case CircuitScriptParser.DoubleDot:
997
+ case CircuitScriptParser.Addition:
998
+ case CircuitScriptParser.Divide:
999
+ case CircuitScriptParser.ANNOTATION_START:
1000
+ case CircuitScriptParser.ID:
863
1001
  {
864
- this.state = 238;
865
- this.expression();
1002
+ this.state = 255;
1003
+ this.errorHandler.sync(this);
1004
+ alternative = 1;
1005
+ do {
1006
+ switch (alternative) {
1007
+ case 1:
1008
+ {
1009
+ {
1010
+ this.state = 254;
1011
+ this.non_newline_expression();
1012
+ }
1013
+ }
1014
+ break;
1015
+ default:
1016
+ throw new antlr.NoViableAltException(this);
1017
+ }
1018
+ this.state = 257;
1019
+ this.errorHandler.sync(this);
1020
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 18, this.context);
1021
+ } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
866
1022
  }
867
1023
  break;
868
- case 2:
1024
+ case CircuitScriptParser.NEWLINE:
869
1025
  {
870
- this.state = 239;
1026
+ this.state = 259;
871
1027
  this.expressions_block();
872
1028
  }
873
1029
  break;
874
- case 3:
1030
+ case CircuitScriptParser.NOT_CONNECTED:
875
1031
  {
876
- this.state = 240;
1032
+ this.state = 260;
877
1033
  this.match(CircuitScriptParser.NOT_CONNECTED);
878
1034
  }
879
1035
  break;
1036
+ default:
1037
+ throw new antlr.NoViableAltException(this);
880
1038
  }
881
1039
  }
882
1040
  }
@@ -896,15 +1054,15 @@ class CircuitScriptParser extends antlr.Parser {
896
1054
  }
897
1055
  keyword_assignment_expr() {
898
1056
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
899
- this.enterRule(localContext, 36, CircuitScriptParser.RULE_keyword_assignment_expr);
1057
+ this.enterRule(localContext, 40, CircuitScriptParser.RULE_keyword_assignment_expr);
900
1058
  try {
901
1059
  this.enterOuterAlt(localContext, 1);
902
1060
  {
903
- this.state = 243;
1061
+ this.state = 263;
904
1062
  this.match(CircuitScriptParser.ID);
905
- this.state = 244;
1063
+ this.state = 264;
906
1064
  this.match(CircuitScriptParser.Assign);
907
- this.state = 245;
1065
+ this.state = 265;
908
1066
  this.data_expr(0);
909
1067
  }
910
1068
  }
@@ -924,61 +1082,61 @@ class CircuitScriptParser extends antlr.Parser {
924
1082
  }
925
1083
  parameters() {
926
1084
  let localContext = new ParametersContext(this.context, this.state);
927
- this.enterRule(localContext, 38, CircuitScriptParser.RULE_parameters);
1085
+ this.enterRule(localContext, 42, CircuitScriptParser.RULE_parameters);
928
1086
  let _la;
929
1087
  try {
930
1088
  let alternative;
931
1089
  this.enterOuterAlt(localContext, 1);
932
1090
  {
933
- this.state = 256;
1091
+ this.state = 276;
934
1092
  this.errorHandler.sync(this);
935
- switch (this.interpreter.adaptivePredict(this.tokenStream, 17, this.context)) {
1093
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 21, this.context)) {
936
1094
  case 1:
937
1095
  {
938
1096
  {
939
- this.state = 247;
1097
+ this.state = 267;
940
1098
  this.data_expr(0);
941
- this.state = 252;
1099
+ this.state = 272;
942
1100
  this.errorHandler.sync(this);
943
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 16, this.context);
1101
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
944
1102
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
945
1103
  if (alternative === 1) {
946
1104
  {
947
1105
  {
948
- this.state = 248;
1106
+ this.state = 268;
949
1107
  this.match(CircuitScriptParser.Comma);
950
- this.state = 249;
1108
+ this.state = 269;
951
1109
  this.data_expr(0);
952
1110
  }
953
1111
  }
954
1112
  }
955
- this.state = 254;
1113
+ this.state = 274;
956
1114
  this.errorHandler.sync(this);
957
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 16, this.context);
1115
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
958
1116
  }
959
1117
  }
960
1118
  }
961
1119
  break;
962
1120
  case 2:
963
1121
  {
964
- this.state = 255;
1122
+ this.state = 275;
965
1123
  this.keyword_assignment_expr();
966
1124
  }
967
1125
  break;
968
1126
  }
969
- this.state = 262;
1127
+ this.state = 282;
970
1128
  this.errorHandler.sync(this);
971
1129
  _la = this.tokenStream.LA(1);
972
1130
  while (_la === 32) {
973
1131
  {
974
1132
  {
975
- this.state = 258;
1133
+ this.state = 278;
976
1134
  this.match(CircuitScriptParser.Comma);
977
- this.state = 259;
1135
+ this.state = 279;
978
1136
  this.keyword_assignment_expr();
979
1137
  }
980
1138
  }
981
- this.state = 264;
1139
+ this.state = 284;
982
1140
  this.errorHandler.sync(this);
983
1141
  _la = this.tokenStream.LA(1);
984
1142
  }
@@ -1000,32 +1158,32 @@ class CircuitScriptParser extends antlr.Parser {
1000
1158
  }
1001
1159
  double_dot_property_set_expr() {
1002
1160
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1003
- this.enterRule(localContext, 40, CircuitScriptParser.RULE_double_dot_property_set_expr);
1161
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_double_dot_property_set_expr);
1004
1162
  let _la;
1005
1163
  try {
1006
1164
  this.enterOuterAlt(localContext, 1);
1007
1165
  {
1008
- this.state = 265;
1166
+ this.state = 285;
1009
1167
  this.match(CircuitScriptParser.DoubleDot);
1010
- this.state = 266;
1168
+ this.state = 286;
1011
1169
  this.match(CircuitScriptParser.ID);
1012
- this.state = 270;
1170
+ this.state = 290;
1013
1171
  this.errorHandler.sync(this);
1014
1172
  _la = this.tokenStream.LA(1);
1015
1173
  while (((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 67108869) !== 0)) {
1016
1174
  {
1017
1175
  {
1018
- this.state = 267;
1176
+ this.state = 287;
1019
1177
  this.trailer();
1020
1178
  }
1021
1179
  }
1022
- this.state = 272;
1180
+ this.state = 292;
1023
1181
  this.errorHandler.sync(this);
1024
1182
  _la = this.tokenStream.LA(1);
1025
1183
  }
1026
- this.state = 273;
1184
+ this.state = 293;
1027
1185
  this.match(CircuitScriptParser.Assign);
1028
- this.state = 274;
1186
+ this.state = 294;
1029
1187
  this.data_expr(0);
1030
1188
  }
1031
1189
  }
@@ -1051,26 +1209,26 @@ class CircuitScriptParser extends antlr.Parser {
1051
1209
  let parentState = this.state;
1052
1210
  let localContext = new Data_exprContext(this.context, parentState);
1053
1211
  let previousContext = localContext;
1054
- let _startState = 42;
1055
- this.enterRecursionRule(localContext, 42, CircuitScriptParser.RULE_data_expr, _p);
1212
+ let _startState = 46;
1213
+ this.enterRecursionRule(localContext, 46, CircuitScriptParser.RULE_data_expr, _p);
1056
1214
  let _la;
1057
1215
  try {
1058
1216
  let alternative;
1059
1217
  this.enterOuterAlt(localContext, 1);
1060
1218
  {
1061
- this.state = 302;
1219
+ this.state = 322;
1062
1220
  this.errorHandler.sync(this);
1063
- switch (this.interpreter.adaptivePredict(this.tokenStream, 22, this.context)) {
1221
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 26, this.context)) {
1064
1222
  case 1:
1065
1223
  {
1066
1224
  localContext = new RoundedBracketsExprContext(localContext);
1067
1225
  this.context = localContext;
1068
1226
  previousContext = localContext;
1069
- this.state = 277;
1227
+ this.state = 297;
1070
1228
  this.match(CircuitScriptParser.LParen);
1071
- this.state = 278;
1229
+ this.state = 298;
1072
1230
  this.data_expr(0);
1073
- this.state = 279;
1231
+ this.state = 299;
1074
1232
  this.match(CircuitScriptParser.RParen);
1075
1233
  }
1076
1234
  break;
@@ -1079,9 +1237,9 @@ class CircuitScriptParser extends antlr.Parser {
1079
1237
  localContext = new CreateExprContext(localContext);
1080
1238
  this.context = localContext;
1081
1239
  previousContext = localContext;
1082
- this.state = 281;
1240
+ this.state = 301;
1083
1241
  this.match(CircuitScriptParser.Create);
1084
- this.state = 282;
1242
+ this.state = 302;
1085
1243
  this.create_expr();
1086
1244
  }
1087
1245
  break;
@@ -1090,7 +1248,7 @@ class CircuitScriptParser extends antlr.Parser {
1090
1248
  localContext = new UnaryOperatorExprContext(localContext);
1091
1249
  this.context = localContext;
1092
1250
  previousContext = localContext;
1093
- this.state = 283;
1251
+ this.state = 303;
1094
1252
  _la = this.tokenStream.LA(1);
1095
1253
  if (!(_la === 27 || _la === 47)) {
1096
1254
  this.errorHandler.recoverInline(this);
@@ -1099,7 +1257,7 @@ class CircuitScriptParser extends antlr.Parser {
1099
1257
  this.errorHandler.reportMatch(this);
1100
1258
  this.consume();
1101
1259
  }
1102
- this.state = 284;
1260
+ this.state = 304;
1103
1261
  this.data_expr(8);
1104
1262
  }
1105
1263
  break;
@@ -1108,39 +1266,39 @@ class CircuitScriptParser extends antlr.Parser {
1108
1266
  localContext = new ArrayExprContext(localContext);
1109
1267
  this.context = localContext;
1110
1268
  previousContext = localContext;
1111
- this.state = 285;
1269
+ this.state = 305;
1112
1270
  this.match(CircuitScriptParser.LSquare);
1113
- this.state = 296;
1271
+ this.state = 316;
1114
1272
  this.errorHandler.sync(this);
1115
1273
  _la = this.tokenStream.LA(1);
1116
1274
  while (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1077936129) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 16588807) !== 0)) {
1117
1275
  {
1118
1276
  {
1119
- this.state = 286;
1277
+ this.state = 306;
1120
1278
  this.data_expr(0);
1121
- this.state = 291;
1279
+ this.state = 311;
1122
1280
  this.errorHandler.sync(this);
1123
1281
  _la = this.tokenStream.LA(1);
1124
1282
  while (_la === 32) {
1125
1283
  {
1126
1284
  {
1127
- this.state = 287;
1285
+ this.state = 307;
1128
1286
  this.match(CircuitScriptParser.Comma);
1129
- this.state = 288;
1287
+ this.state = 308;
1130
1288
  this.data_expr(0);
1131
1289
  }
1132
1290
  }
1133
- this.state = 293;
1291
+ this.state = 313;
1134
1292
  this.errorHandler.sync(this);
1135
1293
  _la = this.tokenStream.LA(1);
1136
1294
  }
1137
1295
  }
1138
1296
  }
1139
- this.state = 298;
1297
+ this.state = 318;
1140
1298
  this.errorHandler.sync(this);
1141
1299
  _la = this.tokenStream.LA(1);
1142
1300
  }
1143
- this.state = 299;
1301
+ this.state = 319;
1144
1302
  this.match(CircuitScriptParser.RSquare);
1145
1303
  }
1146
1304
  break;
@@ -1149,7 +1307,7 @@ class CircuitScriptParser extends antlr.Parser {
1149
1307
  localContext = new ValueExprContext(localContext);
1150
1308
  this.context = localContext;
1151
1309
  previousContext = localContext;
1152
- this.state = 300;
1310
+ this.state = 320;
1153
1311
  this.value_expr();
1154
1312
  }
1155
1313
  break;
@@ -1158,15 +1316,15 @@ class CircuitScriptParser extends antlr.Parser {
1158
1316
  localContext = new CallableExprContext(localContext);
1159
1317
  this.context = localContext;
1160
1318
  previousContext = localContext;
1161
- this.state = 301;
1319
+ this.state = 321;
1162
1320
  this.callable_expr();
1163
1321
  }
1164
1322
  break;
1165
1323
  }
1166
1324
  this.context.stop = this.tokenStream.LT(-1);
1167
- this.state = 318;
1325
+ this.state = 338;
1168
1326
  this.errorHandler.sync(this);
1169
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 24, this.context);
1327
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1170
1328
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1171
1329
  if (alternative === 1) {
1172
1330
  if (this.parseListeners != null) {
@@ -1174,18 +1332,18 @@ class CircuitScriptParser extends antlr.Parser {
1174
1332
  }
1175
1333
  previousContext = localContext;
1176
1334
  {
1177
- this.state = 316;
1335
+ this.state = 336;
1178
1336
  this.errorHandler.sync(this);
1179
- switch (this.interpreter.adaptivePredict(this.tokenStream, 23, this.context)) {
1337
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1180
1338
  case 1:
1181
1339
  {
1182
1340
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1183
1341
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1184
- this.state = 304;
1342
+ this.state = 324;
1185
1343
  if (!(this.precpred(this.context, 6))) {
1186
1344
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
1187
1345
  }
1188
- this.state = 305;
1346
+ this.state = 325;
1189
1347
  _la = this.tokenStream.LA(1);
1190
1348
  if (!(((((_la - 48)) & ~0x1F) === 0 && ((1 << (_la - 48)) & 7) !== 0))) {
1191
1349
  this.errorHandler.recoverInline(this);
@@ -1194,7 +1352,7 @@ class CircuitScriptParser extends antlr.Parser {
1194
1352
  this.errorHandler.reportMatch(this);
1195
1353
  this.consume();
1196
1354
  }
1197
- this.state = 306;
1355
+ this.state = 326;
1198
1356
  this.data_expr(7);
1199
1357
  }
1200
1358
  break;
@@ -1202,11 +1360,11 @@ class CircuitScriptParser extends antlr.Parser {
1202
1360
  {
1203
1361
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1204
1362
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1205
- this.state = 307;
1363
+ this.state = 327;
1206
1364
  if (!(this.precpred(this.context, 5))) {
1207
1365
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
1208
1366
  }
1209
- this.state = 308;
1367
+ this.state = 328;
1210
1368
  _la = this.tokenStream.LA(1);
1211
1369
  if (!(_la === 46 || _la === 47)) {
1212
1370
  this.errorHandler.recoverInline(this);
@@ -1215,7 +1373,7 @@ class CircuitScriptParser extends antlr.Parser {
1215
1373
  this.errorHandler.reportMatch(this);
1216
1374
  this.consume();
1217
1375
  }
1218
- this.state = 309;
1376
+ this.state = 329;
1219
1377
  this.data_expr(6);
1220
1378
  }
1221
1379
  break;
@@ -1223,11 +1381,11 @@ class CircuitScriptParser extends antlr.Parser {
1223
1381
  {
1224
1382
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1225
1383
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1226
- this.state = 310;
1384
+ this.state = 330;
1227
1385
  if (!(this.precpred(this.context, 4))) {
1228
1386
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
1229
1387
  }
1230
- this.state = 311;
1388
+ this.state = 331;
1231
1389
  _la = this.tokenStream.LA(1);
1232
1390
  if (!(((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & 63) !== 0))) {
1233
1391
  this.errorHandler.recoverInline(this);
@@ -1236,7 +1394,7 @@ class CircuitScriptParser extends antlr.Parser {
1236
1394
  this.errorHandler.reportMatch(this);
1237
1395
  this.consume();
1238
1396
  }
1239
- this.state = 312;
1397
+ this.state = 332;
1240
1398
  this.data_expr(5);
1241
1399
  }
1242
1400
  break;
@@ -1244,11 +1402,11 @@ class CircuitScriptParser extends antlr.Parser {
1244
1402
  {
1245
1403
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1246
1404
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1247
- this.state = 313;
1405
+ this.state = 333;
1248
1406
  if (!(this.precpred(this.context, 3))) {
1249
1407
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
1250
1408
  }
1251
- this.state = 314;
1409
+ this.state = 334;
1252
1410
  _la = this.tokenStream.LA(1);
1253
1411
  if (!(_la === 44 || _la === 45)) {
1254
1412
  this.errorHandler.recoverInline(this);
@@ -1257,16 +1415,16 @@ class CircuitScriptParser extends antlr.Parser {
1257
1415
  this.errorHandler.reportMatch(this);
1258
1416
  this.consume();
1259
1417
  }
1260
- this.state = 315;
1418
+ this.state = 335;
1261
1419
  this.data_expr(4);
1262
1420
  }
1263
1421
  break;
1264
1422
  }
1265
1423
  }
1266
1424
  }
1267
- this.state = 320;
1425
+ this.state = 340;
1268
1426
  this.errorHandler.sync(this);
1269
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 24, this.context);
1427
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1270
1428
  }
1271
1429
  }
1272
1430
  }
@@ -1286,21 +1444,21 @@ class CircuitScriptParser extends antlr.Parser {
1286
1444
  }
1287
1445
  value_expr() {
1288
1446
  let localContext = new Value_exprContext(this.context, this.state);
1289
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_value_expr);
1447
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_value_expr);
1290
1448
  let _la;
1291
1449
  try {
1292
1450
  this.enterOuterAlt(localContext, 1);
1293
1451
  {
1294
- this.state = 322;
1452
+ this.state = 342;
1295
1453
  this.errorHandler.sync(this);
1296
1454
  _la = this.tokenStream.LA(1);
1297
1455
  if (_la === 47) {
1298
1456
  {
1299
- this.state = 321;
1457
+ this.state = 341;
1300
1458
  this.match(CircuitScriptParser.Minus);
1301
1459
  }
1302
1460
  }
1303
- this.state = 324;
1461
+ this.state = 344;
1304
1462
  _la = this.tokenStream.LA(1);
1305
1463
  if (!(((((_la - 62)) & ~0x1F) === 0 && ((1 << (_la - 62)) & 125) !== 0))) {
1306
1464
  this.errorHandler.recoverInline(this);
@@ -1327,49 +1485,49 @@ class CircuitScriptParser extends antlr.Parser {
1327
1485
  }
1328
1486
  function_def_expr() {
1329
1487
  let localContext = new Function_def_exprContext(this.context, this.state);
1330
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_function_def_expr);
1488
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_function_def_expr);
1331
1489
  let _la;
1332
1490
  try {
1333
1491
  this.enterOuterAlt(localContext, 1);
1334
1492
  {
1335
- this.state = 326;
1493
+ this.state = 346;
1336
1494
  this.match(CircuitScriptParser.Define);
1337
- this.state = 327;
1495
+ this.state = 347;
1338
1496
  this.match(CircuitScriptParser.ID);
1339
- this.state = 328;
1497
+ this.state = 348;
1340
1498
  this.match(CircuitScriptParser.LParen);
1341
- this.state = 330;
1499
+ this.state = 350;
1342
1500
  this.errorHandler.sync(this);
1343
1501
  _la = this.tokenStream.LA(1);
1344
1502
  if (_la === 69) {
1345
1503
  {
1346
- this.state = 329;
1504
+ this.state = 349;
1347
1505
  this.function_args_expr();
1348
1506
  }
1349
1507
  }
1350
- this.state = 332;
1508
+ this.state = 352;
1351
1509
  this.match(CircuitScriptParser.RParen);
1352
- this.state = 333;
1510
+ this.state = 353;
1353
1511
  this.match(CircuitScriptParser.Colon);
1354
- this.state = 334;
1512
+ this.state = 354;
1355
1513
  this.match(CircuitScriptParser.NEWLINE);
1356
- this.state = 335;
1514
+ this.state = 355;
1357
1515
  this.match(CircuitScriptParser.INDENT);
1358
- this.state = 337;
1516
+ this.state = 357;
1359
1517
  this.errorHandler.sync(this);
1360
1518
  _la = this.tokenStream.LA(1);
1361
1519
  do {
1362
1520
  {
1363
1521
  {
1364
- this.state = 336;
1522
+ this.state = 356;
1365
1523
  this.function_expr();
1366
1524
  }
1367
1525
  }
1368
- this.state = 339;
1526
+ this.state = 359;
1369
1527
  this.errorHandler.sync(this);
1370
1528
  _la = this.tokenStream.LA(1);
1371
1529
  } while (((((_la - 3)) & ~0x1F) === 0 && ((1 << (_la - 3)) & 2390032195) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 8520709) !== 0));
1372
- this.state = 341;
1530
+ this.state = 361;
1373
1531
  this.match(CircuitScriptParser.DEDENT);
1374
1532
  }
1375
1533
  }
@@ -1389,9 +1547,9 @@ class CircuitScriptParser extends antlr.Parser {
1389
1547
  }
1390
1548
  function_expr() {
1391
1549
  let localContext = new Function_exprContext(this.context, this.state);
1392
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_function_expr);
1550
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_function_expr);
1393
1551
  try {
1394
- this.state = 345;
1552
+ this.state = 365;
1395
1553
  this.errorHandler.sync(this);
1396
1554
  switch (this.tokenStream.LA(1)) {
1397
1555
  case CircuitScriptParser.Break:
@@ -1419,14 +1577,14 @@ class CircuitScriptParser extends antlr.Parser {
1419
1577
  case CircuitScriptParser.ID:
1420
1578
  this.enterOuterAlt(localContext, 1);
1421
1579
  {
1422
- this.state = 343;
1580
+ this.state = 363;
1423
1581
  this.expression();
1424
1582
  }
1425
1583
  break;
1426
1584
  case CircuitScriptParser.Return:
1427
1585
  this.enterOuterAlt(localContext, 2);
1428
1586
  {
1429
- this.state = 344;
1587
+ this.state = 364;
1430
1588
  this.function_return_expr();
1431
1589
  }
1432
1590
  break;
@@ -1450,46 +1608,46 @@ class CircuitScriptParser extends antlr.Parser {
1450
1608
  }
1451
1609
  function_args_expr() {
1452
1610
  let localContext = new Function_args_exprContext(this.context, this.state);
1453
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_function_args_expr);
1611
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_function_args_expr);
1454
1612
  let _la;
1455
1613
  try {
1456
1614
  let alternative;
1457
1615
  this.enterOuterAlt(localContext, 1);
1458
1616
  {
1459
- this.state = 347;
1617
+ this.state = 367;
1460
1618
  this.match(CircuitScriptParser.ID);
1461
- this.state = 357;
1619
+ this.state = 377;
1462
1620
  this.errorHandler.sync(this);
1463
1621
  switch (this.tokenStream.LA(1)) {
1464
1622
  case CircuitScriptParser.Comma:
1465
1623
  case CircuitScriptParser.RParen:
1466
1624
  {
1467
- this.state = 352;
1625
+ this.state = 372;
1468
1626
  this.errorHandler.sync(this);
1469
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1627
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 33, this.context);
1470
1628
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1471
1629
  if (alternative === 1) {
1472
1630
  {
1473
1631
  {
1474
- this.state = 348;
1632
+ this.state = 368;
1475
1633
  this.match(CircuitScriptParser.Comma);
1476
- this.state = 349;
1634
+ this.state = 369;
1477
1635
  this.match(CircuitScriptParser.ID);
1478
1636
  }
1479
1637
  }
1480
1638
  }
1481
- this.state = 354;
1639
+ this.state = 374;
1482
1640
  this.errorHandler.sync(this);
1483
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1641
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 33, this.context);
1484
1642
  }
1485
1643
  }
1486
1644
  break;
1487
1645
  case CircuitScriptParser.Assign:
1488
1646
  {
1489
1647
  {
1490
- this.state = 355;
1648
+ this.state = 375;
1491
1649
  this.match(CircuitScriptParser.Assign);
1492
- this.state = 356;
1650
+ this.state = 376;
1493
1651
  this.value_expr();
1494
1652
  }
1495
1653
  }
@@ -1497,23 +1655,23 @@ class CircuitScriptParser extends antlr.Parser {
1497
1655
  default:
1498
1656
  throw new antlr.NoViableAltException(this);
1499
1657
  }
1500
- this.state = 365;
1658
+ this.state = 385;
1501
1659
  this.errorHandler.sync(this);
1502
1660
  _la = this.tokenStream.LA(1);
1503
1661
  while (_la === 32) {
1504
1662
  {
1505
1663
  {
1506
- this.state = 359;
1664
+ this.state = 379;
1507
1665
  this.match(CircuitScriptParser.Comma);
1508
- this.state = 360;
1666
+ this.state = 380;
1509
1667
  this.match(CircuitScriptParser.ID);
1510
- this.state = 361;
1668
+ this.state = 381;
1511
1669
  this.match(CircuitScriptParser.Assign);
1512
- this.state = 362;
1670
+ this.state = 382;
1513
1671
  this.value_expr();
1514
1672
  }
1515
1673
  }
1516
- this.state = 367;
1674
+ this.state = 387;
1517
1675
  this.errorHandler.sync(this);
1518
1676
  _la = this.tokenStream.LA(1);
1519
1677
  }
@@ -1535,13 +1693,13 @@ class CircuitScriptParser extends antlr.Parser {
1535
1693
  }
1536
1694
  function_return_expr() {
1537
1695
  let localContext = new Function_return_exprContext(this.context, this.state);
1538
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_function_return_expr);
1696
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_function_return_expr);
1539
1697
  try {
1540
1698
  this.enterOuterAlt(localContext, 1);
1541
1699
  {
1542
- this.state = 368;
1700
+ this.state = 388;
1543
1701
  this.match(CircuitScriptParser.Return);
1544
- this.state = 369;
1702
+ this.state = 389;
1545
1703
  this.data_expr(0);
1546
1704
  }
1547
1705
  }
@@ -1561,28 +1719,28 @@ class CircuitScriptParser extends antlr.Parser {
1561
1719
  }
1562
1720
  net_namespace_expr() {
1563
1721
  let localContext = new Net_namespace_exprContext(this.context, this.state);
1564
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_net_namespace_expr);
1722
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_net_namespace_expr);
1565
1723
  let _la;
1566
1724
  try {
1567
1725
  this.enterOuterAlt(localContext, 1);
1568
1726
  {
1569
- this.state = 372;
1727
+ this.state = 392;
1570
1728
  this.errorHandler.sync(this);
1571
1729
  _la = this.tokenStream.LA(1);
1572
1730
  if (_la === 46) {
1573
1731
  {
1574
- this.state = 371;
1732
+ this.state = 391;
1575
1733
  this.match(CircuitScriptParser.Addition);
1576
1734
  }
1577
1735
  }
1578
- this.state = 374;
1736
+ this.state = 394;
1579
1737
  this.match(CircuitScriptParser.Divide);
1580
- this.state = 376;
1738
+ this.state = 396;
1581
1739
  this.errorHandler.sync(this);
1582
- switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1740
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 37, this.context)) {
1583
1741
  case 1:
1584
1742
  {
1585
- this.state = 375;
1743
+ this.state = 395;
1586
1744
  this.data_expr(0);
1587
1745
  }
1588
1746
  break;
@@ -1605,38 +1763,38 @@ class CircuitScriptParser extends antlr.Parser {
1605
1763
  }
1606
1764
  callable_expr() {
1607
1765
  let localContext = new Callable_exprContext(this.context, this.state);
1608
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_callable_expr);
1766
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_callable_expr);
1609
1767
  let _la;
1610
1768
  try {
1611
1769
  let alternative;
1612
1770
  this.enterOuterAlt(localContext, 1);
1613
1771
  {
1614
- this.state = 379;
1772
+ this.state = 399;
1615
1773
  this.errorHandler.sync(this);
1616
1774
  _la = this.tokenStream.LA(1);
1617
1775
  if (_la === 46 || _la === 48) {
1618
1776
  {
1619
- this.state = 378;
1777
+ this.state = 398;
1620
1778
  this.net_namespace_expr();
1621
1779
  }
1622
1780
  }
1623
- this.state = 381;
1781
+ this.state = 401;
1624
1782
  this.match(CircuitScriptParser.ID);
1625
- this.state = 385;
1783
+ this.state = 405;
1626
1784
  this.errorHandler.sync(this);
1627
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1785
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
1628
1786
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1629
1787
  if (alternative === 1) {
1630
1788
  {
1631
1789
  {
1632
- this.state = 382;
1790
+ this.state = 402;
1633
1791
  this.trailer();
1634
1792
  }
1635
1793
  }
1636
1794
  }
1637
- this.state = 387;
1795
+ this.state = 407;
1638
1796
  this.errorHandler.sync(this);
1639
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1797
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 39, this.context);
1640
1798
  }
1641
1799
  }
1642
1800
  }
@@ -1656,47 +1814,47 @@ class CircuitScriptParser extends antlr.Parser {
1656
1814
  }
1657
1815
  trailer() {
1658
1816
  let localContext = new TrailerContext(this.context, this.state);
1659
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_trailer);
1817
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_trailer);
1660
1818
  let _la;
1661
1819
  try {
1662
- this.state = 399;
1820
+ this.state = 419;
1663
1821
  this.errorHandler.sync(this);
1664
1822
  switch (this.tokenStream.LA(1)) {
1665
1823
  case CircuitScriptParser.LParen:
1666
1824
  this.enterOuterAlt(localContext, 1);
1667
1825
  {
1668
- this.state = 388;
1826
+ this.state = 408;
1669
1827
  this.match(CircuitScriptParser.LParen);
1670
- this.state = 390;
1828
+ this.state = 410;
1671
1829
  this.errorHandler.sync(this);
1672
1830
  _la = this.tokenStream.LA(1);
1673
1831
  if (((((_la - 5)) & ~0x1F) === 0 && ((1 << (_la - 5)) & 1077936129) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 16588807) !== 0)) {
1674
1832
  {
1675
- this.state = 389;
1833
+ this.state = 409;
1676
1834
  this.parameters();
1677
1835
  }
1678
1836
  }
1679
- this.state = 392;
1837
+ this.state = 412;
1680
1838
  this.match(CircuitScriptParser.RParen);
1681
1839
  }
1682
1840
  break;
1683
1841
  case CircuitScriptParser.Dot:
1684
1842
  this.enterOuterAlt(localContext, 2);
1685
1843
  {
1686
- this.state = 393;
1844
+ this.state = 413;
1687
1845
  this.match(CircuitScriptParser.Dot);
1688
- this.state = 394;
1846
+ this.state = 414;
1689
1847
  this.match(CircuitScriptParser.ID);
1690
1848
  }
1691
1849
  break;
1692
1850
  case CircuitScriptParser.LSquare:
1693
1851
  this.enterOuterAlt(localContext, 3);
1694
1852
  {
1695
- this.state = 395;
1853
+ this.state = 415;
1696
1854
  this.match(CircuitScriptParser.LSquare);
1697
- this.state = 396;
1855
+ this.state = 416;
1698
1856
  this.data_expr(0);
1699
- this.state = 397;
1857
+ this.state = 417;
1700
1858
  this.match(CircuitScriptParser.RSquare);
1701
1859
  }
1702
1860
  break;
@@ -1720,15 +1878,15 @@ class CircuitScriptParser extends antlr.Parser {
1720
1878
  }
1721
1879
  property_block_expr() {
1722
1880
  let localContext = new Property_block_exprContext(this.context, this.state);
1723
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_property_block_expr);
1881
+ this.enterRule(localContext, 64, CircuitScriptParser.RULE_property_block_expr);
1724
1882
  try {
1725
1883
  this.enterOuterAlt(localContext, 1);
1726
1884
  {
1727
- this.state = 401;
1885
+ this.state = 421;
1728
1886
  this.property_key_expr();
1729
- this.state = 402;
1887
+ this.state = 422;
1730
1888
  this.match(CircuitScriptParser.Colon);
1731
- this.state = 403;
1889
+ this.state = 423;
1732
1890
  this.expressions_block();
1733
1891
  }
1734
1892
  }
@@ -1748,34 +1906,34 @@ class CircuitScriptParser extends antlr.Parser {
1748
1906
  }
1749
1907
  properties_block() {
1750
1908
  let localContext = new Properties_blockContext(this.context, this.state);
1751
- this.enterRule(localContext, 62, CircuitScriptParser.RULE_properties_block);
1909
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_properties_block);
1752
1910
  let _la;
1753
1911
  try {
1754
1912
  this.enterOuterAlt(localContext, 1);
1755
1913
  {
1756
- this.state = 405;
1914
+ this.state = 425;
1757
1915
  this.match(CircuitScriptParser.NEWLINE);
1758
- this.state = 406;
1916
+ this.state = 426;
1759
1917
  this.match(CircuitScriptParser.INDENT);
1760
- this.state = 409;
1918
+ this.state = 429;
1761
1919
  this.errorHandler.sync(this);
1762
1920
  _la = this.tokenStream.LA(1);
1763
1921
  do {
1764
1922
  {
1765
- this.state = 409;
1923
+ this.state = 429;
1766
1924
  this.errorHandler.sync(this);
1767
1925
  switch (this.tokenStream.LA(1)) {
1768
1926
  case CircuitScriptParser.INTEGER_VALUE:
1769
1927
  case CircuitScriptParser.STRING_VALUE:
1770
1928
  case CircuitScriptParser.ID:
1771
1929
  {
1772
- this.state = 407;
1930
+ this.state = 427;
1773
1931
  this.property_expr();
1774
1932
  }
1775
1933
  break;
1776
1934
  case CircuitScriptParser.NEWLINE:
1777
1935
  {
1778
- this.state = 408;
1936
+ this.state = 428;
1779
1937
  this.match(CircuitScriptParser.NEWLINE);
1780
1938
  }
1781
1939
  break;
@@ -1783,11 +1941,11 @@ class CircuitScriptParser extends antlr.Parser {
1783
1941
  throw new antlr.NoViableAltException(this);
1784
1942
  }
1785
1943
  }
1786
- this.state = 411;
1944
+ this.state = 431;
1787
1945
  this.errorHandler.sync(this);
1788
1946
  _la = this.tokenStream.LA(1);
1789
1947
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 12545) !== 0));
1790
- this.state = 413;
1948
+ this.state = 433;
1791
1949
  this.match(CircuitScriptParser.DEDENT);
1792
1950
  }
1793
1951
  }
@@ -1807,26 +1965,26 @@ class CircuitScriptParser extends antlr.Parser {
1807
1965
  }
1808
1966
  graphic_expressions_block() {
1809
1967
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
1810
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_graphic_expressions_block);
1968
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_graphic_expressions_block);
1811
1969
  let _la;
1812
1970
  try {
1813
1971
  this.enterOuterAlt(localContext, 1);
1814
1972
  {
1815
- this.state = 415;
1973
+ this.state = 435;
1816
1974
  this.match(CircuitScriptParser.NEWLINE);
1817
- this.state = 416;
1975
+ this.state = 436;
1818
1976
  this.match(CircuitScriptParser.INDENT);
1819
- this.state = 419;
1977
+ this.state = 439;
1820
1978
  this.errorHandler.sync(this);
1821
1979
  _la = this.tokenStream.LA(1);
1822
1980
  do {
1823
1981
  {
1824
- this.state = 419;
1982
+ this.state = 439;
1825
1983
  this.errorHandler.sync(this);
1826
1984
  switch (this.tokenStream.LA(1)) {
1827
1985
  case CircuitScriptParser.NEWLINE:
1828
1986
  {
1829
- this.state = 417;
1987
+ this.state = 437;
1830
1988
  this.match(CircuitScriptParser.NEWLINE);
1831
1989
  }
1832
1990
  break;
@@ -1834,7 +1992,7 @@ class CircuitScriptParser extends antlr.Parser {
1834
1992
  case CircuitScriptParser.For:
1835
1993
  case CircuitScriptParser.ID:
1836
1994
  {
1837
- this.state = 418;
1995
+ this.state = 438;
1838
1996
  this.graphic_expr();
1839
1997
  }
1840
1998
  break;
@@ -1842,11 +2000,11 @@ class CircuitScriptParser extends antlr.Parser {
1842
2000
  throw new antlr.NoViableAltException(this);
1843
2001
  }
1844
2002
  }
1845
- this.state = 421;
2003
+ this.state = 441;
1846
2004
  this.errorHandler.sync(this);
1847
2005
  _la = this.tokenStream.LA(1);
1848
2006
  } while (_la === 10 || _la === 21 || _la === 56 || _la === 69);
1849
- this.state = 423;
2007
+ this.state = 443;
1850
2008
  this.match(CircuitScriptParser.DEDENT);
1851
2009
  }
1852
2010
  }
@@ -1866,29 +2024,29 @@ class CircuitScriptParser extends antlr.Parser {
1866
2024
  }
1867
2025
  create_expr() {
1868
2026
  let localContext = new Create_exprContext(this.context, this.state);
1869
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_create_expr);
2027
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_create_expr);
1870
2028
  try {
1871
- this.state = 428;
2029
+ this.state = 448;
1872
2030
  this.errorHandler.sync(this);
1873
2031
  switch (this.tokenStream.LA(1)) {
1874
2032
  case CircuitScriptParser.Component:
1875
2033
  this.enterOuterAlt(localContext, 1);
1876
2034
  {
1877
- this.state = 425;
2035
+ this.state = 445;
1878
2036
  this.create_component_expr();
1879
2037
  }
1880
2038
  break;
1881
2039
  case CircuitScriptParser.Graphic:
1882
2040
  this.enterOuterAlt(localContext, 2);
1883
2041
  {
1884
- this.state = 426;
2042
+ this.state = 446;
1885
2043
  this.create_graphic_expr();
1886
2044
  }
1887
2045
  break;
1888
2046
  case CircuitScriptParser.Module:
1889
2047
  this.enterOuterAlt(localContext, 3);
1890
2048
  {
1891
- this.state = 427;
2049
+ this.state = 447;
1892
2050
  this.create_module_expr();
1893
2051
  }
1894
2052
  break;
@@ -1912,15 +2070,15 @@ class CircuitScriptParser extends antlr.Parser {
1912
2070
  }
1913
2071
  create_component_expr() {
1914
2072
  let localContext = new Create_component_exprContext(this.context, this.state);
1915
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_create_component_expr);
2073
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_create_component_expr);
1916
2074
  try {
1917
2075
  this.enterOuterAlt(localContext, 1);
1918
2076
  {
1919
- this.state = 430;
2077
+ this.state = 450;
1920
2078
  this.match(CircuitScriptParser.Component);
1921
- this.state = 431;
2079
+ this.state = 451;
1922
2080
  this.match(CircuitScriptParser.Colon);
1923
- this.state = 432;
2081
+ this.state = 452;
1924
2082
  this.properties_block();
1925
2083
  }
1926
2084
  }
@@ -1940,29 +2098,29 @@ class CircuitScriptParser extends antlr.Parser {
1940
2098
  }
1941
2099
  create_graphic_expr() {
1942
2100
  let localContext = new Create_graphic_exprContext(this.context, this.state);
1943
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_create_graphic_expr);
2101
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_create_graphic_expr);
1944
2102
  let _la;
1945
2103
  try {
1946
2104
  this.enterOuterAlt(localContext, 1);
1947
2105
  {
1948
- this.state = 434;
2106
+ this.state = 454;
1949
2107
  this.match(CircuitScriptParser.Graphic);
1950
- this.state = 438;
2108
+ this.state = 458;
1951
2109
  this.errorHandler.sync(this);
1952
2110
  _la = this.tokenStream.LA(1);
1953
2111
  if (_la === 59) {
1954
2112
  {
1955
- this.state = 435;
2113
+ this.state = 455;
1956
2114
  this.match(CircuitScriptParser.LParen);
1957
- this.state = 436;
2115
+ this.state = 456;
1958
2116
  this.match(CircuitScriptParser.ID);
1959
- this.state = 437;
2117
+ this.state = 457;
1960
2118
  this.match(CircuitScriptParser.RParen);
1961
2119
  }
1962
2120
  }
1963
- this.state = 440;
2121
+ this.state = 460;
1964
2122
  this.match(CircuitScriptParser.Colon);
1965
- this.state = 441;
2123
+ this.state = 461;
1966
2124
  this.graphic_expressions_block();
1967
2125
  }
1968
2126
  }
@@ -1982,52 +2140,52 @@ class CircuitScriptParser extends antlr.Parser {
1982
2140
  }
1983
2141
  create_module_expr() {
1984
2142
  let localContext = new Create_module_exprContext(this.context, this.state);
1985
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_create_module_expr);
2143
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_create_module_expr);
1986
2144
  let _la;
1987
2145
  try {
1988
2146
  this.enterOuterAlt(localContext, 1);
1989
2147
  {
1990
- this.state = 443;
2148
+ this.state = 463;
1991
2149
  this.match(CircuitScriptParser.Module);
1992
- this.state = 444;
2150
+ this.state = 464;
1993
2151
  this.match(CircuitScriptParser.Colon);
1994
- this.state = 445;
2152
+ this.state = 465;
1995
2153
  this.match(CircuitScriptParser.NEWLINE);
1996
- this.state = 446;
2154
+ this.state = 466;
1997
2155
  this.match(CircuitScriptParser.INDENT);
1998
- this.state = 450;
2156
+ this.state = 470;
1999
2157
  this.errorHandler.sync(this);
2000
2158
  _la = this.tokenStream.LA(1);
2001
2159
  do {
2002
2160
  {
2003
- this.state = 450;
2161
+ this.state = 470;
2004
2162
  this.errorHandler.sync(this);
2005
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2163
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context)) {
2006
2164
  case 1:
2007
2165
  {
2008
- this.state = 447;
2166
+ this.state = 467;
2009
2167
  this.property_expr();
2010
2168
  }
2011
2169
  break;
2012
2170
  case 2:
2013
2171
  {
2014
- this.state = 448;
2172
+ this.state = 468;
2015
2173
  this.property_block_expr();
2016
2174
  }
2017
2175
  break;
2018
2176
  case 3:
2019
2177
  {
2020
- this.state = 449;
2178
+ this.state = 469;
2021
2179
  this.match(CircuitScriptParser.NEWLINE);
2022
2180
  }
2023
2181
  break;
2024
2182
  }
2025
2183
  }
2026
- this.state = 452;
2184
+ this.state = 472;
2027
2185
  this.errorHandler.sync(this);
2028
2186
  _la = this.tokenStream.LA(1);
2029
2187
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 12545) !== 0));
2030
- this.state = 454;
2188
+ this.state = 474;
2031
2189
  this.match(CircuitScriptParser.DEDENT);
2032
2190
  }
2033
2191
  }
@@ -2047,43 +2205,43 @@ class CircuitScriptParser extends antlr.Parser {
2047
2205
  }
2048
2206
  graphic_expr() {
2049
2207
  let localContext = new Graphic_exprContext(this.context, this.state);
2050
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_graphic_expr);
2208
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_graphic_expr);
2051
2209
  let _la;
2052
2210
  try {
2053
- this.state = 480;
2211
+ this.state = 500;
2054
2212
  this.errorHandler.sync(this);
2055
2213
  switch (this.tokenStream.LA(1)) {
2056
2214
  case CircuitScriptParser.For:
2057
2215
  localContext = new GraphicForExprContext(localContext);
2058
2216
  this.enterOuterAlt(localContext, 1);
2059
2217
  {
2060
- this.state = 456;
2218
+ this.state = 476;
2061
2219
  this.match(CircuitScriptParser.For);
2062
- this.state = 457;
2220
+ this.state = 477;
2063
2221
  this.match(CircuitScriptParser.ID);
2064
- this.state = 462;
2222
+ this.state = 482;
2065
2223
  this.errorHandler.sync(this);
2066
2224
  _la = this.tokenStream.LA(1);
2067
2225
  while (_la === 32) {
2068
2226
  {
2069
2227
  {
2070
- this.state = 458;
2228
+ this.state = 478;
2071
2229
  this.match(CircuitScriptParser.Comma);
2072
- this.state = 459;
2230
+ this.state = 479;
2073
2231
  this.match(CircuitScriptParser.ID);
2074
2232
  }
2075
2233
  }
2076
- this.state = 464;
2234
+ this.state = 484;
2077
2235
  this.errorHandler.sync(this);
2078
2236
  _la = this.tokenStream.LA(1);
2079
2237
  }
2080
- this.state = 465;
2238
+ this.state = 485;
2081
2239
  this.match(CircuitScriptParser.In);
2082
- this.state = 466;
2240
+ this.state = 486;
2083
2241
  this.data_expr(0);
2084
- this.state = 467;
2242
+ this.state = 487;
2085
2243
  this.match(CircuitScriptParser.Colon);
2086
- this.state = 468;
2244
+ this.state = 488;
2087
2245
  this.graphic_expressions_block();
2088
2246
  }
2089
2247
  break;
@@ -2092,7 +2250,7 @@ class CircuitScriptParser extends antlr.Parser {
2092
2250
  localContext = new GraphicCommandExprContext(localContext);
2093
2251
  this.enterOuterAlt(localContext, 2);
2094
2252
  {
2095
- this.state = 470;
2253
+ this.state = 490;
2096
2254
  localContext._command = this.tokenStream.LT(1);
2097
2255
  _la = this.tokenStream.LA(1);
2098
2256
  if (!(_la === 10 || _la === 69)) {
@@ -2102,30 +2260,30 @@ class CircuitScriptParser extends antlr.Parser {
2102
2260
  this.errorHandler.reportMatch(this);
2103
2261
  this.consume();
2104
2262
  }
2105
- this.state = 471;
2263
+ this.state = 491;
2106
2264
  this.match(CircuitScriptParser.Colon);
2107
- this.state = 478;
2265
+ this.state = 498;
2108
2266
  this.errorHandler.sync(this);
2109
- switch (this.interpreter.adaptivePredict(this.tokenStream, 47, this.context)) {
2267
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2110
2268
  case 1:
2111
2269
  {
2112
- this.state = 472;
2270
+ this.state = 492;
2113
2271
  this.parameters();
2114
2272
  }
2115
2273
  break;
2116
2274
  case 2:
2117
2275
  {
2118
- this.state = 473;
2276
+ this.state = 493;
2119
2277
  this.match(CircuitScriptParser.LParen);
2120
- this.state = 474;
2278
+ this.state = 494;
2121
2279
  this.parameters();
2122
- this.state = 475;
2280
+ this.state = 495;
2123
2281
  this.match(CircuitScriptParser.RParen);
2124
2282
  }
2125
2283
  break;
2126
2284
  case 3:
2127
2285
  {
2128
- this.state = 477;
2286
+ this.state = 497;
2129
2287
  this.properties_block();
2130
2288
  }
2131
2289
  break;
@@ -2152,15 +2310,15 @@ class CircuitScriptParser extends antlr.Parser {
2152
2310
  }
2153
2311
  property_expr() {
2154
2312
  let localContext = new Property_exprContext(this.context, this.state);
2155
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_property_expr);
2313
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_property_expr);
2156
2314
  try {
2157
2315
  this.enterOuterAlt(localContext, 1);
2158
2316
  {
2159
- this.state = 482;
2317
+ this.state = 502;
2160
2318
  this.property_key_expr();
2161
- this.state = 483;
2319
+ this.state = 503;
2162
2320
  this.match(CircuitScriptParser.Colon);
2163
- this.state = 484;
2321
+ this.state = 504;
2164
2322
  this.property_value_expr();
2165
2323
  }
2166
2324
  }
@@ -2180,12 +2338,12 @@ class CircuitScriptParser extends antlr.Parser {
2180
2338
  }
2181
2339
  property_key_expr() {
2182
2340
  let localContext = new Property_key_exprContext(this.context, this.state);
2183
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_property_key_expr);
2341
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_property_key_expr);
2184
2342
  let _la;
2185
2343
  try {
2186
2344
  this.enterOuterAlt(localContext, 1);
2187
2345
  {
2188
- this.state = 486;
2346
+ this.state = 506;
2189
2347
  _la = this.tokenStream.LA(1);
2190
2348
  if (!(((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 49) !== 0))) {
2191
2349
  this.errorHandler.recoverInline(this);
@@ -2212,17 +2370,17 @@ class CircuitScriptParser extends antlr.Parser {
2212
2370
  }
2213
2371
  property_value_expr() {
2214
2372
  let localContext = new Property_value_exprContext(this.context, this.state);
2215
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_property_value_expr);
2373
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_property_value_expr);
2216
2374
  let _la;
2217
2375
  try {
2218
- this.state = 497;
2376
+ this.state = 517;
2219
2377
  this.errorHandler.sync(this);
2220
2378
  switch (this.tokenStream.LA(1)) {
2221
2379
  case CircuitScriptParser.NEWLINE:
2222
2380
  localContext = new Nested_propertiesContext(localContext);
2223
2381
  this.enterOuterAlt(localContext, 1);
2224
2382
  {
2225
- this.state = 488;
2383
+ this.state = 508;
2226
2384
  this.properties_block();
2227
2385
  }
2228
2386
  break;
@@ -2243,21 +2401,21 @@ class CircuitScriptParser extends antlr.Parser {
2243
2401
  localContext = new Single_line_propertyContext(localContext);
2244
2402
  this.enterOuterAlt(localContext, 2);
2245
2403
  {
2246
- this.state = 489;
2404
+ this.state = 509;
2247
2405
  this.data_expr(0);
2248
- this.state = 494;
2406
+ this.state = 514;
2249
2407
  this.errorHandler.sync(this);
2250
2408
  _la = this.tokenStream.LA(1);
2251
2409
  while (_la === 32) {
2252
2410
  {
2253
2411
  {
2254
- this.state = 490;
2412
+ this.state = 510;
2255
2413
  this.match(CircuitScriptParser.Comma);
2256
- this.state = 491;
2414
+ this.state = 511;
2257
2415
  this.data_expr(0);
2258
2416
  }
2259
2417
  }
2260
- this.state = 496;
2418
+ this.state = 516;
2261
2419
  this.errorHandler.sync(this);
2262
2420
  _la = this.tokenStream.LA(1);
2263
2421
  }
@@ -2283,14 +2441,14 @@ class CircuitScriptParser extends antlr.Parser {
2283
2441
  }
2284
2442
  wire_expr() {
2285
2443
  let localContext = new Wire_exprContext(this.context, this.state);
2286
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_wire_expr);
2444
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_wire_expr);
2287
2445
  try {
2288
2446
  let alternative;
2289
2447
  this.enterOuterAlt(localContext, 1);
2290
2448
  {
2291
- this.state = 499;
2449
+ this.state = 519;
2292
2450
  this.match(CircuitScriptParser.Wire);
2293
- this.state = 504;
2451
+ this.state = 524;
2294
2452
  this.errorHandler.sync(this);
2295
2453
  alternative = 1;
2296
2454
  do {
@@ -2298,14 +2456,14 @@ class CircuitScriptParser extends antlr.Parser {
2298
2456
  case 1:
2299
2457
  {
2300
2458
  {
2301
- this.state = 500;
2459
+ this.state = 520;
2302
2460
  this.match(CircuitScriptParser.ID);
2303
- this.state = 502;
2461
+ this.state = 522;
2304
2462
  this.errorHandler.sync(this);
2305
- switch (this.interpreter.adaptivePredict(this.tokenStream, 51, this.context)) {
2463
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 55, this.context)) {
2306
2464
  case 1:
2307
2465
  {
2308
- this.state = 501;
2466
+ this.state = 521;
2309
2467
  this.data_expr(0);
2310
2468
  }
2311
2469
  break;
@@ -2316,9 +2474,9 @@ class CircuitScriptParser extends antlr.Parser {
2316
2474
  default:
2317
2475
  throw new antlr.NoViableAltException(this);
2318
2476
  }
2319
- this.state = 506;
2477
+ this.state = 526;
2320
2478
  this.errorHandler.sync(this);
2321
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 52, this.context);
2479
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 56, this.context);
2322
2480
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2323
2481
  }
2324
2482
  }
@@ -2338,13 +2496,13 @@ class CircuitScriptParser extends antlr.Parser {
2338
2496
  }
2339
2497
  point_expr() {
2340
2498
  let localContext = new Point_exprContext(this.context, this.state);
2341
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_point_expr);
2499
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_point_expr);
2342
2500
  try {
2343
2501
  this.enterOuterAlt(localContext, 1);
2344
2502
  {
2345
- this.state = 508;
2503
+ this.state = 528;
2346
2504
  this.match(CircuitScriptParser.Point);
2347
- this.state = 509;
2505
+ this.state = 529;
2348
2506
  this.data_expr(0);
2349
2507
  }
2350
2508
  }
@@ -2364,26 +2522,26 @@ class CircuitScriptParser extends antlr.Parser {
2364
2522
  }
2365
2523
  import_expr() {
2366
2524
  let localContext = new Import_exprContext(this.context, this.state);
2367
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_import_expr);
2525
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_import_expr);
2368
2526
  let _la;
2369
2527
  try {
2370
- this.state = 533;
2528
+ this.state = 553;
2371
2529
  this.errorHandler.sync(this);
2372
2530
  switch (this.tokenStream.LA(1)) {
2373
2531
  case CircuitScriptParser.Import:
2374
2532
  localContext = new Import_simpleContext(localContext);
2375
2533
  this.enterOuterAlt(localContext, 1);
2376
2534
  {
2377
- this.state = 511;
2535
+ this.state = 531;
2378
2536
  this.match(CircuitScriptParser.Import);
2379
- this.state = 512;
2537
+ this.state = 532;
2380
2538
  localContext._libraryName = this.match(CircuitScriptParser.STRING_VALUE);
2381
- this.state = 514;
2539
+ this.state = 534;
2382
2540
  this.errorHandler.sync(this);
2383
- switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2541
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 57, this.context)) {
2384
2542
  case 1:
2385
2543
  {
2386
- this.state = 513;
2544
+ this.state = 533;
2387
2545
  this.annotation_comment_expr();
2388
2546
  }
2389
2547
  break;
@@ -2394,41 +2552,41 @@ class CircuitScriptParser extends antlr.Parser {
2394
2552
  localContext = new Import_specific_or_allContext(localContext);
2395
2553
  this.enterOuterAlt(localContext, 2);
2396
2554
  {
2397
- this.state = 516;
2555
+ this.state = 536;
2398
2556
  this.match(CircuitScriptParser.From);
2399
- this.state = 517;
2557
+ this.state = 537;
2400
2558
  localContext._libraryName = this.match(CircuitScriptParser.STRING_VALUE);
2401
- this.state = 518;
2559
+ this.state = 538;
2402
2560
  this.match(CircuitScriptParser.Import);
2403
- this.state = 528;
2561
+ this.state = 548;
2404
2562
  this.errorHandler.sync(this);
2405
2563
  switch (this.tokenStream.LA(1)) {
2406
2564
  case CircuitScriptParser.Multiply:
2407
2565
  {
2408
- this.state = 519;
2566
+ this.state = 539;
2409
2567
  localContext._all = this.match(CircuitScriptParser.Multiply);
2410
2568
  }
2411
2569
  break;
2412
2570
  case CircuitScriptParser.ID:
2413
2571
  {
2414
2572
  {
2415
- this.state = 520;
2573
+ this.state = 540;
2416
2574
  localContext._ID = this.match(CircuitScriptParser.ID);
2417
2575
  localContext._funcNames.push(localContext._ID);
2418
- this.state = 525;
2576
+ this.state = 545;
2419
2577
  this.errorHandler.sync(this);
2420
2578
  _la = this.tokenStream.LA(1);
2421
2579
  while (_la === 32) {
2422
2580
  {
2423
2581
  {
2424
- this.state = 521;
2582
+ this.state = 541;
2425
2583
  this.match(CircuitScriptParser.Comma);
2426
- this.state = 522;
2584
+ this.state = 542;
2427
2585
  localContext._ID = this.match(CircuitScriptParser.ID);
2428
2586
  localContext._funcNames.push(localContext._ID);
2429
2587
  }
2430
2588
  }
2431
- this.state = 527;
2589
+ this.state = 547;
2432
2590
  this.errorHandler.sync(this);
2433
2591
  _la = this.tokenStream.LA(1);
2434
2592
  }
@@ -2438,12 +2596,12 @@ class CircuitScriptParser extends antlr.Parser {
2438
2596
  default:
2439
2597
  throw new antlr.NoViableAltException(this);
2440
2598
  }
2441
- this.state = 531;
2599
+ this.state = 551;
2442
2600
  this.errorHandler.sync(this);
2443
- switch (this.interpreter.adaptivePredict(this.tokenStream, 56, this.context)) {
2601
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context)) {
2444
2602
  case 1:
2445
2603
  {
2446
- this.state = 530;
2604
+ this.state = 550;
2447
2605
  this.annotation_comment_expr();
2448
2606
  }
2449
2607
  break;
@@ -2470,12 +2628,12 @@ class CircuitScriptParser extends antlr.Parser {
2470
2628
  }
2471
2629
  frame_expr() {
2472
2630
  let localContext = new Frame_exprContext(this.context, this.state);
2473
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_frame_expr);
2631
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_frame_expr);
2474
2632
  let _la;
2475
2633
  try {
2476
2634
  this.enterOuterAlt(localContext, 1);
2477
2635
  {
2478
- this.state = 535;
2636
+ this.state = 555;
2479
2637
  _la = this.tokenStream.LA(1);
2480
2638
  if (!(_la === 28 || _la === 29)) {
2481
2639
  this.errorHandler.recoverInline(this);
@@ -2484,10 +2642,18 @@ class CircuitScriptParser extends antlr.Parser {
2484
2642
  this.errorHandler.reportMatch(this);
2485
2643
  this.consume();
2486
2644
  }
2487
- this.state = 536;
2645
+ this.state = 556;
2488
2646
  this.match(CircuitScriptParser.Colon);
2489
- this.state = 537;
2490
- this.expressions_block();
2647
+ this.state = 558;
2648
+ this.errorHandler.sync(this);
2649
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 62, this.context)) {
2650
+ case 1:
2651
+ {
2652
+ this.state = 557;
2653
+ this.expressions_block();
2654
+ }
2655
+ break;
2656
+ }
2491
2657
  }
2492
2658
  }
2493
2659
  catch (re) {
@@ -2506,42 +2672,42 @@ class CircuitScriptParser extends antlr.Parser {
2506
2672
  }
2507
2673
  if_expr() {
2508
2674
  let localContext = new If_exprContext(this.context, this.state);
2509
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_if_expr);
2675
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_if_expr);
2510
2676
  let _la;
2511
2677
  try {
2512
2678
  let alternative;
2513
2679
  this.enterOuterAlt(localContext, 1);
2514
2680
  {
2515
- this.state = 539;
2681
+ this.state = 560;
2516
2682
  this.match(CircuitScriptParser.If);
2517
- this.state = 540;
2683
+ this.state = 561;
2518
2684
  this.data_expr(0);
2519
- this.state = 541;
2685
+ this.state = 562;
2520
2686
  this.match(CircuitScriptParser.Colon);
2521
- this.state = 542;
2687
+ this.state = 563;
2522
2688
  this.expressions_block();
2523
- this.state = 546;
2689
+ this.state = 567;
2524
2690
  this.errorHandler.sync(this);
2525
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 58, this.context);
2691
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2526
2692
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2527
2693
  if (alternative === 1) {
2528
2694
  {
2529
2695
  {
2530
- this.state = 543;
2696
+ this.state = 564;
2531
2697
  this.if_inner_expr();
2532
2698
  }
2533
2699
  }
2534
2700
  }
2535
- this.state = 548;
2701
+ this.state = 569;
2536
2702
  this.errorHandler.sync(this);
2537
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 58, this.context);
2703
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 63, this.context);
2538
2704
  }
2539
- this.state = 550;
2705
+ this.state = 571;
2540
2706
  this.errorHandler.sync(this);
2541
2707
  _la = this.tokenStream.LA(1);
2542
2708
  if (_la === 26) {
2543
2709
  {
2544
- this.state = 549;
2710
+ this.state = 570;
2545
2711
  this.else_expr();
2546
2712
  }
2547
2713
  }
@@ -2563,19 +2729,19 @@ class CircuitScriptParser extends antlr.Parser {
2563
2729
  }
2564
2730
  if_inner_expr() {
2565
2731
  let localContext = new If_inner_exprContext(this.context, this.state);
2566
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_if_inner_expr);
2732
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_if_inner_expr);
2567
2733
  try {
2568
2734
  this.enterOuterAlt(localContext, 1);
2569
2735
  {
2570
- this.state = 552;
2736
+ this.state = 573;
2571
2737
  this.match(CircuitScriptParser.Else);
2572
- this.state = 553;
2738
+ this.state = 574;
2573
2739
  this.match(CircuitScriptParser.If);
2574
- this.state = 554;
2740
+ this.state = 575;
2575
2741
  this.data_expr(0);
2576
- this.state = 555;
2742
+ this.state = 576;
2577
2743
  this.match(CircuitScriptParser.Colon);
2578
- this.state = 556;
2744
+ this.state = 577;
2579
2745
  this.expressions_block();
2580
2746
  }
2581
2747
  }
@@ -2595,15 +2761,15 @@ class CircuitScriptParser extends antlr.Parser {
2595
2761
  }
2596
2762
  else_expr() {
2597
2763
  let localContext = new Else_exprContext(this.context, this.state);
2598
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_else_expr);
2764
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_else_expr);
2599
2765
  try {
2600
2766
  this.enterOuterAlt(localContext, 1);
2601
2767
  {
2602
- this.state = 558;
2768
+ this.state = 579;
2603
2769
  this.match(CircuitScriptParser.Else);
2604
- this.state = 559;
2770
+ this.state = 580;
2605
2771
  this.match(CircuitScriptParser.Colon);
2606
- this.state = 560;
2772
+ this.state = 581;
2607
2773
  this.expressions_block();
2608
2774
  }
2609
2775
  }
@@ -2623,17 +2789,17 @@ class CircuitScriptParser extends antlr.Parser {
2623
2789
  }
2624
2790
  while_expr() {
2625
2791
  let localContext = new While_exprContext(this.context, this.state);
2626
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_while_expr);
2792
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_while_expr);
2627
2793
  try {
2628
2794
  this.enterOuterAlt(localContext, 1);
2629
2795
  {
2630
- this.state = 562;
2796
+ this.state = 583;
2631
2797
  this.match(CircuitScriptParser.While);
2632
- this.state = 563;
2798
+ this.state = 584;
2633
2799
  this.data_expr(0);
2634
- this.state = 564;
2800
+ this.state = 585;
2635
2801
  this.match(CircuitScriptParser.Colon);
2636
- this.state = 565;
2802
+ this.state = 586;
2637
2803
  this.expressions_block();
2638
2804
  }
2639
2805
  }
@@ -2653,38 +2819,38 @@ class CircuitScriptParser extends antlr.Parser {
2653
2819
  }
2654
2820
  for_expr() {
2655
2821
  let localContext = new For_exprContext(this.context, this.state);
2656
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_for_expr);
2822
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_for_expr);
2657
2823
  let _la;
2658
2824
  try {
2659
2825
  this.enterOuterAlt(localContext, 1);
2660
2826
  {
2661
- this.state = 567;
2827
+ this.state = 588;
2662
2828
  this.match(CircuitScriptParser.For);
2663
- this.state = 568;
2829
+ this.state = 589;
2664
2830
  this.match(CircuitScriptParser.ID);
2665
- this.state = 573;
2831
+ this.state = 594;
2666
2832
  this.errorHandler.sync(this);
2667
2833
  _la = this.tokenStream.LA(1);
2668
2834
  while (_la === 32) {
2669
2835
  {
2670
2836
  {
2671
- this.state = 569;
2837
+ this.state = 590;
2672
2838
  this.match(CircuitScriptParser.Comma);
2673
- this.state = 570;
2839
+ this.state = 591;
2674
2840
  this.match(CircuitScriptParser.ID);
2675
2841
  }
2676
2842
  }
2677
- this.state = 575;
2843
+ this.state = 596;
2678
2844
  this.errorHandler.sync(this);
2679
2845
  _la = this.tokenStream.LA(1);
2680
2846
  }
2681
- this.state = 576;
2847
+ this.state = 597;
2682
2848
  this.match(CircuitScriptParser.In);
2683
- this.state = 577;
2849
+ this.state = 598;
2684
2850
  this.data_expr(0);
2685
- this.state = 578;
2851
+ this.state = 599;
2686
2852
  this.match(CircuitScriptParser.Colon);
2687
- this.state = 579;
2853
+ this.state = 600;
2688
2854
  this.expressions_block();
2689
2855
  }
2690
2856
  }
@@ -2704,36 +2870,36 @@ class CircuitScriptParser extends antlr.Parser {
2704
2870
  }
2705
2871
  part_set_expr() {
2706
2872
  let localContext = new Part_set_exprContext(this.context, this.state);
2707
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_part_set_expr);
2873
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_part_set_expr);
2708
2874
  let _la;
2709
2875
  try {
2710
2876
  this.enterOuterAlt(localContext, 1);
2711
2877
  {
2712
- this.state = 581;
2878
+ this.state = 602;
2713
2879
  this.match(CircuitScriptParser.Set);
2714
- this.state = 582;
2880
+ this.state = 603;
2715
2881
  this.match(CircuitScriptParser.Colon);
2716
- this.state = 583;
2882
+ this.state = 604;
2717
2883
  this.data_expr(0);
2718
- this.state = 588;
2884
+ this.state = 609;
2719
2885
  this.errorHandler.sync(this);
2720
2886
  _la = this.tokenStream.LA(1);
2721
2887
  while (_la === 32) {
2722
2888
  {
2723
2889
  {
2724
- this.state = 584;
2890
+ this.state = 605;
2725
2891
  this.match(CircuitScriptParser.Comma);
2726
- this.state = 585;
2892
+ this.state = 606;
2727
2893
  this.data_expr(0);
2728
2894
  }
2729
2895
  }
2730
- this.state = 590;
2896
+ this.state = 611;
2731
2897
  this.errorHandler.sync(this);
2732
2898
  _la = this.tokenStream.LA(1);
2733
2899
  }
2734
- this.state = 591;
2900
+ this.state = 612;
2735
2901
  this.match(CircuitScriptParser.Colon);
2736
- this.state = 592;
2902
+ this.state = 613;
2737
2903
  this.part_match_block();
2738
2904
  }
2739
2905
  }
@@ -2753,12 +2919,12 @@ class CircuitScriptParser extends antlr.Parser {
2753
2919
  }
2754
2920
  part_set_key() {
2755
2921
  let localContext = new Part_set_keyContext(this.context, this.state);
2756
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_part_set_key);
2922
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_part_set_key);
2757
2923
  let _la;
2758
2924
  try {
2759
2925
  this.enterOuterAlt(localContext, 1);
2760
2926
  {
2761
- this.state = 594;
2927
+ this.state = 615;
2762
2928
  _la = this.tokenStream.LA(1);
2763
2929
  if (!(((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 61) !== 0))) {
2764
2930
  this.errorHandler.recoverInline(this);
@@ -2785,30 +2951,30 @@ class CircuitScriptParser extends antlr.Parser {
2785
2951
  }
2786
2952
  part_match_block() {
2787
2953
  let localContext = new Part_match_blockContext(this.context, this.state);
2788
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_part_match_block);
2954
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_part_match_block);
2789
2955
  let _la;
2790
2956
  try {
2791
2957
  this.enterOuterAlt(localContext, 1);
2792
2958
  {
2793
- this.state = 596;
2959
+ this.state = 617;
2794
2960
  this.match(CircuitScriptParser.NEWLINE);
2795
- this.state = 597;
2961
+ this.state = 618;
2796
2962
  this.match(CircuitScriptParser.INDENT);
2797
- this.state = 599;
2963
+ this.state = 620;
2798
2964
  this.errorHandler.sync(this);
2799
2965
  _la = this.tokenStream.LA(1);
2800
2966
  do {
2801
2967
  {
2802
2968
  {
2803
- this.state = 598;
2969
+ this.state = 619;
2804
2970
  this.part_sub_expr();
2805
2971
  }
2806
2972
  }
2807
- this.state = 601;
2973
+ this.state = 622;
2808
2974
  this.errorHandler.sync(this);
2809
2975
  _la = this.tokenStream.LA(1);
2810
2976
  } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 15617) !== 0));
2811
- this.state = 603;
2977
+ this.state = 624;
2812
2978
  this.match(CircuitScriptParser.DEDENT);
2813
2979
  }
2814
2980
  }
@@ -2828,29 +2994,29 @@ class CircuitScriptParser extends antlr.Parser {
2828
2994
  }
2829
2995
  part_sub_expr() {
2830
2996
  let localContext = new Part_sub_exprContext(this.context, this.state);
2831
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_part_sub_expr);
2997
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_part_sub_expr);
2832
2998
  try {
2833
- this.state = 608;
2999
+ this.state = 629;
2834
3000
  this.errorHandler.sync(this);
2835
- switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
3001
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
2836
3002
  case 1:
2837
3003
  this.enterOuterAlt(localContext, 1);
2838
3004
  {
2839
- this.state = 605;
3005
+ this.state = 626;
2840
3006
  this.part_condition_expr();
2841
3007
  }
2842
3008
  break;
2843
3009
  case 2:
2844
3010
  this.enterOuterAlt(localContext, 2);
2845
3011
  {
2846
- this.state = 606;
3012
+ this.state = 627;
2847
3013
  this.part_value_expr();
2848
3014
  }
2849
3015
  break;
2850
3016
  case 3:
2851
3017
  this.enterOuterAlt(localContext, 3);
2852
3018
  {
2853
- this.state = 607;
3019
+ this.state = 628;
2854
3020
  this.match(CircuitScriptParser.NEWLINE);
2855
3021
  }
2856
3022
  break;
@@ -2872,68 +3038,68 @@ class CircuitScriptParser extends antlr.Parser {
2872
3038
  }
2873
3039
  part_condition_expr() {
2874
3040
  let localContext = new Part_condition_exprContext(this.context, this.state);
2875
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_part_condition_expr);
3041
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_part_condition_expr);
2876
3042
  let _la;
2877
3043
  try {
2878
3044
  let alternative;
2879
3045
  this.enterOuterAlt(localContext, 1);
2880
3046
  {
2881
- this.state = 610;
3047
+ this.state = 631;
2882
3048
  localContext._part_set_key = this.part_set_key();
2883
3049
  localContext._key_id.push(localContext._part_set_key);
2884
- this.state = 611;
3050
+ this.state = 632;
2885
3051
  this.match(CircuitScriptParser.Colon);
2886
- this.state = 612;
3052
+ this.state = 633;
2887
3053
  localContext._data_expr = this.data_expr(0);
2888
3054
  localContext._values.push(localContext._data_expr);
2889
- this.state = 620;
3055
+ this.state = 641;
2890
3056
  this.errorHandler.sync(this);
2891
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3057
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
2892
3058
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2893
3059
  if (alternative === 1) {
2894
3060
  {
2895
3061
  {
2896
- this.state = 613;
3062
+ this.state = 634;
2897
3063
  this.match(CircuitScriptParser.Comma);
2898
- this.state = 614;
3064
+ this.state = 635;
2899
3065
  localContext._part_set_key = this.part_set_key();
2900
3066
  localContext._key_id.push(localContext._part_set_key);
2901
- this.state = 615;
3067
+ this.state = 636;
2902
3068
  this.match(CircuitScriptParser.Colon);
2903
- this.state = 616;
3069
+ this.state = 637;
2904
3070
  localContext._data_expr = this.data_expr(0);
2905
3071
  localContext._values.push(localContext._data_expr);
2906
3072
  }
2907
3073
  }
2908
3074
  }
2909
- this.state = 622;
3075
+ this.state = 643;
2910
3076
  this.errorHandler.sync(this);
2911
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 64, this.context);
3077
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 69, this.context);
2912
3078
  }
2913
- this.state = 627;
3079
+ this.state = 648;
2914
3080
  this.errorHandler.sync(this);
2915
3081
  _la = this.tokenStream.LA(1);
2916
3082
  while (_la === 32) {
2917
3083
  {
2918
3084
  {
2919
- this.state = 623;
3085
+ this.state = 644;
2920
3086
  this.match(CircuitScriptParser.Comma);
2921
- this.state = 624;
3087
+ this.state = 645;
2922
3088
  localContext._id_only = this.part_set_key();
2923
3089
  }
2924
3090
  }
2925
- this.state = 629;
3091
+ this.state = 650;
2926
3092
  this.errorHandler.sync(this);
2927
3093
  _la = this.tokenStream.LA(1);
2928
3094
  }
2929
- this.state = 630;
3095
+ this.state = 651;
2930
3096
  this.match(CircuitScriptParser.Colon);
2931
- this.state = 640;
3097
+ this.state = 661;
2932
3098
  this.errorHandler.sync(this);
2933
3099
  switch (this.tokenStream.LA(1)) {
2934
3100
  case CircuitScriptParser.NEWLINE:
2935
3101
  {
2936
- this.state = 631;
3102
+ this.state = 652;
2937
3103
  this.part_match_block();
2938
3104
  }
2939
3105
  break;
@@ -2953,23 +3119,23 @@ class CircuitScriptParser extends antlr.Parser {
2953
3119
  case CircuitScriptParser.ID:
2954
3120
  {
2955
3121
  {
2956
- this.state = 632;
3122
+ this.state = 653;
2957
3123
  localContext._data_expr = this.data_expr(0);
2958
3124
  localContext._last_data.push(localContext._data_expr);
2959
- this.state = 637;
3125
+ this.state = 658;
2960
3126
  this.errorHandler.sync(this);
2961
3127
  _la = this.tokenStream.LA(1);
2962
3128
  while (_la === 32) {
2963
3129
  {
2964
3130
  {
2965
- this.state = 633;
3131
+ this.state = 654;
2966
3132
  this.match(CircuitScriptParser.Comma);
2967
- this.state = 634;
3133
+ this.state = 655;
2968
3134
  localContext._data_expr = this.data_expr(0);
2969
3135
  localContext._last_data.push(localContext._data_expr);
2970
3136
  }
2971
3137
  }
2972
- this.state = 639;
3138
+ this.state = 660;
2973
3139
  this.errorHandler.sync(this);
2974
3140
  _la = this.tokenStream.LA(1);
2975
3141
  }
@@ -2997,21 +3163,21 @@ class CircuitScriptParser extends antlr.Parser {
2997
3163
  }
2998
3164
  part_value_expr() {
2999
3165
  let localContext = new Part_value_exprContext(this.context, this.state);
3000
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_part_value_expr);
3166
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_part_value_expr);
3001
3167
  let _la;
3002
3168
  try {
3003
3169
  this.enterOuterAlt(localContext, 1);
3004
3170
  {
3005
- this.state = 642;
3171
+ this.state = 663;
3006
3172
  this.part_set_key();
3007
- this.state = 643;
3173
+ this.state = 664;
3008
3174
  this.match(CircuitScriptParser.Colon);
3009
- this.state = 653;
3175
+ this.state = 674;
3010
3176
  this.errorHandler.sync(this);
3011
3177
  switch (this.tokenStream.LA(1)) {
3012
3178
  case CircuitScriptParser.NEWLINE:
3013
3179
  {
3014
- this.state = 644;
3180
+ this.state = 665;
3015
3181
  this.part_match_block();
3016
3182
  }
3017
3183
  break;
@@ -3030,21 +3196,21 @@ class CircuitScriptParser extends antlr.Parser {
3030
3196
  case CircuitScriptParser.STRING_VALUE:
3031
3197
  case CircuitScriptParser.ID:
3032
3198
  {
3033
- this.state = 645;
3199
+ this.state = 666;
3034
3200
  this.data_expr(0);
3035
- this.state = 650;
3201
+ this.state = 671;
3036
3202
  this.errorHandler.sync(this);
3037
3203
  _la = this.tokenStream.LA(1);
3038
3204
  while (_la === 32) {
3039
3205
  {
3040
3206
  {
3041
- this.state = 646;
3207
+ this.state = 667;
3042
3208
  this.match(CircuitScriptParser.Comma);
3043
- this.state = 647;
3209
+ this.state = 668;
3044
3210
  this.data_expr(0);
3045
3211
  }
3046
3212
  }
3047
- this.state = 652;
3213
+ this.state = 673;
3048
3214
  this.errorHandler.sync(this);
3049
3215
  _la = this.tokenStream.LA(1);
3050
3216
  }
@@ -3071,22 +3237,22 @@ class CircuitScriptParser extends antlr.Parser {
3071
3237
  }
3072
3238
  annotation_comment_expr() {
3073
3239
  let localContext = new Annotation_comment_exprContext(this.context, this.state);
3074
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_annotation_comment_expr);
3240
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_annotation_comment_expr);
3075
3241
  let _la;
3076
3242
  try {
3077
3243
  let alternative;
3078
3244
  this.enterOuterAlt(localContext, 1);
3079
3245
  {
3080
- this.state = 655;
3246
+ this.state = 676;
3081
3247
  this.match(CircuitScriptParser.ANNOTATION_START);
3082
- this.state = 659;
3248
+ this.state = 680;
3083
3249
  this.errorHandler.sync(this);
3084
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3250
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3085
3251
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3086
3252
  if (alternative === 1) {
3087
3253
  {
3088
3254
  {
3089
- this.state = 656;
3255
+ this.state = 677;
3090
3256
  _la = this.tokenStream.LA(1);
3091
3257
  if (!(_la === 47 || _la === 69)) {
3092
3258
  this.errorHandler.recoverInline(this);
@@ -3098,9 +3264,9 @@ class CircuitScriptParser extends antlr.Parser {
3098
3264
  }
3099
3265
  }
3100
3266
  }
3101
- this.state = 661;
3267
+ this.state = 682;
3102
3268
  this.errorHandler.sync(this);
3103
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3269
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3104
3270
  }
3105
3271
  }
3106
3272
  }
@@ -3120,7 +3286,7 @@ class CircuitScriptParser extends antlr.Parser {
3120
3286
  }
3121
3287
  sempred(localContext, ruleIndex, predIndex) {
3122
3288
  switch (ruleIndex) {
3123
- case 21:
3289
+ case 23:
3124
3290
  return this.data_expr_sempred(localContext, predIndex);
3125
3291
  }
3126
3292
  return true;
@@ -3220,61 +3386,63 @@ CircuitScriptParser.STRING_VALUE = 68;
3220
3386
  CircuitScriptParser.ID = 69;
3221
3387
  CircuitScriptParser.RULE_script = 0;
3222
3388
  CircuitScriptParser.RULE_expression = 1;
3223
- CircuitScriptParser.RULE_flow_expressions = 2;
3224
- CircuitScriptParser.RULE_graph_expressions = 3;
3225
- CircuitScriptParser.RULE_expressions_block = 4;
3226
- CircuitScriptParser.RULE_path_block = 5;
3227
- CircuitScriptParser.RULE_pin_select_expr = 6;
3228
- CircuitScriptParser.RULE_component_modifier_expr = 7;
3229
- CircuitScriptParser.RULE_data_expr_with_assignment = 8;
3230
- CircuitScriptParser.RULE_assignment_expr = 9;
3231
- CircuitScriptParser.RULE_add_component_expr = 10;
3232
- CircuitScriptParser.RULE_component_select_expr = 11;
3233
- CircuitScriptParser.RULE_at_component_expr = 12;
3234
- CircuitScriptParser.RULE_to_component_expr = 13;
3235
- CircuitScriptParser.RULE_at_block_header = 14;
3236
- CircuitScriptParser.RULE_at_block = 15;
3237
- CircuitScriptParser.RULE_at_block_expressions = 16;
3238
- CircuitScriptParser.RULE_at_block_pin_expr = 17;
3239
- CircuitScriptParser.RULE_keyword_assignment_expr = 18;
3240
- CircuitScriptParser.RULE_parameters = 19;
3241
- CircuitScriptParser.RULE_double_dot_property_set_expr = 20;
3242
- CircuitScriptParser.RULE_data_expr = 21;
3243
- CircuitScriptParser.RULE_value_expr = 22;
3244
- CircuitScriptParser.RULE_function_def_expr = 23;
3245
- CircuitScriptParser.RULE_function_expr = 24;
3246
- CircuitScriptParser.RULE_function_args_expr = 25;
3247
- CircuitScriptParser.RULE_function_return_expr = 26;
3248
- CircuitScriptParser.RULE_net_namespace_expr = 27;
3249
- CircuitScriptParser.RULE_callable_expr = 28;
3250
- CircuitScriptParser.RULE_trailer = 29;
3251
- CircuitScriptParser.RULE_property_block_expr = 30;
3252
- CircuitScriptParser.RULE_properties_block = 31;
3253
- CircuitScriptParser.RULE_graphic_expressions_block = 32;
3254
- CircuitScriptParser.RULE_create_expr = 33;
3255
- CircuitScriptParser.RULE_create_component_expr = 34;
3256
- CircuitScriptParser.RULE_create_graphic_expr = 35;
3257
- CircuitScriptParser.RULE_create_module_expr = 36;
3258
- CircuitScriptParser.RULE_graphic_expr = 37;
3259
- CircuitScriptParser.RULE_property_expr = 38;
3260
- CircuitScriptParser.RULE_property_key_expr = 39;
3261
- CircuitScriptParser.RULE_property_value_expr = 40;
3262
- CircuitScriptParser.RULE_wire_expr = 41;
3263
- CircuitScriptParser.RULE_point_expr = 42;
3264
- CircuitScriptParser.RULE_import_expr = 43;
3265
- CircuitScriptParser.RULE_frame_expr = 44;
3266
- CircuitScriptParser.RULE_if_expr = 45;
3267
- CircuitScriptParser.RULE_if_inner_expr = 46;
3268
- CircuitScriptParser.RULE_else_expr = 47;
3269
- CircuitScriptParser.RULE_while_expr = 48;
3270
- CircuitScriptParser.RULE_for_expr = 49;
3271
- CircuitScriptParser.RULE_part_set_expr = 50;
3272
- CircuitScriptParser.RULE_part_set_key = 51;
3273
- CircuitScriptParser.RULE_part_match_block = 52;
3274
- CircuitScriptParser.RULE_part_sub_expr = 53;
3275
- CircuitScriptParser.RULE_part_condition_expr = 54;
3276
- CircuitScriptParser.RULE_part_value_expr = 55;
3277
- CircuitScriptParser.RULE_annotation_comment_expr = 56;
3389
+ CircuitScriptParser.RULE_non_newline_expression = 2;
3390
+ CircuitScriptParser.RULE_flow_expressions = 3;
3391
+ CircuitScriptParser.RULE_graph_expressions = 4;
3392
+ CircuitScriptParser.RULE_expressions_block = 5;
3393
+ CircuitScriptParser.RULE_path_block = 6;
3394
+ CircuitScriptParser.RULE_pin_select_expr = 7;
3395
+ CircuitScriptParser.RULE_component_modifier_expr = 8;
3396
+ CircuitScriptParser.RULE_data_expr_with_assignment = 9;
3397
+ CircuitScriptParser.RULE_assignment_expr = 10;
3398
+ CircuitScriptParser.RULE_add_component_expr = 11;
3399
+ CircuitScriptParser.RULE_component_select_expr = 12;
3400
+ CircuitScriptParser.RULE_at_component_expr = 13;
3401
+ CircuitScriptParser.RULE_to_component_expr = 14;
3402
+ CircuitScriptParser.RULE_at_block_header = 15;
3403
+ CircuitScriptParser.RULE_at_block = 16;
3404
+ CircuitScriptParser.RULE_at_block_expressions = 17;
3405
+ CircuitScriptParser.RULE_at_block_expressions_inner = 18;
3406
+ CircuitScriptParser.RULE_at_block_pin_expr = 19;
3407
+ CircuitScriptParser.RULE_keyword_assignment_expr = 20;
3408
+ CircuitScriptParser.RULE_parameters = 21;
3409
+ CircuitScriptParser.RULE_double_dot_property_set_expr = 22;
3410
+ CircuitScriptParser.RULE_data_expr = 23;
3411
+ CircuitScriptParser.RULE_value_expr = 24;
3412
+ CircuitScriptParser.RULE_function_def_expr = 25;
3413
+ CircuitScriptParser.RULE_function_expr = 26;
3414
+ CircuitScriptParser.RULE_function_args_expr = 27;
3415
+ CircuitScriptParser.RULE_function_return_expr = 28;
3416
+ CircuitScriptParser.RULE_net_namespace_expr = 29;
3417
+ CircuitScriptParser.RULE_callable_expr = 30;
3418
+ CircuitScriptParser.RULE_trailer = 31;
3419
+ CircuitScriptParser.RULE_property_block_expr = 32;
3420
+ CircuitScriptParser.RULE_properties_block = 33;
3421
+ CircuitScriptParser.RULE_graphic_expressions_block = 34;
3422
+ CircuitScriptParser.RULE_create_expr = 35;
3423
+ CircuitScriptParser.RULE_create_component_expr = 36;
3424
+ CircuitScriptParser.RULE_create_graphic_expr = 37;
3425
+ CircuitScriptParser.RULE_create_module_expr = 38;
3426
+ CircuitScriptParser.RULE_graphic_expr = 39;
3427
+ CircuitScriptParser.RULE_property_expr = 40;
3428
+ CircuitScriptParser.RULE_property_key_expr = 41;
3429
+ CircuitScriptParser.RULE_property_value_expr = 42;
3430
+ CircuitScriptParser.RULE_wire_expr = 43;
3431
+ CircuitScriptParser.RULE_point_expr = 44;
3432
+ CircuitScriptParser.RULE_import_expr = 45;
3433
+ CircuitScriptParser.RULE_frame_expr = 46;
3434
+ CircuitScriptParser.RULE_if_expr = 47;
3435
+ CircuitScriptParser.RULE_if_inner_expr = 48;
3436
+ CircuitScriptParser.RULE_else_expr = 49;
3437
+ CircuitScriptParser.RULE_while_expr = 50;
3438
+ CircuitScriptParser.RULE_for_expr = 51;
3439
+ CircuitScriptParser.RULE_part_set_expr = 52;
3440
+ CircuitScriptParser.RULE_part_set_key = 53;
3441
+ CircuitScriptParser.RULE_part_match_block = 54;
3442
+ CircuitScriptParser.RULE_part_sub_expr = 55;
3443
+ CircuitScriptParser.RULE_part_condition_expr = 56;
3444
+ CircuitScriptParser.RULE_part_value_expr = 57;
3445
+ CircuitScriptParser.RULE_annotation_comment_expr = 58;
3278
3446
  CircuitScriptParser.literalNames = [
3279
3447
  null, null, null, "'break'", "'branch'", "'create'", "'component'",
3280
3448
  "'graphic'", "'module'", "'wire'", "'pin'", "'add'", "'at'", "'to'",
@@ -3300,24 +3468,25 @@ CircuitScriptParser.symbolicNames = [
3300
3468
  "PERCENTAGE_VALUE", "STRING_VALUE", "ID"
3301
3469
  ];
3302
3470
  CircuitScriptParser.ruleNames = [
3303
- "script", "expression", "flow_expressions", "graph_expressions",
3304
- "expressions_block", "path_block", "pin_select_expr", "component_modifier_expr",
3305
- "data_expr_with_assignment", "assignment_expr", "add_component_expr",
3306
- "component_select_expr", "at_component_expr", "to_component_expr",
3307
- "at_block_header", "at_block", "at_block_expressions", "at_block_pin_expr",
3308
- "keyword_assignment_expr", "parameters", "double_dot_property_set_expr",
3309
- "data_expr", "value_expr", "function_def_expr", "function_expr",
3310
- "function_args_expr", "function_return_expr", "net_namespace_expr",
3311
- "callable_expr", "trailer", "property_block_expr", "properties_block",
3312
- "graphic_expressions_block", "create_expr", "create_component_expr",
3313
- "create_graphic_expr", "create_module_expr", "graphic_expr", "property_expr",
3314
- "property_key_expr", "property_value_expr", "wire_expr", "point_expr",
3315
- "import_expr", "frame_expr", "if_expr", "if_inner_expr", "else_expr",
3316
- "while_expr", "for_expr", "part_set_expr", "part_set_key", "part_match_block",
3317
- "part_sub_expr", "part_condition_expr", "part_value_expr", "annotation_comment_expr",
3471
+ "script", "expression", "non_newline_expression", "flow_expressions",
3472
+ "graph_expressions", "expressions_block", "path_block", "pin_select_expr",
3473
+ "component_modifier_expr", "data_expr_with_assignment", "assignment_expr",
3474
+ "add_component_expr", "component_select_expr", "at_component_expr",
3475
+ "to_component_expr", "at_block_header", "at_block", "at_block_expressions",
3476
+ "at_block_expressions_inner", "at_block_pin_expr", "keyword_assignment_expr",
3477
+ "parameters", "double_dot_property_set_expr", "data_expr", "value_expr",
3478
+ "function_def_expr", "function_expr", "function_args_expr", "function_return_expr",
3479
+ "net_namespace_expr", "callable_expr", "trailer", "property_block_expr",
3480
+ "properties_block", "graphic_expressions_block", "create_expr",
3481
+ "create_component_expr", "create_graphic_expr", "create_module_expr",
3482
+ "graphic_expr", "property_expr", "property_key_expr", "property_value_expr",
3483
+ "wire_expr", "point_expr", "import_expr", "frame_expr", "if_expr",
3484
+ "if_inner_expr", "else_expr", "while_expr", "for_expr", "part_set_expr",
3485
+ "part_set_key", "part_match_block", "part_sub_expr", "part_condition_expr",
3486
+ "part_value_expr", "annotation_comment_expr",
3318
3487
  ];
3319
3488
  CircuitScriptParser._serializedATN = [
3320
- 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,
3489
+ 4, 1, 69, 684, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
3321
3490
  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,
3322
3491
  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,
3323
3492
  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,
@@ -3325,243 +3494,252 @@ CircuitScriptParser._serializedATN = [
3325
3494
  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,
3326
3495
  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,
3327
3496
  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,
3328
- 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,
3329
- 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,
3330
- 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,
3331
- 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,
3332
- 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,
3333
- 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,
3334
- 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,
3335
- 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,
3336
- 13, 12, 13, 213, 9, 13, 1, 14, 1, 14, 1, 14, 5, 14, 218, 8, 14, 10, 14, 12, 14, 221, 9,
3337
- 14, 1, 15, 1, 15, 1, 15, 1, 15, 4, 15, 227, 8, 15, 11, 15, 12, 15, 228, 1, 15, 1, 15, 1,
3338
- 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,
3339
- 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 5, 19, 251, 8, 19, 10, 19, 12, 19, 254, 9, 19,
3340
- 1, 19, 3, 19, 257, 8, 19, 1, 19, 1, 19, 5, 19, 261, 8, 19, 10, 19, 12, 19, 264, 9, 19,
3341
- 1, 20, 1, 20, 1, 20, 5, 20, 269, 8, 20, 10, 20, 12, 20, 272, 9, 20, 1, 20, 1, 20, 1, 20,
3342
- 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,
3343
- 5, 21, 290, 8, 21, 10, 21, 12, 21, 293, 9, 21, 5, 21, 295, 8, 21, 10, 21, 12, 21, 298,
3344
- 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,
3345
- 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 317, 8, 21, 10, 21, 12, 21, 320, 9, 21,
3346
- 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,
3347
- 23, 1, 23, 1, 23, 1, 23, 1, 23, 4, 23, 338, 8, 23, 11, 23, 12, 23, 339, 1, 23, 1, 23, 1,
3348
- 24, 1, 24, 3, 24, 346, 8, 24, 1, 25, 1, 25, 1, 25, 5, 25, 351, 8, 25, 10, 25, 12, 25, 354,
3349
- 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,
3350
- 25, 12, 25, 367, 9, 25, 1, 26, 1, 26, 1, 26, 1, 27, 3, 27, 373, 8, 27, 1, 27, 1, 27, 3,
3351
- 27, 377, 8, 27, 1, 28, 3, 28, 380, 8, 28, 1, 28, 1, 28, 5, 28, 384, 8, 28, 10, 28, 12,
3352
- 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,
3353
- 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,
3354
- 410, 8, 31, 11, 31, 12, 31, 411, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 4, 32, 420,
3355
- 8, 32, 11, 32, 12, 32, 421, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 3, 33, 429, 8, 33, 1, 34,
3356
- 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,
3357
- 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36, 451, 8, 36, 11, 36, 12, 36, 452,
3358
- 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 461, 8, 37, 10, 37, 12, 37, 464, 9, 37,
3359
- 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,
3360
- 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,
3361
- 40, 1, 40, 1, 40, 5, 40, 493, 8, 40, 10, 40, 12, 40, 496, 9, 40, 3, 40, 498, 8, 40, 1,
3362
- 41, 1, 41, 1, 41, 3, 41, 503, 8, 41, 4, 41, 505, 8, 41, 11, 41, 12, 41, 506, 1, 42, 1,
3363
- 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,
3364
- 43, 1, 43, 5, 43, 524, 8, 43, 10, 43, 12, 43, 527, 9, 43, 3, 43, 529, 8, 43, 1, 43, 3,
3365
- 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,
3366
- 1, 45, 5, 45, 545, 8, 45, 10, 45, 12, 45, 548, 9, 45, 1, 45, 3, 45, 551, 8, 45, 1, 46,
3367
- 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,
3368
- 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 572, 8, 49, 10, 49, 12, 49, 575, 9, 49, 1, 49,
3369
- 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,
3370
- 12, 50, 590, 9, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 4, 52, 600,
3371
- 8, 52, 11, 52, 12, 52, 601, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 3, 53, 609, 8, 53, 1, 54,
3372
- 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 619, 8, 54, 10, 54, 12, 54, 622,
3373
- 9, 54, 1, 54, 1, 54, 5, 54, 626, 8, 54, 10, 54, 12, 54, 629, 9, 54, 1, 54, 1, 54, 1, 54,
3374
- 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54, 3, 54, 641, 8, 54, 1, 55,
3375
- 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 5, 55, 649, 8, 55, 10, 55, 12, 55, 652, 9, 55, 3, 55,
3376
- 654, 8, 55, 1, 56, 1, 56, 5, 56, 658, 8, 56, 10, 56, 12, 56, 661, 9, 56, 1, 56, 0, 1, 42,
3377
- 57, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42,
3378
- 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86,
3379
- 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 0, 13, 2, 0, 4, 4, 14, 16,
3380
- 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,
3381
- 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,
3382
- 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,
3383
- 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,
3384
- 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,
3385
- 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,
3386
- 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,
3387
- 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,
3388
- 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,
3389
- 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,
3390
- 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,
3391
- 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,
3392
- 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,
3393
- 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,
3394
- 0, 0, 100, 581, 1, 0, 0, 0, 102, 594, 1, 0, 0, 0, 104, 596, 1, 0, 0, 0, 106, 608, 1, 0,
3395
- 0, 0, 108, 610, 1, 0, 0, 0, 110, 642, 1, 0, 0, 0, 112, 655, 1, 0, 0, 0, 114, 117, 3, 86,
3396
- 43, 0, 115, 117, 5, 56, 0, 0, 116, 114, 1, 0, 0, 0, 116, 115, 1, 0, 0, 0, 117, 120, 1,
3397
- 0, 0, 0, 118, 116, 1, 0, 0, 0, 118, 119, 1, 0, 0, 0, 119, 124, 1, 0, 0, 0, 120, 118, 1,
3398
- 0, 0, 0, 121, 123, 3, 2, 1, 0, 122, 121, 1, 0, 0, 0, 123, 126, 1, 0, 0, 0, 124, 122, 1,
3399
- 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 127, 1, 0, 0, 0, 126, 124, 1, 0, 0, 0, 127, 128, 5,
3400
- 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,
3401
- 23, 0, 132, 140, 3, 88, 44, 0, 133, 140, 3, 100, 50, 0, 134, 140, 3, 112, 56, 0, 135,
3402
- 140, 3, 40, 20, 0, 136, 140, 3, 18, 9, 0, 137, 140, 3, 56, 28, 0, 138, 140, 5, 56, 0,
3403
- 0, 139, 129, 1, 0, 0, 0, 139, 130, 1, 0, 0, 0, 139, 131, 1, 0, 0, 0, 139, 132, 1, 0, 0,
3404
- 0, 139, 133, 1, 0, 0, 0, 139, 134, 1, 0, 0, 0, 139, 135, 1, 0, 0, 0, 139, 136, 1, 0, 0,
3405
- 0, 139, 137, 1, 0, 0, 0, 139, 138, 1, 0, 0, 0, 140, 3, 1, 0, 0, 0, 141, 147, 3, 90, 45,
3406
- 0, 142, 147, 3, 96, 48, 0, 143, 147, 3, 98, 49, 0, 144, 147, 5, 3, 0, 0, 145, 147, 5,
3407
- 24, 0, 0, 146, 141, 1, 0, 0, 0, 146, 142, 1, 0, 0, 0, 146, 143, 1, 0, 0, 0, 146, 144, 1,
3408
- 0, 0, 0, 146, 145, 1, 0, 0, 0, 147, 5, 1, 0, 0, 0, 148, 156, 3, 20, 10, 0, 149, 156, 3,
3409
- 24, 12, 0, 150, 156, 3, 30, 15, 0, 151, 156, 3, 26, 13, 0, 152, 156, 3, 82, 41, 0, 153,
3410
- 156, 3, 84, 42, 0, 154, 156, 3, 10, 5, 0, 155, 148, 1, 0, 0, 0, 155, 149, 1, 0, 0, 0, 155,
3411
- 150, 1, 0, 0, 0, 155, 151, 1, 0, 0, 0, 155, 152, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 155,
3412
- 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,
3413
- 3, 2, 1, 0, 160, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163,
3414
- 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,
3415
- 0, 0, 0, 167, 168, 5, 31, 0, 0, 168, 169, 3, 8, 4, 0, 169, 11, 1, 0, 0, 0, 170, 171, 5,
3416
- 10, 0, 0, 171, 172, 3, 42, 21, 0, 172, 13, 1, 0, 0, 0, 173, 174, 5, 69, 0, 0, 174, 175,
3417
- 5, 31, 0, 0, 175, 176, 3, 42, 21, 0, 176, 15, 1, 0, 0, 0, 177, 180, 3, 42, 21, 0, 178,
3418
- 180, 3, 18, 9, 0, 179, 177, 1, 0, 0, 0, 179, 178, 1, 0, 0, 0, 180, 184, 1, 0, 0, 0, 181,
3419
- 183, 3, 14, 7, 0, 182, 181, 1, 0, 0, 0, 183, 186, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184,
3420
- 185, 1, 0, 0, 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 187, 189, 3, 12, 6, 0, 188,
3421
- 187, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 17, 1, 0, 0, 0, 190, 191, 3, 56, 28, 0, 191,
3422
- 192, 7, 1, 0, 0, 192, 193, 3, 42, 21, 0, 193, 19, 1, 0, 0, 0, 194, 195, 5, 11, 0, 0, 195,
3423
- 196, 3, 16, 8, 0, 196, 21, 1, 0, 0, 0, 197, 201, 3, 16, 8, 0, 198, 201, 3, 12, 6, 0, 199,
3424
- 201, 5, 14, 0, 0, 200, 197, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 200, 199, 1, 0, 0, 0, 201,
3425
- 23, 1, 0, 0, 0, 202, 203, 5, 12, 0, 0, 203, 204, 3, 22, 11, 0, 204, 25, 1, 0, 0, 0, 205,
3426
- 206, 5, 13, 0, 0, 206, 211, 3, 22, 11, 0, 207, 208, 5, 32, 0, 0, 208, 210, 3, 22, 11,
3427
- 0, 209, 207, 1, 0, 0, 0, 210, 213, 1, 0, 0, 0, 211, 209, 1, 0, 0, 0, 211, 212, 1, 0, 0,
3428
- 0, 212, 27, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 214, 215, 3, 24, 12, 0, 215, 219, 5, 31,
3429
- 0, 0, 216, 218, 3, 112, 56, 0, 217, 216, 1, 0, 0, 0, 218, 221, 1, 0, 0, 0, 219, 217, 1,
3430
- 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,
3431
- 14, 0, 223, 224, 5, 56, 0, 0, 224, 226, 5, 1, 0, 0, 225, 227, 3, 32, 16, 0, 226, 225,
3432
- 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 230,
3433
- 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,
3434
- 34, 17, 0, 234, 232, 1, 0, 0, 0, 234, 233, 1, 0, 0, 0, 235, 33, 1, 0, 0, 0, 236, 237, 3,
3435
- 78, 39, 0, 237, 241, 5, 31, 0, 0, 238, 242, 3, 2, 1, 0, 239, 242, 3, 8, 4, 0, 240, 242,
3436
- 5, 61, 0, 0, 241, 238, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 35,
3437
- 1, 0, 0, 0, 243, 244, 5, 69, 0, 0, 244, 245, 5, 37, 0, 0, 245, 246, 3, 42, 21, 0, 246,
3438
- 37, 1, 0, 0, 0, 247, 252, 3, 42, 21, 0, 248, 249, 5, 32, 0, 0, 249, 251, 3, 42, 21, 0,
3439
- 250, 248, 1, 0, 0, 0, 251, 254, 1, 0, 0, 0, 252, 250, 1, 0, 0, 0, 252, 253, 1, 0, 0, 0,
3440
- 253, 257, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 255, 257, 3, 36, 18, 0, 256, 247, 1, 0, 0,
3441
- 0, 256, 255, 1, 0, 0, 0, 257, 262, 1, 0, 0, 0, 258, 259, 5, 32, 0, 0, 259, 261, 3, 36,
3442
- 18, 0, 260, 258, 1, 0, 0, 0, 261, 264, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0,
3443
- 0, 0, 263, 39, 1, 0, 0, 0, 264, 262, 1, 0, 0, 0, 265, 266, 5, 34, 0, 0, 266, 270, 5, 69,
3444
- 0, 0, 267, 269, 3, 58, 29, 0, 268, 267, 1, 0, 0, 0, 269, 272, 1, 0, 0, 0, 270, 268, 1,
3445
- 0, 0, 0, 270, 271, 1, 0, 0, 0, 271, 273, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 273, 274, 5,
3446
- 37, 0, 0, 274, 275, 3, 42, 21, 0, 275, 41, 1, 0, 0, 0, 276, 277, 6, 21, -1, 0, 277, 278,
3447
- 5, 59, 0, 0, 278, 279, 3, 42, 21, 0, 279, 280, 5, 60, 0, 0, 280, 303, 1, 0, 0, 0, 281,
3448
- 282, 5, 5, 0, 0, 282, 303, 3, 66, 33, 0, 283, 284, 7, 2, 0, 0, 284, 303, 3, 42, 21, 8,
3449
- 285, 296, 5, 35, 0, 0, 286, 291, 3, 42, 21, 0, 287, 288, 5, 32, 0, 0, 288, 290, 3, 42,
3450
- 21, 0, 289, 287, 1, 0, 0, 0, 290, 293, 1, 0, 0, 0, 291, 289, 1, 0, 0, 0, 291, 292, 1, 0,
3451
- 0, 0, 292, 295, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294, 286, 1, 0, 0, 0, 295, 298, 1, 0,
3452
- 0, 0, 296, 294, 1, 0, 0, 0, 296, 297, 1, 0, 0, 0, 297, 299, 1, 0, 0, 0, 298, 296, 1, 0,
3453
- 0, 0, 299, 303, 5, 36, 0, 0, 300, 303, 3, 44, 22, 0, 301, 303, 3, 56, 28, 0, 302, 276,
3454
- 1, 0, 0, 0, 302, 281, 1, 0, 0, 0, 302, 283, 1, 0, 0, 0, 302, 285, 1, 0, 0, 0, 302, 300,
3455
- 1, 0, 0, 0, 302, 301, 1, 0, 0, 0, 303, 318, 1, 0, 0, 0, 304, 305, 10, 6, 0, 0, 305, 306,
3456
- 7, 3, 0, 0, 306, 317, 3, 42, 21, 7, 307, 308, 10, 5, 0, 0, 308, 309, 7, 4, 0, 0, 309, 317,
3457
- 3, 42, 21, 6, 310, 311, 10, 4, 0, 0, 311, 312, 7, 5, 0, 0, 312, 317, 3, 42, 21, 5, 313,
3458
- 314, 10, 3, 0, 0, 314, 315, 7, 6, 0, 0, 315, 317, 3, 42, 21, 4, 316, 304, 1, 0, 0, 0, 316,
3459
- 307, 1, 0, 0, 0, 316, 310, 1, 0, 0, 0, 316, 313, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318,
3460
- 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,
3461
- 5, 47, 0, 0, 322, 321, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 324, 1, 0, 0, 0, 324, 325,
3462
- 7, 7, 0, 0, 325, 45, 1, 0, 0, 0, 326, 327, 5, 18, 0, 0, 327, 328, 5, 69, 0, 0, 328, 330,
3463
- 5, 59, 0, 0, 329, 331, 3, 50, 25, 0, 330, 329, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332,
3464
- 1, 0, 0, 0, 332, 333, 5, 60, 0, 0, 333, 334, 5, 31, 0, 0, 334, 335, 5, 56, 0, 0, 335, 337,
3465
- 5, 1, 0, 0, 336, 338, 3, 48, 24, 0, 337, 336, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 337,
3466
- 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,
3467
- 0, 0, 0, 343, 346, 3, 2, 1, 0, 344, 346, 3, 52, 26, 0, 345, 343, 1, 0, 0, 0, 345, 344,
3468
- 1, 0, 0, 0, 346, 49, 1, 0, 0, 0, 347, 357, 5, 69, 0, 0, 348, 349, 5, 32, 0, 0, 349, 351,
3469
- 5, 69, 0, 0, 350, 348, 1, 0, 0, 0, 351, 354, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 352, 353,
3470
- 1, 0, 0, 0, 353, 358, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 355, 356, 5, 37, 0, 0, 356, 358,
3471
- 3, 44, 22, 0, 357, 352, 1, 0, 0, 0, 357, 355, 1, 0, 0, 0, 358, 365, 1, 0, 0, 0, 359, 360,
3472
- 5, 32, 0, 0, 360, 361, 5, 69, 0, 0, 361, 362, 5, 37, 0, 0, 362, 364, 3, 44, 22, 0, 363,
3473
- 359, 1, 0, 0, 0, 364, 367, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366,
3474
- 51, 1, 0, 0, 0, 367, 365, 1, 0, 0, 0, 368, 369, 5, 17, 0, 0, 369, 370, 3, 42, 21, 0, 370,
3475
- 53, 1, 0, 0, 0, 371, 373, 5, 46, 0, 0, 372, 371, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373,
3476
- 374, 1, 0, 0, 0, 374, 376, 5, 48, 0, 0, 375, 377, 3, 42, 21, 0, 376, 375, 1, 0, 0, 0, 376,
3477
- 377, 1, 0, 0, 0, 377, 55, 1, 0, 0, 0, 378, 380, 3, 54, 27, 0, 379, 378, 1, 0, 0, 0, 379,
3478
- 380, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 385, 5, 69, 0, 0, 382, 384, 3, 58, 29, 0, 383,
3479
- 382, 1, 0, 0, 0, 384, 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386,
3480
- 57, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, 390, 5, 59, 0, 0, 389, 391, 3, 38, 19, 0, 390,
3481
- 389, 1, 0, 0, 0, 390, 391, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 400, 5, 60, 0, 0, 393,
3482
- 394, 5, 33, 0, 0, 394, 400, 5, 69, 0, 0, 395, 396, 5, 35, 0, 0, 396, 397, 3, 42, 21, 0,
3483
- 397, 398, 5, 36, 0, 0, 398, 400, 1, 0, 0, 0, 399, 388, 1, 0, 0, 0, 399, 393, 1, 0, 0, 0,
3484
- 399, 395, 1, 0, 0, 0, 400, 59, 1, 0, 0, 0, 401, 402, 3, 78, 39, 0, 402, 403, 5, 31, 0,
3485
- 0, 403, 404, 3, 8, 4, 0, 404, 61, 1, 0, 0, 0, 405, 406, 5, 56, 0, 0, 406, 409, 5, 1, 0,
3486
- 0, 407, 410, 3, 76, 38, 0, 408, 410, 5, 56, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0,
3487
- 0, 0, 410, 411, 1, 0, 0, 0, 411, 409, 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 413, 1, 0,
3488
- 0, 0, 413, 414, 5, 2, 0, 0, 414, 63, 1, 0, 0, 0, 415, 416, 5, 56, 0, 0, 416, 419, 5, 1,
3489
- 0, 0, 417, 420, 5, 56, 0, 0, 418, 420, 3, 74, 37, 0, 419, 417, 1, 0, 0, 0, 419, 418, 1,
3490
- 0, 0, 0, 420, 421, 1, 0, 0, 0, 421, 419, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 423, 1,
3491
- 0, 0, 0, 423, 424, 5, 2, 0, 0, 424, 65, 1, 0, 0, 0, 425, 429, 3, 68, 34, 0, 426, 429, 3,
3492
- 70, 35, 0, 427, 429, 3, 72, 36, 0, 428, 425, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 427,
3493
- 1, 0, 0, 0, 429, 67, 1, 0, 0, 0, 430, 431, 5, 6, 0, 0, 431, 432, 5, 31, 0, 0, 432, 433,
3494
- 3, 62, 31, 0, 433, 69, 1, 0, 0, 0, 434, 438, 5, 7, 0, 0, 435, 436, 5, 59, 0, 0, 436, 437,
3495
- 5, 69, 0, 0, 437, 439, 5, 60, 0, 0, 438, 435, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440,
3496
- 1, 0, 0, 0, 440, 441, 5, 31, 0, 0, 441, 442, 3, 64, 32, 0, 442, 71, 1, 0, 0, 0, 443, 444,
3497
- 5, 8, 0, 0, 444, 445, 5, 31, 0, 0, 445, 446, 5, 56, 0, 0, 446, 450, 5, 1, 0, 0, 447, 451,
3498
- 3, 76, 38, 0, 448, 451, 3, 60, 30, 0, 449, 451, 5, 56, 0, 0, 450, 447, 1, 0, 0, 0, 450,
3499
- 448, 1, 0, 0, 0, 450, 449, 1, 0, 0, 0, 451, 452, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 452,
3500
- 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,
3501
- 5, 21, 0, 0, 457, 462, 5, 69, 0, 0, 458, 459, 5, 32, 0, 0, 459, 461, 5, 69, 0, 0, 460,
3502
- 458, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463,
3503
- 465, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465, 466, 5, 22, 0, 0, 466, 467, 3, 42, 21, 0, 467,
3504
- 468, 5, 31, 0, 0, 468, 469, 3, 64, 32, 0, 469, 481, 1, 0, 0, 0, 470, 471, 7, 8, 0, 0, 471,
3505
- 478, 5, 31, 0, 0, 472, 479, 3, 38, 19, 0, 473, 474, 5, 59, 0, 0, 474, 475, 3, 38, 19,
3506
- 0, 475, 476, 5, 60, 0, 0, 476, 479, 1, 0, 0, 0, 477, 479, 3, 62, 31, 0, 478, 472, 1, 0,
3507
- 0, 0, 478, 473, 1, 0, 0, 0, 478, 477, 1, 0, 0, 0, 479, 481, 1, 0, 0, 0, 480, 456, 1, 0,
3508
- 0, 0, 480, 470, 1, 0, 0, 0, 481, 75, 1, 0, 0, 0, 482, 483, 3, 78, 39, 0, 483, 484, 5, 31,
3509
- 0, 0, 484, 485, 3, 80, 40, 0, 485, 77, 1, 0, 0, 0, 486, 487, 7, 9, 0, 0, 487, 79, 1, 0,
3510
- 0, 0, 488, 498, 3, 62, 31, 0, 489, 494, 3, 42, 21, 0, 490, 491, 5, 32, 0, 0, 491, 493,
3511
- 3, 42, 21, 0, 492, 490, 1, 0, 0, 0, 493, 496, 1, 0, 0, 0, 494, 492, 1, 0, 0, 0, 494, 495,
3512
- 1, 0, 0, 0, 495, 498, 1, 0, 0, 0, 496, 494, 1, 0, 0, 0, 497, 488, 1, 0, 0, 0, 497, 489,
3513
- 1, 0, 0, 0, 498, 81, 1, 0, 0, 0, 499, 504, 5, 9, 0, 0, 500, 502, 5, 69, 0, 0, 501, 503,
3514
- 3, 42, 21, 0, 502, 501, 1, 0, 0, 0, 502, 503, 1, 0, 0, 0, 503, 505, 1, 0, 0, 0, 504, 500,
3515
- 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,
3516
- 0, 0, 0, 508, 509, 5, 14, 0, 0, 509, 510, 3, 42, 21, 0, 510, 85, 1, 0, 0, 0, 511, 512,
3517
- 5, 19, 0, 0, 512, 514, 5, 68, 0, 0, 513, 515, 3, 112, 56, 0, 514, 513, 1, 0, 0, 0, 514,
3518
- 515, 1, 0, 0, 0, 515, 534, 1, 0, 0, 0, 516, 517, 5, 20, 0, 0, 517, 518, 5, 68, 0, 0, 518,
3519
- 528, 5, 19, 0, 0, 519, 529, 5, 49, 0, 0, 520, 525, 5, 69, 0, 0, 521, 522, 5, 32, 0, 0,
3520
- 522, 524, 5, 69, 0, 0, 523, 521, 1, 0, 0, 0, 524, 527, 1, 0, 0, 0, 525, 523, 1, 0, 0, 0,
3521
- 525, 526, 1, 0, 0, 0, 526, 529, 1, 0, 0, 0, 527, 525, 1, 0, 0, 0, 528, 519, 1, 0, 0, 0,
3522
- 528, 520, 1, 0, 0, 0, 529, 531, 1, 0, 0, 0, 530, 532, 3, 112, 56, 0, 531, 530, 1, 0, 0,
3523
- 0, 531, 532, 1, 0, 0, 0, 532, 534, 1, 0, 0, 0, 533, 511, 1, 0, 0, 0, 533, 516, 1, 0, 0,
3524
- 0, 534, 87, 1, 0, 0, 0, 535, 536, 7, 10, 0, 0, 536, 537, 5, 31, 0, 0, 537, 538, 3, 8, 4,
3525
- 0, 538, 89, 1, 0, 0, 0, 539, 540, 5, 25, 0, 0, 540, 541, 3, 42, 21, 0, 541, 542, 5, 31,
3526
- 0, 0, 542, 546, 3, 8, 4, 0, 543, 545, 3, 92, 46, 0, 544, 543, 1, 0, 0, 0, 545, 548, 1,
3527
- 0, 0, 0, 546, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 550, 1, 0, 0, 0, 548, 546, 1,
3528
- 0, 0, 0, 549, 551, 3, 94, 47, 0, 550, 549, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551, 91, 1,
3529
- 0, 0, 0, 552, 553, 5, 26, 0, 0, 553, 554, 5, 25, 0, 0, 554, 555, 3, 42, 21, 0, 555, 556,
3530
- 5, 31, 0, 0, 556, 557, 3, 8, 4, 0, 557, 93, 1, 0, 0, 0, 558, 559, 5, 26, 0, 0, 559, 560,
3531
- 5, 31, 0, 0, 560, 561, 3, 8, 4, 0, 561, 95, 1, 0, 0, 0, 562, 563, 5, 23, 0, 0, 563, 564,
3532
- 3, 42, 21, 0, 564, 565, 5, 31, 0, 0, 565, 566, 3, 8, 4, 0, 566, 97, 1, 0, 0, 0, 567, 568,
3533
- 5, 21, 0, 0, 568, 573, 5, 69, 0, 0, 569, 570, 5, 32, 0, 0, 570, 572, 5, 69, 0, 0, 571,
3534
- 569, 1, 0, 0, 0, 572, 575, 1, 0, 0, 0, 573, 571, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574,
3535
- 576, 1, 0, 0, 0, 575, 573, 1, 0, 0, 0, 576, 577, 5, 22, 0, 0, 577, 578, 3, 42, 21, 0, 578,
3536
- 579, 5, 31, 0, 0, 579, 580, 3, 8, 4, 0, 580, 99, 1, 0, 0, 0, 581, 582, 5, 30, 0, 0, 582,
3537
- 583, 5, 31, 0, 0, 583, 588, 3, 42, 21, 0, 584, 585, 5, 32, 0, 0, 585, 587, 3, 42, 21,
3538
- 0, 586, 584, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0,
3539
- 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 31, 0, 0, 592, 593, 3, 104,
3540
- 52, 0, 593, 101, 1, 0, 0, 0, 594, 595, 7, 11, 0, 0, 595, 103, 1, 0, 0, 0, 596, 597, 5,
3541
- 56, 0, 0, 597, 599, 5, 1, 0, 0, 598, 600, 3, 106, 53, 0, 599, 598, 1, 0, 0, 0, 600, 601,
3542
- 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604,
3543
- 5, 2, 0, 0, 604, 105, 1, 0, 0, 0, 605, 609, 3, 108, 54, 0, 606, 609, 3, 110, 55, 0, 607,
3544
- 609, 5, 56, 0, 0, 608, 605, 1, 0, 0, 0, 608, 606, 1, 0, 0, 0, 608, 607, 1, 0, 0, 0, 609,
3545
- 107, 1, 0, 0, 0, 610, 611, 3, 102, 51, 0, 611, 612, 5, 31, 0, 0, 612, 620, 3, 42, 21,
3546
- 0, 613, 614, 5, 32, 0, 0, 614, 615, 3, 102, 51, 0, 615, 616, 5, 31, 0, 0, 616, 617, 3,
3547
- 42, 21, 0, 617, 619, 1, 0, 0, 0, 618, 613, 1, 0, 0, 0, 619, 622, 1, 0, 0, 0, 620, 618,
3548
- 1, 0, 0, 0, 620, 621, 1, 0, 0, 0, 621, 627, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 623, 624,
3549
- 5, 32, 0, 0, 624, 626, 3, 102, 51, 0, 625, 623, 1, 0, 0, 0, 626, 629, 1, 0, 0, 0, 627,
3550
- 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 630, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 630,
3551
- 640, 5, 31, 0, 0, 631, 641, 3, 104, 52, 0, 632, 637, 3, 42, 21, 0, 633, 634, 5, 32, 0,
3552
- 0, 634, 636, 3, 42, 21, 0, 635, 633, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0,
3553
- 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 631, 1, 0,
3554
- 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0, 0, 0, 642, 643, 3, 102, 51, 0, 643, 653, 5,
3555
- 31, 0, 0, 644, 654, 3, 104, 52, 0, 645, 650, 3, 42, 21, 0, 646, 647, 5, 32, 0, 0, 647,
3556
- 649, 3, 42, 21, 0, 648, 646, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 650,
3557
- 651, 1, 0, 0, 0, 651, 654, 1, 0, 0, 0, 652, 650, 1, 0, 0, 0, 653, 644, 1, 0, 0, 0, 653,
3558
- 645, 1, 0, 0, 0, 654, 111, 1, 0, 0, 0, 655, 659, 5, 63, 0, 0, 656, 658, 7, 12, 0, 0, 657,
3559
- 656, 1, 0, 0, 0, 658, 661, 1, 0, 0, 0, 659, 657, 1, 0, 0, 0, 659, 660, 1, 0, 0, 0, 660,
3560
- 113, 1, 0, 0, 0, 661, 659, 1, 0, 0, 0, 71, 116, 118, 124, 139, 146, 155, 162, 179, 184,
3561
- 188, 200, 211, 219, 228, 234, 241, 252, 256, 262, 270, 291, 296, 302, 316, 318,
3562
- 322, 330, 339, 345, 352, 357, 365, 372, 376, 379, 385, 390, 399, 409, 411, 419,
3563
- 421, 428, 438, 450, 452, 462, 478, 480, 494, 497, 502, 506, 514, 525, 528, 531,
3564
- 533, 546, 550, 573, 588, 601, 608, 620, 627, 637, 640, 650, 653, 659
3497
+ 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,
3498
+ 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,
3499
+ 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,
3500
+ 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,
3501
+ 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,
3502
+ 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,
3503
+ 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,
3504
+ 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,
3505
+ 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,
3506
+ 1, 14, 5, 14, 224, 8, 14, 10, 14, 12, 14, 227, 9, 14, 1, 15, 1, 15, 1, 15, 5, 15, 232,
3507
+ 8, 15, 10, 15, 12, 15, 235, 9, 15, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 4, 17, 243,
3508
+ 8, 17, 11, 17, 12, 17, 244, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 251, 8, 18, 1, 19, 1, 19,
3509
+ 1, 19, 4, 19, 256, 8, 19, 11, 19, 12, 19, 257, 1, 19, 1, 19, 3, 19, 262, 8, 19, 1, 20,
3510
+ 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 5, 21, 271, 8, 21, 10, 21, 12, 21, 274, 9, 21,
3511
+ 1, 21, 3, 21, 277, 8, 21, 1, 21, 1, 21, 5, 21, 281, 8, 21, 10, 21, 12, 21, 284, 9, 21,
3512
+ 1, 22, 1, 22, 1, 22, 5, 22, 289, 8, 22, 10, 22, 12, 22, 292, 9, 22, 1, 22, 1, 22, 1, 22,
3513
+ 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,
3514
+ 5, 23, 310, 8, 23, 10, 23, 12, 23, 313, 9, 23, 5, 23, 315, 8, 23, 10, 23, 12, 23, 318,
3515
+ 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,
3516
+ 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 5, 23, 337, 8, 23, 10, 23, 12, 23, 340, 9, 23,
3517
+ 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,
3518
+ 25, 1, 25, 1, 25, 1, 25, 1, 25, 4, 25, 358, 8, 25, 11, 25, 12, 25, 359, 1, 25, 1, 25, 1,
3519
+ 26, 1, 26, 3, 26, 366, 8, 26, 1, 27, 1, 27, 1, 27, 5, 27, 371, 8, 27, 10, 27, 12, 27, 374,
3520
+ 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,
3521
+ 27, 12, 27, 387, 9, 27, 1, 28, 1, 28, 1, 28, 1, 29, 3, 29, 393, 8, 29, 1, 29, 1, 29, 3,
3522
+ 29, 397, 8, 29, 1, 30, 3, 30, 400, 8, 30, 1, 30, 1, 30, 5, 30, 404, 8, 30, 10, 30, 12,
3523
+ 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,
3524
+ 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,
3525
+ 430, 8, 33, 11, 33, 12, 33, 431, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 4, 34, 440,
3526
+ 8, 34, 11, 34, 12, 34, 441, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 3, 35, 449, 8, 35, 1, 36,
3527
+ 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,
3528
+ 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 4, 38, 471, 8, 38, 11, 38, 12, 38, 472,
3529
+ 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 481, 8, 39, 10, 39, 12, 39, 484, 9, 39,
3530
+ 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,
3531
+ 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,
3532
+ 42, 1, 42, 1, 42, 5, 42, 513, 8, 42, 10, 42, 12, 42, 516, 9, 42, 3, 42, 518, 8, 42, 1,
3533
+ 43, 1, 43, 1, 43, 3, 43, 523, 8, 43, 4, 43, 525, 8, 43, 11, 43, 12, 43, 526, 1, 44, 1,
3534
+ 44, 1, 44, 1, 45, 1, 45, 1, 45, 3, 45, 535, 8, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1,
3535
+ 45, 1, 45, 5, 45, 544, 8, 45, 10, 45, 12, 45, 547, 9, 45, 3, 45, 549, 8, 45, 1, 45, 3,
3536
+ 45, 552, 8, 45, 3, 45, 554, 8, 45, 1, 46, 1, 46, 1, 46, 3, 46, 559, 8, 46, 1, 47, 1, 47,
3537
+ 1, 47, 1, 47, 1, 47, 5, 47, 566, 8, 47, 10, 47, 12, 47, 569, 9, 47, 1, 47, 3, 47, 572,
3538
+ 8, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50,
3539
+ 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 593, 8, 51, 10, 51, 12, 51, 596,
3540
+ 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 5, 52, 608,
3541
+ 8, 52, 10, 52, 12, 52, 611, 9, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54,
3542
+ 4, 54, 621, 8, 54, 11, 54, 12, 54, 622, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 3, 55, 630,
3543
+ 8, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 640, 8, 56, 10, 56,
3544
+ 12, 56, 643, 9, 56, 1, 56, 1, 56, 5, 56, 647, 8, 56, 10, 56, 12, 56, 650, 9, 56, 1, 56,
3545
+ 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 657, 8, 56, 10, 56, 12, 56, 660, 9, 56, 3, 56, 662,
3546
+ 8, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 670, 8, 57, 10, 57, 12, 57, 673,
3547
+ 9, 57, 3, 57, 675, 8, 57, 1, 58, 1, 58, 5, 58, 679, 8, 58, 10, 58, 12, 58, 682, 9, 58,
3548
+ 1, 58, 0, 1, 46, 59, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34,
3549
+ 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
3550
+ 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
3551
+ 0, 13, 2, 0, 4, 4, 14, 16, 2, 0, 37, 37, 51, 55, 2, 0, 27, 27, 47, 47, 1, 0, 48, 50, 1, 0,
3552
+ 46, 47, 1, 0, 38, 43, 1, 0, 44, 45, 2, 0, 62, 62, 64, 68, 2, 0, 10, 10, 69, 69, 2, 0, 64,
3553
+ 64, 68, 69, 1, 0, 28, 29, 2, 0, 64, 64, 66, 69, 2, 0, 47, 47, 69, 69, 729, 0, 122, 1, 0,
3554
+ 0, 0, 2, 135, 1, 0, 0, 0, 4, 146, 1, 0, 0, 0, 6, 153, 1, 0, 0, 0, 8, 162, 1, 0, 0, 0, 10, 164,
3555
+ 1, 0, 0, 0, 12, 173, 1, 0, 0, 0, 14, 184, 1, 0, 0, 0, 16, 187, 1, 0, 0, 0, 18, 193, 1, 0,
3556
+ 0, 0, 20, 204, 1, 0, 0, 0, 22, 208, 1, 0, 0, 0, 24, 214, 1, 0, 0, 0, 26, 216, 1, 0, 0, 0,
3557
+ 28, 219, 1, 0, 0, 0, 30, 228, 1, 0, 0, 0, 32, 236, 1, 0, 0, 0, 34, 239, 1, 0, 0, 0, 36, 250,
3558
+ 1, 0, 0, 0, 38, 252, 1, 0, 0, 0, 40, 263, 1, 0, 0, 0, 42, 276, 1, 0, 0, 0, 44, 285, 1, 0,
3559
+ 0, 0, 46, 322, 1, 0, 0, 0, 48, 342, 1, 0, 0, 0, 50, 346, 1, 0, 0, 0, 52, 365, 1, 0, 0, 0,
3560
+ 54, 367, 1, 0, 0, 0, 56, 388, 1, 0, 0, 0, 58, 392, 1, 0, 0, 0, 60, 399, 1, 0, 0, 0, 62, 419,
3561
+ 1, 0, 0, 0, 64, 421, 1, 0, 0, 0, 66, 425, 1, 0, 0, 0, 68, 435, 1, 0, 0, 0, 70, 448, 1, 0,
3562
+ 0, 0, 72, 450, 1, 0, 0, 0, 74, 454, 1, 0, 0, 0, 76, 463, 1, 0, 0, 0, 78, 500, 1, 0, 0, 0,
3563
+ 80, 502, 1, 0, 0, 0, 82, 506, 1, 0, 0, 0, 84, 517, 1, 0, 0, 0, 86, 519, 1, 0, 0, 0, 88, 528,
3564
+ 1, 0, 0, 0, 90, 553, 1, 0, 0, 0, 92, 555, 1, 0, 0, 0, 94, 560, 1, 0, 0, 0, 96, 573, 1, 0,
3565
+ 0, 0, 98, 579, 1, 0, 0, 0, 100, 583, 1, 0, 0, 0, 102, 588, 1, 0, 0, 0, 104, 602, 1, 0, 0,
3566
+ 0, 106, 615, 1, 0, 0, 0, 108, 617, 1, 0, 0, 0, 110, 629, 1, 0, 0, 0, 112, 631, 1, 0, 0,
3567
+ 0, 114, 663, 1, 0, 0, 0, 116, 676, 1, 0, 0, 0, 118, 121, 3, 90, 45, 0, 119, 121, 5, 56,
3568
+ 0, 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 124, 1, 0, 0, 0, 122, 120, 1, 0,
3569
+ 0, 0, 122, 123, 1, 0, 0, 0, 123, 128, 1, 0, 0, 0, 124, 122, 1, 0, 0, 0, 125, 127, 3, 2,
3570
+ 1, 0, 126, 125, 1, 0, 0, 0, 127, 130, 1, 0, 0, 0, 128, 126, 1, 0, 0, 0, 128, 129, 1, 0,
3571
+ 0, 0, 129, 131, 1, 0, 0, 0, 130, 128, 1, 0, 0, 0, 131, 132, 5, 0, 0, 1, 132, 1, 1, 0, 0,
3572
+ 0, 133, 136, 3, 4, 2, 0, 134, 136, 5, 56, 0, 0, 135, 133, 1, 0, 0, 0, 135, 134, 1, 0, 0,
3573
+ 0, 136, 3, 1, 0, 0, 0, 137, 147, 3, 6, 3, 0, 138, 147, 3, 8, 4, 0, 139, 147, 3, 50, 25,
3574
+ 0, 140, 147, 3, 92, 46, 0, 141, 147, 3, 104, 52, 0, 142, 147, 3, 116, 58, 0, 143, 147,
3575
+ 3, 44, 22, 0, 144, 147, 3, 20, 10, 0, 145, 147, 3, 60, 30, 0, 146, 137, 1, 0, 0, 0, 146,
3576
+ 138, 1, 0, 0, 0, 146, 139, 1, 0, 0, 0, 146, 140, 1, 0, 0, 0, 146, 141, 1, 0, 0, 0, 146,
3577
+ 142, 1, 0, 0, 0, 146, 143, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 145, 1, 0, 0, 0, 147,
3578
+ 5, 1, 0, 0, 0, 148, 154, 3, 94, 47, 0, 149, 154, 3, 100, 50, 0, 150, 154, 3, 102, 51,
3579
+ 0, 151, 154, 5, 3, 0, 0, 152, 154, 5, 24, 0, 0, 153, 148, 1, 0, 0, 0, 153, 149, 1, 0, 0,
3580
+ 0, 153, 150, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 152, 1, 0, 0, 0, 154, 7, 1, 0, 0, 0,
3581
+ 155, 163, 3, 22, 11, 0, 156, 163, 3, 26, 13, 0, 157, 163, 3, 32, 16, 0, 158, 163, 3,
3582
+ 28, 14, 0, 159, 163, 3, 86, 43, 0, 160, 163, 3, 88, 44, 0, 161, 163, 3, 12, 6, 0, 162,
3583
+ 155, 1, 0, 0, 0, 162, 156, 1, 0, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162,
3584
+ 159, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 9, 1, 0, 0, 0, 164, 165,
3585
+ 5, 56, 0, 0, 165, 167, 5, 1, 0, 0, 166, 168, 3, 2, 1, 0, 167, 166, 1, 0, 0, 0, 168, 169,
3586
+ 1, 0, 0, 0, 169, 167, 1, 0, 0, 0, 169, 170, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 172,
3587
+ 5, 2, 0, 0, 172, 11, 1, 0, 0, 0, 173, 174, 7, 0, 0, 0, 174, 182, 5, 31, 0, 0, 175, 177,
3588
+ 3, 4, 2, 0, 176, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179,
3589
+ 1, 0, 0, 0, 179, 183, 1, 0, 0, 0, 180, 183, 3, 10, 5, 0, 181, 183, 3, 34, 17, 0, 182, 176,
3590
+ 1, 0, 0, 0, 182, 180, 1, 0, 0, 0, 182, 181, 1, 0, 0, 0, 183, 13, 1, 0, 0, 0, 184, 185, 5,
3591
+ 10, 0, 0, 185, 186, 3, 46, 23, 0, 186, 15, 1, 0, 0, 0, 187, 188, 5, 69, 0, 0, 188, 189,
3592
+ 5, 31, 0, 0, 189, 190, 3, 46, 23, 0, 190, 17, 1, 0, 0, 0, 191, 194, 3, 46, 23, 0, 192,
3593
+ 194, 3, 20, 10, 0, 193, 191, 1, 0, 0, 0, 193, 192, 1, 0, 0, 0, 194, 198, 1, 0, 0, 0, 195,
3594
+ 197, 3, 16, 8, 0, 196, 195, 1, 0, 0, 0, 197, 200, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 198,
3595
+ 199, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1, 0, 0, 0, 201, 203, 3, 14, 7, 0, 202,
3596
+ 201, 1, 0, 0, 0, 202, 203, 1, 0, 0, 0, 203, 19, 1, 0, 0, 0, 204, 205, 3, 60, 30, 0, 205,
3597
+ 206, 7, 1, 0, 0, 206, 207, 3, 46, 23, 0, 207, 21, 1, 0, 0, 0, 208, 209, 5, 11, 0, 0, 209,
3598
+ 210, 3, 18, 9, 0, 210, 23, 1, 0, 0, 0, 211, 215, 3, 18, 9, 0, 212, 215, 3, 14, 7, 0, 213,
3599
+ 215, 5, 14, 0, 0, 214, 211, 1, 0, 0, 0, 214, 212, 1, 0, 0, 0, 214, 213, 1, 0, 0, 0, 215,
3600
+ 25, 1, 0, 0, 0, 216, 217, 5, 12, 0, 0, 217, 218, 3, 24, 12, 0, 218, 27, 1, 0, 0, 0, 219,
3601
+ 220, 5, 13, 0, 0, 220, 225, 3, 24, 12, 0, 221, 222, 5, 32, 0, 0, 222, 224, 3, 24, 12,
3602
+ 0, 223, 221, 1, 0, 0, 0, 224, 227, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 225, 226, 1, 0, 0,
3603
+ 0, 226, 29, 1, 0, 0, 0, 227, 225, 1, 0, 0, 0, 228, 229, 3, 26, 13, 0, 229, 233, 5, 31,
3604
+ 0, 0, 230, 232, 3, 116, 58, 0, 231, 230, 1, 0, 0, 0, 232, 235, 1, 0, 0, 0, 233, 231, 1,
3605
+ 0, 0, 0, 233, 234, 1, 0, 0, 0, 234, 31, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 236, 237, 3, 30,
3606
+ 15, 0, 237, 238, 3, 34, 17, 0, 238, 33, 1, 0, 0, 0, 239, 240, 5, 56, 0, 0, 240, 242, 5,
3607
+ 1, 0, 0, 241, 243, 3, 36, 18, 0, 242, 241, 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 242,
3608
+ 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 246, 1, 0, 0, 0, 246, 247, 5, 2, 0, 0, 247, 35, 1,
3609
+ 0, 0, 0, 248, 251, 3, 38, 19, 0, 249, 251, 3, 2, 1, 0, 250, 248, 1, 0, 0, 0, 250, 249,
3610
+ 1, 0, 0, 0, 251, 37, 1, 0, 0, 0, 252, 253, 3, 82, 41, 0, 253, 261, 5, 31, 0, 0, 254, 256,
3611
+ 3, 4, 2, 0, 255, 254, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 257, 258,
3612
+ 1, 0, 0, 0, 258, 262, 1, 0, 0, 0, 259, 262, 3, 10, 5, 0, 260, 262, 5, 61, 0, 0, 261, 255,
3613
+ 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 260, 1, 0, 0, 0, 262, 39, 1, 0, 0, 0, 263, 264, 5,
3614
+ 69, 0, 0, 264, 265, 5, 37, 0, 0, 265, 266, 3, 46, 23, 0, 266, 41, 1, 0, 0, 0, 267, 272,
3615
+ 3, 46, 23, 0, 268, 269, 5, 32, 0, 0, 269, 271, 3, 46, 23, 0, 270, 268, 1, 0, 0, 0, 271,
3616
+ 274, 1, 0, 0, 0, 272, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 277, 1, 0, 0, 0, 274,
3617
+ 272, 1, 0, 0, 0, 275, 277, 3, 40, 20, 0, 276, 267, 1, 0, 0, 0, 276, 275, 1, 0, 0, 0, 277,
3618
+ 282, 1, 0, 0, 0, 278, 279, 5, 32, 0, 0, 279, 281, 3, 40, 20, 0, 280, 278, 1, 0, 0, 0, 281,
3619
+ 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 43, 1, 0, 0, 0, 284, 282,
3620
+ 1, 0, 0, 0, 285, 286, 5, 34, 0, 0, 286, 290, 5, 69, 0, 0, 287, 289, 3, 62, 31, 0, 288,
3621
+ 287, 1, 0, 0, 0, 289, 292, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291,
3622
+ 293, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 293, 294, 5, 37, 0, 0, 294, 295, 3, 46, 23, 0, 295,
3623
+ 45, 1, 0, 0, 0, 296, 297, 6, 23, -1, 0, 297, 298, 5, 59, 0, 0, 298, 299, 3, 46, 23, 0,
3624
+ 299, 300, 5, 60, 0, 0, 300, 323, 1, 0, 0, 0, 301, 302, 5, 5, 0, 0, 302, 323, 3, 70, 35,
3625
+ 0, 303, 304, 7, 2, 0, 0, 304, 323, 3, 46, 23, 8, 305, 316, 5, 35, 0, 0, 306, 311, 3, 46,
3626
+ 23, 0, 307, 308, 5, 32, 0, 0, 308, 310, 3, 46, 23, 0, 309, 307, 1, 0, 0, 0, 310, 313,
3627
+ 1, 0, 0, 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 315, 1, 0, 0, 0, 313, 311,
3628
+ 1, 0, 0, 0, 314, 306, 1, 0, 0, 0, 315, 318, 1, 0, 0, 0, 316, 314, 1, 0, 0, 0, 316, 317,
3629
+ 1, 0, 0, 0, 317, 319, 1, 0, 0, 0, 318, 316, 1, 0, 0, 0, 319, 323, 5, 36, 0, 0, 320, 323,
3630
+ 3, 48, 24, 0, 321, 323, 3, 60, 30, 0, 322, 296, 1, 0, 0, 0, 322, 301, 1, 0, 0, 0, 322,
3631
+ 303, 1, 0, 0, 0, 322, 305, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323,
3632
+ 338, 1, 0, 0, 0, 324, 325, 10, 6, 0, 0, 325, 326, 7, 3, 0, 0, 326, 337, 3, 46, 23, 7, 327,
3633
+ 328, 10, 5, 0, 0, 328, 329, 7, 4, 0, 0, 329, 337, 3, 46, 23, 6, 330, 331, 10, 4, 0, 0,
3634
+ 331, 332, 7, 5, 0, 0, 332, 337, 3, 46, 23, 5, 333, 334, 10, 3, 0, 0, 334, 335, 7, 6, 0,
3635
+ 0, 335, 337, 3, 46, 23, 4, 336, 324, 1, 0, 0, 0, 336, 327, 1, 0, 0, 0, 336, 330, 1, 0,
3636
+ 0, 0, 336, 333, 1, 0, 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, 339, 1, 0,
3637
+ 0, 0, 339, 47, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 341, 343, 5, 47, 0, 0, 342, 341, 1, 0,
3638
+ 0, 0, 342, 343, 1, 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 345, 7, 7, 0, 0, 345, 49, 1, 0, 0,
3639
+ 0, 346, 347, 5, 18, 0, 0, 347, 348, 5, 69, 0, 0, 348, 350, 5, 59, 0, 0, 349, 351, 3, 54,
3640
+ 27, 0, 350, 349, 1, 0, 0, 0, 350, 351, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, 353, 5, 60,
3641
+ 0, 0, 353, 354, 5, 31, 0, 0, 354, 355, 5, 56, 0, 0, 355, 357, 5, 1, 0, 0, 356, 358, 3,
3642
+ 52, 26, 0, 357, 356, 1, 0, 0, 0, 358, 359, 1, 0, 0, 0, 359, 357, 1, 0, 0, 0, 359, 360,
3643
+ 1, 0, 0, 0, 360, 361, 1, 0, 0, 0, 361, 362, 5, 2, 0, 0, 362, 51, 1, 0, 0, 0, 363, 366, 3,
3644
+ 2, 1, 0, 364, 366, 3, 56, 28, 0, 365, 363, 1, 0, 0, 0, 365, 364, 1, 0, 0, 0, 366, 53, 1,
3645
+ 0, 0, 0, 367, 377, 5, 69, 0, 0, 368, 369, 5, 32, 0, 0, 369, 371, 5, 69, 0, 0, 370, 368,
3646
+ 1, 0, 0, 0, 371, 374, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 372, 373, 1, 0, 0, 0, 373, 378,
3647
+ 1, 0, 0, 0, 374, 372, 1, 0, 0, 0, 375, 376, 5, 37, 0, 0, 376, 378, 3, 48, 24, 0, 377, 372,
3648
+ 1, 0, 0, 0, 377, 375, 1, 0, 0, 0, 378, 385, 1, 0, 0, 0, 379, 380, 5, 32, 0, 0, 380, 381,
3649
+ 5, 69, 0, 0, 381, 382, 5, 37, 0, 0, 382, 384, 3, 48, 24, 0, 383, 379, 1, 0, 0, 0, 384,
3650
+ 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, 0, 0, 386, 55, 1, 0, 0, 0, 387, 385,
3651
+ 1, 0, 0, 0, 388, 389, 5, 17, 0, 0, 389, 390, 3, 46, 23, 0, 390, 57, 1, 0, 0, 0, 391, 393,
3652
+ 5, 46, 0, 0, 392, 391, 1, 0, 0, 0, 392, 393, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 396,
3653
+ 5, 48, 0, 0, 395, 397, 3, 46, 23, 0, 396, 395, 1, 0, 0, 0, 396, 397, 1, 0, 0, 0, 397, 59,
3654
+ 1, 0, 0, 0, 398, 400, 3, 58, 29, 0, 399, 398, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 400, 401,
3655
+ 1, 0, 0, 0, 401, 405, 5, 69, 0, 0, 402, 404, 3, 62, 31, 0, 403, 402, 1, 0, 0, 0, 404, 407,
3656
+ 1, 0, 0, 0, 405, 403, 1, 0, 0, 0, 405, 406, 1, 0, 0, 0, 406, 61, 1, 0, 0, 0, 407, 405, 1,
3657
+ 0, 0, 0, 408, 410, 5, 59, 0, 0, 409, 411, 3, 42, 21, 0, 410, 409, 1, 0, 0, 0, 410, 411,
3658
+ 1, 0, 0, 0, 411, 412, 1, 0, 0, 0, 412, 420, 5, 60, 0, 0, 413, 414, 5, 33, 0, 0, 414, 420,
3659
+ 5, 69, 0, 0, 415, 416, 5, 35, 0, 0, 416, 417, 3, 46, 23, 0, 417, 418, 5, 36, 0, 0, 418,
3660
+ 420, 1, 0, 0, 0, 419, 408, 1, 0, 0, 0, 419, 413, 1, 0, 0, 0, 419, 415, 1, 0, 0, 0, 420,
3661
+ 63, 1, 0, 0, 0, 421, 422, 3, 82, 41, 0, 422, 423, 5, 31, 0, 0, 423, 424, 3, 10, 5, 0, 424,
3662
+ 65, 1, 0, 0, 0, 425, 426, 5, 56, 0, 0, 426, 429, 5, 1, 0, 0, 427, 430, 3, 80, 40, 0, 428,
3663
+ 430, 5, 56, 0, 0, 429, 427, 1, 0, 0, 0, 429, 428, 1, 0, 0, 0, 430, 431, 1, 0, 0, 0, 431,
3664
+ 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 433, 1, 0, 0, 0, 433, 434, 5, 2, 0, 0, 434,
3665
+ 67, 1, 0, 0, 0, 435, 436, 5, 56, 0, 0, 436, 439, 5, 1, 0, 0, 437, 440, 5, 56, 0, 0, 438,
3666
+ 440, 3, 78, 39, 0, 439, 437, 1, 0, 0, 0, 439, 438, 1, 0, 0, 0, 440, 441, 1, 0, 0, 0, 441,
3667
+ 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 444, 5, 2, 0, 0, 444,
3668
+ 69, 1, 0, 0, 0, 445, 449, 3, 72, 36, 0, 446, 449, 3, 74, 37, 0, 447, 449, 3, 76, 38, 0,
3669
+ 448, 445, 1, 0, 0, 0, 448, 446, 1, 0, 0, 0, 448, 447, 1, 0, 0, 0, 449, 71, 1, 0, 0, 0, 450,
3670
+ 451, 5, 6, 0, 0, 451, 452, 5, 31, 0, 0, 452, 453, 3, 66, 33, 0, 453, 73, 1, 0, 0, 0, 454,
3671
+ 458, 5, 7, 0, 0, 455, 456, 5, 59, 0, 0, 456, 457, 5, 69, 0, 0, 457, 459, 5, 60, 0, 0, 458,
3672
+ 455, 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 1, 0, 0, 0, 460, 461, 5, 31, 0, 0, 461,
3673
+ 462, 3, 68, 34, 0, 462, 75, 1, 0, 0, 0, 463, 464, 5, 8, 0, 0, 464, 465, 5, 31, 0, 0, 465,
3674
+ 466, 5, 56, 0, 0, 466, 470, 5, 1, 0, 0, 467, 471, 3, 80, 40, 0, 468, 471, 3, 64, 32, 0,
3675
+ 469, 471, 5, 56, 0, 0, 470, 467, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 469, 1, 0, 0, 0,
3676
+ 471, 472, 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 472, 473, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0,
3677
+ 474, 475, 5, 2, 0, 0, 475, 77, 1, 0, 0, 0, 476, 477, 5, 21, 0, 0, 477, 482, 5, 69, 0, 0,
3678
+ 478, 479, 5, 32, 0, 0, 479, 481, 5, 69, 0, 0, 480, 478, 1, 0, 0, 0, 481, 484, 1, 0, 0,
3679
+ 0, 482, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 485, 1, 0, 0, 0, 484, 482, 1, 0, 0,
3680
+ 0, 485, 486, 5, 22, 0, 0, 486, 487, 3, 46, 23, 0, 487, 488, 5, 31, 0, 0, 488, 489, 3,
3681
+ 68, 34, 0, 489, 501, 1, 0, 0, 0, 490, 491, 7, 8, 0, 0, 491, 498, 5, 31, 0, 0, 492, 499,
3682
+ 3, 42, 21, 0, 493, 494, 5, 59, 0, 0, 494, 495, 3, 42, 21, 0, 495, 496, 5, 60, 0, 0, 496,
3683
+ 499, 1, 0, 0, 0, 497, 499, 3, 66, 33, 0, 498, 492, 1, 0, 0, 0, 498, 493, 1, 0, 0, 0, 498,
3684
+ 497, 1, 0, 0, 0, 499, 501, 1, 0, 0, 0, 500, 476, 1, 0, 0, 0, 500, 490, 1, 0, 0, 0, 501,
3685
+ 79, 1, 0, 0, 0, 502, 503, 3, 82, 41, 0, 503, 504, 5, 31, 0, 0, 504, 505, 3, 84, 42, 0,
3686
+ 505, 81, 1, 0, 0, 0, 506, 507, 7, 9, 0, 0, 507, 83, 1, 0, 0, 0, 508, 518, 3, 66, 33, 0,
3687
+ 509, 514, 3, 46, 23, 0, 510, 511, 5, 32, 0, 0, 511, 513, 3, 46, 23, 0, 512, 510, 1, 0,
3688
+ 0, 0, 513, 516, 1, 0, 0, 0, 514, 512, 1, 0, 0, 0, 514, 515, 1, 0, 0, 0, 515, 518, 1, 0,
3689
+ 0, 0, 516, 514, 1, 0, 0, 0, 517, 508, 1, 0, 0, 0, 517, 509, 1, 0, 0, 0, 518, 85, 1, 0, 0,
3690
+ 0, 519, 524, 5, 9, 0, 0, 520, 522, 5, 69, 0, 0, 521, 523, 3, 46, 23, 0, 522, 521, 1, 0,
3691
+ 0, 0, 522, 523, 1, 0, 0, 0, 523, 525, 1, 0, 0, 0, 524, 520, 1, 0, 0, 0, 525, 526, 1, 0,
3692
+ 0, 0, 526, 524, 1, 0, 0, 0, 526, 527, 1, 0, 0, 0, 527, 87, 1, 0, 0, 0, 528, 529, 5, 14,
3693
+ 0, 0, 529, 530, 3, 46, 23, 0, 530, 89, 1, 0, 0, 0, 531, 532, 5, 19, 0, 0, 532, 534, 5,
3694
+ 68, 0, 0, 533, 535, 3, 116, 58, 0, 534, 533, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 554,
3695
+ 1, 0, 0, 0, 536, 537, 5, 20, 0, 0, 537, 538, 5, 68, 0, 0, 538, 548, 5, 19, 0, 0, 539, 549,
3696
+ 5, 49, 0, 0, 540, 545, 5, 69, 0, 0, 541, 542, 5, 32, 0, 0, 542, 544, 5, 69, 0, 0, 543,
3697
+ 541, 1, 0, 0, 0, 544, 547, 1, 0, 0, 0, 545, 543, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546,
3698
+ 549, 1, 0, 0, 0, 547, 545, 1, 0, 0, 0, 548, 539, 1, 0, 0, 0, 548, 540, 1, 0, 0, 0, 549,
3699
+ 551, 1, 0, 0, 0, 550, 552, 3, 116, 58, 0, 551, 550, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552,
3700
+ 554, 1, 0, 0, 0, 553, 531, 1, 0, 0, 0, 553, 536, 1, 0, 0, 0, 554, 91, 1, 0, 0, 0, 555, 556,
3701
+ 7, 10, 0, 0, 556, 558, 5, 31, 0, 0, 557, 559, 3, 10, 5, 0, 558, 557, 1, 0, 0, 0, 558, 559,
3702
+ 1, 0, 0, 0, 559, 93, 1, 0, 0, 0, 560, 561, 5, 25, 0, 0, 561, 562, 3, 46, 23, 0, 562, 563,
3703
+ 5, 31, 0, 0, 563, 567, 3, 10, 5, 0, 564, 566, 3, 96, 48, 0, 565, 564, 1, 0, 0, 0, 566,
3704
+ 569, 1, 0, 0, 0, 567, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 571, 1, 0, 0, 0, 569,
3705
+ 567, 1, 0, 0, 0, 570, 572, 3, 98, 49, 0, 571, 570, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572,
3706
+ 95, 1, 0, 0, 0, 573, 574, 5, 26, 0, 0, 574, 575, 5, 25, 0, 0, 575, 576, 3, 46, 23, 0, 576,
3707
+ 577, 5, 31, 0, 0, 577, 578, 3, 10, 5, 0, 578, 97, 1, 0, 0, 0, 579, 580, 5, 26, 0, 0, 580,
3708
+ 581, 5, 31, 0, 0, 581, 582, 3, 10, 5, 0, 582, 99, 1, 0, 0, 0, 583, 584, 5, 23, 0, 0, 584,
3709
+ 585, 3, 46, 23, 0, 585, 586, 5, 31, 0, 0, 586, 587, 3, 10, 5, 0, 587, 101, 1, 0, 0, 0,
3710
+ 588, 589, 5, 21, 0, 0, 589, 594, 5, 69, 0, 0, 590, 591, 5, 32, 0, 0, 591, 593, 5, 69,
3711
+ 0, 0, 592, 590, 1, 0, 0, 0, 593, 596, 1, 0, 0, 0, 594, 592, 1, 0, 0, 0, 594, 595, 1, 0,
3712
+ 0, 0, 595, 597, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 597, 598, 5, 22, 0, 0, 598, 599, 3, 46,
3713
+ 23, 0, 599, 600, 5, 31, 0, 0, 600, 601, 3, 10, 5, 0, 601, 103, 1, 0, 0, 0, 602, 603, 5,
3714
+ 30, 0, 0, 603, 604, 5, 31, 0, 0, 604, 609, 3, 46, 23, 0, 605, 606, 5, 32, 0, 0, 606, 608,
3715
+ 3, 46, 23, 0, 607, 605, 1, 0, 0, 0, 608, 611, 1, 0, 0, 0, 609, 607, 1, 0, 0, 0, 609, 610,
3716
+ 1, 0, 0, 0, 610, 612, 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 612, 613, 5, 31, 0, 0, 613, 614,
3717
+ 3, 108, 54, 0, 614, 105, 1, 0, 0, 0, 615, 616, 7, 11, 0, 0, 616, 107, 1, 0, 0, 0, 617,
3718
+ 618, 5, 56, 0, 0, 618, 620, 5, 1, 0, 0, 619, 621, 3, 110, 55, 0, 620, 619, 1, 0, 0, 0,
3719
+ 621, 622, 1, 0, 0, 0, 622, 620, 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 624, 1, 0, 0, 0,
3720
+ 624, 625, 5, 2, 0, 0, 625, 109, 1, 0, 0, 0, 626, 630, 3, 112, 56, 0, 627, 630, 3, 114,
3721
+ 57, 0, 628, 630, 5, 56, 0, 0, 629, 626, 1, 0, 0, 0, 629, 627, 1, 0, 0, 0, 629, 628, 1,
3722
+ 0, 0, 0, 630, 111, 1, 0, 0, 0, 631, 632, 3, 106, 53, 0, 632, 633, 5, 31, 0, 0, 633, 641,
3723
+ 3, 46, 23, 0, 634, 635, 5, 32, 0, 0, 635, 636, 3, 106, 53, 0, 636, 637, 5, 31, 0, 0, 637,
3724
+ 638, 3, 46, 23, 0, 638, 640, 1, 0, 0, 0, 639, 634, 1, 0, 0, 0, 640, 643, 1, 0, 0, 0, 641,
3725
+ 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 648, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 644,
3726
+ 645, 5, 32, 0, 0, 645, 647, 3, 106, 53, 0, 646, 644, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0,
3727
+ 648, 646, 1, 0, 0, 0, 648, 649, 1, 0, 0, 0, 649, 651, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0,
3728
+ 651, 661, 5, 31, 0, 0, 652, 662, 3, 108, 54, 0, 653, 658, 3, 46, 23, 0, 654, 655, 5,
3729
+ 32, 0, 0, 655, 657, 3, 46, 23, 0, 656, 654, 1, 0, 0, 0, 657, 660, 1, 0, 0, 0, 658, 656,
3730
+ 1, 0, 0, 0, 658, 659, 1, 0, 0, 0, 659, 662, 1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 661, 652,
3731
+ 1, 0, 0, 0, 661, 653, 1, 0, 0, 0, 662, 113, 1, 0, 0, 0, 663, 664, 3, 106, 53, 0, 664, 674,
3732
+ 5, 31, 0, 0, 665, 675, 3, 108, 54, 0, 666, 671, 3, 46, 23, 0, 667, 668, 5, 32, 0, 0, 668,
3733
+ 670, 3, 46, 23, 0, 669, 667, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671,
3734
+ 672, 1, 0, 0, 0, 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 665, 1, 0, 0, 0, 674,
3735
+ 666, 1, 0, 0, 0, 675, 115, 1, 0, 0, 0, 676, 680, 5, 63, 0, 0, 677, 679, 7, 12, 0, 0, 678,
3736
+ 677, 1, 0, 0, 0, 679, 682, 1, 0, 0, 0, 680, 678, 1, 0, 0, 0, 680, 681, 1, 0, 0, 0, 681,
3737
+ 117, 1, 0, 0, 0, 682, 680, 1, 0, 0, 0, 76, 120, 122, 128, 135, 146, 153, 162, 169, 178,
3738
+ 182, 193, 198, 202, 214, 225, 233, 244, 250, 257, 261, 272, 276, 282, 290, 311,
3739
+ 316, 322, 336, 338, 342, 350, 359, 365, 372, 377, 385, 392, 396, 399, 405, 410,
3740
+ 419, 429, 431, 439, 441, 448, 458, 470, 472, 482, 498, 500, 514, 517, 522, 526,
3741
+ 534, 545, 548, 551, 553, 558, 567, 571, 594, 609, 622, 629, 641, 648, 658, 661,
3742
+ 671, 674, 680
3565
3743
  ];
3566
3744
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
3567
3745
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -3606,6 +3784,29 @@ class ScriptContext extends antlr.ParserRuleContext {
3606
3784
  }
3607
3785
  exports.ScriptContext = ScriptContext;
3608
3786
  class ExpressionContext extends antlr.ParserRuleContext {
3787
+ constructor(parent, invokingState) {
3788
+ super(parent, invokingState);
3789
+ }
3790
+ non_newline_expression() {
3791
+ return this.getRuleContext(0, Non_newline_expressionContext);
3792
+ }
3793
+ NEWLINE() {
3794
+ return this.getToken(CircuitScriptParser.NEWLINE, 0);
3795
+ }
3796
+ get ruleIndex() {
3797
+ return CircuitScriptParser.RULE_expression;
3798
+ }
3799
+ accept(visitor) {
3800
+ if (visitor.visitExpression) {
3801
+ return visitor.visitExpression(this);
3802
+ }
3803
+ else {
3804
+ return visitor.visitChildren(this);
3805
+ }
3806
+ }
3807
+ }
3808
+ exports.ExpressionContext = ExpressionContext;
3809
+ class Non_newline_expressionContext extends antlr.ParserRuleContext {
3609
3810
  constructor(parent, invokingState) {
3610
3811
  super(parent, invokingState);
3611
3812
  }
@@ -3636,22 +3837,19 @@ class ExpressionContext extends antlr.ParserRuleContext {
3636
3837
  callable_expr() {
3637
3838
  return this.getRuleContext(0, Callable_exprContext);
3638
3839
  }
3639
- NEWLINE() {
3640
- return this.getToken(CircuitScriptParser.NEWLINE, 0);
3641
- }
3642
3840
  get ruleIndex() {
3643
- return CircuitScriptParser.RULE_expression;
3841
+ return CircuitScriptParser.RULE_non_newline_expression;
3644
3842
  }
3645
3843
  accept(visitor) {
3646
- if (visitor.visitExpression) {
3647
- return visitor.visitExpression(this);
3844
+ if (visitor.visitNon_newline_expression) {
3845
+ return visitor.visitNon_newline_expression(this);
3648
3846
  }
3649
3847
  else {
3650
3848
  return visitor.visitChildren(this);
3651
3849
  }
3652
3850
  }
3653
3851
  }
3654
- exports.ExpressionContext = ExpressionContext;
3852
+ exports.Non_newline_expressionContext = Non_newline_expressionContext;
3655
3853
  class Flow_expressionsContext extends antlr.ParserRuleContext {
3656
3854
  constructor(parent, invokingState) {
3657
3855
  super(parent, invokingState);
@@ -3761,9 +3959,6 @@ class Path_blockContext extends antlr.ParserRuleContext {
3761
3959
  Colon() {
3762
3960
  return this.getToken(CircuitScriptParser.Colon, 0);
3763
3961
  }
3764
- expressions_block() {
3765
- return this.getRuleContext(0, Expressions_blockContext);
3766
- }
3767
3962
  Branch() {
3768
3963
  return this.getToken(CircuitScriptParser.Branch, 0);
3769
3964
  }
@@ -3776,6 +3971,18 @@ class Path_blockContext extends antlr.ParserRuleContext {
3776
3971
  Point() {
3777
3972
  return this.getToken(CircuitScriptParser.Point, 0);
3778
3973
  }
3974
+ expressions_block() {
3975
+ return this.getRuleContext(0, Expressions_blockContext);
3976
+ }
3977
+ at_block_expressions() {
3978
+ return this.getRuleContext(0, At_block_expressionsContext);
3979
+ }
3980
+ non_newline_expression(i) {
3981
+ if (i === undefined) {
3982
+ return this.getRuleContexts(Non_newline_expressionContext);
3983
+ }
3984
+ return this.getRuleContext(i, Non_newline_expressionContext);
3985
+ }
3779
3986
  get ruleIndex() {
3780
3987
  return CircuitScriptParser.RULE_path_block;
3781
3988
  }
@@ -4053,6 +4260,26 @@ class At_blockContext extends antlr.ParserRuleContext {
4053
4260
  at_block_header() {
4054
4261
  return this.getRuleContext(0, At_block_headerContext);
4055
4262
  }
4263
+ at_block_expressions() {
4264
+ return this.getRuleContext(0, At_block_expressionsContext);
4265
+ }
4266
+ get ruleIndex() {
4267
+ return CircuitScriptParser.RULE_at_block;
4268
+ }
4269
+ accept(visitor) {
4270
+ if (visitor.visitAt_block) {
4271
+ return visitor.visitAt_block(this);
4272
+ }
4273
+ else {
4274
+ return visitor.visitChildren(this);
4275
+ }
4276
+ }
4277
+ }
4278
+ exports.At_blockContext = At_blockContext;
4279
+ class At_block_expressionsContext extends antlr.ParserRuleContext {
4280
+ constructor(parent, invokingState) {
4281
+ super(parent, invokingState);
4282
+ }
4056
4283
  NEWLINE() {
4057
4284
  return this.getToken(CircuitScriptParser.NEWLINE, 0);
4058
4285
  }
@@ -4062,48 +4289,48 @@ class At_blockContext extends antlr.ParserRuleContext {
4062
4289
  DEDENT() {
4063
4290
  return this.getToken(CircuitScriptParser.DEDENT, 0);
4064
4291
  }
4065
- at_block_expressions(i) {
4292
+ at_block_expressions_inner(i) {
4066
4293
  if (i === undefined) {
4067
- return this.getRuleContexts(At_block_expressionsContext);
4294
+ return this.getRuleContexts(At_block_expressions_innerContext);
4068
4295
  }
4069
- return this.getRuleContext(i, At_block_expressionsContext);
4296
+ return this.getRuleContext(i, At_block_expressions_innerContext);
4070
4297
  }
4071
4298
  get ruleIndex() {
4072
- return CircuitScriptParser.RULE_at_block;
4299
+ return CircuitScriptParser.RULE_at_block_expressions;
4073
4300
  }
4074
4301
  accept(visitor) {
4075
- if (visitor.visitAt_block) {
4076
- return visitor.visitAt_block(this);
4302
+ if (visitor.visitAt_block_expressions) {
4303
+ return visitor.visitAt_block_expressions(this);
4077
4304
  }
4078
4305
  else {
4079
4306
  return visitor.visitChildren(this);
4080
4307
  }
4081
4308
  }
4082
4309
  }
4083
- exports.At_blockContext = At_blockContext;
4084
- class At_block_expressionsContext extends antlr.ParserRuleContext {
4310
+ exports.At_block_expressionsContext = At_block_expressionsContext;
4311
+ class At_block_expressions_innerContext extends antlr.ParserRuleContext {
4085
4312
  constructor(parent, invokingState) {
4086
4313
  super(parent, invokingState);
4087
4314
  }
4088
- expression() {
4089
- return this.getRuleContext(0, ExpressionContext);
4090
- }
4091
4315
  at_block_pin_expr() {
4092
4316
  return this.getRuleContext(0, At_block_pin_exprContext);
4093
4317
  }
4318
+ expression() {
4319
+ return this.getRuleContext(0, ExpressionContext);
4320
+ }
4094
4321
  get ruleIndex() {
4095
- return CircuitScriptParser.RULE_at_block_expressions;
4322
+ return CircuitScriptParser.RULE_at_block_expressions_inner;
4096
4323
  }
4097
4324
  accept(visitor) {
4098
- if (visitor.visitAt_block_expressions) {
4099
- return visitor.visitAt_block_expressions(this);
4325
+ if (visitor.visitAt_block_expressions_inner) {
4326
+ return visitor.visitAt_block_expressions_inner(this);
4100
4327
  }
4101
4328
  else {
4102
4329
  return visitor.visitChildren(this);
4103
4330
  }
4104
4331
  }
4105
4332
  }
4106
- exports.At_block_expressionsContext = At_block_expressionsContext;
4333
+ exports.At_block_expressions_innerContext = At_block_expressions_innerContext;
4107
4334
  class At_block_pin_exprContext extends antlr.ParserRuleContext {
4108
4335
  constructor(parent, invokingState) {
4109
4336
  super(parent, invokingState);
@@ -4114,15 +4341,18 @@ class At_block_pin_exprContext extends antlr.ParserRuleContext {
4114
4341
  Colon() {
4115
4342
  return this.getToken(CircuitScriptParser.Colon, 0);
4116
4343
  }
4117
- expression() {
4118
- return this.getRuleContext(0, ExpressionContext);
4119
- }
4120
4344
  expressions_block() {
4121
4345
  return this.getRuleContext(0, Expressions_blockContext);
4122
4346
  }
4123
4347
  NOT_CONNECTED() {
4124
4348
  return this.getToken(CircuitScriptParser.NOT_CONNECTED, 0);
4125
4349
  }
4350
+ non_newline_expression(i) {
4351
+ if (i === undefined) {
4352
+ return this.getRuleContexts(Non_newline_expressionContext);
4353
+ }
4354
+ return this.getRuleContext(i, Non_newline_expressionContext);
4355
+ }
4126
4356
  get ruleIndex() {
4127
4357
  return CircuitScriptParser.RULE_at_block_pin_expr;
4128
4358
  }
@@ -5374,15 +5604,15 @@ class Frame_exprContext extends antlr.ParserRuleContext {
5374
5604
  Colon() {
5375
5605
  return this.getToken(CircuitScriptParser.Colon, 0);
5376
5606
  }
5377
- expressions_block() {
5378
- return this.getRuleContext(0, Expressions_blockContext);
5379
- }
5380
5607
  Frame() {
5381
5608
  return this.getToken(CircuitScriptParser.Frame, 0);
5382
5609
  }
5383
5610
  Sheet() {
5384
5611
  return this.getToken(CircuitScriptParser.Sheet, 0);
5385
5612
  }
5613
+ expressions_block() {
5614
+ return this.getRuleContext(0, Expressions_blockContext);
5615
+ }
5386
5616
  get ruleIndex() {
5387
5617
  return CircuitScriptParser.RULE_frame_expr;
5388
5618
  }