circuitscript 0.1.29 → 0.1.32

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 (71) hide show
  1. package/dist/cjs/BaseVisitor.js +185 -22
  2. package/dist/cjs/RefdesAnnotationVisitor.js +27 -10
  3. package/dist/cjs/antlr/CircuitScriptLexer.js +241 -236
  4. package/dist/cjs/antlr/CircuitScriptParser.js +1197 -901
  5. package/dist/cjs/builtinMethods.js +6 -2
  6. package/dist/cjs/draw_symbols.js +38 -34
  7. package/dist/cjs/environment.js +28 -4
  8. package/dist/cjs/execute.js +195 -125
  9. package/dist/cjs/globals.js +6 -1
  10. package/dist/cjs/graph.js +14 -12
  11. package/dist/cjs/helpers.js +90 -17
  12. package/dist/cjs/layout.js +50 -25
  13. package/dist/cjs/main.js +16 -14
  14. package/dist/cjs/objects/ClassComponent.js +199 -30
  15. package/dist/cjs/objects/ExecutionScope.js +9 -0
  16. package/dist/cjs/objects/types.js +25 -2
  17. package/dist/cjs/parser.js +6 -2
  18. package/dist/cjs/regenerate-tests.js +3 -3
  19. package/dist/cjs/render.js +5 -3
  20. package/dist/cjs/rules-check/no-connect-on-connected-pin.js +9 -8
  21. package/dist/cjs/rules-check/rules.js +7 -2
  22. package/dist/cjs/rules-check/unconnected-pins.js +10 -8
  23. package/dist/cjs/utils.js +2 -1
  24. package/dist/cjs/validate/SymbolTable.js +7 -1
  25. package/dist/cjs/validate/SymbolValidatorVisitor.js +54 -17
  26. package/dist/cjs/visitor.js +299 -238
  27. package/dist/esm/BaseVisitor.js +187 -24
  28. package/dist/esm/RefdesAnnotationVisitor.js +27 -10
  29. package/dist/esm/antlr/CircuitScriptLexer.js +241 -236
  30. package/dist/esm/antlr/CircuitScriptParser.js +1196 -899
  31. package/dist/esm/antlr/CircuitScriptVisitor.js +4 -1
  32. package/dist/esm/builtinMethods.js +7 -3
  33. package/dist/esm/draw_symbols.js +38 -34
  34. package/dist/esm/environment.js +25 -1
  35. package/dist/esm/execute.js +197 -127
  36. package/dist/esm/globals.js +4 -0
  37. package/dist/esm/graph.js +14 -12
  38. package/dist/esm/helpers.js +91 -18
  39. package/dist/esm/layout.js +51 -26
  40. package/dist/esm/main.js +16 -14
  41. package/dist/esm/objects/ClassComponent.js +201 -30
  42. package/dist/esm/objects/ExecutionScope.js +9 -0
  43. package/dist/esm/objects/types.js +33 -1
  44. package/dist/esm/parser.js +6 -2
  45. package/dist/esm/regenerate-tests.js +3 -3
  46. package/dist/esm/render.js +5 -3
  47. package/dist/esm/rules-check/no-connect-on-connected-pin.js +9 -8
  48. package/dist/esm/rules-check/rules.js +7 -2
  49. package/dist/esm/rules-check/unconnected-pins.js +10 -8
  50. package/dist/esm/utils.js +2 -1
  51. package/dist/esm/validate/SymbolTable.js +5 -0
  52. package/dist/esm/validate/SymbolValidatorVisitor.js +53 -16
  53. package/dist/esm/visitor.js +201 -137
  54. package/dist/types/BaseVisitor.d.ts +27 -10
  55. package/dist/types/RefdesAnnotationVisitor.d.ts +2 -0
  56. package/dist/types/antlr/CircuitScriptLexer.d.ts +43 -42
  57. package/dist/types/antlr/CircuitScriptParser.d.ts +102 -58
  58. package/dist/types/antlr/CircuitScriptVisitor.d.ts +8 -2
  59. package/dist/types/environment.d.ts +8 -1
  60. package/dist/types/execute.d.ts +6 -3
  61. package/dist/types/globals.d.ts +4 -0
  62. package/dist/types/graph.d.ts +2 -2
  63. package/dist/types/helpers.d.ts +2 -1
  64. package/dist/types/layout.d.ts +5 -4
  65. package/dist/types/objects/ClassComponent.d.ts +34 -9
  66. package/dist/types/objects/ExecutionScope.d.ts +3 -1
  67. package/dist/types/objects/types.d.ts +40 -3
  68. package/dist/types/validate/SymbolTable.d.ts +1 -0
  69. package/dist/types/validate/SymbolValidatorVisitor.d.ts +6 -6
  70. package/dist/types/visitor.d.ts +10 -2
  71. package/package.json +4 -1
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Function_exprContext = exports.Function_def_exprContext = exports.Value_exprContext = exports.Unary_operatorContext = exports.Binary_operatorContext = exports.RoundedBracketsExprContext = exports.BinaryOperatorExprContext = exports.ValueAtomExprContext = exports.UnaryOperatorExprContext = exports.DataExprContext = exports.LogicalOperatorExprContext = exports.MultiplyExprContext = exports.AdditionExprContext = exports.FunctionCallExprContext = exports.ArrayIndexExprContext = exports.ArrayExprContext = exports.Data_exprContext = exports.Double_dot_property_set_exprContext = exports.Property_set_exprContext = exports.ParametersContext = exports.Keyword_assignment_exprContext = exports.Operator_assignment_exprContext = exports.Assignment_exprContext = exports.At_block_pin_expression_complexContext = exports.At_block_pin_expression_simpleContext = exports.At_block_pin_exprContext = exports.At_block_headerContext = exports.At_block_expressionsContext = exports.At_blockContext = exports.At_to_multiple_line_expr_to_pinContext = exports.At_to_multiple_line_exprContext = exports.At_to_multiple_exprContext = exports.To_component_exprContext = exports.At_component_exprContext = exports.Pin_select_expr2Context = exports.Component_select_exprContext = exports.Add_component_exprContext = exports.Data_expr_with_assignmentContext = exports.Component_modifier_exprContext = exports.Pin_select_exprContext = exports.Assignment_expr2Context = exports.Property_set_expr2Context = exports.Path_blockContext = exports.Expressions_blockContext = exports.Graph_linear_expressionContext = 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_key_only_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_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_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 = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_expr2Context = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
27
+ exports.Annotation_comment_exprContext = exports.Part_value_exprContext = exports.Part_condition_key_only_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_annotation_exprContext = exports.Import_simpleContext = exports.Import_all_simpleContext = exports.Import_specificContext = exports.Import_exprContext = exports.Point_exprContext = exports.Array_exprContext = exports.Wire_exprContext = exports.Wire_expr_direction_onlyContext = exports.Wire_expr_direction_valueContext = exports.Wire_atom_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 = exports.Nested_properties_innerContext = exports.Create_module_exprContext = exports.Create_graphic_exprContext = exports.Graphic_expressions_blockContext = exports.Create_component_exprContext = exports.Property_block_exprContext = exports.Function_return_exprContext = exports.Net_namespace_exprContext = exports.Function_call_exprContext = exports.Trailer_expr2Context = exports.Trailer_exprContext = exports.Atom_exprContext = exports.Function_args_exprContext = void 0;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -47,24 +47,25 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 152;
50
+ this.state = 154;
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 = 150;
56
+ this.state = 152;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
+ case CircuitScriptParser.From:
60
61
  {
61
- this.state = 148;
62
+ this.state = 150;
62
63
  this.import_expr();
63
64
  }
64
65
  break;
65
66
  case CircuitScriptParser.NEWLINE:
66
67
  {
67
- this.state = 149;
68
+ this.state = 151;
68
69
  this.match(CircuitScriptParser.NEWLINE);
69
70
  }
70
71
  break;
@@ -73,16 +74,16 @@ class CircuitScriptParser extends antlr.Parser {
73
74
  }
74
75
  }
75
76
  }
76
- this.state = 154;
77
+ this.state = 156;
77
78
  this.errorHandler.sync(this);
78
79
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
79
80
  }
80
- this.state = 157;
81
+ this.state = 159;
81
82
  this.errorHandler.sync(this);
82
83
  _la = this.tokenStream.LA(1);
