circuitscript 0.5.7 → 0.6.1

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