83
84
  do {
84
85
  {
85
- this.state = 157;
86
+ this.state = 159;
86
87
  this.errorHandler.sync(this);
87
88
  switch (this.tokenStream.LA(1)) {
88
89
  case CircuitScriptParser.T__3:
@@ -98,6 +99,7 @@ class CircuitScriptParser extends antlr.Parser {
98
99
  case CircuitScriptParser.Parallel:
99
100
  case CircuitScriptParser.Define:
100
101
  case CircuitScriptParser.Import:
102
+ case CircuitScriptParser.From:
101
103
  case CircuitScriptParser.For:
102
104
  case CircuitScriptParser.While:
103
105
  case CircuitScriptParser.Continue:
@@ -109,13 +111,13 @@ class CircuitScriptParser extends antlr.Parser {
109
111
  case CircuitScriptParser.ANNOTATION_START:
110
112
  case CircuitScriptParser.ID:
111
113
  {
112
- this.state = 155;
114
+ this.state = 157;
113
115
  this.expression();
114
116
  }
115
117
  break;
116
118
  case CircuitScriptParser.NEWLINE:
117
119
  {
118
- this.state = 156;
120
+ this.state = 158;
119
121
  this.match(CircuitScriptParser.NEWLINE);
120
122
  }
121
123
  break;
@@ -123,11 +125,11 @@ class CircuitScriptParser extends antlr.Parser {
123
125
  throw new antlr.NoViableAltException(this);
124
126
  }
125
127
  }
126
- this.state = 159;
128
+ this.state = 161;
127
129
  this.errorHandler.sync(this);
128
130
  _la = this.tokenStream.LA(1);
129
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
130
- this.state = 161;
131
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
132
+ this.state = 163;
131
133
  this.match(CircuitScriptParser.EOF);
132
134
  }
133
135
  }
@@ -149,104 +151,104 @@ class CircuitScriptParser extends antlr.Parser {
149
151
  let localContext = new ExpressionContext(this.context, this.state);
150
152
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
151
153
  try {
152
- this.state = 177;
154
+ this.state = 179;
153
155
  this.errorHandler.sync(this);
154
156
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
155
157
  case 1:
156
158
  this.enterOuterAlt(localContext, 1);
157
159
  {
158
- this.state = 163;
160
+ this.state = 165;
159
161
  this.graph_expressions();
160
162
  }
161
163
  break;
162
164
  case 2:
163
165
  this.enterOuterAlt(localContext, 2);
164
166
  {
165
- this.state = 164;
167
+ this.state = 166;
166
168
  this.assignment_expr();
167
169
  }
168
170
  break;
169
171
  case 3:
170
172
  this.enterOuterAlt(localContext, 3);
171
173
  {
172
- this.state = 165;
174
+ this.state = 167;
173
175
  this.operator_assignment_expr();
174
176
  }
175
177
  break;
176
178
  case 4:
177
179
  this.enterOuterAlt(localContext, 4);
178
180
  {
179
- this.state = 166;
181
+ this.state = 168;
180
182
  this.property_set_expr();
181
183
  }
182
184
  break;
183
185
  case 5:
184
186
  this.enterOuterAlt(localContext, 5);
185
187
  {
186
- this.state = 167;
188
+ this.state = 169;
187
189
  this.property_set_expr2();
188
190
  }
189
191
  break;
190
192
  case 6:
191
193
  this.enterOuterAlt(localContext, 6);
192
194
  {
193
- this.state = 168;
195
+ this.state = 170;
194
196
  this.double_dot_property_set_expr();
195
197
  }
196
198
  break;
197
199
  case 7:
198
200
  this.enterOuterAlt(localContext, 7);
199
201
  {
200
- this.state = 169;
202
+ this.state = 171;
201
203
  this.function_def_expr();
202
204
  }
203
205
  break;
204
206
  case 8:
205
207
  this.enterOuterAlt(localContext, 8);
206
208
  {
207
- this.state = 170;
209
+ this.state = 172;
208
210
  this.function_call_expr();
209
211
  }
210
212
  break;
211
213
  case 9:
212
214
  this.enterOuterAlt(localContext, 9);
213
215
  {
214
- this.state = 171;
216
+ this.state = 173;
215
217
  this.import_expr();
216
218
  }
217
219
  break;
218
220
  case 10:
219
221
  this.enterOuterAlt(localContext, 10);
220
222
  {
221
- this.state = 172;
223
+ this.state = 174;
222
224
  this.atom_expr();
223
225
  }
224
226
  break;
225
227
  case 11:
226
228
  this.enterOuterAlt(localContext, 11);
227
229
  {
228
- this.state = 173;
230
+ this.state = 175;
229
231
  this.frame_expr();
230
232
  }
231
233
  break;
232
234
  case 12:
233
235
  this.enterOuterAlt(localContext, 12);
234
236
  {
235
- this.state = 174;
237
+ this.state = 176;
236
238
  this.flow_expressions();
237
239
  }
238
240
  break;
239
241
  case 13:
240
242
  this.enterOuterAlt(localContext, 13);
241
243
  {
242
- this.state = 175;
244
+ this.state = 177;
243
245
  this.annotation_comment_expr();
244
246
  }
245
247
  break;
246
248
  case 14:
247
249
  this.enterOuterAlt(localContext, 14);
248
250
  {
249
- this.state = 176;
251
+ this.state = 178;
250
252
  this.part_set_expr();
251
253
  }
252
254
  break;
@@ -270,41 +272,41 @@ class CircuitScriptParser extends antlr.Parser {
270
272
  let localContext = new Flow_expressionsContext(this.context, this.state);
271
273
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
272
274
  try {
273
- this.state = 184;
275
+ this.state = 186;
274
276
  this.errorHandler.sync(this);
275
277
  switch (this.tokenStream.LA(1)) {
276
278
  case CircuitScriptParser.If:
277
279
  this.enterOuterAlt(localContext, 1);
278
280
  {
279
- this.state = 179;
281
+ this.state = 181;
280
282
  this.if_expr();
281
283
  }
282
284
  break;
283
285
  case CircuitScriptParser.While:
284
286
  this.enterOuterAlt(localContext, 2);
285
287
  {
286
- this.state = 180;
288
+ this.state = 182;
287
289
  this.while_expr();
288
290
  }
289
291
  break;
290
292
  case CircuitScriptParser.For:
291
293
  this.enterOuterAlt(localContext, 3);
292
294
  {
293
- this.state = 181;
295
+ this.state = 183;
294
296
  this.for_expr();
295
297
  }
296
298
  break;
297
299
  case CircuitScriptParser.Break:
298
300
  this.enterOuterAlt(localContext, 4);
299
301
  {
300
- this.state = 182;
302
+ this.state = 184;
301
303
  this.match(CircuitScriptParser.Break);
302
304
  }
303
305
  break;
304
306
  case CircuitScriptParser.Continue:
305
307
  this.enterOuterAlt(localContext, 5);
306
308
  {
307
- this.state = 183;
309
+ this.state = 185;
308
310
  this.match(CircuitScriptParser.Continue);
309
311
  }
310
312
  break;
@@ -330,20 +332,20 @@ class CircuitScriptParser extends antlr.Parser {
330
332
  let localContext = new Graph_expressionsContext(this.context, this.state);
331
333
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
332
334
  try {
333
- this.state = 188;
335
+ this.state = 190;
334
336
  this.errorHandler.sync(this);
335
337
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
336
338
  case 1:
337
339
  this.enterOuterAlt(localContext, 1);
338
340
  {
339
- this.state = 186;
341
+ this.state = 188;
340
342
  this.graph_linear_expression();
341
343
  }
342
344
  break;
343
345
  case 2:
344
346
  this.enterOuterAlt(localContext, 2);
345
347
  {
346
- this.state = 187;
348
+ this.state = 189;
347
349
  this.path_block();
348
350
  }
349
351
  break;
@@ -367,48 +369,48 @@ class CircuitScriptParser extends antlr.Parser {
367
369
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
368
370
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
369
371
  try {
370
- this.state = 196;
372
+ this.state = 198;
371
373
  this.errorHandler.sync(this);
372
374
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
373
375
  case 1:
374
376
  this.enterOuterAlt(localContext, 1);
375
377
  {
376
- this.state = 190;
378
+ this.state = 192;
377
379
  this.add_component_expr();
378
380
  }
379
381
  break;
380
382
  case 2:
381
383
  this.enterOuterAlt(localContext, 2);
382
384
  {
383
- this.state = 191;
385
+ this.state = 193;
384
386
  this.to_component_expr();
385
387
  }
386
388
  break;
387
389
  case 3:
388
390
  this.enterOuterAlt(localContext, 3);
389
391
  {
390
- this.state = 192;
392
+ this.state = 194;
391
393
  this.at_component_expr();
392
394
  }
393
395
  break;
394
396
  case 4:
395
397
  this.enterOuterAlt(localContext, 4);
396
398
  {
397
- this.state = 193;
399
+ this.state = 195;
398
400
  this.at_block();
399
401
  }
400
402
  break;
401
403
  case 5:
402
404
  this.enterOuterAlt(localContext, 5);
403
405
  {
404
- this.state = 194;
406
+ this.state = 196;
405
407
  this.wire_expr();
406
408
  }
407
409
  break;
408
410
  case 6:
409
411
  this.enterOuterAlt(localContext, 6);
410
412
  {
411
- this.state = 195;
413
+ this.state = 197;
412
414
  this.point_expr();
413
415
  }
414
416
  break;
@@ -435,21 +437,21 @@ class CircuitScriptParser extends antlr.Parser {
435
437
  try {
436
438
  this.enterOuterAlt(localContext, 1);
437
439
  {
438
- this.state = 198;
440
+ this.state = 200;
439
441
  this.match(CircuitScriptParser.NEWLINE);
440
- this.state = 199;
442
+ this.state = 201;
441
443
  this.match(CircuitScriptParser.INDENT);
442
- this.state = 202;
444
+ this.state = 204;
443
445
  this.errorHandler.sync(this);
444
446
  _la = this.tokenStream.LA(1);
445
447
  do {
446
448
  {
447
- this.state = 202;
449
+ this.state = 204;
448
450
  this.errorHandler.sync(this);
449
451
  switch (this.tokenStream.LA(1)) {
450
452
  case CircuitScriptParser.NEWLINE:
451
453
  {
452
- this.state = 200;
454
+ this.state = 202;
453
455
  this.match(CircuitScriptParser.NEWLINE);
454
456
  }
455
457
  break;
@@ -466,6 +468,7 @@ class CircuitScriptParser extends antlr.Parser {
466
468
  case CircuitScriptParser.Parallel:
467
469
  case CircuitScriptParser.Define:
468
470
  case CircuitScriptParser.Import:
471
+ case CircuitScriptParser.From:
469
472
  case CircuitScriptParser.For:
470
473
  case CircuitScriptParser.While:
471
474
  case CircuitScriptParser.Continue:
@@ -477,7 +480,7 @@ class CircuitScriptParser extends antlr.Parser {
477
480
  case CircuitScriptParser.ANNOTATION_START:
478
481
  case CircuitScriptParser.ID:
479
482
  {
480
- this.state = 201;
483
+ this.state = 203;
481
484
  this.expression();
482
485
  }
483
486
  break;
@@ -485,11 +488,11 @@ class CircuitScriptParser extends antlr.Parser {
485
488
  throw new antlr.NoViableAltException(this);
486
489
  }
487
490
  }
488
- this.state = 204;
491
+ this.state = 206;
489
492
  this.errorHandler.sync(this);
490
493
  _la = this.tokenStream.LA(1);
491
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
492
- this.state = 206;
494
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
495
+ this.state = 208;
493
496
  this.match(CircuitScriptParser.DEDENT);
494
497
  }
495
498
  }
@@ -514,7 +517,7 @@ class CircuitScriptParser extends antlr.Parser {
514
517
  try {
515
518
  this.enterOuterAlt(localContext, 1);
516
519
  {
517
- this.state = 208;
520
+ this.state = 210;
518
521
  _la = this.tokenStream.LA(1);
519
522
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 7341056) !== 0))) {
520
523
  this.errorHandler.recoverInline(this);
@@ -523,9 +526,9 @@ class CircuitScriptParser extends antlr.Parser {
523
526
  this.errorHandler.reportMatch(this);
524
527
  this.consume();
525
528
  }
526
- this.state = 209;
529
+ this.state = 211;
527
530
  this.match(CircuitScriptParser.T__0);
528
- this.state = 210;
531
+ this.state = 212;
529
532
  this.expressions_block();
530
533
  }
531
534
  }
@@ -550,32 +553,32 @@ class CircuitScriptParser extends antlr.Parser {
550
553
  try {
551
554
  this.enterOuterAlt(localContext, 1);
552
555
  {
553
- this.state = 212;
556
+ this.state = 214;
554
557
  this.atom_expr();
555
- this.state = 213;
558
+ this.state = 215;
556
559
  this.match(CircuitScriptParser.T__0);
557
- this.state = 214;
560
+ this.state = 216;
558
561
  this.match(CircuitScriptParser.NEWLINE);
559
- this.state = 215;
562
+ this.state = 217;
560
563
  this.match(CircuitScriptParser.INDENT);
561
- this.state = 218;
564
+ this.state = 220;
562
565
  this.errorHandler.sync(this);
563
566
  _la = this.tokenStream.LA(1);
564
567
  do {
565
568
  {
566
- this.state = 218;
569
+ this.state = 220;
567
570
  this.errorHandler.sync(this);
568
571
  switch (this.tokenStream.LA(1)) {
569
572
  case CircuitScriptParser.NEWLINE:
570
573
  {
571
- this.state = 216;
574
+ this.state = 218;
572
575
  this.match(CircuitScriptParser.NEWLINE);
573
576
  }
574
577
  break;
575
578
  case CircuitScriptParser.ID:
576
579
  case CircuitScriptParser.INTEGER_VALUE:
577
580
  {
578
- this.state = 217;
581
+ this.state = 219;
579
582
  this.assignment_expr2();
580
583
  }
581
584
  break;
@@ -583,11 +586,11 @@ class CircuitScriptParser extends antlr.Parser {
583
586
  throw new antlr.NoViableAltException(this);
584
587
  }
585
588
  }
586
- this.state = 220;
589
+ this.state = 222;
587
590
  this.errorHandler.sync(this);
588
591
  _la = this.tokenStream.LA(1);
589
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 259) !== 0));
590
- this.state = 222;
592
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 259) !== 0));
593
+ this.state = 224;
591
594
  this.match(CircuitScriptParser.DEDENT);
592
595
  }
593
596
  }
@@ -612,18 +615,18 @@ class CircuitScriptParser extends antlr.Parser {
612
615
  try {
613
616
  this.enterOuterAlt(localContext, 1);
614
617
  {
615
- this.state = 224;
618
+ this.state = 226;
616
619
  _la = this.tokenStream.LA(1);
617
- if (!(_la === 58 || _la === 59)) {
620
+ if (!(_la === 59 || _la === 60)) {
618
621
  this.errorHandler.recoverInline(this);
619
622
  }
620
623
  else {
621
624
  this.errorHandler.reportMatch(this);
622
625
  this.consume();
623
626
  }
624
- this.state = 225;
627
+ this.state = 227;
625
628
  this.match(CircuitScriptParser.T__0);
626
- this.state = 226;
629
+ this.state = 228;
627
630
  this.value_expr();
628
631
  }
629
632
  }
@@ -647,9 +650,9 @@ class CircuitScriptParser extends antlr.Parser {
647
650
  try {
648
651
  this.enterOuterAlt(localContext, 1);
649
652
  {
650
- this.state = 228;
653
+ this.state = 230;
651
654
  this.match(CircuitScriptParser.Pin);
652
- this.state = 229;
655
+ this.state = 231;
653
656
  this.data_expr(0);
654
657
  }
655
658
  }
@@ -673,11 +676,11 @@ class CircuitScriptParser extends antlr.Parser {
673
676
  try {
674
677
  this.enterOuterAlt(localContext, 1);
675
678
  {
676
- this.state = 231;
679
+ this.state = 233;
677
680
  this.match(CircuitScriptParser.ID);
678
- this.state = 232;
681
+ this.state = 234;
679
682
  this.match(CircuitScriptParser.T__0);
680
- this.state = 235;
683
+ this.state = 237;
681
684
  this.errorHandler.sync(this);
682
685
  switch (this.tokenStream.LA(1)) {
683
686
  case CircuitScriptParser.Minus:
@@ -688,13 +691,13 @@ class CircuitScriptParser extends antlr.Parser {
688
691
  case CircuitScriptParser.STRING_VALUE:
689
692
  case CircuitScriptParser.PERCENTAGE_VALUE:
690
693
  {
691
- this.state = 233;
694
+ this.state = 235;
692
695
  this.value_expr();
693
696
  }
694
697
  break;
695
698
  case CircuitScriptParser.ID:
696
699
  {
697
- this.state = 234;
700
+ this.state = 236;
698
701
  this.match(CircuitScriptParser.ID);
699
702
  }
700
703
  break;
@@ -725,44 +728,44 @@ class CircuitScriptParser extends antlr.Parser {
725
728
  let alternative;
726
729
  this.enterOuterAlt(localContext, 1);
727
730
  {
728
- this.state = 239;
731
+ this.state = 241;
729
732
  this.errorHandler.sync(this);
730
733
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
731
734
  case 1:
732
735
  {
733
- this.state = 237;
736
+ this.state = 239;
734
737
  this.data_expr(0);
735
738
  }
736
739
  break;
737
740
  case 2:
738
741
  {
739
- this.state = 238;
742
+ this.state = 240;
740
743
  this.assignment_expr();
741
744
  }
742
745
  break;
743
746
  }
744
- this.state = 244;
747
+ this.state = 246;
745
748
  this.errorHandler.sync(this);
746
749
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
747
750
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
748
751
  if (alternative === 1) {
749
752
  {
750
753
  {
751
- this.state = 241;
754
+ this.state = 243;
752
755
  this.component_modifier_expr();
753
756
  }
754
757
  }
755
758
  }
756
- this.state = 246;
759
+ this.state = 248;
757
760
  this.errorHandler.sync(this);
758
761
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
759
762
  }
760
- this.state = 248;
763
+ this.state = 250;
761
764
  this.errorHandler.sync(this);
762
765
  _la = this.tokenStream.LA(1);
763
766
  if (_la === 16) {
764
767
  {
765
- this.state = 247;
768
+ this.state = 249;
766
769
  this.pin_select_expr();
767
770
  }
768
771
  }
@@ -788,9 +791,9 @@ class CircuitScriptParser extends antlr.Parser {
788
791
  try {
789
792
  this.enterOuterAlt(localContext, 1);
790
793
  {
791
- this.state = 250;
794
+ this.state = 252;
792
795
  this.match(CircuitScriptParser.Add);
793
- this.state = 251;
796
+ this.state = 253;
794
797
  this.data_expr_with_assignment();
795
798
  }
796
799
  }
@@ -812,7 +815,7 @@ class CircuitScriptParser extends antlr.Parser {
812
815
  let localContext = new Component_select_exprContext(this.context, this.state);
813
816
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
814
817
  try {
815
- this.state = 256;
818
+ this.state = 258;
816
819
  this.errorHandler.sync(this);
817
820
  switch (this.tokenStream.LA(1)) {
818
821
  case CircuitScriptParser.T__4:
@@ -831,21 +834,21 @@ class CircuitScriptParser extends antlr.Parser {
831
834
  case CircuitScriptParser.PERCENTAGE_VALUE:
832
835
  this.enterOuterAlt(localContext, 1);
833
836
  {
834
- this.state = 253;
837
+ this.state = 255;
835
838
  this.data_expr_with_assignment();
836
839
  }
837
840
  break;
838
841
  case CircuitScriptParser.Pin:
839
842
  this.enterOuterAlt(localContext, 2);
840
843
  {
841
- this.state = 254;
844
+ this.state = 256;
842
845
  this.pin_select_expr();
843
846
  }
844
847
  break;
845
848
  case CircuitScriptParser.Point:
846
849
  this.enterOuterAlt(localContext, 3);
847
850
  {
848
- this.state = 255;
851
+ this.state = 257;
849
852
  this.match(CircuitScriptParser.Point);
850
853
  }
851
854
  break;
@@ -874,9 +877,9 @@ class CircuitScriptParser extends antlr.Parser {
874
877
  try {
875
878
  this.enterOuterAlt(localContext, 1);
876
879
  {
877
- this.state = 258;
880
+ this.state = 260;
878
881
  _la = this.tokenStream.LA(1);
879
- if (!(_la === 59 || _la === 62)) {
882
+ if (!(_la === 60 || _la === 63)) {
880
883
  this.errorHandler.recoverInline(this);
881
884
  }
882
885
  else {
@@ -905,9 +908,9 @@ class CircuitScriptParser extends antlr.Parser {
905
908
  try {
906
909
  this.enterOuterAlt(localContext, 1);
907
910
  {
908
- this.state = 260;
911
+ this.state = 262;
909
912
  this.match(CircuitScriptParser.At);
910
- this.state = 261;
913
+ this.state = 263;
911
914
  this.component_select_expr();
912
915
  }
913
916
  }
@@ -932,24 +935,24 @@ class CircuitScriptParser extends antlr.Parser {
932
935
  try {
933
936
  this.enterOuterAlt(localContext, 1);
934
937
  {
935
- this.state = 263;
938
+ this.state = 265;
936
939
  this.match(CircuitScriptParser.To);
937
940
  {
938
- this.state = 264;
941
+ this.state = 266;
939
942
  this.component_select_expr();
940
- this.state = 269;
943
+ this.state = 271;
941
944
  this.errorHandler.sync(this);
942
945
  _la = this.tokenStream.LA(1);
943
946
  while (_la === 2) {
944
947
  {
945
948
  {
946
- this.state = 265;
949
+ this.state = 267;
947
950
  this.match(CircuitScriptParser.T__1);
948
- this.state = 266;
951
+ this.state = 268;
949
952
  this.component_select_expr();
950
953
  }
951
954
  }
952
- this.state = 271;
955
+ this.state = 273;
953
956
  this.errorHandler.sync(this);
954
957
  _la = this.tokenStream.LA(1);
955
958
  }
@@ -977,54 +980,54 @@ class CircuitScriptParser extends antlr.Parser {
977
980
  try {
978
981
  this.enterOuterAlt(localContext, 1);
979
982
  {
980
- this.state = 272;
983
+ this.state = 274;
981
984
  this.match(CircuitScriptParser.At);
982
- this.state = 273;
985
+ this.state = 275;
983
986
  this.component_select_expr();
984
- this.state = 274;
987
+ this.state = 276;
985
988
  this.match(CircuitScriptParser.To);
986
- this.state = 275;
989
+ this.state = 277;
987
990
  this.component_select_expr();
988
- this.state = 280;
991
+ this.state = 282;
989
992
  this.errorHandler.sync(this);
990
993
  _la = this.tokenStream.LA(1);
991
994
  while (_la === 2) {
992
995
  {
993
996
  {
994
- this.state = 276;
997
+ this.state = 278;
995
998
  this.match(CircuitScriptParser.T__1);
996
- this.state = 277;
999
+ this.state = 279;
997
1000
  this.component_select_expr();
998
1001
  }
999
1002
  }
1000
- this.state = 282;
1003
+ this.state = 284;
1001
1004
  this.errorHandler.sync(this);
1002
1005
  _la = this.tokenStream.LA(1);
1003
1006
  }
1004
- this.state = 283;
1007
+ this.state = 285;
1005
1008
  this.match(CircuitScriptParser.T__0);
1006
- this.state = 284;
1009
+ this.state = 286;
1007
1010
  this.match(CircuitScriptParser.NEWLINE);
1008
- this.state = 285;
1011
+ this.state = 287;
1009
1012
  this.match(CircuitScriptParser.INDENT);
1010
- this.state = 288;
1013
+ this.state = 290;
1011
1014
  this.errorHandler.sync(this);
1012
1015
  _la = this.tokenStream.LA(1);
1013
1016
  do {
1014
1017
  {
1015
- this.state = 288;
1018
+ this.state = 290;
1016
1019
  this.errorHandler.sync(this);
1017
1020
  switch (this.tokenStream.LA(1)) {
1018
1021
  case CircuitScriptParser.NEWLINE:
1019
1022
  {
1020
- this.state = 286;
1023
+ this.state = 288;
1021
1024
  this.match(CircuitScriptParser.NEWLINE);
1022
1025
  }
1023
1026
  break;
1024
1027
  case CircuitScriptParser.INTEGER_VALUE:
1025
1028
  case CircuitScriptParser.STRING_VALUE:
1026
1029
  {
1027
- this.state = 287;
1030
+ this.state = 289;
1028
1031
  this.at_to_multiple_line_expr();
1029
1032
  }
1030
1033
  break;
@@ -1032,11 +1035,11 @@ class CircuitScriptParser extends antlr.Parser {
1032
1035
  throw new antlr.NoViableAltException(this);
1033
1036
  }
1034
1037
  }
1035
- this.state = 290;
1038
+ this.state = 292;
1036
1039
  this.errorHandler.sync(this);
1037
1040
  _la = this.tokenStream.LA(1);
1038
- } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 137) !== 0));
1039
- this.state = 292;
1041
+ } while (((((_la - 60)) & ~0x1F) === 0 && ((1 << (_la - 60)) & 137) !== 0));
1042
+ this.state = 294;
1040
1043
  this.match(CircuitScriptParser.DEDENT);
1041
1044
  }
1042
1045
  }
@@ -1061,25 +1064,25 @@ class CircuitScriptParser extends antlr.Parser {
1061
1064
  try {
1062
1065
  this.enterOuterAlt(localContext, 1);
1063
1066
  {
1064
- this.state = 294;
1067
+ this.state = 296;
1065
1068
  this.pin_select_expr2();
1066
- this.state = 295;
1069
+ this.state = 297;
1067
1070
  this.match(CircuitScriptParser.T__0);
1068
- this.state = 296;
1071
+ this.state = 298;
1069
1072
  this.at_to_multiple_line_expr_to_pin();
1070
- this.state = 301;
1073
+ this.state = 303;
1071
1074
  this.errorHandler.sync(this);
1072
1075
  _la = this.tokenStream.LA(1);
1073
1076
  while (_la === 2) {
1074
1077
  {
1075
1078
  {
1076
- this.state = 297;
1079
+ this.state = 299;
1077
1080
  this.match(CircuitScriptParser.T__1);
1078
- this.state = 298;
1081
+ this.state = 300;
1079
1082
  this.at_to_multiple_line_expr_to_pin();
1080
1083
  }
1081
1084
  }
1082
- this.state = 303;
1085
+ this.state = 305;
1083
1086
  this.errorHandler.sync(this);
1084
1087
  _la = this.tokenStream.LA(1);
1085
1088
  }
@@ -1106,9 +1109,9 @@ class CircuitScriptParser extends antlr.Parser {
1106
1109
  try {
1107
1110
  this.enterOuterAlt(localContext, 1);
1108
1111
  {
1109
- this.state = 304;
1112
+ this.state = 306;
1110
1113
  _la = this.tokenStream.LA(1);
1111
- if (!(_la === 56 || _la === 59)) {
1114
+ if (!(_la === 57 || _la === 60)) {
1112
1115
  this.errorHandler.recoverInline(this);
1113
1116
  }
1114
1117
  else {
@@ -1138,23 +1141,23 @@ class CircuitScriptParser extends antlr.Parser {
1138
1141
  try {
1139
1142
  this.enterOuterAlt(localContext, 1);
1140
1143
  {
1141
- this.state = 306;
1144
+ this.state = 308;
1142
1145
  this.at_block_header();
1143
- this.state = 307;
1146
+ this.state = 309;
1144
1147
  this.match(CircuitScriptParser.NEWLINE);
1145
- this.state = 308;
1148
+ this.state = 310;
1146
1149
  this.match(CircuitScriptParser.INDENT);
1147
- this.state = 311;
1150
+ this.state = 313;
1148
1151
  this.errorHandler.sync(this);
1149
1152
  _la = this.tokenStream.LA(1);
1150
1153
  do {
1151
1154
  {
1152
- this.state = 311;
1155
+ this.state = 313;
1153
1156
  this.errorHandler.sync(this);
1154
1157
  switch (this.tokenStream.LA(1)) {
1155
1158
  case CircuitScriptParser.NEWLINE:
1156
1159
  {
1157
- this.state = 309;
1160
+ this.state = 311;
1158
1161
  this.match(CircuitScriptParser.NEWLINE);
1159
1162
  }
1160
1163
  break;
@@ -1171,6 +1174,7 @@ class CircuitScriptParser extends antlr.Parser {
1171
1174
  case CircuitScriptParser.Parallel:
1172
1175
  case CircuitScriptParser.Define:
1173
1176
  case CircuitScriptParser.Import:
1177
+ case CircuitScriptParser.From:
1174
1178
  case CircuitScriptParser.For:
1175
1179
  case CircuitScriptParser.While:
1176
1180
  case CircuitScriptParser.Continue:
@@ -1184,7 +1188,7 @@ class CircuitScriptParser extends antlr.Parser {
1184
1188
  case CircuitScriptParser.INTEGER_VALUE:
1185
1189
  case CircuitScriptParser.STRING_VALUE:
1186
1190
  {
1187
- this.state = 310;
1191
+ this.state = 312;
1188
1192
  this.at_block_expressions();
1189
1193
  }
1190
1194
  break;
@@ -1192,11 +1196,11 @@ class CircuitScriptParser extends antlr.Parser {
1192
1196
  throw new antlr.NoViableAltException(this);
1193
1197
  }
1194
1198
  }
1195
- this.state = 313;
1199
+ this.state = 315;
1196
1200
  this.errorHandler.sync(this);
1197
1201
  _la = this.tokenStream.LA(1);
1198
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1735911537) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 9012229) !== 0));
1199
- this.state = 315;
1202
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472353393) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 9012229) !== 0));
1203
+ this.state = 317;
1200
1204
  this.match(CircuitScriptParser.DEDENT);
1201
1205
  }
1202
1206
  }
@@ -1218,7 +1222,7 @@ class CircuitScriptParser extends antlr.Parser {
1218
1222
  let localContext = new At_block_expressionsContext(this.context, this.state);
1219
1223
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1220
1224
  try {
1221
- this.state = 319;
1225
+ this.state = 321;
1222
1226
  this.errorHandler.sync(this);
1223
1227
  switch (this.tokenStream.LA(1)) {
1224
1228
  case CircuitScriptParser.T__3:
@@ -1234,6 +1238,7 @@ class CircuitScriptParser extends antlr.Parser {
1234
1238
  case CircuitScriptParser.Parallel:
1235
1239
  case CircuitScriptParser.Define:
1236
1240
  case CircuitScriptParser.Import:
1241
+ case CircuitScriptParser.From:
1237
1242
  case CircuitScriptParser.For:
1238
1243
  case CircuitScriptParser.While:
1239
1244
  case CircuitScriptParser.Continue:
@@ -1246,7 +1251,7 @@ class CircuitScriptParser extends antlr.Parser {
1246
1251
  case CircuitScriptParser.ID:
1247
1252
  this.enterOuterAlt(localContext, 1);
1248
1253
  {
1249
- this.state = 317;
1254
+ this.state = 319;
1250
1255
  this.expression();
1251
1256
  }
1252
1257
  break;
@@ -1254,7 +1259,7 @@ class CircuitScriptParser extends antlr.Parser {
1254
1259
  case CircuitScriptParser.STRING_VALUE:
1255
1260
  this.enterOuterAlt(localContext, 2);
1256
1261
  {
1257
- this.state = 318;
1262
+ this.state = 320;
1258
1263
  this.at_block_pin_expr();
1259
1264
  }
1260
1265
  break;
@@ -1283,21 +1288,21 @@ class CircuitScriptParser extends antlr.Parser {
1283
1288
  try {
1284
1289
  this.enterOuterAlt(localContext, 1);
1285
1290
  {
1286
- this.state = 321;
1291
+ this.state = 323;
1287
1292
  this.at_component_expr();
1288
- this.state = 322;
1293
+ this.state = 324;
1289
1294
  this.match(CircuitScriptParser.T__0);
1290
- this.state = 326;
1295
+ this.state = 328;
1291
1296
  this.errorHandler.sync(this);
1292
1297
  _la = this.tokenStream.LA(1);
1293
- while (_la === 53) {
1298
+ while (_la === 54) {
1294
1299
  {
1295
1300
  {
1296
- this.state = 323;
1301
+ this.state = 325;
1297
1302
  this.annotation_comment_expr();
1298
1303
  }
1299
1304
  }
1300
- this.state = 328;
1305
+ this.state = 330;
1301
1306
  this.errorHandler.sync(this);
1302
1307
  _la = this.tokenStream.LA(1);
1303
1308
  }
@@ -1323,11 +1328,11 @@ class CircuitScriptParser extends antlr.Parser {
1323
1328
  try {
1324
1329
  this.enterOuterAlt(localContext, 1);
1325
1330
  {
1326
- this.state = 329;
1331
+ this.state = 331;
1327
1332
  this.pin_select_expr2();
1328
- this.state = 330;
1333
+ this.state = 332;
1329
1334
  this.match(CircuitScriptParser.T__0);
1330
- this.state = 333;
1335
+ this.state = 335;
1331
1336
  this.errorHandler.sync(this);
1332
1337
  switch (this.tokenStream.LA(1)) {
1333
1338
  case CircuitScriptParser.T__3:
@@ -1343,6 +1348,7 @@ class CircuitScriptParser extends antlr.Parser {
1343
1348
  case CircuitScriptParser.Parallel:
1344
1349
  case CircuitScriptParser.Define:
1345
1350
  case CircuitScriptParser.Import:
1351
+ case CircuitScriptParser.From:
1346
1352
  case CircuitScriptParser.For:
1347
1353
  case CircuitScriptParser.While:
1348
1354
  case CircuitScriptParser.Continue:
@@ -1355,13 +1361,13 @@ class CircuitScriptParser extends antlr.Parser {
1355
1361
  case CircuitScriptParser.NOT_CONNECTED:
1356
1362
  case CircuitScriptParser.ID:
1357
1363
  {
1358
- this.state = 331;
1364
+ this.state = 333;
1359
1365
  this.at_block_pin_expression_simple();
1360
1366
  }
1361
1367
  break;
1362
1368
  case CircuitScriptParser.NEWLINE:
1363
1369
  {
1364
- this.state = 332;
1370
+ this.state = 334;
1365
1371
  this.at_block_pin_expression_complex();
1366
1372
  }
1367
1373
  break;
@@ -1390,7 +1396,7 @@ class CircuitScriptParser extends antlr.Parser {
1390
1396
  try {
1391
1397
  this.enterOuterAlt(localContext, 1);
1392
1398
  {
1393
- this.state = 337;
1399
+ this.state = 339;
1394
1400
  this.errorHandler.sync(this);
1395
1401
  switch (this.tokenStream.LA(1)) {
1396
1402
  case CircuitScriptParser.T__3:
@@ -1406,6 +1412,7 @@ class CircuitScriptParser extends antlr.Parser {
1406
1412
  case CircuitScriptParser.Parallel:
1407
1413
  case CircuitScriptParser.Define:
1408
1414
  case CircuitScriptParser.Import:
1415
+ case CircuitScriptParser.From:
1409
1416
  case CircuitScriptParser.For:
1410
1417
  case CircuitScriptParser.While:
1411
1418
  case CircuitScriptParser.Continue:
@@ -1417,13 +1424,13 @@ class CircuitScriptParser extends antlr.Parser {
1417
1424
  case CircuitScriptParser.ANNOTATION_START:
1418
1425
  case CircuitScriptParser.ID:
1419
1426
  {
1420
- this.state = 335;
1427
+ this.state = 337;
1421
1428
  this.expression();
1422
1429
  }
1423
1430
  break;
1424
1431
  case CircuitScriptParser.NOT_CONNECTED:
1425
1432
  {
1426
- this.state = 336;
1433
+ this.state = 338;
1427
1434
  this.match(CircuitScriptParser.NOT_CONNECTED);
1428
1435
  }
1429
1436
  break;
@@ -1452,7 +1459,7 @@ class CircuitScriptParser extends antlr.Parser {
1452
1459
  try {
1453
1460
  this.enterOuterAlt(localContext, 1);
1454
1461
  {
1455
- this.state = 339;
1462
+ this.state = 341;
1456
1463
  this.expressions_block();
1457
1464
  }
1458
1465
  }
@@ -1476,25 +1483,25 @@ class CircuitScriptParser extends antlr.Parser {
1476
1483
  try {
1477
1484
  this.enterOuterAlt(localContext, 1);
1478
1485
  {
1479
- this.state = 343;
1486
+ this.state = 345;
1480
1487
  this.errorHandler.sync(this);
1481
1488
  switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1482
1489
  case 1:
1483
1490
  {
1484
- this.state = 341;
1491
+ this.state = 343;
1485
1492
  this.atom_expr();
1486
1493
  }
1487
1494
  break;
1488
1495
  case 2:
1489
1496
  {
1490
- this.state = 342;
1497
+ this.state = 344;
1491
1498
  this.function_call_expr();
1492
1499
  }
1493
1500
  break;
1494
1501
  }
1495
- this.state = 345;
1502
+ this.state = 347;
1496
1503
  this.match(CircuitScriptParser.T__2);
1497
- this.state = 346;
1504
+ this.state = 348;
1498
1505
  this.data_expr(0);
1499
1506
  }
1500
1507
  }
@@ -1519,18 +1526,18 @@ class CircuitScriptParser extends antlr.Parser {
1519
1526
  try {
1520
1527
  this.enterOuterAlt(localContext, 1);
1521
1528
  {
1522
- this.state = 348;
1529
+ this.state = 350;
1523
1530
  this.atom_expr();
1524
- this.state = 349;
1531
+ this.state = 351;
1525
1532
  _la = this.tokenStream.LA(1);
1526
- if (!(((((_la - 48)) & ~0x1F) === 0 && ((1 << (_la - 48)) & 31) !== 0))) {
1533
+ if (!(((((_la - 49)) & ~0x1F) === 0 && ((1 << (_la - 49)) & 31) !== 0))) {
1527
1534
  this.errorHandler.recoverInline(this);
1528
1535
  }
1529
1536
  else {
1530
1537
  this.errorHandler.reportMatch(this);
1531
1538
  this.consume();
1532
1539
  }
1533
- this.state = 350;
1540
+ this.state = 352;
1534
1541
  this.data_expr(0);
1535
1542
  }
1536
1543
  }
@@ -1554,11 +1561,11 @@ class CircuitScriptParser extends antlr.Parser {
1554
1561
  try {
1555
1562
  this.enterOuterAlt(localContext, 1);
1556
1563
  {
1557
- this.state = 352;
1564
+ this.state = 354;
1558
1565
  this.match(CircuitScriptParser.ID);
1559
- this.state = 353;
1566
+ this.state = 355;
1560
1567
  this.match(CircuitScriptParser.T__2);
1561
- this.state = 354;
1568
+ this.state = 356;
1562
1569
  this.data_expr(0);
1563
1570
  }
1564
1571
  }
@@ -1582,46 +1589,46 @@ class CircuitScriptParser extends antlr.Parser {
1582
1589
  let _la;
1583
1590
  try {
1584
1591
  let alternative;
1585
- this.state = 379;
1592
+ this.state = 381;
1586
1593
  this.errorHandler.sync(this);
1587
1594
  switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1588
1595
  case 1:
1589
1596
  this.enterOuterAlt(localContext, 1);
1590
1597
  {
1591
1598
  {
1592
- this.state = 356;
1599
+ this.state = 358;
1593
1600
  this.data_expr(0);
1594
- this.state = 361;
1601
+ this.state = 363;
1595
1602
  this.errorHandler.sync(this);
1596
1603
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1597
1604
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1598
1605
  if (alternative === 1) {
1599
1606
  {
1600
1607
  {
1601
- this.state = 357;
1608
+ this.state = 359;
1602
1609
  this.match(CircuitScriptParser.T__1);
1603
- this.state = 358;
1610
+ this.state = 360;
1604
1611
  this.data_expr(0);
1605
1612
  }
1606
1613
  }
1607
1614
  }
1608
- this.state = 363;
1615
+ this.state = 365;
1609
1616
  this.errorHandler.sync(this);
1610
1617
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1611
1618
  }
1612
- this.state = 368;
1619
+ this.state = 370;
1613
1620
  this.errorHandler.sync(this);
1614
1621
  _la = this.tokenStream.LA(1);
1615
1622
  while (_la === 2) {
1616
1623
  {
1617
1624
  {
1618
- this.state = 364;
1625
+ this.state = 366;
1619
1626
  this.match(CircuitScriptParser.T__1);
1620
- this.state = 365;
1627
+ this.state = 367;
1621
1628
  this.keyword_assignment_expr();
1622
1629
  }
1623
1630
  }
1624
- this.state = 370;
1631
+ this.state = 372;
1625
1632
  this.errorHandler.sync(this);
1626
1633
  _la = this.tokenStream.LA(1);
1627
1634
  }
@@ -1632,21 +1639,21 @@ class CircuitScriptParser extends antlr.Parser {
1632
1639
  this.enterOuterAlt(localContext, 2);
1633
1640
  {
1634
1641
  {
1635
- this.state = 371;
1642
+ this.state = 373;
1636
1643
  this.keyword_assignment_expr();
1637
- this.state = 376;
1644
+ this.state = 378;
1638
1645
  this.errorHandler.sync(this);
1639
1646
  _la = this.tokenStream.LA(1);
1640
1647
  while (_la === 2) {
1641
1648
  {
1642
1649
  {
1643
- this.state = 372;
1650
+ this.state = 374;
1644
1651
  this.match(CircuitScriptParser.T__1);
1645
- this.state = 373;
1652
+ this.state = 375;
1646
1653
  this.keyword_assignment_expr();
1647
1654
  }
1648
1655
  }
1649
- this.state = 378;
1656
+ this.state = 380;
1650
1657
  this.errorHandler.sync(this);
1651
1658
  _la = this.tokenStream.LA(1);
1652
1659
  }
@@ -1675,11 +1682,11 @@ class CircuitScriptParser extends antlr.Parser {
1675
1682
  try {
1676
1683
  this.enterOuterAlt(localContext, 1);
1677
1684
  {
1678
- this.state = 381;
1685
+ this.state = 383;
1679
1686
  this.atom_expr();
1680
- this.state = 382;
1687
+ this.state = 384;
1681
1688
  this.match(CircuitScriptParser.T__2);
1682
- this.state = 383;
1689
+ this.state = 385;
1683
1690
  this.data_expr(0);
1684
1691
  }
1685
1692
  }
@@ -1703,13 +1710,13 @@ class CircuitScriptParser extends antlr.Parser {
1703
1710
  try {
1704
1711
  this.enterOuterAlt(localContext, 1);
1705
1712
  {
1706
- this.state = 385;
1713
+ this.state = 387;
1707
1714
  this.match(CircuitScriptParser.T__3);
1708
- this.state = 386;
1715
+ this.state = 388;
1709
1716
  this.match(CircuitScriptParser.ID);
1710
- this.state = 387;
1717
+ this.state = 389;
1711
1718
  this.match(CircuitScriptParser.T__2);
1712
- this.state = 388;
1719
+ this.state = 390;
1713
1720
  this.data_expr(0);
1714
1721
  }
1715
1722
  }
@@ -1742,7 +1749,7 @@ class CircuitScriptParser extends antlr.Parser {
1742
1749
  let alternative;
1743
1750
  this.enterOuterAlt(localContext, 1);
1744
1751
  {
1745
- this.state = 407;
1752
+ this.state = 409;
1746
1753
  this.errorHandler.sync(this);
1747
1754
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1748
1755
  case 1:
@@ -1750,11 +1757,11 @@ class CircuitScriptParser extends antlr.Parser {
1750
1757
  localContext = new RoundedBracketsExprContext(localContext);
1751
1758
  this.context = localContext;
1752
1759
  previousContext = localContext;
1753
- this.state = 391;
1760
+ this.state = 393;
1754
1761
  this.match(CircuitScriptParser.OPEN_PAREN);
1755
- this.state = 392;
1762
+ this.state = 394;
1756
1763
  this.data_expr(0);
1757
- this.state = 393;
1764
+ this.state = 395;
1758
1765
  this.match(CircuitScriptParser.CLOSE_PAREN);
1759
1766
  }
1760
1767
  break;
@@ -1763,7 +1770,7 @@ class CircuitScriptParser extends antlr.Parser {
1763
1770
  localContext = new ValueAtomExprContext(localContext);
1764
1771
  this.context = localContext;
1765
1772
  previousContext = localContext;
1766
- this.state = 397;
1773
+ this.state = 399;
1767
1774
  this.errorHandler.sync(this);
1768
1775
  switch (this.tokenStream.LA(1)) {
1769
1776
  case CircuitScriptParser.Minus:
@@ -1774,13 +1781,13 @@ class CircuitScriptParser extends antlr.Parser {
1774
1781
  case CircuitScriptParser.STRING_VALUE:
1775
1782
  case CircuitScriptParser.PERCENTAGE_VALUE:
1776
1783
  {
1777
- this.state = 395;
1784
+ this.state = 397;
1778
1785
  this.value_expr();
1779
1786
  }
1780
1787
  break;
1781
1788
  case CircuitScriptParser.ID:
1782
1789
  {
1783
- this.state = 396;
1790
+ this.state = 398;
1784
1791
  this.atom_expr();
1785
1792
  }
1786
1793
  break;
@@ -1794,9 +1801,9 @@ class CircuitScriptParser extends antlr.Parser {
1794
1801
  localContext = new UnaryOperatorExprContext(localContext);
1795
1802
  this.context = localContext;
1796
1803
  previousContext = localContext;
1797
- this.state = 399;
1804
+ this.state = 401;
1798
1805
  this.unary_operator();
1799
- this.state = 400;
1806
+ this.state = 402;
1800
1807
  this.data_expr(11);
1801
1808
  }
1802
1809
  break;
@@ -1805,7 +1812,7 @@ class CircuitScriptParser extends antlr.Parser {
1805
1812
  localContext = new DataExprContext(localContext);
1806
1813
  this.context = localContext;
1807
1814
  previousContext = localContext;
1808
- this.state = 402;
1815
+ this.state = 404;
1809
1816
  this.create_component_expr();
1810
1817
  }
1811
1818
  break;
@@ -1814,7 +1821,7 @@ class CircuitScriptParser extends antlr.Parser {
1814
1821
  localContext = new DataExprContext(localContext);
1815
1822
  this.context = localContext;
1816
1823
  previousContext = localContext;
1817
- this.state = 403;
1824
+ this.state = 405;
1818
1825
  this.create_graphic_expr();
1819
1826
  }
1820
1827
  break;
@@ -1823,7 +1830,7 @@ class CircuitScriptParser extends antlr.Parser {
1823
1830
  localContext = new DataExprContext(localContext);
1824
1831
  this.context = localContext;
1825
1832
  previousContext = localContext;
1826
- this.state = 404;
1833
+ this.state = 406;
1827
1834
  this.create_module_expr();
1828
1835
  }
1829
1836
  break;
@@ -1832,7 +1839,7 @@ class CircuitScriptParser extends antlr.Parser {
1832
1839
  localContext = new FunctionCallExprContext(localContext);
1833
1840
  this.context = localContext;
1834
1841
  previousContext = localContext;
1835
- this.state = 405;
1842
+ this.state = 407;
1836
1843
  this.function_call_expr();
1837
1844
  }
1838
1845
  break;
@@ -1841,13 +1848,13 @@ class CircuitScriptParser extends antlr.Parser {
1841
1848
  localContext = new ArrayExprContext(localContext);
1842
1849
  this.context = localContext;
1843
1850
  previousContext = localContext;
1844
- this.state = 406;
1851
+ this.state = 408;
1845
1852
  this.array_expr();
1846
1853
  }
1847
1854
  break;
1848
1855
  }
1849
1856
  this.context.stop = this.tokenStream.LT(-1);
1850
- this.state = 429;
1857
+ this.state = 431;
1851
1858
  this.errorHandler.sync(this);
1852
1859
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1853
1860
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -1857,27 +1864,27 @@ class CircuitScriptParser extends antlr.Parser {
1857
1864
  }
1858
1865
  previousContext = localContext;
1859
1866
  {
1860
- this.state = 427;
1867
+ this.state = 429;
1861
1868
  this.errorHandler.sync(this);
1862
1869
  switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
1863
1870
  case 1:
1864
1871
  {
1865
1872
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1866
1873
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1867
- this.state = 409;
1874
+ this.state = 411;
1868
1875
  if (!(this.precpred(this.context, 10))) {
1869
1876
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
1870
1877
  }
1871
- this.state = 410;
1878
+ this.state = 412;
1872
1879
  _la = this.tokenStream.LA(1);
1873
- if (!(((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 7) !== 0))) {
1880
+ if (!(((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 7) !== 0))) {
1874
1881
  this.errorHandler.recoverInline(this);
1875
1882
  }
1876
1883
  else {
1877
1884
  this.errorHandler.reportMatch(this);
1878
1885
  this.consume();
1879
1886
  }
1880
- this.state = 411;
1887
+ this.state = 413;
1881
1888
  this.data_expr(11);
1882
1889
  }
1883
1890
  break;
@@ -1885,20 +1892,20 @@ class CircuitScriptParser extends antlr.Parser {
1885
1892
  {
1886
1893
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1887
1894
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1888
- this.state = 412;
1895
+ this.state = 414;
1889
1896
  if (!(this.precpred(this.context, 9))) {
1890
1897
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1891
1898
  }
1892
- this.state = 413;
1899
+ this.state = 415;
1893
1900
  _la = this.tokenStream.LA(1);
1894
- if (!(_la === 43 || _la === 44)) {
1901
+ if (!(_la === 44 || _la === 45)) {
1895
1902
  this.errorHandler.recoverInline(this);
1896
1903
  }
1897
1904
  else {
1898
1905
  this.errorHandler.reportMatch(this);
1899
1906
  this.consume();
1900
1907
  }
1901
- this.state = 414;
1908
+ this.state = 416;
1902
1909
  this.data_expr(10);
1903
1910
  }
1904
1911
  break;
@@ -1906,13 +1913,13 @@ class CircuitScriptParser extends antlr.Parser {
1906
1913
  {
1907
1914
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1908
1915
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1909
- this.state = 415;
1916
+ this.state = 417;
1910
1917
  if (!(this.precpred(this.context, 8))) {
1911
1918
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1912
1919
  }
1913
- this.state = 416;
1920
+ this.state = 418;
1914
1921
  this.binary_operator();
1915
- this.state = 417;
1922
+ this.state = 419;
1916
1923
  this.data_expr(9);
1917
1924
  }
1918
1925
  break;
@@ -1920,20 +1927,20 @@ class CircuitScriptParser extends antlr.Parser {
1920
1927
  {
1921
1928
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1922
1929
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1923
- this.state = 419;
1930
+ this.state = 421;
1924
1931
  if (!(this.precpred(this.context, 7))) {
1925
1932
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1926
1933
  }
1927
- this.state = 420;
1934
+ this.state = 422;
1928
1935
  _la = this.tokenStream.LA(1);
1929
- if (!(_la === 41 || _la === 42)) {
1936
+ if (!(_la === 42 || _la === 43)) {
1930
1937
  this.errorHandler.recoverInline(this);
1931
1938
  }
1932
1939
  else {
1933
1940
  this.errorHandler.reportMatch(this);
1934
1941
  this.consume();
1935
1942
  }
1936
- this.state = 421;
1943
+ this.state = 423;
1937
1944
  this.data_expr(8);
1938
1945
  }
1939
1946
  break;
@@ -1941,22 +1948,22 @@ class CircuitScriptParser extends antlr.Parser {
1941
1948
  {
1942
1949
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
1943
1950
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1944
- this.state = 422;
1951
+ this.state = 424;
1945
1952
  if (!(this.precpred(this.context, 1))) {
1946
1953
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
1947
1954
  }
1948
- this.state = 423;
1955
+ this.state = 425;
1949
1956
  this.match(CircuitScriptParser.T__4);
1950
- this.state = 424;
1957
+ this.state = 426;
1951
1958
  this.data_expr(0);
1952
- this.state = 425;
1959
+ this.state = 427;
1953
1960
  this.match(CircuitScriptParser.T__5);
1954
1961
  }
1955
1962
  break;
1956
1963
  }
1957
1964
  }
1958
1965
  }
1959
- this.state = 431;
1966
+ this.state = 433;
1960
1967
  this.errorHandler.sync(this);
1961
1968
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1962
1969
  }
@@ -1983,9 +1990,9 @@ class CircuitScriptParser extends antlr.Parser {
1983
1990
  try {
1984
1991
  this.enterOuterAlt(localContext, 1);
1985
1992
  {
1986
- this.state = 432;
1993
+ this.state = 434;
1987
1994
  _la = this.tokenStream.LA(1);
1988
- if (!(((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 63) !== 0))) {
1995
+ if (!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 63) !== 0))) {
1989
1996
  this.errorHandler.recoverInline(this);
1990
1997
  }
1991
1998
  else {
@@ -2015,9 +2022,9 @@ class CircuitScriptParser extends antlr.Parser {
2015
2022
  try {
2016
2023
  this.enterOuterAlt(localContext, 1);
2017
2024
  {
2018
- this.state = 434;
2025
+ this.state = 436;
2019
2026
  _la = this.tokenStream.LA(1);
2020
- if (!(_la === 32 || _la === 44)) {
2027
+ if (!(_la === 33 || _la === 45)) {
2021
2028
  this.errorHandler.recoverInline(this);
2022
2029
  }
2023
2030
  else {
@@ -2048,18 +2055,18 @@ class CircuitScriptParser extends antlr.Parser {
2048
2055
  this.enterOuterAlt(localContext, 1);
2049
2056
  {
2050
2057
  {
2051
- this.state = 437;
2058
+ this.state = 439;
2052
2059
  this.errorHandler.sync(this);
2053
2060
  _la = this.tokenStream.LA(1);
2054
- if (_la === 44) {
2061
+ if (_la === 45) {
2055
2062
  {
2056
- this.state = 436;
2063
+ this.state = 438;
2057
2064
  this.match(CircuitScriptParser.Minus);
2058
2065
  }
2059
2066
  }
2060
- this.state = 439;
2067
+ this.state = 441;
2061
2068
  _la = this.tokenStream.LA(1);
2062
- if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 125) !== 0))) {
2069
+ if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 125) !== 0))) {
2063
2070
  this.errorHandler.recoverInline(this);
2064
2071
  }
2065
2072
  else {
@@ -2090,40 +2097,40 @@ class CircuitScriptParser extends antlr.Parser {
2090
2097
  try {
2091
2098
  this.enterOuterAlt(localContext, 1);
2092
2099
  {
2093
- this.state = 441;
2100
+ this.state = 443;
2094
2101
  this.match(CircuitScriptParser.Define);
2095
- this.state = 442;
2102
+ this.state = 444;
2096
2103
  this.match(CircuitScriptParser.ID);
2097
- this.state = 443;
2098
- this.match(CircuitScriptParser.OPEN_PAREN);
2099
2104
  this.state = 445;
2105
+ this.match(CircuitScriptParser.OPEN_PAREN);
2106
+ this.state = 447;
2100
2107
  this.errorHandler.sync(this);
2101
2108
  _la = this.tokenStream.LA(1);
2102
- if (_la === 58) {
2109
+ if (_la === 59) {
2103
2110
  {
2104
- this.state = 444;
2111
+ this.state = 446;
2105
2112
  this.function_args_expr();
2106
2113
  }
2107
2114
  }
2108
- this.state = 447;
2115
+ this.state = 449;
2109
2116
  this.match(CircuitScriptParser.CLOSE_PAREN);
2110
- this.state = 448;
2117
+ this.state = 450;
2111
2118
  this.match(CircuitScriptParser.T__0);
2112
- this.state = 449;
2119
+ this.state = 451;
2113
2120
  this.match(CircuitScriptParser.NEWLINE);
2114
- this.state = 450;
2121
+ this.state = 452;
2115
2122
  this.match(CircuitScriptParser.INDENT);
2116
- this.state = 453;
2123
+ this.state = 455;
2117
2124
  this.errorHandler.sync(this);
2118
2125
  _la = this.tokenStream.LA(1);
2119
2126
  do {
2120
2127
  {
2121
- this.state = 453;
2128
+ this.state = 455;
2122
2129
  this.errorHandler.sync(this);
2123
2130
  switch (this.tokenStream.LA(1)) {
2124
2131
  case CircuitScriptParser.NEWLINE:
2125
2132
  {
2126
- this.state = 451;
2133
+ this.state = 453;
2127
2134
  this.match(CircuitScriptParser.NEWLINE);
2128
2135
  }
2129
2136
  break;
@@ -2141,6 +2148,7 @@ class CircuitScriptParser extends antlr.Parser {
2141
2148
  case CircuitScriptParser.Return:
2142
2149
  case CircuitScriptParser.Define:
2143
2150
  case CircuitScriptParser.Import:
2151
+ case CircuitScriptParser.From:
2144
2152
  case CircuitScriptParser.For:
2145
2153
  case CircuitScriptParser.While:
2146
2154
  case CircuitScriptParser.Continue:
@@ -2152,7 +2160,7 @@ class CircuitScriptParser extends antlr.Parser {
2152
2160
  case CircuitScriptParser.ANNOTATION_START:
2153
2161
  case CircuitScriptParser.ID:
2154
2162
  {
2155
- this.state = 452;
2163
+ this.state = 454;
2156
2164
  this.function_expr();
2157
2165
  }
2158
2166
  break;
@@ -2160,11 +2168,11 @@ class CircuitScriptParser extends antlr.Parser {
2160
2168
  throw new antlr.NoViableAltException(this);
2161
2169
  }
2162
2170
  }
2163
- this.state = 455;
2171
+ this.state = 457;
2164
2172
  this.errorHandler.sync(this);
2165
2173
  _la = this.tokenStream.LA(1);
2166
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 1736435825) !== 0) || ((((_la - 43)) & ~0x1F) === 0 && ((1 << (_la - 43)) & 8422405) !== 0));
2167
- this.state = 457;
2174
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 3472877681) !== 0) || ((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 8422405) !== 0));
2175
+ this.state = 459;
2168
2176
  this.match(CircuitScriptParser.DEDENT);
2169
2177
  }
2170
2178
  }
@@ -2186,7 +2194,7 @@ class CircuitScriptParser extends antlr.Parser {
2186
2194
  let localContext = new Function_exprContext(this.context, this.state);
2187
2195
  this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2188
2196
  try {
2189
- this.state = 461;
2197
+ this.state = 463;
2190
2198
  this.errorHandler.sync(this);
2191
2199
  switch (this.tokenStream.LA(1)) {
2192
2200
  case CircuitScriptParser.T__3:
@@ -2202,6 +2210,7 @@ class CircuitScriptParser extends antlr.Parser {
2202
2210
  case CircuitScriptParser.Parallel:
2203
2211
  case CircuitScriptParser.Define:
2204
2212
  case CircuitScriptParser.Import:
2213
+ case CircuitScriptParser.From:
2205
2214
  case CircuitScriptParser.For:
2206
2215
  case CircuitScriptParser.While:
2207
2216
  case CircuitScriptParser.Continue:
@@ -2214,14 +2223,14 @@ class CircuitScriptParser extends antlr.Parser {
2214
2223
  case CircuitScriptParser.ID:
2215
2224
  this.enterOuterAlt(localContext, 1);
2216
2225
  {
2217
- this.state = 459;
2226
+ this.state = 461;
2218
2227
  this.expression();
2219
2228
  }
2220
2229
  break;
2221
2230
  case CircuitScriptParser.Return:
2222
2231
  this.enterOuterAlt(localContext, 2);
2223
2232
  {
2224
- this.state = 460;
2233
+ this.state = 462;
2225
2234
  this.function_return_expr();
2226
2235
  }
2227
2236
  break;
@@ -2249,49 +2258,49 @@ class CircuitScriptParser extends antlr.Parser {
2249
2258
  let _la;
2250
2259
  try {
2251
2260
  let alternative;
2252
- this.state = 492;
2261
+ this.state = 494;
2253
2262
  this.errorHandler.sync(this);
2254
2263
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2255
2264
  case 1:
2256
2265
  this.enterOuterAlt(localContext, 1);
2257
2266
  {
2258
- this.state = 463;
2267
+ this.state = 465;
2259
2268
  this.match(CircuitScriptParser.ID);
2260
- this.state = 468;
2269
+ this.state = 470;
2261
2270
  this.errorHandler.sync(this);
2262
2271
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2263
2272
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2264
2273
  if (alternative === 1) {
2265
2274
  {
2266
2275
  {
2267
- this.state = 464;
2276
+ this.state = 466;
2268
2277
  this.match(CircuitScriptParser.T__1);
2269
- this.state = 465;
2278
+ this.state = 467;
2270
2279
  this.match(CircuitScriptParser.ID);
2271
2280
  }
2272
2281
  }
2273
2282
  }
2274
- this.state = 470;
2283
+ this.state = 472;
2275
2284
  this.errorHandler.sync(this);
2276
2285
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2277
2286
  }
2278
- this.state = 477;
2287
+ this.state = 479;
2279
2288
  this.errorHandler.sync(this);
2280
2289
  _la = this.tokenStream.LA(1);
2281
2290
  while (_la === 2) {
2282
2291
  {
2283
2292
  {
2284
- this.state = 471;
2293
+ this.state = 473;
2285
2294
  this.match(CircuitScriptParser.T__1);
2286
- this.state = 472;
2295
+ this.state = 474;
2287
2296
  this.match(CircuitScriptParser.ID);
2288
- this.state = 473;
2297
+ this.state = 475;
2289
2298
  this.match(CircuitScriptParser.T__2);
2290
- this.state = 474;
2299
+ this.state = 476;
2291
2300
  this.value_expr();
2292
2301
  }
2293
2302
  }
2294
- this.state = 479;
2303
+ this.state = 481;
2295
2304
  this.errorHandler.sync(this);
2296
2305
  _la = this.tokenStream.LA(1);
2297
2306
  }
@@ -2300,29 +2309,29 @@ class CircuitScriptParser extends antlr.Parser {
2300
2309
  case 2:
2301
2310
  this.enterOuterAlt(localContext, 2);
2302
2311
  {
2303
- this.state = 480;
2312
+ this.state = 482;
2304
2313
  this.match(CircuitScriptParser.ID);
2305
- this.state = 481;
2314
+ this.state = 483;
2306
2315
  this.match(CircuitScriptParser.T__2);
2307
- this.state = 482;
2316
+ this.state = 484;
2308
2317
  this.value_expr();
2309
- this.state = 489;
2318
+ this.state = 491;
2310
2319
  this.errorHandler.sync(this);
2311
2320
  _la = this.tokenStream.LA(1);
2312
2321
  while (_la === 2) {
2313
2322
  {
2314
2323
  {
2315
- this.state = 483;
2324
+ this.state = 485;
2316
2325
  this.match(CircuitScriptParser.T__1);
2317
- this.state = 484;
2326
+ this.state = 486;
2318
2327
  this.match(CircuitScriptParser.ID);
2319
- this.state = 485;
2328
+ this.state = 487;
2320
2329
  this.match(CircuitScriptParser.T__2);
2321
- this.state = 486;
2330
+ this.state = 488;
2322
2331
  this.value_expr();
2323
2332
  }
2324
2333
  }
2325
- this.state = 491;
2334
+ this.state = 493;
2326
2335
  this.errorHandler.sync(this);
2327
2336
  _la = this.tokenStream.LA(1);
2328
2337
  }
@@ -2351,21 +2360,21 @@ class CircuitScriptParser extends antlr.Parser {
2351
2360
  let alternative;
2352
2361
  this.enterOuterAlt(localContext, 1);
2353
2362
  {
2354
- this.state = 494;
2363
+ this.state = 496;
2355
2364
  this.match(CircuitScriptParser.ID);
2356
- this.state = 498;
2365
+ this.state = 500;
2357
2366
  this.errorHandler.sync(this);
2358
2367
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2359
2368
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2360
2369
  if (alternative === 1) {
2361
2370
  {
2362
2371
  {
2363
- this.state = 495;
2372
+ this.state = 497;
2364
2373
  this.trailer_expr2();
2365
2374
  }
2366
2375
  }
2367
2376
  }
2368
- this.state = 500;
2377
+ this.state = 502;
2369
2378
  this.errorHandler.sync(this);
2370
2379
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2371
2380
  }
@@ -2390,24 +2399,24 @@ class CircuitScriptParser extends antlr.Parser {
2390
2399
  this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2391
2400
  let _la;
2392
2401
  try {
2393
- this.state = 507;
2402
+ this.state = 509;
2394
2403
  this.errorHandler.sync(this);
2395
2404
  switch (this.tokenStream.LA(1)) {
2396
2405
  case CircuitScriptParser.OPEN_PAREN:
2397
2406
  this.enterOuterAlt(localContext, 1);
2398
2407
  {
2399
- this.state = 501;
2400
- this.match(CircuitScriptParser.OPEN_PAREN);
2401
2408
  this.state = 503;
2409
+ this.match(CircuitScriptParser.OPEN_PAREN);
2410
+ this.state = 505;
2402
2411
  this.errorHandler.sync(this);
2403
2412
  _la = this.tokenStream.LA(1);
2404
- if (_la === 5 || _la === 11 || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4265621505) !== 0)) {
2413
+ if (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
2405
2414
  {
2406
- this.state = 502;
2415
+ this.state = 504;
2407
2416
  this.parameters();
2408
2417
  }
2409
2418
  }
2410
- this.state = 505;
2419
+ this.state = 507;
2411
2420
  this.match(CircuitScriptParser.CLOSE_PAREN);
2412
2421
  }
2413
2422
  break;
@@ -2415,7 +2424,7 @@ class CircuitScriptParser extends antlr.Parser {
2415
2424
  case CircuitScriptParser.T__6:
2416
2425
  this.enterOuterAlt(localContext, 2);
2417
2426
  {
2418
- this.state = 506;
2427
+ this.state = 508;
2419
2428
  this.trailer_expr2();
2420
2429
  }
2421
2430
  break;
@@ -2441,26 +2450,26 @@ class CircuitScriptParser extends antlr.Parser {
2441
2450
  let localContext = new Trailer_expr2Context(this.context, this.state);
2442
2451
  this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2443
2452
  try {
2444
- this.state = 515;
2453
+ this.state = 517;
2445
2454
  this.errorHandler.sync(this);
2446
2455
  switch (this.tokenStream.LA(1)) {
2447
2456
  case CircuitScriptParser.T__6:
2448
2457
  this.enterOuterAlt(localContext, 1);
2449
2458
  {
2450
- this.state = 509;
2459
+ this.state = 511;
2451
2460
  this.match(CircuitScriptParser.T__6);
2452
- this.state = 510;
2461
+ this.state = 512;
2453
2462
  this.match(CircuitScriptParser.ID);
2454
2463
  }
2455
2464
  break;
2456
2465
  case CircuitScriptParser.T__4:
2457
2466
  this.enterOuterAlt(localContext, 2);
2458
2467
  {
2459
- this.state = 511;
2468
+ this.state = 513;
2460
2469
  this.match(CircuitScriptParser.T__4);
2461
- this.state = 512;
2470
+ this.state = 514;
2462
2471
  this.data_expr(0);
2463
- this.state = 513;
2472
+ this.state = 515;
2464
2473
  this.match(CircuitScriptParser.T__5);
2465
2474
  }
2466
2475
  break;
@@ -2490,18 +2499,18 @@ class CircuitScriptParser extends antlr.Parser {
2490
2499
  let alternative;
2491
2500
  this.enterOuterAlt(localContext, 1);
2492
2501
  {
2493
- this.state = 518;
2502
+ this.state = 520;
2494
2503
  this.errorHandler.sync(this);
2495
2504
  _la = this.tokenStream.LA(1);
2496
- if (_la === 43 || _la === 45) {
2505
+ if (_la === 44 || _la === 46) {
2497
2506
  {
2498
- this.state = 517;
2507
+ this.state = 519;
2499
2508
  this.net_namespace_expr();
2500
2509
  }
2501
2510
  }
2502
- this.state = 520;
2503
- this.match(CircuitScriptParser.ID);
2504
2511
  this.state = 522;
2512
+ this.match(CircuitScriptParser.ID);
2513
+ this.state = 524;
2505
2514
  this.errorHandler.sync(this);
2506
2515
  alternative = 1;
2507
2516
  do {
@@ -2509,7 +2518,7 @@ class CircuitScriptParser extends antlr.Parser {
2509
2518
  case 1:
2510
2519
  {
2511
2520
  {
2512
- this.state = 521;
2521
+ this.state = 523;
2513
2522
  this.trailer_expr();
2514
2523
  }
2515
2524
  }
@@ -2517,7 +2526,7 @@ class CircuitScriptParser extends antlr.Parser {
2517
2526
  default:
2518
2527
  throw new antlr.NoViableAltException(this);
2519
2528
  }
2520
- this.state = 524;
2529
+ this.state = 526;
2521
2530
  this.errorHandler.sync(this);
2522
2531
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2523
2532
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
@@ -2544,23 +2553,23 @@ class CircuitScriptParser extends antlr.Parser {
2544
2553
  try {
2545
2554
  this.enterOuterAlt(localContext, 1);
2546
2555
  {
2547
- this.state = 527;
2556
+ this.state = 529;
2548
2557
  this.errorHandler.sync(this);
2549
2558
  _la = this.tokenStream.LA(1);
2550
- if (_la === 43) {
2559
+ if (_la === 44) {
2551
2560
  {
2552
- this.state = 526;
2561
+ this.state = 528;
2553
2562
  this.match(CircuitScriptParser.Addition);
2554
2563
  }
2555
2564
  }
2556
- this.state = 529;
2557
- this.match(CircuitScriptParser.Divide);
2558
2565
  this.state = 531;
2566
+ this.match(CircuitScriptParser.Divide);
2567
+ this.state = 533;
2559
2568
  this.errorHandler.sync(this);
2560
2569
  switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2561
2570
  case 1:
2562
2571
  {
2563
- this.state = 530;
2572
+ this.state = 532;
2564
2573
  this.data_expr(0);
2565
2574
  }
2566
2575
  break;
@@ -2587,9 +2596,9 @@ class CircuitScriptParser extends antlr.Parser {
2587
2596
  try {
2588
2597
  this.enterOuterAlt(localContext, 1);
2589
2598
  {
2590
- this.state = 533;
2599
+ this.state = 535;
2591
2600
  this.match(CircuitScriptParser.Return);
2592
- this.state = 534;
2601
+ this.state = 536;
2593
2602
  this.data_expr(0);
2594
2603
  }
2595
2604
  }
@@ -2613,11 +2622,11 @@ class CircuitScriptParser extends antlr.Parser {
2613
2622
  try {
2614
2623
  this.enterOuterAlt(localContext, 1);
2615
2624
  {
2616
- this.state = 536;
2625
+ this.state = 538;
2617
2626
  this.property_key_expr();
2618
- this.state = 537;
2627
+ this.state = 539;
2619
2628
  this.match(CircuitScriptParser.T__0);
2620
- this.state = 538;
2629
+ this.state = 540;
2621
2630
  this.expressions_block();
2622
2631
  }
2623
2632
  }
@@ -2642,27 +2651,27 @@ class CircuitScriptParser extends antlr.Parser {
2642
2651
  try {
2643
2652
  this.enterOuterAlt(localContext, 1);
2644
2653
  {
2645
- this.state = 540;
2654
+ this.state = 542;
2646
2655
  this.match(CircuitScriptParser.Create);
2647
- this.state = 541;
2656
+ this.state = 543;
2648
2657
  this.match(CircuitScriptParser.Component);
2649
- this.state = 542;
2658
+ this.state = 544;
2650
2659
  this.match(CircuitScriptParser.T__0);
2651
- this.state = 543;
2660
+ this.state = 545;
2652
2661
  this.match(CircuitScriptParser.NEWLINE);
2653
- this.state = 544;
2662
+ this.state = 546;
2654
2663
  this.match(CircuitScriptParser.INDENT);
2655
- this.state = 547;
2664
+ this.state = 549;
2656
2665
  this.errorHandler.sync(this);
2657
2666
  _la = this.tokenStream.LA(1);
2658
2667
  do {
2659
2668
  {
2660
- this.state = 547;
2669
+ this.state = 549;
2661
2670
  this.errorHandler.sync(this);
2662
2671
  switch (this.tokenStream.LA(1)) {
2663
2672
  case CircuitScriptParser.NEWLINE:
2664
2673
  {
2665
- this.state = 545;
2674
+ this.state = 547;
2666
2675
  this.match(CircuitScriptParser.NEWLINE);
2667
2676
  }
2668
2677
  break;
@@ -2670,7 +2679,7 @@ class CircuitScriptParser extends antlr.Parser {
2670
2679
  case CircuitScriptParser.INTEGER_VALUE:
2671
2680
  case CircuitScriptParser.STRING_VALUE:
2672
2681
  {
2673
- this.state = 546;
2682
+ this.state = 548;
2674
2683
  this.property_expr();
2675
2684
  }
2676
2685
  break;
@@ -2678,11 +2687,11 @@ class CircuitScriptParser extends antlr.Parser {
2678
2687
  throw new antlr.NoViableAltException(this);
2679
2688
  }
2680
2689
  }
2681
- this.state = 549;
2690
+ this.state = 551;
2682
2691
  this.errorHandler.sync(this);
2683
2692
  _la = this.tokenStream.LA(1);
2684
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
2685
- this.state = 551;
2693
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2694
+ this.state = 553;
2686
2695
  this.match(CircuitScriptParser.DEDENT);
2687
2696
  }
2688
2697
  }
@@ -2707,21 +2716,21 @@ class CircuitScriptParser extends antlr.Parser {
2707
2716
  try {
2708
2717
  this.enterOuterAlt(localContext, 1);
2709
2718
  {
2710
- this.state = 553;
2719
+ this.state = 555;
2711
2720
  this.match(CircuitScriptParser.NEWLINE);
2712
- this.state = 554;
2721
+ this.state = 556;
2713
2722
  this.match(CircuitScriptParser.INDENT);
2714
- this.state = 557;
2723
+ this.state = 559;
2715
2724
  this.errorHandler.sync(this);
2716
2725
  _la = this.tokenStream.LA(1);
2717
2726
  do {
2718
2727
  {
2719
- this.state = 557;
2728
+ this.state = 559;
2720
2729
  this.errorHandler.sync(this);
2721
2730
  switch (this.tokenStream.LA(1)) {
2722
2731
  case CircuitScriptParser.NEWLINE:
2723
2732
  {
2724
- this.state = 555;
2733
+ this.state = 557;
2725
2734
  this.match(CircuitScriptParser.NEWLINE);
2726
2735
  }
2727
2736
  break;
@@ -2729,7 +2738,7 @@ class CircuitScriptParser extends antlr.Parser {
2729
2738
  case CircuitScriptParser.For:
2730
2739
  case CircuitScriptParser.ID:
2731
2740
  {
2732
- this.state = 556;
2741
+ this.state = 558;
2733
2742
  this.graphic_expr();
2734
2743
  }
2735
2744
  break;
@@ -2737,11 +2746,11 @@ class CircuitScriptParser extends antlr.Parser {
2737
2746
  throw new antlr.NoViableAltException(this);
2738
2747
  }
2739
2748
  }
2740
- this.state = 559;
2749
+ this.state = 561;
2741
2750
  this.errorHandler.sync(this);
2742
2751
  _la = this.tokenStream.LA(1);
2743
- } while (_la === 16 || _la === 26 || _la === 58 || _la === 66);
2744
- this.state = 561;
2752
+ } while (_la === 16 || _la === 27 || _la === 59 || _la === 67);
2753
+ this.state = 563;
2745
2754
  this.match(CircuitScriptParser.DEDENT);
2746
2755
  }
2747
2756
  }
@@ -2766,26 +2775,26 @@ class CircuitScriptParser extends antlr.Parser {
2766
2775
  try {
2767
2776
  this.enterOuterAlt(localContext, 1);
2768
2777
  {
2769
- this.state = 563;
2778
+ this.state = 565;
2770
2779
  this.match(CircuitScriptParser.Create);
2771
- this.state = 564;
2780
+ this.state = 566;
2772
2781
  this.match(CircuitScriptParser.Graphic);
2773
- this.state = 568;
2782
+ this.state = 570;
2774
2783
  this.errorHandler.sync(this);
2775
2784
  _la = this.tokenStream.LA(1);
2776
- if (_la === 54) {
2785
+ if (_la === 55) {
2777
2786
  {
2778
- this.state = 565;
2787
+ this.state = 567;
2779
2788
  this.match(CircuitScriptParser.OPEN_PAREN);
2780
- this.state = 566;
2789
+ this.state = 568;
2781
2790
  this.match(CircuitScriptParser.ID);
2782
- this.state = 567;
2791
+ this.state = 569;
2783
2792
  this.match(CircuitScriptParser.CLOSE_PAREN);
2784
2793
  }
2785
2794
  }
2786
- this.state = 570;
2795
+ this.state = 572;
2787
2796
  this.match(CircuitScriptParser.T__0);
2788
- this.state = 571;
2797
+ this.state = 573;
2789
2798
  this.graphic_expressions_block();
2790
2799
  }
2791
2800
  }
@@ -2810,49 +2819,49 @@ class CircuitScriptParser extends antlr.Parser {
2810
2819
  try {
2811
2820
  this.enterOuterAlt(localContext, 1);
2812
2821
  {
2813
- this.state = 573;
2822
+ this.state = 575;
2814
2823
  this.match(CircuitScriptParser.Create);
2815
- this.state = 574;
2824
+ this.state = 576;
2816
2825
  this.match(CircuitScriptParser.Module);
2817
- this.state = 575;
2826
+ this.state = 577;
2818
2827
  this.match(CircuitScriptParser.T__0);
2819
- this.state = 576;
2828
+ this.state = 578;
2820
2829
  this.match(CircuitScriptParser.NEWLINE);
2821
- this.state = 577;
2830
+ this.state = 579;
2822
2831
  this.match(CircuitScriptParser.INDENT);
2823
- this.state = 581;
2832
+ this.state = 583;
2824
2833
  this.errorHandler.sync(this);
2825
2834
  _la = this.tokenStream.LA(1);
2826
2835
  do {
2827
2836
  {
2828
- this.state = 581;
2837
+ this.state = 583;
2829
2838
  this.errorHandler.sync(this);
2830
2839
  switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2831
2840
  case 1:
2832
2841
  {
2833
- this.state = 578;
2842
+ this.state = 580;
2834
2843
  this.match(CircuitScriptParser.NEWLINE);
2835
2844
  }
2836
2845
  break;
2837
2846
  case 2:
2838
2847
  {
2839
- this.state = 579;
2848
+ this.state = 581;
2840
2849
  this.property_expr();
2841
2850
  }
2842
2851
  break;
2843
2852
  case 3:
2844
2853
  {
2845
- this.state = 580;
2854
+ this.state = 582;
2846
2855
  this.property_block_expr();
2847
2856
  }
2848
2857
  break;
2849
2858
  }
2850
2859
  }
2851
- this.state = 583;
2860
+ this.state = 585;
2852
2861
  this.errorHandler.sync(this);
2853
2862
  _la = this.tokenStream.LA(1);
2854
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
2855
- this.state = 585;
2863
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2864
+ this.state = 587;
2856
2865
  this.match(CircuitScriptParser.DEDENT);
2857
2866
  }
2858
2867
  }
@@ -2878,21 +2887,21 @@ class CircuitScriptParser extends antlr.Parser {
2878
2887
  this.enterOuterAlt(localContext, 1);
2879
2888
  {
2880
2889
  {
2881
- this.state = 587;
2890
+ this.state = 589;
2882
2891
  this.match(CircuitScriptParser.NEWLINE);
2883
- this.state = 588;
2892
+ this.state = 590;
2884
2893
  this.match(CircuitScriptParser.INDENT);
2885
- this.state = 591;
2894
+ this.state = 593;
2886
2895
  this.errorHandler.sync(this);
2887
2896
  _la = this.tokenStream.LA(1);
2888
2897
  do {
2889
2898
  {
2890
- this.state = 591;
2899
+ this.state = 593;
2891
2900
  this.errorHandler.sync(this);
2892
2901
  switch (this.tokenStream.LA(1)) {
2893
2902
  case CircuitScriptParser.NEWLINE:
2894
2903
  {
2895
- this.state = 589;
2904
+ this.state = 591;
2896
2905
  this.match(CircuitScriptParser.NEWLINE);
2897
2906
  }
2898
2907
  break;
@@ -2900,7 +2909,7 @@ class CircuitScriptParser extends antlr.Parser {
2900
2909
  case CircuitScriptParser.INTEGER_VALUE:
2901
2910
  case CircuitScriptParser.STRING_VALUE:
2902
2911
  {
2903
- this.state = 590;
2912
+ this.state = 592;
2904
2913
  this.property_expr();
2905
2914
  }
2906
2915
  break;
@@ -2908,11 +2917,11 @@ class CircuitScriptParser extends antlr.Parser {
2908
2917
  throw new antlr.NoViableAltException(this);
2909
2918
  }
2910
2919
  }
2911
- this.state = 593;
2920
+ this.state = 595;
2912
2921
  this.errorHandler.sync(this);
2913
2922
  _la = this.tokenStream.LA(1);
2914
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 275) !== 0));
2915
- this.state = 595;
2923
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 275) !== 0));
2924
+ this.state = 597;
2916
2925
  this.match(CircuitScriptParser.DEDENT);
2917
2926
  }
2918
2927
  }
@@ -2936,7 +2945,7 @@ class CircuitScriptParser extends antlr.Parser {
2936
2945
  this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2937
2946
  let _la;
2938
2947
  try {
2939
- this.state = 623;
2948
+ this.state = 625;
2940
2949
  this.errorHandler.sync(this);
2941
2950
  switch (this.tokenStream.LA(1)) {
2942
2951
  case CircuitScriptParser.Pin:
@@ -2944,47 +2953,47 @@ class CircuitScriptParser extends antlr.Parser {
2944
2953
  localContext = new GraphicCommandExprContext(localContext);
2945
2954
  this.enterOuterAlt(localContext, 1);
2946
2955
  {
2947
- this.state = 597;
2956
+ this.state = 599;
2948
2957
  localContext._command = this.tokenStream.LT(1);
2949
2958
  _la = this.tokenStream.LA(1);
2950
- if (!(_la === 16 || _la === 58)) {
2959
+ if (!(_la === 16 || _la === 59)) {
2951
2960
  localContext._command = this.errorHandler.recoverInline(this);
2952
2961
  }
2953
2962
  else {
2954
2963
  this.errorHandler.reportMatch(this);
2955
2964
  this.consume();
2956
2965
  }
2957
- this.state = 599;
2966
+ this.state = 601;
2958
2967
  this.errorHandler.sync(this);
2959
2968
  _la = this.tokenStream.LA(1);
2960
2969
  if (_la === 1) {
2961
2970
  {
2962
- this.state = 598;
2971
+ this.state = 600;
2963
2972
  this.match(CircuitScriptParser.T__0);
2964
2973
  }
2965
2974
  }
2966
- this.state = 607;
2975
+ this.state = 609;
2967
2976
  this.errorHandler.sync(this);
2968
2977
  switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2969
2978
  case 1:
2970
2979
  {
2971
- this.state = 601;
2980
+ this.state = 603;
2972
2981
  this.parameters();
2973
2982
  }
2974
2983
  break;
2975
2984
  case 2:
2976
2985
  {
2977
- this.state = 602;
2986
+ this.state = 604;
2978
2987
  this.match(CircuitScriptParser.OPEN_PAREN);
2979
- this.state = 603;
2988
+ this.state = 605;
2980
2989
  this.parameters();
2981
- this.state = 604;
2990
+ this.state = 606;
2982
2991
  this.match(CircuitScriptParser.CLOSE_PAREN);
2983
2992
  }
2984
2993
  break;
2985
2994
  case 3:
2986
2995
  {
2987
- this.state = 606;
2996
+ this.state = 608;
2988
2997
  this.nested_properties_inner();
2989
2998
  }
2990
2999
  break;
@@ -2995,33 +3004,33 @@ class CircuitScriptParser extends antlr.Parser {
2995
3004
  localContext = new GraphicForExprContext(localContext);
2996
3005
  this.enterOuterAlt(localContext, 2);
2997
3006
  {
2998
- this.state = 609;
3007
+ this.state = 611;
2999
3008
  this.match(CircuitScriptParser.For);
3000
- this.state = 610;
3009
+ this.state = 612;
3001
3010
  this.match(CircuitScriptParser.ID);
3002
- this.state = 615;
3011
+ this.state = 617;
3003
3012
  this.errorHandler.sync(this);
3004
3013
  _la = this.tokenStream.LA(1);
3005
3014
  while (_la === 2) {
3006
3015
  {
3007
3016
  {
3008
- this.state = 611;
3017
+ this.state = 613;
3009
3018
  this.match(CircuitScriptParser.T__1);
3010
- this.state = 612;
3019
+ this.state = 614;
3011
3020
  this.match(CircuitScriptParser.ID);
3012
3021
  }
3013
3022
  }
3014
- this.state = 617;
3023
+ this.state = 619;
3015
3024
  this.errorHandler.sync(this);
3016
3025
  _la = this.tokenStream.LA(1);
3017
3026
  }
3018
- this.state = 618;
3027
+ this.state = 620;
3019
3028
  this.match(CircuitScriptParser.In);
3020
- this.state = 619;
3029
+ this.state = 621;
3021
3030
  this.data_expr(0);
3022
- this.state = 620;
3031
+ this.state = 622;
3023
3032
  this.match(CircuitScriptParser.T__0);
3024
- this.state = 621;
3033
+ this.state = 623;
3025
3034
  this.graphic_expressions_block();
3026
3035
  }
3027
3036
  break;
@@ -3046,14 +3055,29 @@ class CircuitScriptParser extends antlr.Parser {
3046
3055
  property_expr() {
3047
3056
  let localContext = new Property_exprContext(this.context, this.state);
3048
3057
  this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
3058
+ let _la;
3049
3059
  try {
3050
3060
  this.enterOuterAlt(localContext, 1);
3051
3061
  {
3052
- this.state = 625;
3062
+ this.state = 627;
3053
3063
  this.property_key_expr();
3054
- this.state = 626;
3064
+ this.state = 631;
3065
+ this.errorHandler.sync(this);
3066
+ _la = this.tokenStream.LA(1);
3067
+ while (_la === 63) {
3068
+ {
3069
+ {
3070
+ this.state = 628;
3071
+ localContext._extra = this.match(CircuitScriptParser.STRING_VALUE);
3072
+ }
3073
+ }
3074
+ this.state = 633;
3075
+ this.errorHandler.sync(this);
3076
+ _la = this.tokenStream.LA(1);
3077
+ }
3078
+ this.state = 634;
3055
3079
  this.match(CircuitScriptParser.T__0);
3056
- this.state = 627;
3080
+ this.state = 635;
3057
3081
  this.property_value_expr();
3058
3082
  }
3059
3083
  }
@@ -3078,9 +3102,9 @@ class CircuitScriptParser extends antlr.Parser {
3078
3102
  try {
3079
3103
  this.enterOuterAlt(localContext, 1);
3080
3104
  {
3081
- this.state = 629;
3105
+ this.state = 637;
3082
3106
  _la = this.tokenStream.LA(1);
3083
- if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 19) !== 0))) {
3107
+ if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 19) !== 0))) {
3084
3108
  this.errorHandler.recoverInline(this);
3085
3109
  }
3086
3110
  else {
@@ -3108,14 +3132,14 @@ class CircuitScriptParser extends antlr.Parser {
3108
3132
  this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3109
3133
  let _la;
3110
3134
  try {
3111
- this.state = 640;
3135
+ this.state = 648;
3112
3136
  this.errorHandler.sync(this);
3113
3137
  switch (this.tokenStream.LA(1)) {
3114
3138
  case CircuitScriptParser.NEWLINE:
3115
3139
  localContext = new Nested_propertiesContext(localContext);
3116
3140
  this.enterOuterAlt(localContext, 1);
3117
3141
  {
3118
- this.state = 631;
3142
+ this.state = 639;
3119
3143
  this.nested_properties_inner();
3120
3144
  }
3121
3145
  break;
@@ -3136,21 +3160,21 @@ class CircuitScriptParser extends antlr.Parser {
3136
3160
  localContext = new Single_line_propertyContext(localContext);
3137
3161
  this.enterOuterAlt(localContext, 2);
3138
3162
  {
3139
- this.state = 632;
3163
+ this.state = 640;
3140
3164
  this.data_expr(0);
3141
- this.state = 637;
3165
+ this.state = 645;
3142
3166
  this.errorHandler.sync(this);
3143
3167
  _la = this.tokenStream.LA(1);
3144
3168
  while (_la === 2) {
3145
3169
  {
3146
3170
  {
3147
- this.state = 633;
3171
+ this.state = 641;
3148
3172
  this.match(CircuitScriptParser.T__1);
3149
- this.state = 634;
3173
+ this.state = 642;
3150
3174
  this.data_expr(0);
3151
3175
  }
3152
3176
  }
3153
- this.state = 639;
3177
+ this.state = 647;
3154
3178
  this.errorHandler.sync(this);
3155
3179
  _la = this.tokenStream.LA(1);
3156
3180
  }
@@ -3178,27 +3202,27 @@ class CircuitScriptParser extends antlr.Parser {
3178
3202
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3179
3203
  this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3180
3204
  try {
3181
- this.state = 648;
3205
+ this.state = 656;
3182
3206
  this.errorHandler.sync(this);
3183
- switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3207
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 71, this.context)) {
3184
3208
  case 1:
3185
3209
  localContext = new Wire_expr_direction_valueContext(localContext);
3186
3210
  this.enterOuterAlt(localContext, 1);
3187
3211
  {
3188
- this.state = 642;
3212
+ this.state = 650;
3189
3213
  this.match(CircuitScriptParser.ID);
3190
- this.state = 645;
3214
+ this.state = 653;
3191
3215
  this.errorHandler.sync(this);
3192
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3216
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3193
3217
  case 1:
3194
3218
  {
3195
- this.state = 643;
3219
+ this.state = 651;
3196
3220
  this.match(CircuitScriptParser.INTEGER_VALUE);
3197
3221
  }
3198
3222
  break;
3199
3223
  case 2:
3200
3224
  {
3201
- this.state = 644;
3225
+ this.state = 652;
3202
3226
  this.data_expr(0);
3203
3227
  }
3204
3228
  break;
@@ -3209,7 +3233,7 @@ class CircuitScriptParser extends antlr.Parser {
3209
3233
  localContext = new Wire_expr_direction_onlyContext(localContext);
3210
3234
  this.enterOuterAlt(localContext, 2);
3211
3235
  {
3212
- this.state = 647;
3236
+ this.state = 655;
3213
3237
  this.match(CircuitScriptParser.ID);
3214
3238
  }
3215
3239
  break;
@@ -3236,23 +3260,23 @@ class CircuitScriptParser extends antlr.Parser {
3236
3260
  let alternative;
3237
3261
  this.enterOuterAlt(localContext, 1);
3238
3262
  {
3239
- this.state = 650;
3263
+ this.state = 658;
3240
3264
  this.match(CircuitScriptParser.Wire);
3241
- this.state = 654;
3265
+ this.state = 662;
3242
3266
  this.errorHandler.sync(this);
3243
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3267
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3244
3268
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3245
3269
  if (alternative === 1) {
3246
3270
  {
3247
3271
  {
3248
- this.state = 651;
3272
+ this.state = 659;
3249
3273
  this.wire_atom_expr();
3250
3274
  }
3251
3275
  }
3252
3276
  }
3253
- this.state = 656;
3277
+ this.state = 664;
3254
3278
  this.errorHandler.sync(this);
3255
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3279
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3256
3280
  }
3257
3281
  }
3258
3282
  }
@@ -3277,39 +3301,39 @@ class CircuitScriptParser extends antlr.Parser {
3277
3301
  try {
3278
3302
  this.enterOuterAlt(localContext, 1);
3279
3303
  {
3280
- this.state = 657;
3304
+ this.state = 665;
3281
3305
  this.match(CircuitScriptParser.T__4);
3282
- this.state = 668;
3306
+ this.state = 676;
3283
3307
  this.errorHandler.sync(this);
3284
3308
  _la = this.tokenStream.LA(1);
3285
- while (_la === 5 || _la === 11 || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4265621505) !== 0)) {
3309
+ while (_la === 5 || _la === 11 || ((((_la - 33)) & ~0x1F) === 0 && ((1 << (_la - 33)) & 4265621505) !== 0)) {
3286
3310
  {
3287
3311
  {
3288
- this.state = 658;
3312
+ this.state = 666;
3289
3313
  this.data_expr(0);
3290
- this.state = 663;
3314
+ this.state = 671;
3291
3315
  this.errorHandler.sync(this);
3292
3316
  _la = this.tokenStream.LA(1);
3293
3317
  while (_la === 2) {
3294
3318
  {
3295
3319
  {
3296
- this.state = 659;
3320
+ this.state = 667;
3297
3321
  this.match(CircuitScriptParser.T__1);
3298
- this.state = 660;
3322
+ this.state = 668;
3299
3323
  this.data_expr(0);
3300
3324
  }
3301
3325
  }
3302
- this.state = 665;
3326
+ this.state = 673;
3303
3327
  this.errorHandler.sync(this);
3304
3328
  _la = this.tokenStream.LA(1);
3305
3329
  }
3306
3330
  }
3307
3331
  }
3308
- this.state = 670;
3332
+ this.state = 678;
3309
3333
  this.errorHandler.sync(this);
3310
3334
  _la = this.tokenStream.LA(1);
3311
3335
  }
3312
- this.state = 671;
3336
+ this.state = 679;
3313
3337
  this.match(CircuitScriptParser.T__5);
3314
3338
  }
3315
3339
  }
@@ -3333,20 +3357,20 @@ class CircuitScriptParser extends antlr.Parser {
3333
3357
  try {
3334
3358
  this.enterOuterAlt(localContext, 1);
3335
3359
  {
3336
- this.state = 673;
3360
+ this.state = 681;
3337
3361
  this.match(CircuitScriptParser.Point);
3338
- this.state = 676;
3362
+ this.state = 684;
3339
3363
  this.errorHandler.sync(this);
3340
- switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3364
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context)) {
3341
3365
  case 1:
3342
3366
  {
3343
- this.state = 674;
3367
+ this.state = 682;
3344
3368
  this.match(CircuitScriptParser.ID);
3345
3369
  }
3346
3370
  break;
3347
3371
  case 2:
3348
3372
  {
3349
- this.state = 675;
3373
+ this.state = 683;
3350
3374
  this.data_expr(0);
3351
3375
  }
3352
3376
  break;
@@ -3370,13 +3394,146 @@ class CircuitScriptParser extends antlr.Parser {
3370
3394
  import_expr() {
3371
3395
  let localContext = new Import_exprContext(this.context, this.state);
3372
3396
  this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3397
+ let _la;
3373
3398
  try {
3399
+ this.state = 712;
3400
+ this.errorHandler.sync(this);
3401
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 80, this.context)) {
3402
+ case 1:
3403
+ localContext = new Import_simpleContext(localContext);
3404
+ this.enterOuterAlt(localContext, 1);
3405
+ {
3406
+ this.state = 686;
3407
+ this.match(CircuitScriptParser.Import);
3408
+ this.state = 687;
3409
+ localContext._moduleName = this.match(CircuitScriptParser.ID);
3410
+ this.state = 689;
3411
+ this.errorHandler.sync(this);
3412
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context)) {
3413
+ case 1:
3414
+ {
3415
+ this.state = 688;
3416
+ this.import_annotation_expr();
3417
+ }
3418
+ break;
3419
+ }
3420
+ }
3421
+ break;
3422
+ case 2:
3423
+ localContext = new Import_all_simpleContext(localContext);
3424
+ this.enterOuterAlt(localContext, 2);
3425
+ {
3426
+ this.state = 691;
3427
+ this.match(CircuitScriptParser.From);
3428
+ this.state = 692;
3429
+ localContext._moduleName = this.match(CircuitScriptParser.ID);
3430
+ this.state = 693;
3431
+ this.match(CircuitScriptParser.Import);
3432
+ this.state = 694;
3433
+ this.match(CircuitScriptParser.Multiply);
3434
+ this.state = 696;
3435
+ this.errorHandler.sync(this);
3436
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context)) {
3437
+ case 1:
3438
+ {
3439
+ this.state = 695;
3440
+ this.import_annotation_expr();
3441
+ }
3442
+ break;
3443
+ }
3444
+ }
3445
+ break;
3446
+ case 3:
3447
+ localContext = new Import_specificContext(localContext);
3448
+ this.enterOuterAlt(localContext, 3);
3449
+ {
3450
+ this.state = 698;
3451
+ this.match(CircuitScriptParser.From);
3452
+ this.state = 699;
3453
+ localContext._moduleName = this.match(CircuitScriptParser.ID);
3454
+ this.state = 700;
3455
+ this.match(CircuitScriptParser.Import);
3456
+ this.state = 701;
3457
+ localContext._ID = this.match(CircuitScriptParser.ID);
3458
+ localContext._funcNames.push(localContext._ID);
3459
+ this.state = 706;
3460
+ this.errorHandler.sync(this);
3461
+ _la = this.tokenStream.LA(1);
3462
+ while (_la === 2) {
3463
+ {
3464
+ {
3465
+ this.state = 702;
3466
+ this.match(CircuitScriptParser.T__1);
3467
+ this.state = 703;
3468
+ localContext._ID = this.match(CircuitScriptParser.ID);
3469
+ localContext._funcNames.push(localContext._ID);
3470
+ }
3471
+ }
3472
+ this.state = 708;
3473
+ this.errorHandler.sync(this);
3474
+ _la = this.tokenStream.LA(1);
3475
+ }
3476
+ this.state = 710;
3477
+ this.errorHandler.sync(this);
3478
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 79, this.context)) {
3479
+ case 1:
3480
+ {
3481
+ this.state = 709;
3482
+ this.import_annotation_expr();
3483
+ }
3484
+ break;
3485
+ }
3486
+ }
3487
+ break;
3488
+ }
3489
+ }
3490
+ catch (re) {
3491
+ if (re instanceof antlr.RecognitionException) {
3492
+ this.errorHandler.reportError(this, re);
3493
+ this.errorHandler.recover(this, re);
3494
+ }
3495
+ else {
3496
+ throw re;
3497
+ }
3498
+ }
3499
+ finally {
3500
+ this.exitRule();
3501
+ }
3502
+ return localContext;
3503
+ }
3504
+ import_annotation_expr() {
3505
+ let localContext = new Import_annotation_exprContext(this.context, this.state);
3506
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_import_annotation_expr);
3507
+ let _la;
3508
+ try {
3509
+ let alternative;
3374
3510
  this.enterOuterAlt(localContext, 1);
3375
3511
  {
3376
- this.state = 678;
3377
- this.match(CircuitScriptParser.Import);
3378
- this.state = 679;
3379
- this.match(CircuitScriptParser.ID);
3512
+ this.state = 714;
3513
+ this.match(CircuitScriptParser.ANNOTATION_START);
3514
+ this.state = 718;
3515
+ this.errorHandler.sync(this);
3516
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3517
+ while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3518
+ if (alternative === 1) {
3519
+ {
3520
+ {
3521
+ this.state = 715;
3522
+ _la = this.tokenStream.LA(1);
3523
+ if (!(_la === 45 || _la === 59)) {
3524
+ this.errorHandler.recoverInline(this);
3525
+ }
3526
+ else {
3527
+ this.errorHandler.reportMatch(this);
3528
+ this.consume();
3529
+ }
3530
+ }
3531
+ }
3532
+ }
3533
+ this.state = 720;
3534
+ this.errorHandler.sync(this);
3535
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3536
+ }
3380
3537
  }
3381
3538
  }
3382
3539
  catch (re) {
@@ -3395,23 +3552,23 @@ class CircuitScriptParser extends antlr.Parser {
3395
3552
  }
3396
3553
  frame_expr() {
3397
3554
  let localContext = new Frame_exprContext(this.context, this.state);
3398
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3555
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_frame_expr);
3399
3556
  let _la;
3400
3557
  try {
3401
3558
  this.enterOuterAlt(localContext, 1);
3402
3559
  {
3403
- this.state = 681;
3560
+ this.state = 721;
3404
3561
  _la = this.tokenStream.LA(1);
3405
- if (!(_la === 33 || _la === 34)) {
3562
+ if (!(_la === 34 || _la === 35)) {
3406
3563
  this.errorHandler.recoverInline(this);
3407
3564
  }
3408
3565
  else {
3409
3566
  this.errorHandler.reportMatch(this);
3410
3567
  this.consume();
3411
3568
  }
3412
- this.state = 682;
3569
+ this.state = 722;
3413
3570
  this.match(CircuitScriptParser.T__0);
3414
- this.state = 683;
3571
+ this.state = 723;
3415
3572
  this.expressions_block();
3416
3573
  }
3417
3574
  }
@@ -3431,42 +3588,42 @@ class CircuitScriptParser extends antlr.Parser {
3431
3588
  }
3432
3589
  if_expr() {
3433
3590
  let localContext = new If_exprContext(this.context, this.state);
3434
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3591
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_expr);
3435
3592
  let _la;
3436
3593
  try {
3437
3594
  let alternative;
3438
3595
  this.enterOuterAlt(localContext, 1);
3439
3596
  {
3440
- this.state = 685;
3597
+ this.state = 725;
3441
3598
  this.match(CircuitScriptParser.If);
3442
- this.state = 686;
3599
+ this.state = 726;
3443
3600
  this.data_expr(0);
3444
- this.state = 687;
3601
+ this.state = 727;
3445
3602
  this.match(CircuitScriptParser.T__0);
3446
- this.state = 688;
3603
+ this.state = 728;
3447
3604
  this.expressions_block();
3448
- this.state = 692;
3605
+ this.state = 732;
3449
3606
  this.errorHandler.sync(this);
3450
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3607
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3451
3608
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3452
3609
  if (alternative === 1) {
3453
3610
  {
3454
3611
  {
3455
- this.state = 689;
3612
+ this.state = 729;
3456
3613
  this.if_inner_expr();
3457
3614
  }
3458
3615
  }
3459
3616
  }
3460
- this.state = 694;
3617
+ this.state = 734;
3461
3618
  this.errorHandler.sync(this);
3462
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3619
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3463
3620
  }
3464
- this.state = 696;
3621
+ this.state = 736;
3465
3622
  this.errorHandler.sync(this);
3466
3623
  _la = this.tokenStream.LA(1);
3467
- if (_la === 31) {
3624
+ if (_la === 32) {
3468
3625
  {
3469
- this.state = 695;
3626
+ this.state = 735;
3470
3627
  this.else_expr();
3471
3628
  }
3472
3629
  }
@@ -3488,19 +3645,19 @@ class CircuitScriptParser extends antlr.Parser {
3488
3645
  }
3489
3646
  if_inner_expr() {
3490
3647
  let localContext = new If_inner_exprContext(this.context, this.state);
3491
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3648
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_if_inner_expr);
3492
3649
  try {
3493
3650
  this.enterOuterAlt(localContext, 1);
3494
3651
  {
3495
- this.state = 698;
3652
+ this.state = 738;
3496
3653
  this.match(CircuitScriptParser.Else);
3497
- this.state = 699;
3654
+ this.state = 739;
3498
3655
  this.match(CircuitScriptParser.If);
3499
- this.state = 700;
3656
+ this.state = 740;
3500
3657
  this.data_expr(0);
3501
- this.state = 701;
3658
+ this.state = 741;
3502
3659
  this.match(CircuitScriptParser.T__0);
3503
- this.state = 702;
3660
+ this.state = 742;
3504
3661
  this.expressions_block();
3505
3662
  }
3506
3663
  }
@@ -3520,15 +3677,15 @@ class CircuitScriptParser extends antlr.Parser {
3520
3677
  }
3521
3678
  else_expr() {
3522
3679
  let localContext = new Else_exprContext(this.context, this.state);
3523
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3680
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_else_expr);
3524
3681
  try {
3525
3682
  this.enterOuterAlt(localContext, 1);
3526
3683
  {
3527
- this.state = 704;
3684
+ this.state = 744;
3528
3685
  this.match(CircuitScriptParser.Else);
3529
- this.state = 705;
3686
+ this.state = 745;
3530
3687
  this.match(CircuitScriptParser.T__0);
3531
- this.state = 706;
3688
+ this.state = 746;
3532
3689
  this.expressions_block();
3533
3690
  }
3534
3691
  }
@@ -3548,17 +3705,17 @@ class CircuitScriptParser extends antlr.Parser {
3548
3705
  }
3549
3706
  while_expr() {
3550
3707
  let localContext = new While_exprContext(this.context, this.state);
3551
- this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3708
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_while_expr);
3552
3709
  try {
3553
3710
  this.enterOuterAlt(localContext, 1);
3554
3711
  {
3555
- this.state = 708;
3712
+ this.state = 748;
3556
3713
  this.match(CircuitScriptParser.While);
3557
- this.state = 709;
3714
+ this.state = 749;
3558
3715
  this.data_expr(0);
3559
- this.state = 710;
3716
+ this.state = 750;
3560
3717
  this.match(CircuitScriptParser.T__0);
3561
- this.state = 711;
3718
+ this.state = 751;
3562
3719
  this.expressions_block();
3563
3720
  }
3564
3721
  }
@@ -3578,38 +3735,38 @@ class CircuitScriptParser extends antlr.Parser {
3578
3735
  }
3579
3736
  for_expr() {
3580
3737
  let localContext = new For_exprContext(this.context, this.state);
3581
- this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3738
+ this.enterRule(localContext, 132, CircuitScriptParser.RULE_for_expr);
3582
3739
  let _la;
3583
3740
  try {
3584
3741
  this.enterOuterAlt(localContext, 1);
3585
3742
  {
3586
- this.state = 713;
3743
+ this.state = 753;
3587
3744
  this.match(CircuitScriptParser.For);
3588
- this.state = 714;
3745
+ this.state = 754;
3589
3746
  this.match(CircuitScriptParser.ID);
3590
- this.state = 719;
3747
+ this.state = 759;
3591
3748
  this.errorHandler.sync(this);
3592
3749
  _la = this.tokenStream.LA(1);
3593
3750
  while (_la === 2) {
3594
3751
  {
3595
3752
  {
3596
- this.state = 715;
3753
+ this.state = 755;
3597
3754
  this.match(CircuitScriptParser.T__1);
3598
- this.state = 716;
3755
+ this.state = 756;
3599
3756
  this.match(CircuitScriptParser.ID);
3600
3757
  }
3601
3758
  }
3602
- this.state = 721;
3759
+ this.state = 761;
3603
3760
  this.errorHandler.sync(this);
3604
3761
  _la = this.tokenStream.LA(1);
3605
3762
  }
3606
- this.state = 722;
3763
+ this.state = 762;
3607
3764
  this.match(CircuitScriptParser.In);
3608
- this.state = 723;
3765
+ this.state = 763;
3609
3766
  this.data_expr(0);
3610
- this.state = 724;
3767
+ this.state = 764;
3611
3768
  this.match(CircuitScriptParser.T__0);
3612
- this.state = 725;
3769
+ this.state = 765;
3613
3770
  this.expressions_block();
3614
3771
  }
3615
3772
  }
@@ -3629,36 +3786,36 @@ class CircuitScriptParser extends antlr.Parser {
3629
3786
  }
3630
3787
  part_set_expr() {
3631
3788
  let localContext = new Part_set_exprContext(this.context, this.state);
3632
- this.enterRule(localContext, 132, CircuitScriptParser.RULE_part_set_expr);
3789
+ this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_expr);
3633
3790
  let _la;
3634
3791
  try {
3635
3792
  this.enterOuterAlt(localContext, 1);
3636
3793
  {
3637
- this.state = 727;
3794
+ this.state = 767;
3638
3795
  this.match(CircuitScriptParser.T__7);
3639
- this.state = 728;
3796
+ this.state = 768;
3640
3797
  this.match(CircuitScriptParser.T__0);
3641
- this.state = 729;
3798
+ this.state = 769;
3642
3799
  this.data_expr(0);
3643
- this.state = 734;
3800
+ this.state = 774;
3644
3801
  this.errorHandler.sync(this);
3645
3802
  _la = this.tokenStream.LA(1);
3646
3803
  while (_la === 2) {
3647
3804
  {
3648
3805
  {
3649
- this.state = 730;
3806
+ this.state = 770;
3650
3807
  this.match(CircuitScriptParser.T__1);
3651
- this.state = 731;
3808
+ this.state = 771;
3652
3809
  this.data_expr(0);
3653
3810
  }
3654
3811
  }
3655
- this.state = 736;
3812
+ this.state = 776;
3656
3813
  this.errorHandler.sync(this);
3657
3814
  _la = this.tokenStream.LA(1);
3658
3815
  }
3659
- this.state = 737;
3816
+ this.state = 777;
3660
3817
  this.match(CircuitScriptParser.T__0);
3661
- this.state = 738;
3818
+ this.state = 778;
3662
3819
  this.part_match_block();
3663
3820
  }
3664
3821
  }
@@ -3678,14 +3835,14 @@ class CircuitScriptParser extends antlr.Parser {
3678
3835
  }
3679
3836
  part_set_key() {
3680
3837
  let localContext = new Part_set_keyContext(this.context, this.state);
3681
- this.enterRule(localContext, 134, CircuitScriptParser.RULE_part_set_key);
3838
+ this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_set_key);
3682
3839
  let _la;
3683
3840
  try {
3684
3841
  this.enterOuterAlt(localContext, 1);
3685
3842
  {
3686
- this.state = 740;
3843
+ this.state = 780;
3687
3844
  _la = this.tokenStream.LA(1);
3688
- if (!(((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 59) !== 0))) {
3845
+ if (!(((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 59) !== 0))) {
3689
3846
  this.errorHandler.recoverInline(this);
3690
3847
  }
3691
3848
  else {
@@ -3710,26 +3867,26 @@ class CircuitScriptParser extends antlr.Parser {
3710
3867
  }
3711
3868
  part_match_block() {
3712
3869
  let localContext = new Part_match_blockContext(this.context, this.state);
3713
- this.enterRule(localContext, 136, CircuitScriptParser.RULE_part_match_block);
3870
+ this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_match_block);
3714
3871
  let _la;
3715
3872
  try {
3716
3873
  this.enterOuterAlt(localContext, 1);
3717
3874
  {
3718
- this.state = 742;
3875
+ this.state = 782;
3719
3876
  this.match(CircuitScriptParser.NEWLINE);
3720
- this.state = 743;
3877
+ this.state = 783;
3721
3878
  this.match(CircuitScriptParser.INDENT);
3722
- this.state = 746;
3879
+ this.state = 786;
3723
3880
  this.errorHandler.sync(this);
3724
3881
  _la = this.tokenStream.LA(1);
3725
3882
  do {
3726
3883
  {
3727
- this.state = 746;
3884
+ this.state = 786;
3728
3885
  this.errorHandler.sync(this);
3729
3886
  switch (this.tokenStream.LA(1)) {
3730
3887
  case CircuitScriptParser.NEWLINE:
3731
3888
  {
3732
- this.state = 744;
3889
+ this.state = 784;
3733
3890
  this.match(CircuitScriptParser.NEWLINE);
3734
3891
  }
3735
3892
  break;
@@ -3739,7 +3896,7 @@ class CircuitScriptParser extends antlr.Parser {
3739
3896
  case CircuitScriptParser.STRING_VALUE:
3740
3897
  case CircuitScriptParser.PERCENTAGE_VALUE:
3741
3898
  {
3742
- this.state = 745;
3899
+ this.state = 785;
3743
3900
  this.part_sub_expr();
3744
3901
  }
3745
3902
  break;
@@ -3747,11 +3904,11 @@ class CircuitScriptParser extends antlr.Parser {
3747
3904
  throw new antlr.NoViableAltException(this);
3748
3905
  }
3749
3906
  }
3750
- this.state = 748;
3907
+ this.state = 788;
3751
3908
  this.errorHandler.sync(this);
3752
3909
  _la = this.tokenStream.LA(1);
3753
- } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 315) !== 0));
3754
- this.state = 750;
3910
+ } while (((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 315) !== 0));
3911
+ this.state = 790;
3755
3912
  this.match(CircuitScriptParser.DEDENT);
3756
3913
  }
3757
3914
  }
@@ -3771,29 +3928,29 @@ class CircuitScriptParser extends antlr.Parser {
3771
3928
  }
3772
3929
  part_sub_expr() {
3773
3930
  let localContext = new Part_sub_exprContext(this.context, this.state);
3774
- this.enterRule(localContext, 138, CircuitScriptParser.RULE_part_sub_expr);
3931
+ this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_sub_expr);
3775
3932
  try {
3776
- this.state = 755;
3933
+ this.state = 795;
3777
3934
  this.errorHandler.sync(this);
3778
- switch (this.interpreter.adaptivePredict(this.tokenStream, 81, this.context)) {
3935
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context)) {
3779
3936
  case 1:
3780
3937
  this.enterOuterAlt(localContext, 1);
3781
3938
  {
3782
- this.state = 752;
3939
+ this.state = 792;
3783
3940
  this.part_condition_expr();
3784
3941
  }
3785
3942
  break;
3786
3943
  case 2:
3787
3944
  this.enterOuterAlt(localContext, 2);
3788
3945
  {
3789
- this.state = 753;
3946
+ this.state = 793;
3790
3947
  this.part_value_expr();
3791
3948
  }
3792
3949
  break;
3793
3950
  case 3:
3794
3951
  this.enterOuterAlt(localContext, 3);
3795
3952
  {
3796
- this.state = 754;
3953
+ this.state = 794;
3797
3954
  this.part_condition_key_only_expr();
3798
3955
  }
3799
3956
  break;
@@ -3815,68 +3972,68 @@ class CircuitScriptParser extends antlr.Parser {
3815
3972
  }
3816
3973
  part_condition_expr() {
3817
3974
  let localContext = new Part_condition_exprContext(this.context, this.state);
3818
- this.enterRule(localContext, 140, CircuitScriptParser.RULE_part_condition_expr);
3975
+ this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_expr);
3819
3976
  let _la;
3820
3977
  try {
3821
3978
  let alternative;
3822
3979
  this.enterOuterAlt(localContext, 1);
3823
3980
  {
3824
- this.state = 757;
3981
+ this.state = 797;
3825
3982
  localContext._part_set_key = this.part_set_key();
3826
3983
  localContext._key_id.push(localContext._part_set_key);
3827
- this.state = 758;
3984
+ this.state = 798;
3828
3985
  this.match(CircuitScriptParser.T__0);
3829
- this.state = 759;
3986
+ this.state = 799;
3830
3987
  localContext._data_expr = this.data_expr(0);
3831
3988
  localContext._values.push(localContext._data_expr);
3832
- this.state = 767;
3989
+ this.state = 807;
3833
3990
  this.errorHandler.sync(this);
3834
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3991
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
3835
3992
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3836
3993
  if (alternative === 1) {
3837
3994
  {
3838
3995
  {
3839
- this.state = 760;
3996
+ this.state = 800;
3840
3997
  this.match(CircuitScriptParser.T__1);
3841
- this.state = 761;
3998
+ this.state = 801;
3842
3999
  localContext._part_set_key = this.part_set_key();
3843
4000
  localContext._key_id.push(localContext._part_set_key);
3844
- this.state = 762;
4001
+ this.state = 802;
3845
4002
  this.match(CircuitScriptParser.T__0);
3846
- this.state = 763;
4003
+ this.state = 803;
3847
4004
  localContext._data_expr = this.data_expr(0);
3848
4005
  localContext._values.push(localContext._data_expr);
3849
4006
  }
3850
4007
  }
3851
4008
  }
3852
- this.state = 769;
4009
+ this.state = 809;
3853
4010
  this.errorHandler.sync(this);
3854
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
4011
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 89, this.context);
3855
4012
  }
3856
- this.state = 774;
4013
+ this.state = 814;
3857
4014
  this.errorHandler.sync(this);
3858
4015
  _la = this.tokenStream.LA(1);
3859
4016
  while (_la === 2) {
3860
4017
  {
3861
4018
  {
3862
- this.state = 770;
4019
+ this.state = 810;
3863
4020
  this.match(CircuitScriptParser.T__1);
3864
- this.state = 771;
4021
+ this.state = 811;
3865
4022
  localContext._id_only = this.part_set_key();
3866
4023
  }
3867
4024
  }
3868
- this.state = 776;
4025
+ this.state = 816;
3869
4026
  this.errorHandler.sync(this);
3870
4027
  _la = this.tokenStream.LA(1);
3871
4028
  }
3872
- this.state = 777;
4029
+ this.state = 817;
3873
4030
  this.match(CircuitScriptParser.T__0);
3874
- this.state = 787;
4031
+ this.state = 827;
3875
4032
  this.errorHandler.sync(this);
3876
4033
  switch (this.tokenStream.LA(1)) {
3877
4034
  case CircuitScriptParser.NEWLINE:
3878
4035
  {
3879
- this.state = 778;
4036
+ this.state = 818;
3880
4037
  this.part_match_block();
3881
4038
  }
3882
4039
  break;
@@ -3896,23 +4053,23 @@ class CircuitScriptParser extends antlr.Parser {
3896
4053
  case CircuitScriptParser.PERCENTAGE_VALUE:
3897
4054
  {
3898
4055
  {
3899
- this.state = 779;
4056
+ this.state = 819;
3900
4057
  localContext._data_expr = this.data_expr(0);
3901
4058
  localContext._last_data.push(localContext._data_expr);
3902
- this.state = 784;
4059
+ this.state = 824;
3903
4060
  this.errorHandler.sync(this);
3904
4061
  _la = this.tokenStream.LA(1);
3905
4062
  while (_la === 2) {
3906
4063
  {
3907
4064
  {
3908
- this.state = 780;
4065
+ this.state = 820;
3909
4066
  this.match(CircuitScriptParser.T__1);
3910
- this.state = 781;
4067
+ this.state = 821;
3911
4068
  localContext._data_expr = this.data_expr(0);
3912
4069
  localContext._last_data.push(localContext._data_expr);
3913
4070
  }
3914
4071
  }
3915
- this.state = 786;
4072
+ this.state = 826;
3916
4073
  this.errorHandler.sync(this);
3917
4074
  _la = this.tokenStream.LA(1);
3918
4075
  }
@@ -3940,15 +4097,15 @@ class CircuitScriptParser extends antlr.Parser {
3940
4097
  }
3941
4098
  part_condition_key_only_expr() {
3942
4099
  let localContext = new Part_condition_key_only_exprContext(this.context, this.state);
3943
- this.enterRule(localContext, 142, CircuitScriptParser.RULE_part_condition_key_only_expr);
4100
+ this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_condition_key_only_expr);
3944
4101
  try {
3945
4102
  this.enterOuterAlt(localContext, 1);
3946
4103
  {
3947
- this.state = 789;
4104
+ this.state = 829;
3948
4105
  this.part_set_key();
3949
- this.state = 790;
4106
+ this.state = 830;
3950
4107
  this.match(CircuitScriptParser.T__0);
3951
- this.state = 791;
4108
+ this.state = 831;
3952
4109
  this.part_match_block();
3953
4110
  }
3954
4111
  }
@@ -3968,30 +4125,30 @@ class CircuitScriptParser extends antlr.Parser {
3968
4125
  }
3969
4126
  part_value_expr() {
3970
4127
  let localContext = new Part_value_exprContext(this.context, this.state);
3971
- this.enterRule(localContext, 144, CircuitScriptParser.RULE_part_value_expr);
4128
+ this.enterRule(localContext, 146, CircuitScriptParser.RULE_part_value_expr);
3972
4129
  let _la;
3973
4130
  try {
3974
4131
  this.enterOuterAlt(localContext, 1);
3975
4132
  {
3976
- this.state = 793;
4133
+ this.state = 833;
3977
4134
  this.part_set_key();
3978
- this.state = 794;
4135
+ this.state = 834;
3979
4136
  this.match(CircuitScriptParser.T__0);
3980
- this.state = 795;
4137
+ this.state = 835;
3981
4138
  this.data_expr(0);
3982
- this.state = 800;
4139
+ this.state = 840;
3983
4140
  this.errorHandler.sync(this);
3984
4141
  _la = this.tokenStream.LA(1);
3985
4142
  while (_la === 2) {
3986
4143
  {
3987
4144
  {
3988
- this.state = 796;
4145
+ this.state = 836;
3989
4146
  this.match(CircuitScriptParser.T__1);
3990
- this.state = 797;
4147
+ this.state = 837;
3991
4148
  this.data_expr(0);
3992
4149
  }
3993
4150
  }
3994
- this.state = 802;
4151
+ this.state = 842;
3995
4152
  this.errorHandler.sync(this);
3996
4153
  _la = this.tokenStream.LA(1);
3997
4154
  }
@@ -4013,13 +4170,13 @@ class CircuitScriptParser extends antlr.Parser {
4013
4170
  }
4014
4171
  annotation_comment_expr() {
4015
4172
  let localContext = new Annotation_comment_exprContext(this.context, this.state);
4016
- this.enterRule(localContext, 146, CircuitScriptParser.RULE_annotation_comment_expr);
4173
+ this.enterRule(localContext, 148, CircuitScriptParser.RULE_annotation_comment_expr);
4017
4174
  try {
4018
4175
  this.enterOuterAlt(localContext, 1);
4019
4176
  {
4020
- this.state = 803;
4177
+ this.state = 843;
4021
4178
  this.match(CircuitScriptParser.ANNOTATION_START);
4022
- this.state = 804;
4179
+ this.state = 844;
4023
4180
  this.match(CircuitScriptParser.ID);
4024
4181
  }
4025
4182
  }
@@ -4095,50 +4252,51 @@ CircuitScriptParser.Parallel = 22;
4095
4252
  CircuitScriptParser.Return = 23;
4096
4253
  CircuitScriptParser.Define = 24;
4097
4254
  CircuitScriptParser.Import = 25;
4098
- CircuitScriptParser.For = 26;
4099
- CircuitScriptParser.In = 27;
4100
- CircuitScriptParser.While = 28;
4101
- CircuitScriptParser.Continue = 29;
4102
- CircuitScriptParser.If = 30;
4103
- CircuitScriptParser.Else = 31;
4104
- CircuitScriptParser.Not = 32;
4105
- CircuitScriptParser.Frame = 33;
4106
- CircuitScriptParser.Sheet = 34;
4107
- CircuitScriptParser.Equals = 35;
4108
- CircuitScriptParser.NotEquals = 36;
4109
- CircuitScriptParser.GreaterThan = 37;
4110
- CircuitScriptParser.GreatOrEqualThan = 38;
4111
- CircuitScriptParser.LessThan = 39;
4112
- CircuitScriptParser.LessOrEqualThan = 40;
4113
- CircuitScriptParser.LogicalAnd = 41;
4114
- CircuitScriptParser.LogicalOr = 42;
4115
- CircuitScriptParser.Addition = 43;
4116
- CircuitScriptParser.Minus = 44;
4117
- CircuitScriptParser.Divide = 45;
4118
- CircuitScriptParser.Multiply = 46;
4119
- CircuitScriptParser.Modulus = 47;
4120
- CircuitScriptParser.AdditionAssign = 48;
4121
- CircuitScriptParser.MinusAssign = 49;
4122
- CircuitScriptParser.DivideAssign = 50;
4123
- CircuitScriptParser.MultiplyAssign = 51;
4124
- CircuitScriptParser.ModulusAssign = 52;
4125
- CircuitScriptParser.ANNOTATION_START = 53;
4126
- CircuitScriptParser.OPEN_PAREN = 54;
4127
- CircuitScriptParser.CLOSE_PAREN = 55;
4128
- CircuitScriptParser.NOT_CONNECTED = 56;
4129
- CircuitScriptParser.BOOLEAN_VALUE = 57;
4130
- CircuitScriptParser.ID = 58;
4131
- CircuitScriptParser.INTEGER_VALUE = 59;
4132
- CircuitScriptParser.DECIMAL_VALUE = 60;
4133
- CircuitScriptParser.NUMERIC_VALUE = 61;
4134
- CircuitScriptParser.STRING_VALUE = 62;
4135
- CircuitScriptParser.PERCENTAGE_VALUE = 63;
4136
- CircuitScriptParser.ALPHA_NUMERIC = 64;
4137
- CircuitScriptParser.WS = 65;
4138
- CircuitScriptParser.NEWLINE = 66;
4139
- CircuitScriptParser.COMMENT = 67;
4140
- CircuitScriptParser.INDENT = 68;
4141
- CircuitScriptParser.DEDENT = 69;
4255
+ CircuitScriptParser.From = 26;
4256
+ CircuitScriptParser.For = 27;
4257
+ CircuitScriptParser.In = 28;
4258
+ CircuitScriptParser.While = 29;
4259
+ CircuitScriptParser.Continue = 30;
4260
+ CircuitScriptParser.If = 31;
4261
+ CircuitScriptParser.Else = 32;
4262
+ CircuitScriptParser.Not = 33;
4263
+ CircuitScriptParser.Frame = 34;
4264
+ CircuitScriptParser.Sheet = 35;
4265
+ CircuitScriptParser.Equals = 36;
4266
+ CircuitScriptParser.NotEquals = 37;
4267
+ CircuitScriptParser.GreaterThan = 38;
4268
+ CircuitScriptParser.GreatOrEqualThan = 39;
4269
+ CircuitScriptParser.LessThan = 40;
4270
+ CircuitScriptParser.LessOrEqualThan = 41;
4271
+ CircuitScriptParser.LogicalAnd = 42;
4272
+ CircuitScriptParser.LogicalOr = 43;
4273
+ CircuitScriptParser.Addition = 44;
4274
+ CircuitScriptParser.Minus = 45;
4275
+ CircuitScriptParser.Divide = 46;
4276
+ CircuitScriptParser.Multiply = 47;
4277
+ CircuitScriptParser.Modulus = 48;
4278
+ CircuitScriptParser.AdditionAssign = 49;
4279
+ CircuitScriptParser.MinusAssign = 50;
4280
+ CircuitScriptParser.DivideAssign = 51;
4281
+ CircuitScriptParser.MultiplyAssign = 52;
4282
+ CircuitScriptParser.ModulusAssign = 53;
4283
+ CircuitScriptParser.ANNOTATION_START = 54;
4284
+ CircuitScriptParser.OPEN_PAREN = 55;
4285
+ CircuitScriptParser.CLOSE_PAREN = 56;
4286
+ CircuitScriptParser.NOT_CONNECTED = 57;
4287
+ CircuitScriptParser.BOOLEAN_VALUE = 58;
4288
+ CircuitScriptParser.ID = 59;
4289
+ CircuitScriptParser.INTEGER_VALUE = 60;
4290
+ CircuitScriptParser.DECIMAL_VALUE = 61;
4291
+ CircuitScriptParser.NUMERIC_VALUE = 62;
4292
+ CircuitScriptParser.STRING_VALUE = 63;
4293
+ CircuitScriptParser.PERCENTAGE_VALUE = 64;
4294
+ CircuitScriptParser.ALPHA_NUMERIC = 65;
4295
+ CircuitScriptParser.WS = 66;
4296
+ CircuitScriptParser.NEWLINE = 67;
4297
+ CircuitScriptParser.COMMENT = 68;
4298
+ CircuitScriptParser.INDENT = 69;
4299
+ CircuitScriptParser.DEDENT = 70;
4142
4300
  CircuitScriptParser.RULE_script = 0;
4143
4301
  CircuitScriptParser.RULE_expression = 1;
4144
4302
  CircuitScriptParser.RULE_flow_expressions = 2;
@@ -4199,35 +4357,36 @@ CircuitScriptParser.RULE_wire_expr = 56;
4199
4357
  CircuitScriptParser.RULE_array_expr = 57;
4200
4358
  CircuitScriptParser.RULE_point_expr = 58;
4201
4359
  CircuitScriptParser.RULE_import_expr = 59;
4202
- CircuitScriptParser.RULE_frame_expr = 60;
4203
- CircuitScriptParser.RULE_if_expr = 61;
4204
- CircuitScriptParser.RULE_if_inner_expr = 62;
4205
- CircuitScriptParser.RULE_else_expr = 63;
4206
- CircuitScriptParser.RULE_while_expr = 64;
4207
- CircuitScriptParser.RULE_for_expr = 65;
4208
- CircuitScriptParser.RULE_part_set_expr = 66;
4209
- CircuitScriptParser.RULE_part_set_key = 67;
4210
- CircuitScriptParser.RULE_part_match_block = 68;
4211
- CircuitScriptParser.RULE_part_sub_expr = 69;
4212
- CircuitScriptParser.RULE_part_condition_expr = 70;
4213
- CircuitScriptParser.RULE_part_condition_key_only_expr = 71;
4214
- CircuitScriptParser.RULE_part_value_expr = 72;
4215
- CircuitScriptParser.RULE_annotation_comment_expr = 73;
4360
+ CircuitScriptParser.RULE_import_annotation_expr = 60;
4361
+ CircuitScriptParser.RULE_frame_expr = 61;
4362
+ CircuitScriptParser.RULE_if_expr = 62;
4363
+ CircuitScriptParser.RULE_if_inner_expr = 63;
4364
+ CircuitScriptParser.RULE_else_expr = 64;
4365
+ CircuitScriptParser.RULE_while_expr = 65;
4366
+ CircuitScriptParser.RULE_for_expr = 66;
4367
+ CircuitScriptParser.RULE_part_set_expr = 67;
4368
+ CircuitScriptParser.RULE_part_set_key = 68;
4369
+ CircuitScriptParser.RULE_part_match_block = 69;
4370
+ CircuitScriptParser.RULE_part_sub_expr = 70;
4371
+ CircuitScriptParser.RULE_part_condition_expr = 71;
4372
+ CircuitScriptParser.RULE_part_condition_key_only_expr = 72;
4373
+ CircuitScriptParser.RULE_part_value_expr = 73;
4374
+ CircuitScriptParser.RULE_annotation_comment_expr = 74;
4216
4375
  CircuitScriptParser.literalNames = [
4217
4376
  null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'set'",
4218
4377
  "'break'", "'branch'", "'create'", "'component'", "'graphic'", "'module'",
4219
4378
  "'wire'", "'pin'", "'add'", "'at'", "'to'", "'point'", "'join'",
4220
- "'parallel'", "'return'", "'def'", "'import'", "'for'", "'in'",
4221
- "'while'", "'continue'", "'if'", "'else'", null, "'frame'", "'sheet'",
4222
- "'=='", "'!='", "'>'", "'>='", "'<'", "'<='", null, null, "'+'",
4223
- "'-'", "'/'", "'*'", "'%'", "'+='", "'-='", "'/='", "'*='", "'%='",
4224
- "'#='", "'('", "')'"
4379
+ "'parallel'", "'return'", "'def'", "'import'", "'from'", "'for'",
4380
+ "'in'", "'while'", "'continue'", "'if'", "'else'", null, "'frame'",
4381
+ "'sheet'", "'=='", "'!='", "'>'", "'>='", "'<'", "'<='", null, null,
4382
+ "'+'", "'-'", "'/'", "'*'", "'%'", "'+='", "'-='", "'/='", "'*='",
4383
+ "'%='", "'#='", "'('", "')'"
4225
4384
  ];
4226
4385
  CircuitScriptParser.symbolicNames = [
4227
4386
  null, null, null, null, null, null, null, null, null, "Break", "Branch",
4228
4387
  "Create", "Component", "Graphic", "Module", "Wire", "Pin", "Add",
4229
4388
  "At", "To", "Point", "Join", "Parallel", "Return", "Define", "Import",
4230
- "For", "In", "While", "Continue", "If", "Else", "Not", "Frame",
4389
+ "From", "For", "In", "While", "Continue", "If", "Else", "Not", "Frame",
4231
4390
  "Sheet", "Equals", "NotEquals", "GreaterThan", "GreatOrEqualThan",
4232
4391
  "LessThan", "LessOrEqualThan", "LogicalAnd", "LogicalOr", "Addition",
4233
4392
  "Minus", "Divide", "Multiply", "Modulus", "AdditionAssign", "MinusAssign",
@@ -4255,13 +4414,14 @@ CircuitScriptParser.ruleNames = [
4255
4414
  "graphic_expressions_block", "create_graphic_expr", "create_module_expr",
4256
4415
  "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
4257
4416
  "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
4258
- "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
4259
- "else_expr", "while_expr", "for_expr", "part_set_expr", "part_set_key",
4260
- "part_match_block", "part_sub_expr", "part_condition_expr", "part_condition_key_only_expr",
4261
- "part_value_expr", "annotation_comment_expr",
4417
+ "point_expr", "import_expr", "import_annotation_expr", "frame_expr",
4418
+ "if_expr", "if_inner_expr", "else_expr", "while_expr", "for_expr",
4419
+ "part_set_expr", "part_set_key", "part_match_block", "part_sub_expr",
4420
+ "part_condition_expr", "part_condition_key_only_expr", "part_value_expr",
4421
+ "annotation_comment_expr",
4262
4422
  ];
4263
4423
  CircuitScriptParser._serializedATN = [
4264
- 4, 1, 69, 807, 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,
4424
+ 4, 1, 70, 847, 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,
4265
4425
  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,
4266
4426
  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,
4267
4427
  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,
@@ -4272,292 +4432,308 @@ CircuitScriptParser._serializedATN = [
4272
4432
  2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59,
4273
4433
  7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65,
4274
4434
  2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72,
4275
- 7, 72, 2, 73, 7, 73, 1, 0, 1, 0, 5, 0, 151, 8, 0, 10, 0, 12, 0, 154, 9, 0, 1, 0, 1, 0, 4, 0,
4276
- 158, 8, 0, 11, 0, 12, 0, 159, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4277
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 178, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 185, 8,
4278
- 2, 1, 3, 1, 3, 3, 3, 189, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 197, 8, 4, 1, 5, 1,
4279
- 5, 1, 5, 1, 5, 4, 5, 203, 8, 5, 11, 5, 12, 5, 204, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7,
4280
- 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 219, 8, 7, 11, 7, 12, 7, 220, 1, 7, 1, 7, 1, 8, 1, 8, 1,
4281
- 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 236, 8, 10, 1, 11, 1, 11, 3,
4282
- 11, 240, 8, 11, 1, 11, 5, 11, 243, 8, 11, 10, 11, 12, 11, 246, 9, 11, 1, 11, 3, 11, 249,
4283
- 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 257, 8, 13, 1, 14, 1, 14, 1, 15,
4284
- 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 268, 8, 16, 10, 16, 12, 16, 271, 9, 16,
4285
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 279, 8, 17, 10, 17, 12, 17, 282, 9, 17,
4286
- 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 289, 8, 17, 11, 17, 12, 17, 290, 1, 17, 1, 17,
4287
- 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 300, 8, 18, 10, 18, 12, 18, 303, 9, 18, 1, 19,
4288
- 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 312, 8, 20, 11, 20, 12, 20, 313, 1, 20,
4289
- 1, 20, 1, 21, 1, 21, 3, 21, 320, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 325, 8, 22, 10, 22,
4290
- 12, 22, 328, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 334, 8, 23, 1, 24, 1, 24, 3, 24,
4291
- 338, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 344, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1,
4292
- 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 360, 8, 29, 10,
4293
- 29, 12, 29, 363, 9, 29, 1, 29, 1, 29, 5, 29, 367, 8, 29, 10, 29, 12, 29, 370, 9, 29, 1,
4294
- 29, 1, 29, 1, 29, 5, 29, 375, 8, 29, 10, 29, 12, 29, 378, 9, 29, 3, 29, 380, 8, 29, 1,
4295
- 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4296
- 32, 1, 32, 1, 32, 3, 32, 398, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4297
- 32, 3, 32, 408, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1,
4298
- 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 428, 8, 32, 10, 32, 12,
4299
- 32, 431, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 438, 8, 35, 1, 35, 1, 35, 1, 36,
4300
- 1, 36, 1, 36, 1, 36, 3, 36, 446, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36,
4301
- 454, 8, 36, 11, 36, 12, 36, 455, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 462, 8, 37, 1, 38,
4302
- 1, 38, 1, 38, 5, 38, 467, 8, 38, 10, 38, 12, 38, 470, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4303
- 5, 38, 476, 8, 38, 10, 38, 12, 38, 479, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4304
- 1, 38, 5, 38, 488, 8, 38, 10, 38, 12, 38, 491, 9, 38, 3, 38, 493, 8, 38, 1, 39, 1, 39,
4305
- 5, 39, 497, 8, 39, 10, 39, 12, 39, 500, 9, 39, 1, 40, 1, 40, 3, 40, 504, 8, 40, 1, 40,
4306
- 1, 40, 3, 40, 508, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 516, 8, 41, 1,
4307
- 42, 3, 42, 519, 8, 42, 1, 42, 1, 42, 4, 42, 523, 8, 42, 11, 42, 12, 42, 524, 1, 43, 3,
4308
- 43, 528, 8, 43, 1, 43, 1, 43, 3, 43, 532, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45,
4309
- 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 548, 8, 46, 11, 46, 12, 46,
4310
- 549, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 558, 8, 47, 11, 47, 12, 47, 559,
4311
- 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 569, 8, 48, 1, 48, 1, 48, 1, 48,
4312
- 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 582, 8, 49, 11, 49, 12, 49,
4313
- 583, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 592, 8, 50, 11, 50, 12, 50, 593,
4314
- 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 600, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51,
4315
- 3, 51, 608, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 614, 8, 51, 10, 51, 12, 51, 617,
4316
- 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 624, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52,
4317
- 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 5, 54, 636, 8, 54, 10, 54, 12, 54, 639, 9, 54,
4318
- 3, 54, 641, 8, 54, 1, 55, 1, 55, 1, 55, 3, 55, 646, 8, 55, 1, 55, 3, 55, 649, 8, 55, 1,
4319
- 56, 1, 56, 5, 56, 653, 8, 56, 10, 56, 12, 56, 656, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5,
4320
- 57, 662, 8, 57, 10, 57, 12, 57, 665, 9, 57, 5, 57, 667, 8, 57, 10, 57, 12, 57, 670, 9,
4321
- 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 3, 58, 677, 8, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1,
4322
- 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 691, 8, 61, 10, 61, 12, 61,
4323
- 694, 9, 61, 1, 61, 3, 61, 697, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1,
4324
- 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 718,
4325
- 8, 65, 10, 65, 12, 65, 721, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66,
4326
- 1, 66, 1, 66, 5, 66, 733, 8, 66, 10, 66, 12, 66, 736, 9, 66, 1, 66, 1, 66, 1, 66, 1, 67,
4327
- 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 4, 68, 747, 8, 68, 11, 68, 12, 68, 748, 1, 68, 1, 68,
4328
- 1, 69, 1, 69, 1, 69, 3, 69, 756, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70,
4329
- 1, 70, 5, 70, 766, 8, 70, 10, 70, 12, 70, 769, 9, 70, 1, 70, 1, 70, 5, 70, 773, 8, 70,
4330
- 10, 70, 12, 70, 776, 9, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 5, 70, 783, 8, 70, 10, 70,
4331
- 12, 70, 786, 9, 70, 3, 70, 788, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 72, 1, 72, 1, 72,
4332
- 1, 72, 1, 72, 5, 72, 799, 8, 72, 10, 72, 12, 72, 802, 9, 72, 1, 73, 1, 73, 1, 73, 1, 73,
4333
- 0, 1, 64, 74, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
4334
- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82,
4335
- 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
4336
- 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 0, 15, 2, 0,
4337
- 10, 10, 20, 22, 1, 0, 58, 59, 2, 0, 59, 59, 62, 62, 2, 0, 56, 56, 59, 59, 1, 0, 48, 52,
4338
- 1, 0, 45, 47, 1, 0, 43, 44, 1, 0, 41, 42, 1, 0, 35, 40, 2, 0, 32, 32, 44, 44, 2, 0, 57, 57,
4339
- 59, 63, 2, 0, 16, 16, 58, 58, 2, 0, 58, 59, 62, 62, 1, 0, 33, 34, 2, 0, 58, 59, 61, 63,
4340
- 851, 0, 152, 1, 0, 0, 0, 2, 177, 1, 0, 0, 0, 4, 184, 1, 0, 0, 0, 6, 188, 1, 0, 0, 0, 8, 196,
4341
- 1, 0, 0, 0, 10, 198, 1, 0, 0, 0, 12, 208, 1, 0, 0, 0, 14, 212, 1, 0, 0, 0, 16, 224, 1, 0,
4342
- 0, 0, 18, 228, 1, 0, 0, 0, 20, 231, 1, 0, 0, 0, 22, 239, 1, 0, 0, 0, 24, 250, 1, 0, 0, 0,
4343
- 26, 256, 1, 0, 0, 0, 28, 258, 1, 0, 0, 0, 30, 260, 1, 0, 0, 0, 32, 263, 1, 0, 0, 0, 34, 272,
4344
- 1, 0, 0, 0, 36, 294, 1, 0, 0, 0, 38, 304, 1, 0, 0, 0, 40, 306, 1, 0, 0, 0, 42, 319, 1, 0,
4345
- 0, 0, 44, 321, 1, 0, 0, 0, 46, 329, 1, 0, 0, 0, 48, 337, 1, 0, 0, 0, 50, 339, 1, 0, 0, 0,
4346
- 52, 343, 1, 0, 0, 0, 54, 348, 1, 0, 0, 0, 56, 352, 1, 0, 0, 0, 58, 379, 1, 0, 0, 0, 60, 381,
4347
- 1, 0, 0, 0, 62, 385, 1, 0, 0, 0, 64, 407, 1, 0, 0, 0, 66, 432, 1, 0, 0, 0, 68, 434, 1, 0,
4348
- 0, 0, 70, 437, 1, 0, 0, 0, 72, 441, 1, 0, 0, 0, 74, 461, 1, 0, 0, 0, 76, 492, 1, 0, 0, 0,
4349
- 78, 494, 1, 0, 0, 0, 80, 507, 1, 0, 0, 0, 82, 515, 1, 0, 0, 0, 84, 518, 1, 0, 0, 0, 86, 527,
4350
- 1, 0, 0, 0, 88, 533, 1, 0, 0, 0, 90, 536, 1, 0, 0, 0, 92, 540, 1, 0, 0, 0, 94, 553, 1, 0,
4351
- 0, 0, 96, 563, 1, 0, 0, 0, 98, 573, 1, 0, 0, 0, 100, 587, 1, 0, 0, 0, 102, 623, 1, 0, 0,
4352
- 0, 104, 625, 1, 0, 0, 0, 106, 629, 1, 0, 0, 0, 108, 640, 1, 0, 0, 0, 110, 648, 1, 0, 0,
4353
- 0, 112, 650, 1, 0, 0, 0, 114, 657, 1, 0, 0, 0, 116, 673, 1, 0, 0, 0, 118, 678, 1, 0, 0,
4354
- 0, 120, 681, 1, 0, 0, 0, 122, 685, 1, 0, 0, 0, 124, 698, 1, 0, 0, 0, 126, 704, 1, 0, 0,
4355
- 0, 128, 708, 1, 0, 0, 0, 130, 713, 1, 0, 0, 0, 132, 727, 1, 0, 0, 0, 134, 740, 1, 0, 0,
4356
- 0, 136, 742, 1, 0, 0, 0, 138, 755, 1, 0, 0, 0, 140, 757, 1, 0, 0, 0, 142, 789, 1, 0, 0,
4357
- 0, 144, 793, 1, 0, 0, 0, 146, 803, 1, 0, 0, 0, 148, 151, 3, 118, 59, 0, 149, 151, 5, 66,
4358
- 0, 0, 150, 148, 1, 0, 0, 0, 150, 149, 1, 0, 0, 0, 151, 154, 1, 0, 0, 0, 152, 150, 1, 0,
4359
- 0, 0, 152, 153, 1, 0, 0, 0, 153, 157, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 155, 158, 3, 2,
4360
- 1, 0, 156, 158, 5, 66, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0, 0, 0, 158, 159, 1, 0,
4361
- 0, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 5, 0,
4362
- 0, 1, 162, 1, 1, 0, 0, 0, 163, 178, 3, 6, 3, 0, 164, 178, 3, 52, 26, 0, 165, 178, 3, 54,
4363
- 27, 0, 166, 178, 3, 60, 30, 0, 167, 178, 3, 14, 7, 0, 168, 178, 3, 62, 31, 0, 169, 178,
4364
- 3, 72, 36, 0, 170, 178, 3, 84, 42, 0, 171, 178, 3, 118, 59, 0, 172, 178, 3, 78, 39, 0,
4365
- 173, 178, 3, 120, 60, 0, 174, 178, 3, 4, 2, 0, 175, 178, 3, 146, 73, 0, 176, 178, 3,
4366
- 132, 66, 0, 177, 163, 1, 0, 0, 0, 177, 164, 1, 0, 0, 0, 177, 165, 1, 0, 0, 0, 177, 166,
4367
- 1, 0, 0, 0, 177, 167, 1, 0, 0, 0, 177, 168, 1, 0, 0, 0, 177, 169, 1, 0, 0, 0, 177, 170,
4368
- 1, 0, 0, 0, 177, 171, 1, 0, 0, 0, 177, 172, 1, 0, 0, 0, 177, 173, 1, 0, 0, 0, 177, 174,
4369
- 1, 0, 0, 0, 177, 175, 1, 0, 0, 0, 177, 176, 1, 0, 0, 0, 178, 3, 1, 0, 0, 0, 179, 185, 3,
4370
- 122, 61, 0, 180, 185, 3, 128, 64, 0, 181, 185, 3, 130, 65, 0, 182, 185, 5, 9, 0, 0, 183,
4371
- 185, 5, 29, 0, 0, 184, 179, 1, 0, 0, 0, 184, 180, 1, 0, 0, 0, 184, 181, 1, 0, 0, 0, 184,
4372
- 182, 1, 0, 0, 0, 184, 183, 1, 0, 0, 0, 185, 5, 1, 0, 0, 0, 186, 189, 3, 8, 4, 0, 187, 189,
4373
- 3, 12, 6, 0, 188, 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189, 7, 1, 0, 0, 0, 190, 197, 3,
4374
- 24, 12, 0, 191, 197, 3, 32, 16, 0, 192, 197, 3, 30, 15, 0, 193, 197, 3, 40, 20, 0, 194,
4375
- 197, 3, 112, 56, 0, 195, 197, 3, 116, 58, 0, 196, 190, 1, 0, 0, 0, 196, 191, 1, 0, 0,
4376
- 0, 196, 192, 1, 0, 0, 0, 196, 193, 1, 0, 0, 0, 196, 194, 1, 0, 0, 0, 196, 195, 1, 0, 0,
4377
- 0, 197, 9, 1, 0, 0, 0, 198, 199, 5, 66, 0, 0, 199, 202, 5, 68, 0, 0, 200, 203, 5, 66, 0,
4378
- 0, 201, 203, 3, 2, 1, 0, 202, 200, 1, 0, 0, 0, 202, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0,
4379
- 0, 204, 202, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 207, 5, 69, 0,
4380
- 0, 207, 11, 1, 0, 0, 0, 208, 209, 7, 0, 0, 0, 209, 210, 5, 1, 0, 0, 210, 211, 3, 10, 5,
4381
- 0, 211, 13, 1, 0, 0, 0, 212, 213, 3, 78, 39, 0, 213, 214, 5, 1, 0, 0, 214, 215, 5, 66,
4382
- 0, 0, 215, 218, 5, 68, 0, 0, 216, 219, 5, 66, 0, 0, 217, 219, 3, 16, 8, 0, 218, 216, 1,
4383
- 0, 0, 0, 218, 217, 1, 0, 0, 0, 219, 220, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1,
4384
- 0, 0, 0, 221, 222, 1, 0, 0, 0, 222, 223, 5, 69, 0, 0, 223, 15, 1, 0, 0, 0, 224, 225, 7,
4385
- 1, 0, 0, 225, 226, 5, 1, 0, 0, 226, 227, 3, 70, 35, 0, 227, 17, 1, 0, 0, 0, 228, 229, 5,
4386
- 16, 0, 0, 229, 230, 3, 64, 32, 0, 230, 19, 1, 0, 0, 0, 231, 232, 5, 58, 0, 0, 232, 235,
4387
- 5, 1, 0, 0, 233, 236, 3, 70, 35, 0, 234, 236, 5, 58, 0, 0, 235, 233, 1, 0, 0, 0, 235, 234,
4388
- 1, 0, 0, 0, 236, 21, 1, 0, 0, 0, 237, 240, 3, 64, 32, 0, 238, 240, 3, 52, 26, 0, 239, 237,
4389
- 1, 0, 0, 0, 239, 238, 1, 0, 0, 0, 240, 244, 1, 0, 0, 0, 241, 243, 3, 20, 10, 0, 242, 241,
4390
- 1, 0, 0, 0, 243, 246, 1, 0, 0, 0, 244, 242, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 248,
4391
- 1, 0, 0, 0, 246, 244, 1, 0, 0, 0, 247, 249, 3, 18, 9, 0, 248, 247, 1, 0, 0, 0, 248, 249,
4392
- 1, 0, 0, 0, 249, 23, 1, 0, 0, 0, 250, 251, 5, 17, 0, 0, 251, 252, 3, 22, 11, 0, 252, 25,
4393
- 1, 0, 0, 0, 253, 257, 3, 22, 11, 0, 254, 257, 3, 18, 9, 0, 255, 257, 5, 20, 0, 0, 256,
4394
- 253, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 256, 255, 1, 0, 0, 0, 257, 27, 1, 0, 0, 0, 258, 259,
4395
- 7, 2, 0, 0, 259, 29, 1, 0, 0, 0, 260, 261, 5, 18, 0, 0, 261, 262, 3, 26, 13, 0, 262, 31,
4396
- 1, 0, 0, 0, 263, 264, 5, 19, 0, 0, 264, 269, 3, 26, 13, 0, 265, 266, 5, 2, 0, 0, 266, 268,
4397
- 3, 26, 13, 0, 267, 265, 1, 0, 0, 0, 268, 271, 1, 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270,
4398
- 1, 0, 0, 0, 270, 33, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 273, 5, 18, 0, 0, 273, 274,
4399
- 3, 26, 13, 0, 274, 275, 5, 19, 0, 0, 275, 280, 3, 26, 13, 0, 276, 277, 5, 2, 0, 0, 277,
4400
- 279, 3, 26, 13, 0, 278, 276, 1, 0, 0, 0, 279, 282, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 280,
4401
- 281, 1, 0, 0, 0, 281, 283, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 283, 284, 5, 1, 0, 0, 284,
4402
- 285, 5, 66, 0, 0, 285, 288, 5, 68, 0, 0, 286, 289, 5, 66, 0, 0, 287, 289, 3, 36, 18, 0,
4403
- 288, 286, 1, 0, 0, 0, 288, 287, 1, 0, 0, 0, 289, 290, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0,
4404
- 290, 291, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 293, 5, 69, 0, 0, 293, 35, 1, 0, 0, 0,
4405
- 294, 295, 3, 28, 14, 0, 295, 296, 5, 1, 0, 0, 296, 301, 3, 38, 19, 0, 297, 298, 5, 2,
4406
- 0, 0, 298, 300, 3, 38, 19, 0, 299, 297, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1,
4407
- 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 37, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 7, 3,
4408
- 0, 0, 305, 39, 1, 0, 0, 0, 306, 307, 3, 44, 22, 0, 307, 308, 5, 66, 0, 0, 308, 311, 5,
4409
- 68, 0, 0, 309, 312, 5, 66, 0, 0, 310, 312, 3, 42, 21, 0, 311, 309, 1, 0, 0, 0, 311, 310,
4410
- 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315,
4411
- 1, 0, 0, 0, 315, 316, 5, 69, 0, 0, 316, 41, 1, 0, 0, 0, 317, 320, 3, 2, 1, 0, 318, 320,
4412
- 3, 46, 23, 0, 319, 317, 1, 0, 0, 0, 319, 318, 1, 0, 0, 0, 320, 43, 1, 0, 0, 0, 321, 322,
4413
- 3, 30, 15, 0, 322, 326, 5, 1, 0, 0, 323, 325, 3, 146, 73, 0, 324, 323, 1, 0, 0, 0, 325,
4414
- 328, 1, 0, 0, 0, 326, 324, 1, 0, 0, 0, 326, 327, 1, 0, 0, 0, 327, 45, 1, 0, 0, 0, 328, 326,
4415
- 1, 0, 0, 0, 329, 330, 3, 28, 14, 0, 330, 333, 5, 1, 0, 0, 331, 334, 3, 48, 24, 0, 332,
4416
- 334, 3, 50, 25, 0, 333, 331, 1, 0, 0, 0, 333, 332, 1, 0, 0, 0, 334, 47, 1, 0, 0, 0, 335,
4417
- 338, 3, 2, 1, 0, 336, 338, 5, 56, 0, 0, 337, 335, 1, 0, 0, 0, 337, 336, 1, 0, 0, 0, 338,
4418
- 49, 1, 0, 0, 0, 339, 340, 3, 10, 5, 0, 340, 51, 1, 0, 0, 0, 341, 344, 3, 78, 39, 0, 342,
4419
- 344, 3, 84, 42, 0, 343, 341, 1, 0, 0, 0, 343, 342, 1, 0, 0, 0, 344, 345, 1, 0, 0, 0, 345,
4420
- 346, 5, 3, 0, 0, 346, 347, 3, 64, 32, 0, 347, 53, 1, 0, 0, 0, 348, 349, 3, 78, 39, 0, 349,
4421
- 350, 7, 4, 0, 0, 350, 351, 3, 64, 32, 0, 351, 55, 1, 0, 0, 0, 352, 353, 5, 58, 0, 0, 353,
4422
- 354, 5, 3, 0, 0, 354, 355, 3, 64, 32, 0, 355, 57, 1, 0, 0, 0, 356, 361, 3, 64, 32, 0, 357,
4423
- 358, 5, 2, 0, 0, 358, 360, 3, 64, 32, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361,
4424
- 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 368, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364,
4425
- 365, 5, 2, 0, 0, 365, 367, 3, 56, 28, 0, 366, 364, 1, 0, 0, 0, 367, 370, 1, 0, 0, 0, 368,
4426
- 366, 1, 0, 0, 0, 368, 369, 1, 0, 0, 0, 369, 380, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 371,
4427
- 376, 3, 56, 28, 0, 372, 373, 5, 2, 0, 0, 373, 375, 3, 56, 28, 0, 374, 372, 1, 0, 0, 0,
4428
- 375, 378, 1, 0, 0, 0, 376, 374, 1, 0, 0, 0, 376, 377, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0,
4429
- 378, 376, 1, 0, 0, 0, 379, 356, 1, 0, 0, 0, 379, 371, 1, 0, 0, 0, 380, 59, 1, 0, 0, 0, 381,
4430
- 382, 3, 78, 39, 0, 382, 383, 5, 3, 0, 0, 383, 384, 3, 64, 32, 0, 384, 61, 1, 0, 0, 0, 385,
4431
- 386, 5, 4, 0, 0, 386, 387, 5, 58, 0, 0, 387, 388, 5, 3, 0, 0, 388, 389, 3, 64, 32, 0, 389,
4432
- 63, 1, 0, 0, 0, 390, 391, 6, 32, -1, 0, 391, 392, 5, 54, 0, 0, 392, 393, 3, 64, 32, 0,
4433
- 393, 394, 5, 55, 0, 0, 394, 408, 1, 0, 0, 0, 395, 398, 3, 70, 35, 0, 396, 398, 3, 78,
4434
- 39, 0, 397, 395, 1, 0, 0, 0, 397, 396, 1, 0, 0, 0, 398, 408, 1, 0, 0, 0, 399, 400, 3, 68,
4435
- 34, 0, 400, 401, 3, 64, 32, 11, 401, 408, 1, 0, 0, 0, 402, 408, 3, 92, 46, 0, 403, 408,
4436
- 3, 96, 48, 0, 404, 408, 3, 98, 49, 0, 405, 408, 3, 84, 42, 0, 406, 408, 3, 114, 57, 0,
4437
- 407, 390, 1, 0, 0, 0, 407, 397, 1, 0, 0, 0, 407, 399, 1, 0, 0, 0, 407, 402, 1, 0, 0, 0,
4438
- 407, 403, 1, 0, 0, 0, 407, 404, 1, 0, 0, 0, 407, 405, 1, 0, 0, 0, 407, 406, 1, 0, 0, 0,
4439
- 408, 429, 1, 0, 0, 0, 409, 410, 10, 10, 0, 0, 410, 411, 7, 5, 0, 0, 411, 428, 3, 64, 32,
4440
- 11, 412, 413, 10, 9, 0, 0, 413, 414, 7, 6, 0, 0, 414, 428, 3, 64, 32, 10, 415, 416, 10,
4441
- 8, 0, 0, 416, 417, 3, 66, 33, 0, 417, 418, 3, 64, 32, 9, 418, 428, 1, 0, 0, 0, 419, 420,
4442
- 10, 7, 0, 0, 420, 421, 7, 7, 0, 0, 421, 428, 3, 64, 32, 8, 422, 423, 10, 1, 0, 0, 423,
4443
- 424, 5, 5, 0, 0, 424, 425, 3, 64, 32, 0, 425, 426, 5, 6, 0, 0, 426, 428, 1, 0, 0, 0, 427,
4444
- 409, 1, 0, 0, 0, 427, 412, 1, 0, 0, 0, 427, 415, 1, 0, 0, 0, 427, 419, 1, 0, 0, 0, 427,
4445
- 422, 1, 0, 0, 0, 428, 431, 1, 0, 0, 0, 429, 427, 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430,
4446
- 65, 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 432, 433, 7, 8, 0, 0, 433, 67, 1, 0, 0, 0, 434, 435,
4447
- 7, 9, 0, 0, 435, 69, 1, 0, 0, 0, 436, 438, 5, 44, 0, 0, 437, 436, 1, 0, 0, 0, 437, 438,
4448
- 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 440, 7, 10, 0, 0, 440, 71, 1, 0, 0, 0, 441, 442,
4449
- 5, 24, 0, 0, 442, 443, 5, 58, 0, 0, 443, 445, 5, 54, 0, 0, 444, 446, 3, 76, 38, 0, 445,
4450
- 444, 1, 0, 0, 0, 445, 446, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 5, 55, 0, 0, 448,
4451
- 449, 5, 1, 0, 0, 449, 450, 5, 66, 0, 0, 450, 453, 5, 68, 0, 0, 451, 454, 5, 66, 0, 0, 452,
4452
- 454, 3, 74, 37, 0, 453, 451, 1, 0, 0, 0, 453, 452, 1, 0, 0, 0, 454, 455, 1, 0, 0, 0, 455,
4453
- 453, 1, 0, 0, 0, 455, 456, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 458, 5, 69, 0, 0, 458,
4454
- 73, 1, 0, 0, 0, 459, 462, 3, 2, 1, 0, 460, 462, 3, 88, 44, 0, 461, 459, 1, 0, 0, 0, 461,
4455
- 460, 1, 0, 0, 0, 462, 75, 1, 0, 0, 0, 463, 468, 5, 58, 0, 0, 464, 465, 5, 2, 0, 0, 465,
4456
- 467, 5, 58, 0, 0, 466, 464, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 466, 1, 0, 0, 0, 468,
4457
- 469, 1, 0, 0, 0, 469, 477, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 471, 472, 5, 2, 0, 0, 472,
4458
- 473, 5, 58, 0, 0, 473, 474, 5, 3, 0, 0, 474, 476, 3, 70, 35, 0, 475, 471, 1, 0, 0, 0, 476,
4459
- 479, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0, 477, 478, 1, 0, 0, 0, 478, 493, 1, 0, 0, 0, 479,
4460
- 477, 1, 0, 0, 0, 480, 481, 5, 58, 0, 0, 481, 482, 5, 3, 0, 0, 482, 489, 3, 70, 35, 0, 483,
4461
- 484, 5, 2, 0, 0, 484, 485, 5, 58, 0, 0, 485, 486, 5, 3, 0, 0, 486, 488, 3, 70, 35, 0, 487,
4462
- 483, 1, 0, 0, 0, 488, 491, 1, 0, 0, 0, 489, 487, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490,
4463
- 493, 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 492, 463, 1, 0, 0, 0, 492, 480, 1, 0, 0, 0, 493,
4464
- 77, 1, 0, 0, 0, 494, 498, 5, 58, 0, 0, 495, 497, 3, 82, 41, 0, 496, 495, 1, 0, 0, 0, 497,
4465
- 500, 1, 0, 0, 0, 498, 496, 1, 0, 0, 0, 498, 499, 1, 0, 0, 0, 499, 79, 1, 0, 0, 0, 500, 498,
4466
- 1, 0, 0, 0, 501, 503, 5, 54, 0, 0, 502, 504, 3, 58, 29, 0, 503, 502, 1, 0, 0, 0, 503, 504,
4467
- 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 508, 5, 55, 0, 0, 506, 508, 3, 82, 41, 0, 507, 501,
4468
- 1, 0, 0, 0, 507, 506, 1, 0, 0, 0, 508, 81, 1, 0, 0, 0, 509, 510, 5, 7, 0, 0, 510, 516, 5,
4469
- 58, 0, 0, 511, 512, 5, 5, 0, 0, 512, 513, 3, 64, 32, 0, 513, 514, 5, 6, 0, 0, 514, 516,
4470
- 1, 0, 0, 0, 515, 509, 1, 0, 0, 0, 515, 511, 1, 0, 0, 0, 516, 83, 1, 0, 0, 0, 517, 519, 3,
4471
- 86, 43, 0, 518, 517, 1, 0, 0, 0, 518, 519, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 522,
4472
- 5, 58, 0, 0, 521, 523, 3, 80, 40, 0, 522, 521, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 522,
4473
- 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 85, 1, 0, 0, 0, 526, 528, 5, 43, 0, 0, 527, 526,
4474
- 1, 0, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 1, 0, 0, 0, 529, 531, 5, 45, 0, 0, 530, 532,
4475
- 3, 64, 32, 0, 531, 530, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 87, 1, 0, 0, 0, 533, 534,
4476
- 5, 23, 0, 0, 534, 535, 3, 64, 32, 0, 535, 89, 1, 0, 0, 0, 536, 537, 3, 106, 53, 0, 537,
4477
- 538, 5, 1, 0, 0, 538, 539, 3, 10, 5, 0, 539, 91, 1, 0, 0, 0, 540, 541, 5, 11, 0, 0, 541,
4478
- 542, 5, 12, 0, 0, 542, 543, 5, 1, 0, 0, 543, 544, 5, 66, 0, 0, 544, 547, 5, 68, 0, 0, 545,
4479
- 548, 5, 66, 0, 0, 546, 548, 3, 104, 52, 0, 547, 545, 1, 0, 0, 0, 547, 546, 1, 0, 0, 0,
4480
- 548, 549, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549, 550, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0,
4481
- 551, 552, 5, 69, 0, 0, 552, 93, 1, 0, 0, 0, 553, 554, 5, 66, 0, 0, 554, 557, 5, 68, 0,
4482
- 0, 555, 558, 5, 66, 0, 0, 556, 558, 3, 102, 51, 0, 557, 555, 1, 0, 0, 0, 557, 556, 1,
4483
- 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 557, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, 1,
4484
- 0, 0, 0, 561, 562, 5, 69, 0, 0, 562, 95, 1, 0, 0, 0, 563, 564, 5, 11, 0, 0, 564, 568, 5,
4485
- 13, 0, 0, 565, 566, 5, 54, 0, 0, 566, 567, 5, 58, 0, 0, 567, 569, 5, 55, 0, 0, 568, 565,
4486
- 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 1, 0, 0, 571, 572,
4487
- 3, 94, 47, 0, 572, 97, 1, 0, 0, 0, 573, 574, 5, 11, 0, 0, 574, 575, 5, 14, 0, 0, 575, 576,
4488
- 5, 1, 0, 0, 576, 577, 5, 66, 0, 0, 577, 581, 5, 68, 0, 0, 578, 582, 5, 66, 0, 0, 579, 582,
4489
- 3, 104, 52, 0, 580, 582, 3, 90, 45, 0, 581, 578, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581,
4490
- 580, 1, 0, 0, 0, 582, 583, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584,
4491
- 585, 1, 0, 0, 0, 585, 586, 5, 69, 0, 0, 586, 99, 1, 0, 0, 0, 587, 588, 5, 66, 0, 0, 588,
4492
- 591, 5, 68, 0, 0, 589, 592, 5, 66, 0, 0, 590, 592, 3, 104, 52, 0, 591, 589, 1, 0, 0, 0,
4493
- 591, 590, 1, 0, 0, 0, 592, 593, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0,
4494
- 594, 595, 1, 0, 0, 0, 595, 596, 5, 69, 0, 0, 596, 101, 1, 0, 0, 0, 597, 599, 7, 11, 0,
4495
- 0, 598, 600, 5, 1, 0, 0, 599, 598, 1, 0, 0, 0, 599, 600, 1, 0, 0, 0, 600, 607, 1, 0, 0,
4496
- 0, 601, 608, 3, 58, 29, 0, 602, 603, 5, 54, 0, 0, 603, 604, 3, 58, 29, 0, 604, 605, 5,
4497
- 55, 0, 0, 605, 608, 1, 0, 0, 0, 606, 608, 3, 100, 50, 0, 607, 601, 1, 0, 0, 0, 607, 602,
4498
- 1, 0, 0, 0, 607, 606, 1, 0, 0, 0, 608, 624, 1, 0, 0, 0, 609, 610, 5, 26, 0, 0, 610, 615,
4499
- 5, 58, 0, 0, 611, 612, 5, 2, 0, 0, 612, 614, 5, 58, 0, 0, 613, 611, 1, 0, 0, 0, 614, 617,
4500
- 1, 0, 0, 0, 615, 613, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 618, 1, 0, 0, 0, 617, 615,
4501
- 1, 0, 0, 0, 618, 619, 5, 27, 0, 0, 619, 620, 3, 64, 32, 0, 620, 621, 5, 1, 0, 0, 621, 622,
4502
- 3, 94, 47, 0, 622, 624, 1, 0, 0, 0, 623, 597, 1, 0, 0, 0, 623, 609, 1, 0, 0, 0, 624, 103,
4503
- 1, 0, 0, 0, 625, 626, 3, 106, 53, 0, 626, 627, 5, 1, 0, 0, 627, 628, 3, 108, 54, 0, 628,
4504
- 105, 1, 0, 0, 0, 629, 630, 7, 12, 0, 0, 630, 107, 1, 0, 0, 0, 631, 641, 3, 100, 50, 0,
4505
- 632, 637, 3, 64, 32, 0, 633, 634, 5, 2, 0, 0, 634, 636, 3, 64, 32, 0, 635, 633, 1, 0,
4506
- 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 637, 638, 1, 0, 0, 0, 638, 641, 1, 0,
4507
- 0, 0, 639, 637, 1, 0, 0, 0, 640, 631, 1, 0, 0, 0, 640, 632, 1, 0, 0, 0, 641, 109, 1, 0,
4508
- 0, 0, 642, 645, 5, 58, 0, 0, 643, 646, 5, 59, 0, 0, 644, 646, 3, 64, 32, 0, 645, 643,
4509
- 1, 0, 0, 0, 645, 644, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 649, 5, 58, 0, 0, 648, 642,
4510
- 1, 0, 0, 0, 648, 647, 1, 0, 0, 0, 649, 111, 1, 0, 0, 0, 650, 654, 5, 15, 0, 0, 651, 653,
4511
- 3, 110, 55, 0, 652, 651, 1, 0, 0, 0, 653, 656, 1, 0, 0, 0, 654, 652, 1, 0, 0, 0, 654, 655,
4512
- 1, 0, 0, 0, 655, 113, 1, 0, 0, 0, 656, 654, 1, 0, 0, 0, 657, 668, 5, 5, 0, 0, 658, 663,
4513
- 3, 64, 32, 0, 659, 660, 5, 2, 0, 0, 660, 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 662,
4514
- 665, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 663, 664, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665,
4515
- 663, 1, 0, 0, 0, 666, 658, 1, 0, 0, 0, 667, 670, 1, 0, 0, 0, 668, 666, 1, 0, 0, 0, 668,
4516
- 669, 1, 0, 0, 0, 669, 671, 1, 0, 0, 0, 670, 668, 1, 0, 0, 0, 671, 672, 5, 6, 0, 0, 672,
4517
- 115, 1, 0, 0, 0, 673, 676, 5, 20, 0, 0, 674, 677, 5, 58, 0, 0, 675, 677, 3, 64, 32, 0,
4518
- 676, 674, 1, 0, 0, 0, 676, 675, 1, 0, 0, 0, 677, 117, 1, 0, 0, 0, 678, 679, 5, 25, 0, 0,
4519
- 679, 680, 5, 58, 0, 0, 680, 119, 1, 0, 0, 0, 681, 682, 7, 13, 0, 0, 682, 683, 5, 1, 0,
4520
- 0, 683, 684, 3, 10, 5, 0, 684, 121, 1, 0, 0, 0, 685, 686, 5, 30, 0, 0, 686, 687, 3, 64,
4521
- 32, 0, 687, 688, 5, 1, 0, 0, 688, 692, 3, 10, 5, 0, 689, 691, 3, 124, 62, 0, 690, 689,
4522
- 1, 0, 0, 0, 691, 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 696,
4523
- 1, 0, 0, 0, 694, 692, 1, 0, 0, 0, 695, 697, 3, 126, 63, 0, 696, 695, 1, 0, 0, 0, 696, 697,
4524
- 1, 0, 0, 0, 697, 123, 1, 0, 0, 0, 698, 699, 5, 31, 0, 0, 699, 700, 5, 30, 0, 0, 700, 701,
4525
- 3, 64, 32, 0, 701, 702, 5, 1, 0, 0, 702, 703, 3, 10, 5, 0, 703, 125, 1, 0, 0, 0, 704, 705,
4526
- 5, 31, 0, 0, 705, 706, 5, 1, 0, 0, 706, 707, 3, 10, 5, 0, 707, 127, 1, 0, 0, 0, 708, 709,
4527
- 5, 28, 0, 0, 709, 710, 3, 64, 32, 0, 710, 711, 5, 1, 0, 0, 711, 712, 3, 10, 5, 0, 712,
4528
- 129, 1, 0, 0, 0, 713, 714, 5, 26, 0, 0, 714, 719, 5, 58, 0, 0, 715, 716, 5, 2, 0, 0, 716,
4529
- 718, 5, 58, 0, 0, 717, 715, 1, 0, 0, 0, 718, 721, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 719,
4530
- 720, 1, 0, 0, 0, 720, 722, 1, 0, 0, 0, 721, 719, 1, 0, 0, 0, 722, 723, 5, 27, 0, 0, 723,
4531
- 724, 3, 64, 32, 0, 724, 725, 5, 1, 0, 0, 725, 726, 3, 10, 5, 0, 726, 131, 1, 0, 0, 0, 727,
4532
- 728, 5, 8, 0, 0, 728, 729, 5, 1, 0, 0, 729, 734, 3, 64, 32, 0, 730, 731, 5, 2, 0, 0, 731,
4533
- 733, 3, 64, 32, 0, 732, 730, 1, 0, 0, 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 734,
4534
- 735, 1, 0, 0, 0, 735, 737, 1, 0, 0, 0, 736, 734, 1, 0, 0, 0, 737, 738, 5, 1, 0, 0, 738,
4535
- 739, 3, 136, 68, 0, 739, 133, 1, 0, 0, 0, 740, 741, 7, 14, 0, 0, 741, 135, 1, 0, 0, 0,
4536
- 742, 743, 5, 66, 0, 0, 743, 746, 5, 68, 0, 0, 744, 747, 5, 66, 0, 0, 745, 747, 3, 138,
4537
- 69, 0, 746, 744, 1, 0, 0, 0, 746, 745, 1, 0, 0, 0, 747, 748, 1, 0, 0, 0, 748, 746, 1, 0,
4538
- 0, 0, 748, 749, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 751, 5, 69, 0, 0, 751, 137, 1, 0,
4539
- 0, 0, 752, 756, 3, 140, 70, 0, 753, 756, 3, 144, 72, 0, 754, 756, 3, 142, 71, 0, 755,
4540
- 752, 1, 0, 0, 0, 755, 753, 1, 0, 0, 0, 755, 754, 1, 0, 0, 0, 756, 139, 1, 0, 0, 0, 757,
4541
- 758, 3, 134, 67, 0, 758, 759, 5, 1, 0, 0, 759, 767, 3, 64, 32, 0, 760, 761, 5, 2, 0, 0,
4542
- 761, 762, 3, 134, 67, 0, 762, 763, 5, 1, 0, 0, 763, 764, 3, 64, 32, 0, 764, 766, 1, 0,
4543
- 0, 0, 765, 760, 1, 0, 0, 0, 766, 769, 1, 0, 0, 0, 767, 765, 1, 0, 0, 0, 767, 768, 1, 0,
4544
- 0, 0, 768, 774, 1, 0, 0, 0, 769, 767, 1, 0, 0, 0, 770, 771, 5, 2, 0, 0, 771, 773, 3, 134,
4545
- 67, 0, 772, 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774, 772, 1, 0, 0, 0, 774, 775, 1, 0,
4546
- 0, 0, 775, 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777, 787, 5, 1, 0, 0, 778, 788, 3, 136,
4547
- 68, 0, 779, 784, 3, 64, 32, 0, 780, 781, 5, 2, 0, 0, 781, 783, 3, 64, 32, 0, 782, 780,
4548
- 1, 0, 0, 0, 783, 786, 1, 0, 0, 0, 784, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 788,
4549
- 1, 0, 0, 0, 786, 784, 1, 0, 0, 0, 787, 778, 1, 0, 0, 0, 787, 779, 1, 0, 0, 0, 788, 141,
4550
- 1, 0, 0, 0, 789, 790, 3, 134, 67, 0, 790, 791, 5, 1, 0, 0, 791, 792, 3, 136, 68, 0, 792,
4551
- 143, 1, 0, 0, 0, 793, 794, 3, 134, 67, 0, 794, 795, 5, 1, 0, 0, 795, 800, 3, 64, 32, 0,
4552
- 796, 797, 5, 2, 0, 0, 797, 799, 3, 64, 32, 0, 798, 796, 1, 0, 0, 0, 799, 802, 1, 0, 0,
4553
- 0, 800, 798, 1, 0, 0, 0, 800, 801, 1, 0, 0, 0, 801, 145, 1, 0, 0, 0, 802, 800, 1, 0, 0,
4554
- 0, 803, 804, 5, 53, 0, 0, 804, 805, 5, 58, 0, 0, 805, 147, 1, 0, 0, 0, 87, 150, 152, 157,
4555
- 159, 177, 184, 188, 196, 202, 204, 218, 220, 235, 239, 244, 248, 256, 269, 280,
4556
- 288, 290, 301, 311, 313, 319, 326, 333, 337, 343, 361, 368, 376, 379, 397, 407,
4557
- 427, 429, 437, 445, 453, 455, 461, 468, 477, 489, 492, 498, 503, 507, 515, 518,
4558
- 524, 527, 531, 547, 549, 557, 559, 568, 581, 583, 591, 593, 599, 607, 615, 623,
4559
- 637, 640, 645, 648, 654, 663, 668, 676, 692, 696, 719, 734, 746, 748, 755, 767,
4560
- 774, 784, 787, 800
4435
+ 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 1, 0, 1, 0, 5, 0, 153, 8, 0, 10, 0, 12, 0, 156, 9, 0, 1,
4436
+ 0, 1, 0, 4, 0, 160, 8, 0, 11, 0, 12, 0, 161, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
4437
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 180, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
4438
+ 3, 2, 187, 8, 2, 1, 3, 1, 3, 3, 3, 191, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 199,
4439
+ 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 205, 8, 5, 11, 5, 12, 5, 206, 1, 5, 1, 5, 1, 6, 1, 6, 1,
4440
+ 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 221, 8, 7, 11, 7, 12, 7, 222, 1, 7, 1, 7,
4441
+ 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 238, 8, 10, 1,
4442
+ 11, 1, 11, 3, 11, 242, 8, 11, 1, 11, 5, 11, 245, 8, 11, 10, 11, 12, 11, 248, 9, 11, 1,
4443
+ 11, 3, 11, 251, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 259, 8, 13, 1, 14,
4444
+ 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 270, 8, 16, 10, 16, 12, 16,
4445
+ 273, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 281, 8, 17, 10, 17, 12, 17,
4446
+ 284, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 291, 8, 17, 11, 17, 12, 17, 292,
4447
+ 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 302, 8, 18, 10, 18, 12, 18, 305,
4448
+ 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 314, 8, 20, 11, 20, 12, 20,
4449
+ 315, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 322, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 327, 8,
4450
+ 22, 10, 22, 12, 22, 330, 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 336, 8, 23, 1, 24, 1,
4451
+ 24, 3, 24, 340, 8, 24, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 346, 8, 26, 1, 26, 1, 26, 1, 26,
4452
+ 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 362,
4453
+ 8, 29, 10, 29, 12, 29, 365, 9, 29, 1, 29, 1, 29, 5, 29, 369, 8, 29, 10, 29, 12, 29, 372,
4454
+ 9, 29, 1, 29, 1, 29, 1, 29, 5, 29, 377, 8, 29, 10, 29, 12, 29, 380, 9, 29, 3, 29, 382,
4455
+ 8, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32,
4456
+ 1, 32, 1, 32, 1, 32, 1, 32, 3, 32, 400, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4457
+ 1, 32, 1, 32, 3, 32, 410, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
4458
+ 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 430, 8, 32,
4459
+ 10, 32, 12, 32, 433, 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 440, 8, 35, 1, 35,
4460
+ 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 3, 36, 448, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36,
4461
+ 1, 36, 4, 36, 456, 8, 36, 11, 36, 12, 36, 457, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 464,
4462
+ 8, 37, 1, 38, 1, 38, 1, 38, 5, 38, 469, 8, 38, 10, 38, 12, 38, 472, 9, 38, 1, 38, 1, 38,
4463
+ 1, 38, 1, 38, 5, 38, 478, 8, 38, 10, 38, 12, 38, 481, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38,
4464
+ 1, 38, 1, 38, 1, 38, 5, 38, 490, 8, 38, 10, 38, 12, 38, 493, 9, 38, 3, 38, 495, 8, 38,
4465
+ 1, 39, 1, 39, 5, 39, 499, 8, 39, 10, 39, 12, 39, 502, 9, 39, 1, 40, 1, 40, 3, 40, 506,
4466
+ 8, 40, 1, 40, 1, 40, 3, 40, 510, 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41,
4467
+ 518, 8, 41, 1, 42, 3, 42, 521, 8, 42, 1, 42, 1, 42, 4, 42, 525, 8, 42, 11, 42, 12, 42,
4468
+ 526, 1, 43, 3, 43, 530, 8, 43, 1, 43, 1, 43, 3, 43, 534, 8, 43, 1, 44, 1, 44, 1, 44, 1,
4469
+ 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 550, 8,
4470
+ 46, 11, 46, 12, 46, 551, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 560, 8, 47, 11,
4471
+ 47, 12, 47, 561, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 571, 8, 48, 1,
4472
+ 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 584, 8,
4473
+ 49, 11, 49, 12, 49, 585, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 594, 8, 50, 11,
4474
+ 50, 12, 50, 595, 1, 50, 1, 50, 1, 51, 1, 51, 3, 51, 602, 8, 51, 1, 51, 1, 51, 1, 51, 1,
4475
+ 51, 1, 51, 1, 51, 3, 51, 610, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 616, 8, 51, 10,
4476
+ 51, 12, 51, 619, 9, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 626, 8, 51, 1, 52, 1,
4477
+ 52, 5, 52, 630, 8, 52, 10, 52, 12, 52, 633, 9, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1,
4478
+ 54, 1, 54, 1, 54, 1, 54, 5, 54, 644, 8, 54, 10, 54, 12, 54, 647, 9, 54, 3, 54, 649, 8,
4479
+ 54, 1, 55, 1, 55, 1, 55, 3, 55, 654, 8, 55, 1, 55, 3, 55, 657, 8, 55, 1, 56, 1, 56, 5, 56,
4480
+ 661, 8, 56, 10, 56, 12, 56, 664, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 670, 8, 57,
4481
+ 10, 57, 12, 57, 673, 9, 57, 5, 57, 675, 8, 57, 10, 57, 12, 57, 678, 9, 57, 1, 57, 1, 57,
4482
+ 1, 58, 1, 58, 1, 58, 3, 58, 685, 8, 58, 1, 59, 1, 59, 1, 59, 3, 59, 690, 8, 59, 1, 59, 1,
4483
+ 59, 1, 59, 1, 59, 1, 59, 3, 59, 697, 8, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 5,
4484
+ 59, 705, 8, 59, 10, 59, 12, 59, 708, 9, 59, 1, 59, 3, 59, 711, 8, 59, 3, 59, 713, 8, 59,
4485
+ 1, 60, 1, 60, 5, 60, 717, 8, 60, 10, 60, 12, 60, 720, 9, 60, 1, 61, 1, 61, 1, 61, 1, 61,
4486
+ 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 5, 62, 731, 8, 62, 10, 62, 12, 62, 734, 9, 62, 1, 62,
4487
+ 3, 62, 737, 8, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64,
4488
+ 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 758, 8, 66, 10, 66,
4489
+ 12, 66, 761, 9, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67,
4490
+ 5, 67, 773, 8, 67, 10, 67, 12, 67, 776, 9, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 69,
4491
+ 1, 69, 1, 69, 1, 69, 4, 69, 787, 8, 69, 11, 69, 12, 69, 788, 1, 69, 1, 69, 1, 70, 1, 70,
4492
+ 1, 70, 3, 70, 796, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71,
4493
+ 806, 8, 71, 10, 71, 12, 71, 809, 9, 71, 1, 71, 1, 71, 5, 71, 813, 8, 71, 10, 71, 12, 71,
4494
+ 816, 9, 71, 1, 71, 1, 71, 1, 71, 1, 71, 1, 71, 5, 71, 823, 8, 71, 10, 71, 12, 71, 826,
4495
+ 9, 71, 3, 71, 828, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73,
4496
+ 5, 73, 839, 8, 73, 10, 73, 12, 73, 842, 9, 73, 1, 74, 1, 74, 1, 74, 1, 74, 0, 1, 64, 75,
4497
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
4498
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
4499
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
4500
+ 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 0, 16, 2, 0, 10, 10, 20,
4501
+ 22, 1, 0, 59, 60, 2, 0, 60, 60, 63, 63, 2, 0, 57, 57, 60, 60, 1, 0, 49, 53, 1, 0, 46, 48,
4502
+ 1, 0, 44, 45, 1, 0, 42, 43, 1, 0, 36, 41, 2, 0, 33, 33, 45, 45, 2, 0, 58, 58, 60, 64, 2,
4503
+ 0, 16, 16, 59, 59, 2, 0, 59, 60, 63, 63, 2, 0, 45, 45, 59, 59, 1, 0, 34, 35, 2, 0, 59, 60,
4504
+ 62, 64, 898, 0, 154, 1, 0, 0, 0, 2, 179, 1, 0, 0, 0, 4, 186, 1, 0, 0, 0, 6, 190, 1, 0, 0,
4505
+ 0, 8, 198, 1, 0, 0, 0, 10, 200, 1, 0, 0, 0, 12, 210, 1, 0, 0, 0, 14, 214, 1, 0, 0, 0, 16,
4506
+ 226, 1, 0, 0, 0, 18, 230, 1, 0, 0, 0, 20, 233, 1, 0, 0, 0, 22, 241, 1, 0, 0, 0, 24, 252,
4507
+ 1, 0, 0, 0, 26, 258, 1, 0, 0, 0, 28, 260, 1, 0, 0, 0, 30, 262, 1, 0, 0, 0, 32, 265, 1, 0,
4508
+ 0, 0, 34, 274, 1, 0, 0, 0, 36, 296, 1, 0, 0, 0, 38, 306, 1, 0, 0, 0, 40, 308, 1, 0, 0, 0,
4509
+ 42, 321, 1, 0, 0, 0, 44, 323, 1, 0, 0, 0, 46, 331, 1, 0, 0, 0, 48, 339, 1, 0, 0, 0, 50, 341,
4510
+ 1, 0, 0, 0, 52, 345, 1, 0, 0, 0, 54, 350, 1, 0, 0, 0, 56, 354, 1, 0, 0, 0, 58, 381, 1, 0,
4511
+ 0, 0, 60, 383, 1, 0, 0, 0, 62, 387, 1, 0, 0, 0, 64, 409, 1, 0, 0, 0, 66, 434, 1, 0, 0, 0,
4512
+ 68, 436, 1, 0, 0, 0, 70, 439, 1, 0, 0, 0, 72, 443, 1, 0, 0, 0, 74, 463, 1, 0, 0, 0, 76, 494,
4513
+ 1, 0, 0, 0, 78, 496, 1, 0, 0, 0, 80, 509, 1, 0, 0, 0, 82, 517, 1, 0, 0, 0, 84, 520, 1, 0,
4514
+ 0, 0, 86, 529, 1, 0, 0, 0, 88, 535, 1, 0, 0, 0, 90, 538, 1, 0, 0, 0, 92, 542, 1, 0, 0, 0,
4515
+ 94, 555, 1, 0, 0, 0, 96, 565, 1, 0, 0, 0, 98, 575, 1, 0, 0, 0, 100, 589, 1, 0, 0, 0, 102,
4516
+ 625, 1, 0, 0, 0, 104, 627, 1, 0, 0, 0, 106, 637, 1, 0, 0, 0, 108, 648, 1, 0, 0, 0, 110,
4517
+ 656, 1, 0, 0, 0, 112, 658, 1, 0, 0, 0, 114, 665, 1, 0, 0, 0, 116, 681, 1, 0, 0, 0, 118,
4518
+ 712, 1, 0, 0, 0, 120, 714, 1, 0, 0, 0, 122, 721, 1, 0, 0, 0, 124, 725, 1, 0, 0, 0, 126,
4519
+ 738, 1, 0, 0, 0, 128, 744, 1, 0, 0, 0, 130, 748, 1, 0, 0, 0, 132, 753, 1, 0, 0, 0, 134,
4520
+ 767, 1, 0, 0, 0, 136, 780, 1, 0, 0, 0, 138, 782, 1, 0, 0, 0, 140, 795, 1, 0, 0, 0, 142,
4521
+ 797, 1, 0, 0, 0, 144, 829, 1, 0, 0, 0, 146, 833, 1, 0, 0, 0, 148, 843, 1, 0, 0, 0, 150,
4522
+ 153, 3, 118, 59, 0, 151, 153, 5, 67, 0, 0, 152, 150, 1, 0, 0, 0, 152, 151, 1, 0, 0, 0,
4523
+ 153, 156, 1, 0, 0, 0, 154, 152, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 159, 1, 0, 0, 0,
4524
+ 156, 154, 1, 0, 0, 0, 157, 160, 3, 2, 1, 0, 158, 160, 5, 67, 0, 0, 159, 157, 1, 0, 0, 0,
4525
+ 159, 158, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 159, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0,
4526
+ 162, 163, 1, 0, 0, 0, 163, 164, 5, 0, 0, 1, 164, 1, 1, 0, 0, 0, 165, 180, 3, 6, 3, 0, 166,
4527
+ 180, 3, 52, 26, 0, 167, 180, 3, 54, 27, 0, 168, 180, 3, 60, 30, 0, 169, 180, 3, 14, 7,
4528
+ 0, 170, 180, 3, 62, 31, 0, 171, 180, 3, 72, 36, 0, 172, 180, 3, 84, 42, 0, 173, 180,
4529
+ 3, 118, 59, 0, 174, 180, 3, 78, 39, 0, 175, 180, 3, 122, 61, 0, 176, 180, 3, 4, 2, 0,
4530
+ 177, 180, 3, 148, 74, 0, 178, 180, 3, 134, 67, 0, 179, 165, 1, 0, 0, 0, 179, 166, 1,
4531
+ 0, 0, 0, 179, 167, 1, 0, 0, 0, 179, 168, 1, 0, 0, 0, 179, 169, 1, 0, 0, 0, 179, 170, 1,
4532
+ 0, 0, 0, 179, 171, 1, 0, 0, 0, 179, 172, 1, 0, 0, 0, 179, 173, 1, 0, 0, 0, 179, 174, 1,
4533
+ 0, 0, 0, 179, 175, 1, 0, 0, 0, 179, 176, 1, 0, 0, 0, 179, 177, 1, 0, 0, 0, 179, 178, 1,
4534
+ 0, 0, 0, 180, 3, 1, 0, 0, 0, 181, 187, 3, 124, 62, 0, 182, 187, 3, 130, 65, 0, 183, 187,
4535
+ 3, 132, 66, 0, 184, 187, 5, 9, 0, 0, 185, 187, 5, 30, 0, 0, 186, 181, 1, 0, 0, 0, 186,
4536
+ 182, 1, 0, 0, 0, 186, 183, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 186, 185, 1, 0, 0, 0, 187,
4537
+ 5, 1, 0, 0, 0, 188, 191, 3, 8, 4, 0, 189, 191, 3, 12, 6, 0, 190, 188, 1, 0, 0, 0, 190, 189,
4538
+ 1, 0, 0, 0, 191, 7, 1, 0, 0, 0, 192, 199, 3, 24, 12, 0, 193, 199, 3, 32, 16, 0, 194, 199,
4539
+ 3, 30, 15, 0, 195, 199, 3, 40, 20, 0, 196, 199, 3, 112, 56, 0, 197, 199, 3, 116, 58,
4540
+ 0, 198, 192, 1, 0, 0, 0, 198, 193, 1, 0, 0, 0, 198, 194, 1, 0, 0, 0, 198, 195, 1, 0, 0,
4541
+ 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 9, 1, 0, 0, 0, 200, 201, 5, 67, 0, 0,
4542
+ 201, 204, 5, 69, 0, 0, 202, 205, 5, 67, 0, 0, 203, 205, 3, 2, 1, 0, 204, 202, 1, 0, 0,
4543
+ 0, 204, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 204, 1, 0, 0, 0, 206, 207, 1, 0, 0,
4544
+ 0, 207, 208, 1, 0, 0, 0, 208, 209, 5, 70, 0, 0, 209, 11, 1, 0, 0, 0, 210, 211, 7, 0, 0,
4545
+ 0, 211, 212, 5, 1, 0, 0, 212, 213, 3, 10, 5, 0, 213, 13, 1, 0, 0, 0, 214, 215, 3, 78, 39,
4546
+ 0, 215, 216, 5, 1, 0, 0, 216, 217, 5, 67, 0, 0, 217, 220, 5, 69, 0, 0, 218, 221, 5, 67,
4547
+ 0, 0, 219, 221, 3, 16, 8, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221, 222, 1, 0,
4548
+ 0, 0, 222, 220, 1, 0, 0, 0, 222, 223, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 225, 5, 70,
4549
+ 0, 0, 225, 15, 1, 0, 0, 0, 226, 227, 7, 1, 0, 0, 227, 228, 5, 1, 0, 0, 228, 229, 3, 70,
4550
+ 35, 0, 229, 17, 1, 0, 0, 0, 230, 231, 5, 16, 0, 0, 231, 232, 3, 64, 32, 0, 232, 19, 1,
4551
+ 0, 0, 0, 233, 234, 5, 59, 0, 0, 234, 237, 5, 1, 0, 0, 235, 238, 3, 70, 35, 0, 236, 238,
4552
+ 5, 59, 0, 0, 237, 235, 1, 0, 0, 0, 237, 236, 1, 0, 0, 0, 238, 21, 1, 0, 0, 0, 239, 242,
4553
+ 3, 64, 32, 0, 240, 242, 3, 52, 26, 0, 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242,
4554
+ 246, 1, 0, 0, 0, 243, 245, 3, 20, 10, 0, 244, 243, 1, 0, 0, 0, 245, 248, 1, 0, 0, 0, 246,
4555
+ 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249,
4556
+ 251, 3, 18, 9, 0, 250, 249, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 23, 1, 0, 0, 0, 252,
4557
+ 253, 5, 17, 0, 0, 253, 254, 3, 22, 11, 0, 254, 25, 1, 0, 0, 0, 255, 259, 3, 22, 11, 0,
4558
+ 256, 259, 3, 18, 9, 0, 257, 259, 5, 20, 0, 0, 258, 255, 1, 0, 0, 0, 258, 256, 1, 0, 0,
4559
+ 0, 258, 257, 1, 0, 0, 0, 259, 27, 1, 0, 0, 0, 260, 261, 7, 2, 0, 0, 261, 29, 1, 0, 0, 0,
4560
+ 262, 263, 5, 18, 0, 0, 263, 264, 3, 26, 13, 0, 264, 31, 1, 0, 0, 0, 265, 266, 5, 19, 0,
4561
+ 0, 266, 271, 3, 26, 13, 0, 267, 268, 5, 2, 0, 0, 268, 270, 3, 26, 13, 0, 269, 267, 1,
4562
+ 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0, 272, 33, 1, 0,
4563
+ 0, 0, 273, 271, 1, 0, 0, 0, 274, 275, 5, 18, 0, 0, 275, 276, 3, 26, 13, 0, 276, 277, 5,
4564
+ 19, 0, 0, 277, 282, 3, 26, 13, 0, 278, 279, 5, 2, 0, 0, 279, 281, 3, 26, 13, 0, 280, 278,
4565
+ 1, 0, 0, 0, 281, 284, 1, 0, 0, 0, 282, 280, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 285,
4566
+ 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 285, 286, 5, 1, 0, 0, 286, 287, 5, 67, 0, 0, 287, 290,
4567
+ 5, 69, 0, 0, 288, 291, 5, 67, 0, 0, 289, 291, 3, 36, 18, 0, 290, 288, 1, 0, 0, 0, 290,
4568
+ 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 292, 293, 1, 0, 0, 0, 293,
4569
+ 294, 1, 0, 0, 0, 294, 295, 5, 70, 0, 0, 295, 35, 1, 0, 0, 0, 296, 297, 3, 28, 14, 0, 297,
4570
+ 298, 5, 1, 0, 0, 298, 303, 3, 38, 19, 0, 299, 300, 5, 2, 0, 0, 300, 302, 3, 38, 19, 0,
4571
+ 301, 299, 1, 0, 0, 0, 302, 305, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 303, 304, 1, 0, 0, 0,
4572
+ 304, 37, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 306, 307, 7, 3, 0, 0, 307, 39, 1, 0, 0, 0, 308,
4573
+ 309, 3, 44, 22, 0, 309, 310, 5, 67, 0, 0, 310, 313, 5, 69, 0, 0, 311, 314, 5, 67, 0, 0,
4574
+ 312, 314, 3, 42, 21, 0, 313, 311, 1, 0, 0, 0, 313, 312, 1, 0, 0, 0, 314, 315, 1, 0, 0,
4575
+ 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 5, 70, 0,
4576
+ 0, 318, 41, 1, 0, 0, 0, 319, 322, 3, 2, 1, 0, 320, 322, 3, 46, 23, 0, 321, 319, 1, 0, 0,
4577
+ 0, 321, 320, 1, 0, 0, 0, 322, 43, 1, 0, 0, 0, 323, 324, 3, 30, 15, 0, 324, 328, 5, 1, 0,
4578
+ 0, 325, 327, 3, 148, 74, 0, 326, 325, 1, 0, 0, 0, 327, 330, 1, 0, 0, 0, 328, 326, 1, 0,
4579
+ 0, 0, 328, 329, 1, 0, 0, 0, 329, 45, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 331, 332, 3, 28,
4580
+ 14, 0, 332, 335, 5, 1, 0, 0, 333, 336, 3, 48, 24, 0, 334, 336, 3, 50, 25, 0, 335, 333,
4581
+ 1, 0, 0, 0, 335, 334, 1, 0, 0, 0, 336, 47, 1, 0, 0, 0, 337, 340, 3, 2, 1, 0, 338, 340, 5,
4582
+ 57, 0, 0, 339, 337, 1, 0, 0, 0, 339, 338, 1, 0, 0, 0, 340, 49, 1, 0, 0, 0, 341, 342, 3,
4583
+ 10, 5, 0, 342, 51, 1, 0, 0, 0, 343, 346, 3, 78, 39, 0, 344, 346, 3, 84, 42, 0, 345, 343,
4584
+ 1, 0, 0, 0, 345, 344, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347, 348, 5, 3, 0, 0, 348, 349,
4585
+ 3, 64, 32, 0, 349, 53, 1, 0, 0, 0, 350, 351, 3, 78, 39, 0, 351, 352, 7, 4, 0, 0, 352, 353,
4586
+ 3, 64, 32, 0, 353, 55, 1, 0, 0, 0, 354, 355, 5, 59, 0, 0, 355, 356, 5, 3, 0, 0, 356, 357,
4587
+ 3, 64, 32, 0, 357, 57, 1, 0, 0, 0, 358, 363, 3, 64, 32, 0, 359, 360, 5, 2, 0, 0, 360, 362,
4588
+ 3, 64, 32, 0, 361, 359, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 363, 364,
4589
+ 1, 0, 0, 0, 364, 370, 1, 0, 0, 0, 365, 363, 1, 0, 0, 0, 366, 367, 5, 2, 0, 0, 367, 369,
4590
+ 3, 56, 28, 0, 368, 366, 1, 0, 0, 0, 369, 372, 1, 0, 0, 0, 370, 368, 1, 0, 0, 0, 370, 371,
4591
+ 1, 0, 0, 0, 371, 382, 1, 0, 0, 0, 372, 370, 1, 0, 0, 0, 373, 378, 3, 56, 28, 0, 374, 375,
4592
+ 5, 2, 0, 0, 375, 377, 3, 56, 28, 0, 376, 374, 1, 0, 0, 0, 377, 380, 1, 0, 0, 0, 378, 376,
4593
+ 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 382, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 381, 358,
4594
+ 1, 0, 0, 0, 381, 373, 1, 0, 0, 0, 382, 59, 1, 0, 0, 0, 383, 384, 3, 78, 39, 0, 384, 385,
4595
+ 5, 3, 0, 0, 385, 386, 3, 64, 32, 0, 386, 61, 1, 0, 0, 0, 387, 388, 5, 4, 0, 0, 388, 389,
4596
+ 5, 59, 0, 0, 389, 390, 5, 3, 0, 0, 390, 391, 3, 64, 32, 0, 391, 63, 1, 0, 0, 0, 392, 393,
4597
+ 6, 32, -1, 0, 393, 394, 5, 55, 0, 0, 394, 395, 3, 64, 32, 0, 395, 396, 5, 56, 0, 0, 396,
4598
+ 410, 1, 0, 0, 0, 397, 400, 3, 70, 35, 0, 398, 400, 3, 78, 39, 0, 399, 397, 1, 0, 0, 0,
4599
+ 399, 398, 1, 0, 0, 0, 400, 410, 1, 0, 0, 0, 401, 402, 3, 68, 34, 0, 402, 403, 3, 64, 32,
4600
+ 11, 403, 410, 1, 0, 0, 0, 404, 410, 3, 92, 46, 0, 405, 410, 3, 96, 48, 0, 406, 410, 3,
4601
+ 98, 49, 0, 407, 410, 3, 84, 42, 0, 408, 410, 3, 114, 57, 0, 409, 392, 1, 0, 0, 0, 409,
4602
+ 399, 1, 0, 0, 0, 409, 401, 1, 0, 0, 0, 409, 404, 1, 0, 0, 0, 409, 405, 1, 0, 0, 0, 409,
4603
+ 406, 1, 0, 0, 0, 409, 407, 1, 0, 0, 0, 409, 408, 1, 0, 0, 0, 410, 431, 1, 0, 0, 0, 411,
4604
+ 412, 10, 10, 0, 0, 412, 413, 7, 5, 0, 0, 413, 430, 3, 64, 32, 11, 414, 415, 10, 9, 0,
4605
+ 0, 415, 416, 7, 6, 0, 0, 416, 430, 3, 64, 32, 10, 417, 418, 10, 8, 0, 0, 418, 419, 3,
4606
+ 66, 33, 0, 419, 420, 3, 64, 32, 9, 420, 430, 1, 0, 0, 0, 421, 422, 10, 7, 0, 0, 422, 423,
4607
+ 7, 7, 0, 0, 423, 430, 3, 64, 32, 8, 424, 425, 10, 1, 0, 0, 425, 426, 5, 5, 0, 0, 426, 427,
4608
+ 3, 64, 32, 0, 427, 428, 5, 6, 0, 0, 428, 430, 1, 0, 0, 0, 429, 411, 1, 0, 0, 0, 429, 414,
4609
+ 1, 0, 0, 0, 429, 417, 1, 0, 0, 0, 429, 421, 1, 0, 0, 0, 429, 424, 1, 0, 0, 0, 430, 433,
4610
+ 1, 0, 0, 0, 431, 429, 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 65, 1, 0, 0, 0, 433, 431, 1,
4611
+ 0, 0, 0, 434, 435, 7, 8, 0, 0, 435, 67, 1, 0, 0, 0, 436, 437, 7, 9, 0, 0, 437, 69, 1, 0,
4612
+ 0, 0, 438, 440, 5, 45, 0, 0, 439, 438, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 441, 1, 0,
4613
+ 0, 0, 441, 442, 7, 10, 0, 0, 442, 71, 1, 0, 0, 0, 443, 444, 5, 24, 0, 0, 444, 445, 5, 59,
4614
+ 0, 0, 445, 447, 5, 55, 0, 0, 446, 448, 3, 76, 38, 0, 447, 446, 1, 0, 0, 0, 447, 448, 1,
4615
+ 0, 0, 0, 448, 449, 1, 0, 0, 0, 449, 450, 5, 56, 0, 0, 450, 451, 5, 1, 0, 0, 451, 452, 5,
4616
+ 67, 0, 0, 452, 455, 5, 69, 0, 0, 453, 456, 5, 67, 0, 0, 454, 456, 3, 74, 37, 0, 455, 453,
4617
+ 1, 0, 0, 0, 455, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 455, 1, 0, 0, 0, 457, 458,
4618
+ 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 5, 70, 0, 0, 460, 73, 1, 0, 0, 0, 461, 464,
4619
+ 3, 2, 1, 0, 462, 464, 3, 88, 44, 0, 463, 461, 1, 0, 0, 0, 463, 462, 1, 0, 0, 0, 464, 75,
4620
+ 1, 0, 0, 0, 465, 470, 5, 59, 0, 0, 466, 467, 5, 2, 0, 0, 467, 469, 5, 59, 0, 0, 468, 466,
4621
+ 1, 0, 0, 0, 469, 472, 1, 0, 0, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 479,
4622
+ 1, 0, 0, 0, 472, 470, 1, 0, 0, 0, 473, 474, 5, 2, 0, 0, 474, 475, 5, 59, 0, 0, 475, 476,
4623
+ 5, 3, 0, 0, 476, 478, 3, 70, 35, 0, 477, 473, 1, 0, 0, 0, 478, 481, 1, 0, 0, 0, 479, 477,
4624
+ 1, 0, 0, 0, 479, 480, 1, 0, 0, 0, 480, 495, 1, 0, 0, 0, 481, 479, 1, 0, 0, 0, 482, 483,
4625
+ 5, 59, 0, 0, 483, 484, 5, 3, 0, 0, 484, 491, 3, 70, 35, 0, 485, 486, 5, 2, 0, 0, 486, 487,
4626
+ 5, 59, 0, 0, 487, 488, 5, 3, 0, 0, 488, 490, 3, 70, 35, 0, 489, 485, 1, 0, 0, 0, 490, 493,
4627
+ 1, 0, 0, 0, 491, 489, 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 495, 1, 0, 0, 0, 493, 491,
4628
+ 1, 0, 0, 0, 494, 465, 1, 0, 0, 0, 494, 482, 1, 0, 0, 0, 495, 77, 1, 0, 0, 0, 496, 500, 5,
4629
+ 59, 0, 0, 497, 499, 3, 82, 41, 0, 498, 497, 1, 0, 0, 0, 499, 502, 1, 0, 0, 0, 500, 498,
4630
+ 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 79, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 503, 505, 5,
4631
+ 55, 0, 0, 504, 506, 3, 58, 29, 0, 505, 504, 1, 0, 0, 0, 505, 506, 1, 0, 0, 0, 506, 507,
4632
+ 1, 0, 0, 0, 507, 510, 5, 56, 0, 0, 508, 510, 3, 82, 41, 0, 509, 503, 1, 0, 0, 0, 509, 508,
4633
+ 1, 0, 0, 0, 510, 81, 1, 0, 0, 0, 511, 512, 5, 7, 0, 0, 512, 518, 5, 59, 0, 0, 513, 514,
4634
+ 5, 5, 0, 0, 514, 515, 3, 64, 32, 0, 515, 516, 5, 6, 0, 0, 516, 518, 1, 0, 0, 0, 517, 511,
4635
+ 1, 0, 0, 0, 517, 513, 1, 0, 0, 0, 518, 83, 1, 0, 0, 0, 519, 521, 3, 86, 43, 0, 520, 519,
4636
+ 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 524, 5, 59, 0, 0, 523, 525,
4637
+ 3, 80, 40, 0, 524, 523, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 524, 1, 0, 0, 0, 526, 527,
4638
+ 1, 0, 0, 0, 527, 85, 1, 0, 0, 0, 528, 530, 5, 44, 0, 0, 529, 528, 1, 0, 0, 0, 529, 530,
4639
+ 1, 0, 0, 0, 530, 531, 1, 0, 0, 0, 531, 533, 5, 46, 0, 0, 532, 534, 3, 64, 32, 0, 533, 532,
4640
+ 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 87, 1, 0, 0, 0, 535, 536, 5, 23, 0, 0, 536, 537,
4641
+ 3, 64, 32, 0, 537, 89, 1, 0, 0, 0, 538, 539, 3, 106, 53, 0, 539, 540, 5, 1, 0, 0, 540,
4642
+ 541, 3, 10, 5, 0, 541, 91, 1, 0, 0, 0, 542, 543, 5, 11, 0, 0, 543, 544, 5, 12, 0, 0, 544,
4643
+ 545, 5, 1, 0, 0, 545, 546, 5, 67, 0, 0, 546, 549, 5, 69, 0, 0, 547, 550, 5, 67, 0, 0, 548,
4644
+ 550, 3, 104, 52, 0, 549, 547, 1, 0, 0, 0, 549, 548, 1, 0, 0, 0, 550, 551, 1, 0, 0, 0, 551,
4645
+ 549, 1, 0, 0, 0, 551, 552, 1, 0, 0, 0, 552, 553, 1, 0, 0, 0, 553, 554, 5, 70, 0, 0, 554,
4646
+ 93, 1, 0, 0, 0, 555, 556, 5, 67, 0, 0, 556, 559, 5, 69, 0, 0, 557, 560, 5, 67, 0, 0, 558,
4647
+ 560, 3, 102, 51, 0, 559, 557, 1, 0, 0, 0, 559, 558, 1, 0, 0, 0, 560, 561, 1, 0, 0, 0, 561,
4648
+ 559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 5, 70, 0, 0, 564,
4649
+ 95, 1, 0, 0, 0, 565, 566, 5, 11, 0, 0, 566, 570, 5, 13, 0, 0, 567, 568, 5, 55, 0, 0, 568,
4650
+ 569, 5, 59, 0, 0, 569, 571, 5, 56, 0, 0, 570, 567, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571,
4651
+ 572, 1, 0, 0, 0, 572, 573, 5, 1, 0, 0, 573, 574, 3, 94, 47, 0, 574, 97, 1, 0, 0, 0, 575,
4652
+ 576, 5, 11, 0, 0, 576, 577, 5, 14, 0, 0, 577, 578, 5, 1, 0, 0, 578, 579, 5, 67, 0, 0, 579,
4653
+ 583, 5, 69, 0, 0, 580, 584, 5, 67, 0, 0, 581, 584, 3, 104, 52, 0, 582, 584, 3, 90, 45,
4654
+ 0, 583, 580, 1, 0, 0, 0, 583, 581, 1, 0, 0, 0, 583, 582, 1, 0, 0, 0, 584, 585, 1, 0, 0,
4655
+ 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 587, 1, 0, 0, 0, 587, 588, 5, 70, 0,
4656
+ 0, 588, 99, 1, 0, 0, 0, 589, 590, 5, 67, 0, 0, 590, 593, 5, 69, 0, 0, 591, 594, 5, 67,
4657
+ 0, 0, 592, 594, 3, 104, 52, 0, 593, 591, 1, 0, 0, 0, 593, 592, 1, 0, 0, 0, 594, 595, 1,
4658
+ 0, 0, 0, 595, 593, 1, 0, 0, 0, 595, 596, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 598, 5,
4659
+ 70, 0, 0, 598, 101, 1, 0, 0, 0, 599, 601, 7, 11, 0, 0, 600, 602, 5, 1, 0, 0, 601, 600,
4660
+ 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 609, 1, 0, 0, 0, 603, 610, 3, 58, 29, 0, 604, 605,
4661
+ 5, 55, 0, 0, 605, 606, 3, 58, 29, 0, 606, 607, 5, 56, 0, 0, 607, 610, 1, 0, 0, 0, 608,
4662
+ 610, 3, 100, 50, 0, 609, 603, 1, 0, 0, 0, 609, 604, 1, 0, 0, 0, 609, 608, 1, 0, 0, 0, 610,
4663
+ 626, 1, 0, 0, 0, 611, 612, 5, 27, 0, 0, 612, 617, 5, 59, 0, 0, 613, 614, 5, 2, 0, 0, 614,
4664
+ 616, 5, 59, 0, 0, 615, 613, 1, 0, 0, 0, 616, 619, 1, 0, 0, 0, 617, 615, 1, 0, 0, 0, 617,
4665
+ 618, 1, 0, 0, 0, 618, 620, 1, 0, 0, 0, 619, 617, 1, 0, 0, 0, 620, 621, 5, 28, 0, 0, 621,
4666
+ 622, 3, 64, 32, 0, 622, 623, 5, 1, 0, 0, 623, 624, 3, 94, 47, 0, 624, 626, 1, 0, 0, 0,
4667
+ 625, 599, 1, 0, 0, 0, 625, 611, 1, 0, 0, 0, 626, 103, 1, 0, 0, 0, 627, 631, 3, 106, 53,
4668
+ 0, 628, 630, 5, 63, 0, 0, 629, 628, 1, 0, 0, 0, 630, 633, 1, 0, 0, 0, 631, 629, 1, 0, 0,
4669
+ 0, 631, 632, 1, 0, 0, 0, 632, 634, 1, 0, 0, 0, 633, 631, 1, 0, 0, 0, 634, 635, 5, 1, 0,
4670
+ 0, 635, 636, 3, 108, 54, 0, 636, 105, 1, 0, 0, 0, 637, 638, 7, 12, 0, 0, 638, 107, 1,
4671
+ 0, 0, 0, 639, 649, 3, 100, 50, 0, 640, 645, 3, 64, 32, 0, 641, 642, 5, 2, 0, 0, 642, 644,
4672
+ 3, 64, 32, 0, 643, 641, 1, 0, 0, 0, 644, 647, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 645, 646,
4673
+ 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 648, 639, 1, 0, 0, 0, 648, 640,
4674
+ 1, 0, 0, 0, 649, 109, 1, 0, 0, 0, 650, 653, 5, 59, 0, 0, 651, 654, 5, 60, 0, 0, 652, 654,
4675
+ 3, 64, 32, 0, 653, 651, 1, 0, 0, 0, 653, 652, 1, 0, 0, 0, 654, 657, 1, 0, 0, 0, 655, 657,
4676
+ 5, 59, 0, 0, 656, 650, 1, 0, 0, 0, 656, 655, 1, 0, 0, 0, 657, 111, 1, 0, 0, 0, 658, 662,
4677
+ 5, 15, 0, 0, 659, 661, 3, 110, 55, 0, 660, 659, 1, 0, 0, 0, 661, 664, 1, 0, 0, 0, 662,
4678
+ 660, 1, 0, 0, 0, 662, 663, 1, 0, 0, 0, 663, 113, 1, 0, 0, 0, 664, 662, 1, 0, 0, 0, 665,
4679
+ 676, 5, 5, 0, 0, 666, 671, 3, 64, 32, 0, 667, 668, 5, 2, 0, 0, 668, 670, 3, 64, 32, 0,
4680
+ 669, 667, 1, 0, 0, 0, 670, 673, 1, 0, 0, 0, 671, 669, 1, 0, 0, 0, 671, 672, 1, 0, 0, 0,
4681
+ 672, 675, 1, 0, 0, 0, 673, 671, 1, 0, 0, 0, 674, 666, 1, 0, 0, 0, 675, 678, 1, 0, 0, 0,
4682
+ 676, 674, 1, 0, 0, 0, 676, 677, 1, 0, 0, 0, 677, 679, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0,
4683
+ 679, 680, 5, 6, 0, 0, 680, 115, 1, 0, 0, 0, 681, 684, 5, 20, 0, 0, 682, 685, 5, 59, 0,
4684
+ 0, 683, 685, 3, 64, 32, 0, 684, 682, 1, 0, 0, 0, 684, 683, 1, 0, 0, 0, 685, 117, 1, 0,
4685
+ 0, 0, 686, 687, 5, 25, 0, 0, 687, 689, 5, 59, 0, 0, 688, 690, 3, 120, 60, 0, 689, 688,
4686
+ 1, 0, 0, 0, 689, 690, 1, 0, 0, 0, 690, 713, 1, 0, 0, 0, 691, 692, 5, 26, 0, 0, 692, 693,
4687
+ 5, 59, 0, 0, 693, 694, 5, 25, 0, 0, 694, 696, 5, 47, 0, 0, 695, 697, 3, 120, 60, 0, 696,
4688
+ 695, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 713, 1, 0, 0, 0, 698, 699, 5, 26, 0, 0, 699,
4689
+ 700, 5, 59, 0, 0, 700, 701, 5, 25, 0, 0, 701, 706, 5, 59, 0, 0, 702, 703, 5, 2, 0, 0, 703,
4690
+ 705, 5, 59, 0, 0, 704, 702, 1, 0, 0, 0, 705, 708, 1, 0, 0, 0, 706, 704, 1, 0, 0, 0, 706,
4691
+ 707, 1, 0, 0, 0, 707, 710, 1, 0, 0, 0, 708, 706, 1, 0, 0, 0, 709, 711, 3, 120, 60, 0, 710,
4692
+ 709, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 713, 1, 0, 0, 0, 712, 686, 1, 0, 0, 0, 712,
4693
+ 691, 1, 0, 0, 0, 712, 698, 1, 0, 0, 0, 713, 119, 1, 0, 0, 0, 714, 718, 5, 54, 0, 0, 715,
4694
+ 717, 7, 13, 0, 0, 716, 715, 1, 0, 0, 0, 717, 720, 1, 0, 0, 0, 718, 716, 1, 0, 0, 0, 718,
4695
+ 719, 1, 0, 0, 0, 719, 121, 1, 0, 0, 0, 720, 718, 1, 0, 0, 0, 721, 722, 7, 14, 0, 0, 722,
4696
+ 723, 5, 1, 0, 0, 723, 724, 3, 10, 5, 0, 724, 123, 1, 0, 0, 0, 725, 726, 5, 31, 0, 0, 726,
4697
+ 727, 3, 64, 32, 0, 727, 728, 5, 1, 0, 0, 728, 732, 3, 10, 5, 0, 729, 731, 3, 126, 63,
4698
+ 0, 730, 729, 1, 0, 0, 0, 731, 734, 1, 0, 0, 0, 732, 730, 1, 0, 0, 0, 732, 733, 1, 0, 0,
4699
+ 0, 733, 736, 1, 0, 0, 0, 734, 732, 1, 0, 0, 0, 735, 737, 3, 128, 64, 0, 736, 735, 1, 0,
4700
+ 0, 0, 736, 737, 1, 0, 0, 0, 737, 125, 1, 0, 0, 0, 738, 739, 5, 32, 0, 0, 739, 740, 5, 31,
4701
+ 0, 0, 740, 741, 3, 64, 32, 0, 741, 742, 5, 1, 0, 0, 742, 743, 3, 10, 5, 0, 743, 127, 1,
4702
+ 0, 0, 0, 744, 745, 5, 32, 0, 0, 745, 746, 5, 1, 0, 0, 746, 747, 3, 10, 5, 0, 747, 129,
4703
+ 1, 0, 0, 0, 748, 749, 5, 29, 0, 0, 749, 750, 3, 64, 32, 0, 750, 751, 5, 1, 0, 0, 751, 752,
4704
+ 3, 10, 5, 0, 752, 131, 1, 0, 0, 0, 753, 754, 5, 27, 0, 0, 754, 759, 5, 59, 0, 0, 755, 756,
4705
+ 5, 2, 0, 0, 756, 758, 5, 59, 0, 0, 757, 755, 1, 0, 0, 0, 758, 761, 1, 0, 0, 0, 759, 757,
4706
+ 1, 0, 0, 0, 759, 760, 1, 0, 0, 0, 760, 762, 1, 0, 0, 0, 761, 759, 1, 0, 0, 0, 762, 763,
4707
+ 5, 28, 0, 0, 763, 764, 3, 64, 32, 0, 764, 765, 5, 1, 0, 0, 765, 766, 3, 10, 5, 0, 766,
4708
+ 133, 1, 0, 0, 0, 767, 768, 5, 8, 0, 0, 768, 769, 5, 1, 0, 0, 769, 774, 3, 64, 32, 0, 770,
4709
+ 771, 5, 2, 0, 0, 771, 773, 3, 64, 32, 0, 772, 770, 1, 0, 0, 0, 773, 776, 1, 0, 0, 0, 774,
4710
+ 772, 1, 0, 0, 0, 774, 775, 1, 0, 0, 0, 775, 777, 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 777,
4711
+ 778, 5, 1, 0, 0, 778, 779, 3, 138, 69, 0, 779, 135, 1, 0, 0, 0, 780, 781, 7, 15, 0, 0,
4712
+ 781, 137, 1, 0, 0, 0, 782, 783, 5, 67, 0, 0, 783, 786, 5, 69, 0, 0, 784, 787, 5, 67, 0,
4713
+ 0, 785, 787, 3, 140, 70, 0, 786, 784, 1, 0, 0, 0, 786, 785, 1, 0, 0, 0, 787, 788, 1, 0,
4714
+ 0, 0, 788, 786, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 5, 70,
4715
+ 0, 0, 791, 139, 1, 0, 0, 0, 792, 796, 3, 142, 71, 0, 793, 796, 3, 146, 73, 0, 794, 796,
4716
+ 3, 144, 72, 0, 795, 792, 1, 0, 0, 0, 795, 793, 1, 0, 0, 0, 795, 794, 1, 0, 0, 0, 796, 141,
4717
+ 1, 0, 0, 0, 797, 798, 3, 136, 68, 0, 798, 799, 5, 1, 0, 0, 799, 807, 3, 64, 32, 0, 800,
4718
+ 801, 5, 2, 0, 0, 801, 802, 3, 136, 68, 0, 802, 803, 5, 1, 0, 0, 803, 804, 3, 64, 32, 0,
4719
+ 804, 806, 1, 0, 0, 0, 805, 800, 1, 0, 0, 0, 806, 809, 1, 0, 0, 0, 807, 805, 1, 0, 0, 0,
4720
+ 807, 808, 1, 0, 0, 0, 808, 814, 1, 0, 0, 0, 809, 807, 1, 0, 0, 0, 810, 811, 5, 2, 0, 0,
4721
+ 811, 813, 3, 136, 68, 0, 812, 810, 1, 0, 0, 0, 813, 816, 1, 0, 0, 0, 814, 812, 1, 0, 0,
4722
+ 0, 814, 815, 1, 0, 0, 0, 815, 817, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 817, 827, 5, 1, 0,
4723
+ 0, 818, 828, 3, 138, 69, 0, 819, 824, 3, 64, 32, 0, 820, 821, 5, 2, 0, 0, 821, 823, 3,
4724
+ 64, 32, 0, 822, 820, 1, 0, 0, 0, 823, 826, 1, 0, 0, 0, 824, 822, 1, 0, 0, 0, 824, 825,
4725
+ 1, 0, 0, 0, 825, 828, 1, 0, 0, 0, 826, 824, 1, 0, 0, 0, 827, 818, 1, 0, 0, 0, 827, 819,
4726
+ 1, 0, 0, 0, 828, 143, 1, 0, 0, 0, 829, 830, 3, 136, 68, 0, 830, 831, 5, 1, 0, 0, 831, 832,
4727
+ 3, 138, 69, 0, 832, 145, 1, 0, 0, 0, 833, 834, 3, 136, 68, 0, 834, 835, 5, 1, 0, 0, 835,
4728
+ 840, 3, 64, 32, 0, 836, 837, 5, 2, 0, 0, 837, 839, 3, 64, 32, 0, 838, 836, 1, 0, 0, 0,
4729
+ 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 147, 1, 0, 0, 0,
4730
+ 842, 840, 1, 0, 0, 0, 843, 844, 5, 54, 0, 0, 844, 845, 5, 59, 0, 0, 845, 149, 1, 0, 0,
4731
+ 0, 94, 152, 154, 159, 161, 179, 186, 190, 198, 204, 206, 220, 222, 237, 241, 246,
4732
+ 250, 258, 271, 282, 290, 292, 303, 313, 315, 321, 328, 335, 339, 345, 363, 370,
4733
+ 378, 381, 399, 409, 429, 431, 439, 447, 455, 457, 463, 470, 479, 491, 494, 500,
4734
+ 505, 509, 517, 520, 526, 529, 533, 549, 551, 559, 561, 570, 583, 585, 593, 595,
4735
+ 601, 609, 617, 625, 631, 645, 648, 653, 656, 662, 671, 676, 684, 689, 696, 706,
4736
+ 710, 712, 718, 732, 736, 759, 774, 786, 788, 795, 807, 814, 824, 827, 840
4561
4737
  ];
4562
4738
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4563
4739
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -6446,6 +6622,14 @@ class Property_exprContext extends antlr.ParserRuleContext {
6446
6622
  property_value_expr() {
6447
6623
  return this.getRuleContext(0, Property_value_exprContext);
6448
6624
  }
6625
+ STRING_VALUE(i) {
6626
+ if (i === undefined) {
6627
+ return this.getTokens(CircuitScriptParser.STRING_VALUE);
6628
+ }
6629
+ else {
6630
+ return this.getToken(CircuitScriptParser.STRING_VALUE, i);
6631
+ }
6632
+ }
6449
6633
  get ruleIndex() {
6450
6634
  return CircuitScriptParser.RULE_property_expr;
6451
6635
  }
@@ -6669,25 +6853,137 @@ class Import_exprContext extends antlr.ParserRuleContext {
6669
6853
  constructor(parent, invokingState) {
6670
6854
  super(parent, invokingState);
6671
6855
  }
6856
+ get ruleIndex() {
6857
+ return CircuitScriptParser.RULE_import_expr;
6858
+ }
6859
+ copyFrom(ctx) {
6860
+ super.copyFrom(ctx);
6861
+ }
6862
+ }
6863
+ exports.Import_exprContext = Import_exprContext;
6864
+ class Import_specificContext extends Import_exprContext {
6865
+ constructor(ctx) {
6866
+ super(ctx.parent, ctx.invokingState);
6867
+ this._funcNames = [];
6868
+ super.copyFrom(ctx);
6869
+ }
6870
+ From() {
6871
+ return this.getToken(CircuitScriptParser.From, 0);
6872
+ }
6672
6873
  Import() {
6673
6874
  return this.getToken(CircuitScriptParser.Import, 0);
6674
6875
  }
6876
+ ID(i) {
6877
+ if (i === undefined) {
6878
+ return this.getTokens(CircuitScriptParser.ID);
6879
+ }
6880
+ else {
6881
+ return this.getToken(CircuitScriptParser.ID, i);
6882
+ }
6883
+ }
6884
+ import_annotation_expr() {
6885
+ return this.getRuleContext(0, Import_annotation_exprContext);
6886
+ }
6887
+ accept(visitor) {
6888
+ if (visitor.visitImport_specific) {
6889
+ return visitor.visitImport_specific(this);
6890
+ }
6891
+ else {
6892
+ return visitor.visitChildren(this);
6893
+ }
6894
+ }
6895
+ }
6896
+ exports.Import_specificContext = Import_specificContext;
6897
+ class Import_all_simpleContext extends Import_exprContext {
6898
+ constructor(ctx) {
6899
+ super(ctx.parent, ctx.invokingState);
6900
+ super.copyFrom(ctx);
6901
+ }
6902
+ From() {
6903
+ return this.getToken(CircuitScriptParser.From, 0);
6904
+ }
6905
+ Import() {
6906
+ return this.getToken(CircuitScriptParser.Import, 0);
6907
+ }
6908
+ Multiply() {
6909
+ return this.getToken(CircuitScriptParser.Multiply, 0);
6910
+ }
6675
6911
  ID() {
6676
6912
  return this.getToken(CircuitScriptParser.ID, 0);
6677
6913
  }
6914
+ import_annotation_expr() {
6915
+ return this.getRuleContext(0, Import_annotation_exprContext);
6916
+ }
6917
+ accept(visitor) {
6918
+ if (visitor.visitImport_all_simple) {
6919
+ return visitor.visitImport_all_simple(this);
6920
+ }
6921
+ else {
6922
+ return visitor.visitChildren(this);
6923
+ }
6924
+ }
6925
+ }
6926
+ exports.Import_all_simpleContext = Import_all_simpleContext;
6927
+ class Import_simpleContext extends Import_exprContext {
6928
+ constructor(ctx) {
6929
+ super(ctx.parent, ctx.invokingState);
6930
+ super.copyFrom(ctx);
6931
+ }
6932
+ Import() {
6933
+ return this.getToken(CircuitScriptParser.Import, 0);
6934
+ }
6935
+ ID() {
6936
+ return this.getToken(CircuitScriptParser.ID, 0);
6937
+ }
6938
+ import_annotation_expr() {
6939
+ return this.getRuleContext(0, Import_annotation_exprContext);
6940
+ }
6941
+ accept(visitor) {
6942
+ if (visitor.visitImport_simple) {
6943
+ return visitor.visitImport_simple(this);
6944
+ }
6945
+ else {
6946
+ return visitor.visitChildren(this);
6947
+ }
6948
+ }
6949
+ }
6950
+ exports.Import_simpleContext = Import_simpleContext;
6951
+ class Import_annotation_exprContext extends antlr.ParserRuleContext {
6952
+ constructor(parent, invokingState) {
6953
+ super(parent, invokingState);
6954
+ }
6955
+ ANNOTATION_START() {
6956
+ return this.getToken(CircuitScriptParser.ANNOTATION_START, 0);
6957
+ }
6958
+ ID(i) {
6959
+ if (i === undefined) {
6960
+ return this.getTokens(CircuitScriptParser.ID);
6961
+ }
6962
+ else {
6963
+ return this.getToken(CircuitScriptParser.ID, i);
6964
+ }
6965
+ }
6966
+ Minus(i) {
6967
+ if (i === undefined) {
6968
+ return this.getTokens(CircuitScriptParser.Minus);
6969
+ }
6970
+ else {
6971
+ return this.getToken(CircuitScriptParser.Minus, i);
6972
+ }
6973
+ }
6678
6974
  get ruleIndex() {
6679
- return CircuitScriptParser.RULE_import_expr;
6975
+ return CircuitScriptParser.RULE_import_annotation_expr;
6680
6976
  }
6681
6977
  accept(visitor) {
6682
- if (visitor.visitImport_expr) {
6683
- return visitor.visitImport_expr(this);
6978
+ if (visitor.visitImport_annotation_expr) {
6979
+ return visitor.visitImport_annotation_expr(this);
6684
6980
  }
6685
6981
  else {
6686
6982
  return visitor.visitChildren(this);
6687
6983
  }
6688
6984
  }
6689
6985
  }
6690
- exports.Import_exprContext = Import_exprContext;
6986
+ exports.Import_annotation_exprContext = Import_annotation_exprContext;
6691
6987
  class Frame_exprContext extends antlr.ParserRuleContext {
6692
6988
  constructor(parent, invokingState) {
6693
6989
  super(parent, invokingState);