circuitscript 0.1.20 → 0.1.23

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 (45) hide show
  1. package/dist/cjs/BaseVisitor.js +22 -0
  2. package/dist/cjs/ComponentAnnotater.js +88 -0
  3. package/dist/cjs/RefdesAnnotationVisitor.js +197 -0
  4. package/dist/cjs/antlr/CircuitScriptLexer.js +202 -197
  5. package/dist/cjs/antlr/CircuitScriptParser.js +975 -833
  6. package/dist/cjs/environment.js +15 -1
  7. package/dist/cjs/execute.js +45 -2
  8. package/dist/cjs/helpers.js +20 -2
  9. package/dist/cjs/lexer.js +21 -9
  10. package/dist/cjs/main.js +13 -0
  11. package/dist/cjs/objects/ClassComponent.js +4 -1
  12. package/dist/cjs/objects/ExecutionScope.js +1 -0
  13. package/dist/cjs/parser.js +1 -0
  14. package/dist/cjs/visitor.js +122 -71
  15. package/dist/esm/BaseVisitor.js +22 -0
  16. package/dist/esm/ComponentAnnotater.js +84 -0
  17. package/dist/esm/RefdesAnnotationVisitor.js +196 -0
  18. package/dist/esm/antlr/CircuitScriptLexer.js +202 -197
  19. package/dist/esm/antlr/CircuitScriptParser.js +971 -831
  20. package/dist/esm/antlr/CircuitScriptVisitor.js +2 -0
  21. package/dist/esm/environment.js +15 -1
  22. package/dist/esm/execute.js +45 -2
  23. package/dist/esm/helpers.js +20 -2
  24. package/dist/esm/lexer.js +21 -9
  25. package/dist/esm/main.js +13 -0
  26. package/dist/esm/objects/ClassComponent.js +4 -1
  27. package/dist/esm/objects/ExecutionScope.js +1 -0
  28. package/dist/esm/parser.js +1 -0
  29. package/dist/esm/visitor.js +120 -69
  30. package/dist/types/BaseVisitor.d.ts +3 -0
  31. package/dist/types/ComponentAnnotater.d.ts +16 -0
  32. package/dist/types/RefdesAnnotationVisitor.d.ts +35 -0
  33. package/dist/types/antlr/CircuitScriptLexer.d.ts +15 -14
  34. package/dist/types/antlr/CircuitScriptParser.d.ts +81 -60
  35. package/dist/types/antlr/CircuitScriptVisitor.d.ts +4 -0
  36. package/dist/types/environment.d.ts +1 -0
  37. package/dist/types/execute.d.ts +8 -1
  38. package/dist/types/helpers.d.ts +4 -1
  39. package/dist/types/lexer.d.ts +1 -1
  40. package/dist/types/objects/ClassComponent.d.ts +9 -0
  41. package/dist/types/objects/ExecutionScope.d.ts +2 -1
  42. package/dist/types/objects/types.d.ts +1 -0
  43. package/dist/types/parser.d.ts +2 -1
  44. package/dist/types/visitor.d.ts +8 -1
  45. package/package.json +1 -1
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Function_args_exprContext = 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_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.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 = void 0;
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.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;
28
28
  const antlr = __importStar(require("antlr4ng"));
29
29
  class CircuitScriptParser extends antlr.Parser {
30
30
  get grammarFileName() { return "CircuitScript.g4"; }
@@ -47,24 +47,24 @@ class CircuitScriptParser extends antlr.Parser {
47
47
  let alternative;
48
48
  this.enterOuterAlt(localContext, 1);
49
49
  {
50
- this.state = 134;
50
+ this.state = 138;
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 = 132;
56
+ this.state = 136;
57
57
  this.errorHandler.sync(this);
58
58
  switch (this.tokenStream.LA(1)) {
59
59
  case CircuitScriptParser.Import:
60
60
  {
61
- this.state = 130;
61
+ this.state = 134;
62
62
  this.import_expr();
63
63
  }
64
64
  break;
65
65
  case CircuitScriptParser.NEWLINE:
66
66
  {
67
- this.state = 131;
67
+ this.state = 135;
68
68
  this.match(CircuitScriptParser.NEWLINE);
69
69
  }
70
70
  break;
@@ -73,16 +73,16 @@ class CircuitScriptParser extends antlr.Parser {
73
73
  }
74
74
  }
75
75
  }
76
- this.state = 136;
76
+ this.state = 140;
77
77
  this.errorHandler.sync(this);
78
78
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 1, this.context);
79
79
  }
80
- this.state = 139;
80
+ this.state = 143;
81
81
  this.errorHandler.sync(this);
82
82
  _la = this.tokenStream.LA(1);
83
83
  do {
84
84
  {
85
- this.state = 139;
85
+ this.state = 143;
86
86
  this.errorHandler.sync(this);
87
87
  switch (this.tokenStream.LA(1)) {
88
88
  case CircuitScriptParser.T__3:
@@ -105,15 +105,16 @@ class CircuitScriptParser extends antlr.Parser {
105
105
  case CircuitScriptParser.Sheet:
106
106
  case CircuitScriptParser.Addition:
107
107
  case CircuitScriptParser.Divide:
108
+ case CircuitScriptParser.ANNOTATION_START:
108
109
  case CircuitScriptParser.ID:
109
110
  {
110
- this.state = 137;
111
+ this.state = 141;
111
112
  this.expression();
112
113
  }
113
114
  break;
114
115
  case CircuitScriptParser.NEWLINE:
115
116
  {
116
- this.state = 138;
117
+ this.state = 142;
117
118
  this.match(CircuitScriptParser.NEWLINE);
118
119
  }
119
120
  break;
@@ -121,11 +122,11 @@ class CircuitScriptParser extends antlr.Parser {
121
122
  throw new antlr.NoViableAltException(this);
122
123
  }
123
124
  }
124
- this.state = 141;
125
+ this.state = 145;
125
126
  this.errorHandler.sync(this);
126
127
  _la = this.tokenStream.LA(1);
127
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
128
- this.state = 143;
128
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
129
+ this.state = 147;
129
130
  this.match(CircuitScriptParser.EOF);
130
131
  }
131
132
  }
@@ -147,93 +148,100 @@ class CircuitScriptParser extends antlr.Parser {
147
148
  let localContext = new ExpressionContext(this.context, this.state);
148
149
  this.enterRule(localContext, 2, CircuitScriptParser.RULE_expression);
149
150
  try {
150
- this.state = 157;
151
+ this.state = 162;
151
152
  this.errorHandler.sync(this);
152
153
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context)) {
153
154
  case 1:
154
155
  this.enterOuterAlt(localContext, 1);
155
156
  {
156
- this.state = 145;
157
+ this.state = 149;
157
158
  this.graph_expressions();
158
159
  }
159
160
  break;
160
161
  case 2:
161
162
  this.enterOuterAlt(localContext, 2);
162
163
  {
163
- this.state = 146;
164
+ this.state = 150;
164
165
  this.assignment_expr();
165
166
  }
166
167
  break;
167
168
  case 3:
168
169
  this.enterOuterAlt(localContext, 3);
169
170
  {
170
- this.state = 147;
171
+ this.state = 151;
171
172
  this.operator_assignment_expr();
172
173
  }
173
174
  break;
174
175
  case 4:
175
176
  this.enterOuterAlt(localContext, 4);
176
177
  {
177
- this.state = 148;
178
+ this.state = 152;
178
179
  this.property_set_expr();
179
180
  }
180
181
  break;
181
182
  case 5:
182
183
  this.enterOuterAlt(localContext, 5);
183
184
  {
184
- this.state = 149;
185
+ this.state = 153;
185
186
  this.property_set_expr2();
186
187
  }
187
188
  break;
188
189
  case 6:
189
190
  this.enterOuterAlt(localContext, 6);
190
191
  {
191
- this.state = 150;
192
+ this.state = 154;
192
193
  this.double_dot_property_set_expr();
193
194
  }
194
195
  break;
195
196
  case 7:
196
197
  this.enterOuterAlt(localContext, 7);
197
198
  {
198
- this.state = 151;
199
+ this.state = 155;
199
200
  this.function_def_expr();
200
201
  }
201
202
  break;
202
203
  case 8:
203
204
  this.enterOuterAlt(localContext, 8);
204
205
  {
205
- this.state = 152;
206
+ this.state = 156;
206
207
  this.function_call_expr();
207
208
  }
208
209
  break;
209
210
  case 9:
210
211
  this.enterOuterAlt(localContext, 9);
211
212
  {
212
- this.state = 153;
213
+ this.state = 157;
213
214
  this.import_expr();
214
215
  }
215
216
  break;
216
217
  case 10:
217
218
  this.enterOuterAlt(localContext, 10);
218
219
  {
219
- this.state = 154;
220
+ this.state = 158;
220
221
  this.atom_expr();
221
222
  }
222
223
  break;
223
224
  case 11:
224
225
  this.enterOuterAlt(localContext, 11);
225
226
  {
226
- this.state = 155;
227
+ this.state = 159;
227
228
  this.frame_expr();
228
229
  }
229
230
  break;
230
231
  case 12:
231
232
  this.enterOuterAlt(localContext, 12);
232
233
  {
233
- this.state = 156;
234
+ this.state = 160;
234
235
  this.flow_expressions();
235
236
  }
236
237
  break;
238
+ case 13:
239
+ this.enterOuterAlt(localContext, 13);
240
+ {
241
+ this.state = 161;
242
+ this.annotation_comment_expr();
243
+ }
244
+ break;
237
245
  }
238
246
  }
239
247
  catch (re) {
@@ -254,41 +262,41 @@ class CircuitScriptParser extends antlr.Parser {
254
262
  let localContext = new Flow_expressionsContext(this.context, this.state);
255
263
  this.enterRule(localContext, 4, CircuitScriptParser.RULE_flow_expressions);
256
264
  try {
257
- this.state = 164;
265
+ this.state = 169;
258
266
  this.errorHandler.sync(this);
259
267
  switch (this.tokenStream.LA(1)) {
260
268
  case CircuitScriptParser.If:
261
269
  this.enterOuterAlt(localContext, 1);
262
270
  {
263
- this.state = 159;
271
+ this.state = 164;
264
272
  this.if_expr();
265
273
  }
266
274
  break;
267
275
  case CircuitScriptParser.While:
268
276
  this.enterOuterAlt(localContext, 2);
269
277
  {
270
- this.state = 160;
278
+ this.state = 165;
271
279
  this.while_expr();
272
280
  }
273
281
  break;
274
282
  case CircuitScriptParser.For:
275
283
  this.enterOuterAlt(localContext, 3);
276
284
  {
277
- this.state = 161;
285
+ this.state = 166;
278
286
  this.for_expr();
279
287
  }
280
288
  break;
281
289
  case CircuitScriptParser.Break:
282
290
  this.enterOuterAlt(localContext, 4);
283
291
  {
284
- this.state = 162;
292
+ this.state = 167;
285
293
  this.match(CircuitScriptParser.Break);
286
294
  }
287
295
  break;
288
296
  case CircuitScriptParser.Continue:
289
297
  this.enterOuterAlt(localContext, 5);
290
298
  {
291
- this.state = 163;
299
+ this.state = 168;
292
300
  this.match(CircuitScriptParser.Continue);
293
301
  }
294
302
  break;
@@ -314,20 +322,20 @@ class CircuitScriptParser extends antlr.Parser {
314
322
  let localContext = new Graph_expressionsContext(this.context, this.state);
315
323
  this.enterRule(localContext, 6, CircuitScriptParser.RULE_graph_expressions);
316
324
  try {
317
- this.state = 168;
325
+ this.state = 173;
318
326
  this.errorHandler.sync(this);
319
327
  switch (this.interpreter.adaptivePredict(this.tokenStream, 6, this.context)) {
320
328
  case 1:
321
329
  this.enterOuterAlt(localContext, 1);
322
330
  {
323
- this.state = 166;
331
+ this.state = 171;
324
332
  this.graph_linear_expression();
325
333
  }
326
334
  break;
327
335
  case 2:
328
336
  this.enterOuterAlt(localContext, 2);
329
337
  {
330
- this.state = 167;
338
+ this.state = 172;
331
339
  this.path_block();
332
340
  }
333
341
  break;
@@ -351,48 +359,48 @@ class CircuitScriptParser extends antlr.Parser {
351
359
  let localContext = new Graph_linear_expressionContext(this.context, this.state);
352
360
  this.enterRule(localContext, 8, CircuitScriptParser.RULE_graph_linear_expression);
353
361
  try {
354
- this.state = 176;
362
+ this.state = 181;
355
363
  this.errorHandler.sync(this);
356
364
  switch (this.interpreter.adaptivePredict(this.tokenStream, 7, this.context)) {
357
365
  case 1:
358
366
  this.enterOuterAlt(localContext, 1);
359
367
  {
360
- this.state = 170;
368
+ this.state = 175;
361
369
  this.add_component_expr();
362
370
  }
363
371
  break;
364
372
  case 2:
365
373
  this.enterOuterAlt(localContext, 2);
366
374
  {
367
- this.state = 171;
375
+ this.state = 176;
368
376
  this.to_component_expr();
369
377
  }
370
378
  break;
371
379
  case 3:
372
380
  this.enterOuterAlt(localContext, 3);
373
381
  {
374
- this.state = 172;
382
+ this.state = 177;
375
383
  this.at_component_expr();
376
384
  }
377
385
  break;
378
386
  case 4:
379
387
  this.enterOuterAlt(localContext, 4);
380
388
  {
381
- this.state = 173;
389
+ this.state = 178;
382
390
  this.at_block();
383
391
  }
384
392
  break;
385
393
  case 5:
386
394
  this.enterOuterAlt(localContext, 5);
387
395
  {
388
- this.state = 174;
396
+ this.state = 179;
389
397
  this.wire_expr();
390
398
  }
391
399
  break;
392
400
  case 6:
393
401
  this.enterOuterAlt(localContext, 6);
394
402
  {
395
- this.state = 175;
403
+ this.state = 180;
396
404
  this.point_expr();
397
405
  }
398
406
  break;
@@ -419,21 +427,21 @@ class CircuitScriptParser extends antlr.Parser {
419
427
  try {
420
428
  this.enterOuterAlt(localContext, 1);
421
429
  {
422
- this.state = 178;
430
+ this.state = 183;
423
431
  this.match(CircuitScriptParser.NEWLINE);
424
- this.state = 179;
432
+ this.state = 184;
425
433
  this.match(CircuitScriptParser.INDENT);
426
- this.state = 182;
434
+ this.state = 187;
427
435
  this.errorHandler.sync(this);
428
436
  _la = this.tokenStream.LA(1);
429
437
  do {
430
438
  {
431
- this.state = 182;
439
+ this.state = 187;
432
440
  this.errorHandler.sync(this);
433
441
  switch (this.tokenStream.LA(1)) {
434
442
  case CircuitScriptParser.NEWLINE:
435
443
  {
436
- this.state = 180;
444
+ this.state = 185;
437
445
  this.match(CircuitScriptParser.NEWLINE);
438
446
  }
439
447
  break;
@@ -457,9 +465,10 @@ class CircuitScriptParser extends antlr.Parser {
457
465
  case CircuitScriptParser.Sheet:
458
466
  case CircuitScriptParser.Addition:
459
467
  case CircuitScriptParser.Divide:
468
+ case CircuitScriptParser.ANNOTATION_START:
460
469
  case CircuitScriptParser.ID:
461
470
  {
462
- this.state = 181;
471
+ this.state = 186;
463
472
  this.expression();
464
473
  }
465
474
  break;
@@ -467,11 +476,11 @@ class CircuitScriptParser extends antlr.Parser {
467
476
  throw new antlr.NoViableAltException(this);
468
477
  }
469
478
  }
470
- this.state = 184;
479
+ this.state = 189;
471
480
  this.errorHandler.sync(this);
472
481
  _la = this.tokenStream.LA(1);
473
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
474
- this.state = 186;
482
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
483
+ this.state = 191;
475
484
  this.match(CircuitScriptParser.DEDENT);
476
485
  }
477
486
  }
@@ -496,7 +505,7 @@ class CircuitScriptParser extends antlr.Parser {
496
505
  try {
497
506
  this.enterOuterAlt(localContext, 1);
498
507
  {
499
- this.state = 188;
508
+ this.state = 193;
500
509
  _la = this.tokenStream.LA(1);
501
510
  if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3670528) !== 0))) {
502
511
  this.errorHandler.recoverInline(this);
@@ -505,9 +514,9 @@ class CircuitScriptParser extends antlr.Parser {
505
514
  this.errorHandler.reportMatch(this);
506
515
  this.consume();
507
516
  }
508
- this.state = 189;
517
+ this.state = 194;
509
518
  this.match(CircuitScriptParser.T__0);
510
- this.state = 190;
519
+ this.state = 195;
511
520
  this.expressions_block();
512
521
  }
513
522
  }
@@ -532,32 +541,32 @@ class CircuitScriptParser extends antlr.Parser {
532
541
  try {
533
542
  this.enterOuterAlt(localContext, 1);
534
543
  {
535
- this.state = 192;
544
+ this.state = 197;
536
545
  this.atom_expr();
537
- this.state = 193;
546
+ this.state = 198;
538
547
  this.match(CircuitScriptParser.T__0);
539
- this.state = 194;
548
+ this.state = 199;
540
549
  this.match(CircuitScriptParser.NEWLINE);
541
- this.state = 195;
550
+ this.state = 200;
542
551
  this.match(CircuitScriptParser.INDENT);
543
- this.state = 198;
552
+ this.state = 203;
544
553
  this.errorHandler.sync(this);
545
554
  _la = this.tokenStream.LA(1);
546
555
  do {
547
556
  {
548
- this.state = 198;
557
+ this.state = 203;
549
558
  this.errorHandler.sync(this);
550
559
  switch (this.tokenStream.LA(1)) {
551
560
  case CircuitScriptParser.NEWLINE:
552
561
  {
553
- this.state = 196;
562
+ this.state = 201;
554
563
  this.match(CircuitScriptParser.NEWLINE);
555
564
  }
556
565
  break;
557
566
  case CircuitScriptParser.ID:
558
567
  case CircuitScriptParser.INTEGER_VALUE:
559
568
  {
560
- this.state = 197;
569
+ this.state = 202;
561
570
  this.assignment_expr2();
562
571
  }
563
572
  break;
@@ -565,11 +574,11 @@ class CircuitScriptParser extends antlr.Parser {
565
574
  throw new antlr.NoViableAltException(this);
566
575
  }
567
576
  }
568
- this.state = 200;
577
+ this.state = 205;
569
578
  this.errorHandler.sync(this);
570
579
  _la = this.tokenStream.LA(1);
571
- } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 259) !== 0));
572
- this.state = 202;
580
+ } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 259) !== 0));
581
+ this.state = 207;
573
582
  this.match(CircuitScriptParser.DEDENT);
574
583
  }
575
584
  }
@@ -594,18 +603,18 @@ class CircuitScriptParser extends antlr.Parser {
594
603
  try {
595
604
  this.enterOuterAlt(localContext, 1);
596
605
  {
597
- this.state = 204;
606
+ this.state = 209;
598
607
  _la = this.tokenStream.LA(1);
599
- if (!(_la === 56 || _la === 57)) {
608
+ if (!(_la === 57 || _la === 58)) {
600
609
  this.errorHandler.recoverInline(this);
601
610
  }
602
611
  else {
603
612
  this.errorHandler.reportMatch(this);
604
613
  this.consume();
605
614
  }
606
- this.state = 205;
615
+ this.state = 210;
607
616
  this.match(CircuitScriptParser.T__0);
608
- this.state = 206;
617
+ this.state = 211;
609
618
  this.value_expr();
610
619
  }
611
620
  }
@@ -629,9 +638,9 @@ class CircuitScriptParser extends antlr.Parser {
629
638
  try {
630
639
  this.enterOuterAlt(localContext, 1);
631
640
  {
632
- this.state = 208;
641
+ this.state = 213;
633
642
  this.match(CircuitScriptParser.Pin);
634
- this.state = 209;
643
+ this.state = 214;
635
644
  this.data_expr(0);
636
645
  }
637
646
  }
@@ -655,11 +664,11 @@ class CircuitScriptParser extends antlr.Parser {
655
664
  try {
656
665
  this.enterOuterAlt(localContext, 1);
657
666
  {
658
- this.state = 211;
667
+ this.state = 216;
659
668
  this.match(CircuitScriptParser.ID);
660
- this.state = 212;
669
+ this.state = 217;
661
670
  this.match(CircuitScriptParser.T__0);
662
- this.state = 215;
671
+ this.state = 220;
663
672
  this.errorHandler.sync(this);
664
673
  switch (this.tokenStream.LA(1)) {
665
674
  case CircuitScriptParser.Minus:
@@ -670,13 +679,13 @@ class CircuitScriptParser extends antlr.Parser {
670
679
  case CircuitScriptParser.STRING_VALUE:
671
680
  case CircuitScriptParser.PERCENTAGE_VALUE:
672
681
  {
673
- this.state = 213;
682
+ this.state = 218;
674
683
  this.value_expr();
675
684
  }
676
685
  break;
677
686
  case CircuitScriptParser.ID:
678
687
  {
679
- this.state = 214;
688
+ this.state = 219;
680
689
  this.match(CircuitScriptParser.ID);
681
690
  }
682
691
  break;
@@ -707,44 +716,44 @@ class CircuitScriptParser extends antlr.Parser {
707
716
  let alternative;
708
717
  this.enterOuterAlt(localContext, 1);
709
718
  {
710
- this.state = 219;
719
+ this.state = 224;
711
720
  this.errorHandler.sync(this);
712
721
  switch (this.interpreter.adaptivePredict(this.tokenStream, 13, this.context)) {
713
722
  case 1:
714
723
  {
715
- this.state = 217;
724
+ this.state = 222;
716
725
  this.data_expr(0);
717
726
  }
718
727
  break;
719
728
  case 2:
720
729
  {
721
- this.state = 218;
730
+ this.state = 223;
722
731
  this.assignment_expr();
723
732
  }
724
733
  break;
725
734
  }
726
- this.state = 224;
735
+ this.state = 229;
727
736
  this.errorHandler.sync(this);
728
737
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
729
738
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
730
739
  if (alternative === 1) {
731
740
  {
732
741
  {
733
- this.state = 221;
742
+ this.state = 226;
734
743
  this.component_modifier_expr();
735
744
  }
736
745
  }
737
746
  }
738
- this.state = 226;
747
+ this.state = 231;
739
748
  this.errorHandler.sync(this);
740
749
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 14, this.context);
741
750
  }
742
- this.state = 228;
751
+ this.state = 233;
743
752
  this.errorHandler.sync(this);
744
753
  _la = this.tokenStream.LA(1);
745
754
  if (_la === 15) {
746
755
  {
747
- this.state = 227;
756
+ this.state = 232;
748
757
  this.pin_select_expr();
749
758
  }
750
759
  }
@@ -770,9 +779,9 @@ class CircuitScriptParser extends antlr.Parser {
770
779
  try {
771
780
  this.enterOuterAlt(localContext, 1);
772
781
  {
773
- this.state = 230;
782
+ this.state = 235;
774
783
  this.match(CircuitScriptParser.Add);
775
- this.state = 231;
784
+ this.state = 236;
776
785
  this.data_expr_with_assignment();
777
786
  }
778
787
  }
@@ -794,7 +803,7 @@ class CircuitScriptParser extends antlr.Parser {
794
803
  let localContext = new Component_select_exprContext(this.context, this.state);
795
804
  this.enterRule(localContext, 26, CircuitScriptParser.RULE_component_select_expr);
796
805
  try {
797
- this.state = 236;
806
+ this.state = 241;
798
807
  this.errorHandler.sync(this);
799
808
  switch (this.tokenStream.LA(1)) {
800
809
  case CircuitScriptParser.T__4:
@@ -813,21 +822,21 @@ class CircuitScriptParser extends antlr.Parser {
813
822
  case CircuitScriptParser.PERCENTAGE_VALUE:
814
823
  this.enterOuterAlt(localContext, 1);
815
824
  {
816
- this.state = 233;
825
+ this.state = 238;
817
826
  this.data_expr_with_assignment();
818
827
  }
819
828
  break;
820
829
  case CircuitScriptParser.Pin:
821
830
  this.enterOuterAlt(localContext, 2);
822
831
  {
823
- this.state = 234;
832
+ this.state = 239;
824
833
  this.pin_select_expr();
825
834
  }
826
835
  break;
827
836
  case CircuitScriptParser.Point:
828
837
  this.enterOuterAlt(localContext, 3);
829
838
  {
830
- this.state = 235;
839
+ this.state = 240;
831
840
  this.match(CircuitScriptParser.Point);
832
841
  }
833
842
  break;
@@ -856,9 +865,9 @@ class CircuitScriptParser extends antlr.Parser {
856
865
  try {
857
866
  this.enterOuterAlt(localContext, 1);
858
867
  {
859
- this.state = 238;
868
+ this.state = 243;
860
869
  _la = this.tokenStream.LA(1);
861
- if (!(_la === 57 || _la === 60)) {
870
+ if (!(_la === 58 || _la === 61)) {
862
871
  this.errorHandler.recoverInline(this);
863
872
  }
864
873
  else {
@@ -887,9 +896,9 @@ class CircuitScriptParser extends antlr.Parser {
887
896
  try {
888
897
  this.enterOuterAlt(localContext, 1);
889
898
  {
890
- this.state = 240;
899
+ this.state = 245;
891
900
  this.match(CircuitScriptParser.At);
892
- this.state = 241;
901
+ this.state = 246;
893
902
  this.component_select_expr();
894
903
  }
895
904
  }
@@ -914,24 +923,24 @@ class CircuitScriptParser extends antlr.Parser {
914
923
  try {
915
924
  this.enterOuterAlt(localContext, 1);
916
925
  {
917
- this.state = 243;
926
+ this.state = 248;
918
927
  this.match(CircuitScriptParser.To);
919
928
  {
920
- this.state = 244;
921
- this.component_select_expr();
922
929
  this.state = 249;
930
+ this.component_select_expr();
931
+ this.state = 254;
923
932
  this.errorHandler.sync(this);
924
933
  _la = this.tokenStream.LA(1);
925
934
  while (_la === 2) {
926
935
  {
927
936
  {
928
- this.state = 245;
937
+ this.state = 250;
929
938
  this.match(CircuitScriptParser.T__1);
930
- this.state = 246;
939
+ this.state = 251;
931
940
  this.component_select_expr();
932
941
  }
933
942
  }
934
- this.state = 251;
943
+ this.state = 256;
935
944
  this.errorHandler.sync(this);
936
945
  _la = this.tokenStream.LA(1);
937
946
  }
@@ -959,54 +968,54 @@ class CircuitScriptParser extends antlr.Parser {
959
968
  try {
960
969
  this.enterOuterAlt(localContext, 1);
961
970
  {
962
- this.state = 252;
971
+ this.state = 257;
963
972
  this.match(CircuitScriptParser.At);
964
- this.state = 253;
973
+ this.state = 258;
965
974
  this.component_select_expr();
966
- this.state = 254;
975
+ this.state = 259;
967
976
  this.match(CircuitScriptParser.To);
968
- this.state = 255;
969
- this.component_select_expr();
970
977
  this.state = 260;
978
+ this.component_select_expr();
979
+ this.state = 265;
971
980
  this.errorHandler.sync(this);
972
981
  _la = this.tokenStream.LA(1);
973
982
  while (_la === 2) {
974
983
  {
975
984
  {
976
- this.state = 256;
985
+ this.state = 261;
977
986
  this.match(CircuitScriptParser.T__1);
978
- this.state = 257;
987
+ this.state = 262;
979
988
  this.component_select_expr();
980
989
  }
981
990
  }
982
- this.state = 262;
991
+ this.state = 267;
983
992
  this.errorHandler.sync(this);
984
993
  _la = this.tokenStream.LA(1);
985
994
  }
986
- this.state = 263;
995
+ this.state = 268;
987
996
  this.match(CircuitScriptParser.T__0);
988
- this.state = 264;
997
+ this.state = 269;
989
998
  this.match(CircuitScriptParser.NEWLINE);
990
- this.state = 265;
999
+ this.state = 270;
991
1000
  this.match(CircuitScriptParser.INDENT);
992
- this.state = 268;
1001
+ this.state = 273;
993
1002
  this.errorHandler.sync(this);
994
1003
  _la = this.tokenStream.LA(1);
995
1004
  do {
996
1005
  {
997
- this.state = 268;
1006
+ this.state = 273;
998
1007
  this.errorHandler.sync(this);
999
1008
  switch (this.tokenStream.LA(1)) {
1000
1009
  case CircuitScriptParser.NEWLINE:
1001
1010
  {
1002
- this.state = 266;
1011
+ this.state = 271;
1003
1012
  this.match(CircuitScriptParser.NEWLINE);
1004
1013
  }
1005
1014
  break;
1006
1015
  case CircuitScriptParser.INTEGER_VALUE:
1007
1016
  case CircuitScriptParser.STRING_VALUE:
1008
1017
  {
1009
- this.state = 267;
1018
+ this.state = 272;
1010
1019
  this.at_to_multiple_line_expr();
1011
1020
  }
1012
1021
  break;
@@ -1014,11 +1023,11 @@ class CircuitScriptParser extends antlr.Parser {
1014
1023
  throw new antlr.NoViableAltException(this);
1015
1024
  }
1016
1025
  }
1017
- this.state = 270;
1026
+ this.state = 275;
1018
1027
  this.errorHandler.sync(this);
1019
1028
  _la = this.tokenStream.LA(1);
1020
- } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 137) !== 0));
1021
- this.state = 272;
1029
+ } while (((((_la - 58)) & ~0x1F) === 0 && ((1 << (_la - 58)) & 137) !== 0));
1030
+ this.state = 277;
1022
1031
  this.match(CircuitScriptParser.DEDENT);
1023
1032
  }
1024
1033
  }
@@ -1043,25 +1052,25 @@ class CircuitScriptParser extends antlr.Parser {
1043
1052
  try {
1044
1053
  this.enterOuterAlt(localContext, 1);
1045
1054
  {
1046
- this.state = 274;
1055
+ this.state = 279;
1047
1056
  this.pin_select_expr2();
1048
- this.state = 275;
1057
+ this.state = 280;
1049
1058
  this.match(CircuitScriptParser.T__0);
1050
- this.state = 276;
1051
- this.at_to_multiple_line_expr_to_pin();
1052
1059
  this.state = 281;
1060
+ this.at_to_multiple_line_expr_to_pin();
1061
+ this.state = 286;
1053
1062
  this.errorHandler.sync(this);
1054
1063
  _la = this.tokenStream.LA(1);
1055
1064
  while (_la === 2) {
1056
1065
  {
1057
1066
  {
1058
- this.state = 277;
1067
+ this.state = 282;
1059
1068
  this.match(CircuitScriptParser.T__1);
1060
- this.state = 278;
1069
+ this.state = 283;
1061
1070
  this.at_to_multiple_line_expr_to_pin();
1062
1071
  }
1063
1072
  }
1064
- this.state = 283;
1073
+ this.state = 288;
1065
1074
  this.errorHandler.sync(this);
1066
1075
  _la = this.tokenStream.LA(1);
1067
1076
  }
@@ -1088,9 +1097,9 @@ class CircuitScriptParser extends antlr.Parser {
1088
1097
  try {
1089
1098
  this.enterOuterAlt(localContext, 1);
1090
1099
  {
1091
- this.state = 284;
1100
+ this.state = 289;
1092
1101
  _la = this.tokenStream.LA(1);
1093
- if (!(_la === 54 || _la === 57)) {
1102
+ if (!(_la === 55 || _la === 58)) {
1094
1103
  this.errorHandler.recoverInline(this);
1095
1104
  }
1096
1105
  else {
@@ -1120,25 +1129,23 @@ class CircuitScriptParser extends antlr.Parser {
1120
1129
  try {
1121
1130
  this.enterOuterAlt(localContext, 1);
1122
1131
  {
1123
- this.state = 286;
1124
- this.at_component_expr();
1125
- this.state = 287;
1126
- this.match(CircuitScriptParser.T__0);
1127
- this.state = 288;
1132
+ this.state = 291;
1133
+ this.at_block_header();
1134
+ this.state = 292;
1128
1135
  this.match(CircuitScriptParser.NEWLINE);
1129
- this.state = 289;
1136
+ this.state = 293;
1130
1137
  this.match(CircuitScriptParser.INDENT);
1131
- this.state = 292;
1138
+ this.state = 296;
1132
1139
  this.errorHandler.sync(this);
1133
1140
  _la = this.tokenStream.LA(1);
1134
1141
  do {
1135
1142
  {
1136
- this.state = 292;
1143
+ this.state = 296;
1137
1144
  this.errorHandler.sync(this);
1138
1145
  switch (this.tokenStream.LA(1)) {
1139
1146
  case CircuitScriptParser.NEWLINE:
1140
1147
  {
1141
- this.state = 290;
1148
+ this.state = 294;
1142
1149
  this.match(CircuitScriptParser.NEWLINE);
1143
1150
  }
1144
1151
  break;
@@ -1162,11 +1169,12 @@ class CircuitScriptParser extends antlr.Parser {
1162
1169
  case CircuitScriptParser.Sheet:
1163
1170
  case CircuitScriptParser.Addition:
1164
1171
  case CircuitScriptParser.Divide:
1172
+ case CircuitScriptParser.ANNOTATION_START:
1165
1173
  case CircuitScriptParser.ID:
1166
1174
  case CircuitScriptParser.INTEGER_VALUE:
1167
1175
  case CircuitScriptParser.STRING_VALUE:
1168
1176
  {
1169
- this.state = 291;
1177
+ this.state = 295;
1170
1178
  this.at_block_expressions();
1171
1179
  }
1172
1180
  break;
@@ -1174,11 +1182,11 @@ class CircuitScriptParser extends antlr.Parser {
1174
1182
  throw new antlr.NoViableAltException(this);
1175
1183
  }
1176
1184
  }
1177
- this.state = 294;
1185
+ this.state = 298;
1178
1186
  this.errorHandler.sync(this);
1179
1187
  _la = this.tokenStream.LA(1);
1180
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4505605) !== 0));
1181
- this.state = 296;
1188
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 867955761) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 9012229) !== 0));
1189
+ this.state = 300;
1182
1190
  this.match(CircuitScriptParser.DEDENT);
1183
1191
  }
1184
1192
  }
@@ -1200,7 +1208,7 @@ class CircuitScriptParser extends antlr.Parser {
1200
1208
  let localContext = new At_block_expressionsContext(this.context, this.state);
1201
1209
  this.enterRule(localContext, 42, CircuitScriptParser.RULE_at_block_expressions);
1202
1210
  try {
1203
- this.state = 300;
1211
+ this.state = 304;
1204
1212
  this.errorHandler.sync(this);
1205
1213
  switch (this.tokenStream.LA(1)) {
1206
1214
  case CircuitScriptParser.T__3:
@@ -1223,10 +1231,11 @@ class CircuitScriptParser extends antlr.Parser {
1223
1231
  case CircuitScriptParser.Sheet:
1224
1232
  case CircuitScriptParser.Addition:
1225
1233
  case CircuitScriptParser.Divide:
1234
+ case CircuitScriptParser.ANNOTATION_START:
1226
1235
  case CircuitScriptParser.ID:
1227
1236
  this.enterOuterAlt(localContext, 1);
1228
1237
  {
1229
- this.state = 298;
1238
+ this.state = 302;
1230
1239
  this.expression();
1231
1240
  }
1232
1241
  break;
@@ -1234,7 +1243,7 @@ class CircuitScriptParser extends antlr.Parser {
1234
1243
  case CircuitScriptParser.STRING_VALUE:
1235
1244
  this.enterOuterAlt(localContext, 2);
1236
1245
  {
1237
- this.state = 299;
1246
+ this.state = 303;
1238
1247
  this.at_block_pin_expr();
1239
1248
  }
1240
1249
  break;
@@ -1256,17 +1265,58 @@ class CircuitScriptParser extends antlr.Parser {
1256
1265
  }
1257
1266
  return localContext;
1258
1267
  }
1268
+ at_block_header() {
1269
+ let localContext = new At_block_headerContext(this.context, this.state);
1270
+ this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_header);
1271
+ let _la;
1272
+ try {
1273
+ this.enterOuterAlt(localContext, 1);
1274
+ {
1275
+ this.state = 306;
1276
+ this.at_component_expr();
1277
+ this.state = 307;
1278
+ this.match(CircuitScriptParser.T__0);
1279
+ this.state = 311;
1280
+ this.errorHandler.sync(this);
1281
+ _la = this.tokenStream.LA(1);
1282
+ while (_la === 52) {
1283
+ {
1284
+ {
1285
+ this.state = 308;
1286
+ this.annotation_comment_expr();
1287
+ }
1288
+ }
1289
+ this.state = 313;
1290
+ this.errorHandler.sync(this);
1291
+ _la = this.tokenStream.LA(1);
1292
+ }
1293
+ }
1294
+ }
1295
+ catch (re) {
1296
+ if (re instanceof antlr.RecognitionException) {
1297
+ this.errorHandler.reportError(this, re);
1298
+ this.errorHandler.recover(this, re);
1299
+ }
1300
+ else {
1301
+ throw re;
1302
+ }
1303
+ }
1304
+ finally {
1305
+ this.exitRule();
1306
+ }
1307
+ return localContext;
1308
+ }
1259
1309
  at_block_pin_expr() {
1260
1310
  let localContext = new At_block_pin_exprContext(this.context, this.state);
1261
- this.enterRule(localContext, 44, CircuitScriptParser.RULE_at_block_pin_expr);
1311
+ this.enterRule(localContext, 46, CircuitScriptParser.RULE_at_block_pin_expr);
1262
1312
  try {
1263
1313
  this.enterOuterAlt(localContext, 1);
1264
1314
  {
1265
- this.state = 302;
1315
+ this.state = 314;
1266
1316
  this.pin_select_expr2();
1267
- this.state = 303;
1317
+ this.state = 315;
1268
1318
  this.match(CircuitScriptParser.T__0);
1269
- this.state = 306;
1319
+ this.state = 318;
1270
1320
  this.errorHandler.sync(this);
1271
1321
  switch (this.tokenStream.LA(1)) {
1272
1322
  case CircuitScriptParser.T__3:
@@ -1289,16 +1339,17 @@ class CircuitScriptParser extends antlr.Parser {
1289
1339
  case CircuitScriptParser.Sheet:
1290
1340
  case CircuitScriptParser.Addition:
1291
1341
  case CircuitScriptParser.Divide:
1342
+ case CircuitScriptParser.ANNOTATION_START:
1292
1343
  case CircuitScriptParser.NOT_CONNECTED:
1293
1344
  case CircuitScriptParser.ID:
1294
1345
  {
1295
- this.state = 304;
1346
+ this.state = 316;
1296
1347
  this.at_block_pin_expression_simple();
1297
1348
  }
1298
1349
  break;
1299
1350
  case CircuitScriptParser.NEWLINE:
1300
1351
  {
1301
- this.state = 305;
1352
+ this.state = 317;
1302
1353
  this.at_block_pin_expression_complex();
1303
1354
  }
1304
1355
  break;
@@ -1323,11 +1374,11 @@ class CircuitScriptParser extends antlr.Parser {
1323
1374
  }
1324
1375
  at_block_pin_expression_simple() {
1325
1376
  let localContext = new At_block_pin_expression_simpleContext(this.context, this.state);
1326
- this.enterRule(localContext, 46, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1377
+ this.enterRule(localContext, 48, CircuitScriptParser.RULE_at_block_pin_expression_simple);
1327
1378
  try {
1328
1379
  this.enterOuterAlt(localContext, 1);
1329
1380
  {
1330
- this.state = 310;
1381
+ this.state = 322;
1331
1382
  this.errorHandler.sync(this);
1332
1383
  switch (this.tokenStream.LA(1)) {
1333
1384
  case CircuitScriptParser.T__3:
@@ -1350,15 +1401,16 @@ class CircuitScriptParser extends antlr.Parser {
1350
1401
  case CircuitScriptParser.Sheet:
1351
1402
  case CircuitScriptParser.Addition:
1352
1403
  case CircuitScriptParser.Divide:
1404
+ case CircuitScriptParser.ANNOTATION_START:
1353
1405
  case CircuitScriptParser.ID:
1354
1406
  {
1355
- this.state = 308;
1407
+ this.state = 320;
1356
1408
  this.expression();
1357
1409
  }
1358
1410
  break;
1359
1411
  case CircuitScriptParser.NOT_CONNECTED:
1360
1412
  {
1361
- this.state = 309;
1413
+ this.state = 321;
1362
1414
  this.match(CircuitScriptParser.NOT_CONNECTED);
1363
1415
  }
1364
1416
  break;
@@ -1383,11 +1435,11 @@ class CircuitScriptParser extends antlr.Parser {
1383
1435
  }
1384
1436
  at_block_pin_expression_complex() {
1385
1437
  let localContext = new At_block_pin_expression_complexContext(this.context, this.state);
1386
- this.enterRule(localContext, 48, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1438
+ this.enterRule(localContext, 50, CircuitScriptParser.RULE_at_block_pin_expression_complex);
1387
1439
  try {
1388
1440
  this.enterOuterAlt(localContext, 1);
1389
1441
  {
1390
- this.state = 312;
1442
+ this.state = 324;
1391
1443
  this.expressions_block();
1392
1444
  }
1393
1445
  }
@@ -1407,29 +1459,29 @@ class CircuitScriptParser extends antlr.Parser {
1407
1459
  }
1408
1460
  assignment_expr() {
1409
1461
  let localContext = new Assignment_exprContext(this.context, this.state);
1410
- this.enterRule(localContext, 50, CircuitScriptParser.RULE_assignment_expr);
1462
+ this.enterRule(localContext, 52, CircuitScriptParser.RULE_assignment_expr);
1411
1463
  try {
1412
1464
  this.enterOuterAlt(localContext, 1);
1413
1465
  {
1414
- this.state = 316;
1466
+ this.state = 328;
1415
1467
  this.errorHandler.sync(this);
1416
- switch (this.interpreter.adaptivePredict(this.tokenStream, 27, this.context)) {
1468
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 28, this.context)) {
1417
1469
  case 1:
1418
1470
  {
1419
- this.state = 314;
1471
+ this.state = 326;
1420
1472
  this.atom_expr();
1421
1473
  }
1422
1474
  break;
1423
1475
  case 2:
1424
1476
  {
1425
- this.state = 315;
1477
+ this.state = 327;
1426
1478
  this.function_call_expr();
1427
1479
  }
1428
1480
  break;
1429
1481
  }
1430
- this.state = 318;
1482
+ this.state = 330;
1431
1483
  this.match(CircuitScriptParser.T__2);
1432
- this.state = 319;
1484
+ this.state = 331;
1433
1485
  this.data_expr(0);
1434
1486
  }
1435
1487
  }
@@ -1449,14 +1501,14 @@ class CircuitScriptParser extends antlr.Parser {
1449
1501
  }
1450
1502
  operator_assignment_expr() {
1451
1503
  let localContext = new Operator_assignment_exprContext(this.context, this.state);
1452
- this.enterRule(localContext, 52, CircuitScriptParser.RULE_operator_assignment_expr);
1504
+ this.enterRule(localContext, 54, CircuitScriptParser.RULE_operator_assignment_expr);
1453
1505
  let _la;
1454
1506
  try {
1455
1507
  this.enterOuterAlt(localContext, 1);
1456
1508
  {
1457
- this.state = 321;
1509
+ this.state = 333;
1458
1510
  this.atom_expr();
1459
- this.state = 322;
1511
+ this.state = 334;
1460
1512
  _la = this.tokenStream.LA(1);
1461
1513
  if (!(((((_la - 47)) & ~0x1F) === 0 && ((1 << (_la - 47)) & 31) !== 0))) {
1462
1514
  this.errorHandler.recoverInline(this);
@@ -1465,7 +1517,7 @@ class CircuitScriptParser extends antlr.Parser {
1465
1517
  this.errorHandler.reportMatch(this);
1466
1518
  this.consume();
1467
1519
  }
1468
- this.state = 323;
1520
+ this.state = 335;
1469
1521
  this.data_expr(0);
1470
1522
  }
1471
1523
  }
@@ -1485,15 +1537,15 @@ class CircuitScriptParser extends antlr.Parser {
1485
1537
  }
1486
1538
  keyword_assignment_expr() {
1487
1539
  let localContext = new Keyword_assignment_exprContext(this.context, this.state);
1488
- this.enterRule(localContext, 54, CircuitScriptParser.RULE_keyword_assignment_expr);
1540
+ this.enterRule(localContext, 56, CircuitScriptParser.RULE_keyword_assignment_expr);
1489
1541
  try {
1490
1542
  this.enterOuterAlt(localContext, 1);
1491
1543
  {
1492
- this.state = 325;
1544
+ this.state = 337;
1493
1545
  this.match(CircuitScriptParser.ID);
1494
- this.state = 326;
1546
+ this.state = 338;
1495
1547
  this.match(CircuitScriptParser.T__2);
1496
- this.state = 327;
1548
+ this.state = 339;
1497
1549
  this.data_expr(0);
1498
1550
  }
1499
1551
  }
@@ -1513,50 +1565,50 @@ class CircuitScriptParser extends antlr.Parser {
1513
1565
  }
1514
1566
  parameters() {
1515
1567
  let localContext = new ParametersContext(this.context, this.state);
1516
- this.enterRule(localContext, 56, CircuitScriptParser.RULE_parameters);
1568
+ this.enterRule(localContext, 58, CircuitScriptParser.RULE_parameters);
1517
1569
  let _la;
1518
1570
  try {
1519
1571
  let alternative;
1520
- this.state = 352;
1572
+ this.state = 364;
1521
1573
  this.errorHandler.sync(this);
1522
- switch (this.interpreter.adaptivePredict(this.tokenStream, 31, this.context)) {
1574
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 32, this.context)) {
1523
1575
  case 1:
1524
1576
  this.enterOuterAlt(localContext, 1);
1525
1577
  {
1526
1578
  {
1527
- this.state = 329;
1579
+ this.state = 341;
1528
1580
  this.data_expr(0);
1529
- this.state = 334;
1581
+ this.state = 346;
1530
1582
  this.errorHandler.sync(this);
1531
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1583
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1532
1584
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1533
1585
  if (alternative === 1) {
1534
1586
  {
1535
1587
  {
1536
- this.state = 330;
1588
+ this.state = 342;
1537
1589
  this.match(CircuitScriptParser.T__1);
1538
- this.state = 331;
1590
+ this.state = 343;
1539
1591
  this.data_expr(0);
1540
1592
  }
1541
1593
  }
1542
1594
  }
1543
- this.state = 336;
1595
+ this.state = 348;
1544
1596
  this.errorHandler.sync(this);
1545
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 28, this.context);
1597
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 29, this.context);
1546
1598
  }
1547
- this.state = 341;
1599
+ this.state = 353;
1548
1600
  this.errorHandler.sync(this);
1549
1601
  _la = this.tokenStream.LA(1);
1550
1602
  while (_la === 2) {
1551
1603
  {
1552
1604
  {
1553
- this.state = 337;
1605
+ this.state = 349;
1554
1606
  this.match(CircuitScriptParser.T__1);
1555
- this.state = 338;
1607
+ this.state = 350;
1556
1608
  this.keyword_assignment_expr();
1557
1609
  }
1558
1610
  }
1559
- this.state = 343;
1611
+ this.state = 355;
1560
1612
  this.errorHandler.sync(this);
1561
1613
  _la = this.tokenStream.LA(1);
1562
1614
  }
@@ -1567,21 +1619,21 @@ class CircuitScriptParser extends antlr.Parser {
1567
1619
  this.enterOuterAlt(localContext, 2);
1568
1620
  {
1569
1621
  {
1570
- this.state = 344;
1622
+ this.state = 356;
1571
1623
  this.keyword_assignment_expr();
1572
- this.state = 349;
1624
+ this.state = 361;
1573
1625
  this.errorHandler.sync(this);
1574
1626
  _la = this.tokenStream.LA(1);
1575
1627
  while (_la === 2) {
1576
1628
  {
1577
1629
  {
1578
- this.state = 345;
1630
+ this.state = 357;
1579
1631
  this.match(CircuitScriptParser.T__1);
1580
- this.state = 346;
1632
+ this.state = 358;
1581
1633
  this.keyword_assignment_expr();
1582
1634
  }
1583
1635
  }
1584
- this.state = 351;
1636
+ this.state = 363;
1585
1637
  this.errorHandler.sync(this);
1586
1638
  _la = this.tokenStream.LA(1);
1587
1639
  }
@@ -1606,15 +1658,15 @@ class CircuitScriptParser extends antlr.Parser {
1606
1658
  }
1607
1659
  property_set_expr() {
1608
1660
  let localContext = new Property_set_exprContext(this.context, this.state);
1609
- this.enterRule(localContext, 58, CircuitScriptParser.RULE_property_set_expr);
1661
+ this.enterRule(localContext, 60, CircuitScriptParser.RULE_property_set_expr);
1610
1662
  try {
1611
1663
  this.enterOuterAlt(localContext, 1);
1612
1664
  {
1613
- this.state = 354;
1665
+ this.state = 366;
1614
1666
  this.atom_expr();
1615
- this.state = 355;
1667
+ this.state = 367;
1616
1668
  this.match(CircuitScriptParser.T__2);
1617
- this.state = 356;
1669
+ this.state = 368;
1618
1670
  this.data_expr(0);
1619
1671
  }
1620
1672
  }
@@ -1634,17 +1686,17 @@ class CircuitScriptParser extends antlr.Parser {
1634
1686
  }
1635
1687
  double_dot_property_set_expr() {
1636
1688
  let localContext = new Double_dot_property_set_exprContext(this.context, this.state);
1637
- this.enterRule(localContext, 60, CircuitScriptParser.RULE_double_dot_property_set_expr);
1689
+ this.enterRule(localContext, 62, CircuitScriptParser.RULE_double_dot_property_set_expr);
1638
1690
  try {
1639
1691
  this.enterOuterAlt(localContext, 1);
1640
1692
  {
1641
- this.state = 358;
1693
+ this.state = 370;
1642
1694
  this.match(CircuitScriptParser.T__3);
1643
- this.state = 359;
1695
+ this.state = 371;
1644
1696
  this.match(CircuitScriptParser.ID);
1645
- this.state = 360;
1697
+ this.state = 372;
1646
1698
  this.match(CircuitScriptParser.T__2);
1647
- this.state = 361;
1699
+ this.state = 373;
1648
1700
  this.data_expr(0);
1649
1701
  }
1650
1702
  }
@@ -1670,26 +1722,26 @@ class CircuitScriptParser extends antlr.Parser {
1670
1722
  let parentState = this.state;
1671
1723
  let localContext = new Data_exprContext(this.context, parentState);
1672
1724
  let previousContext = localContext;
1673
- let _startState = 62;
1674
- this.enterRecursionRule(localContext, 62, CircuitScriptParser.RULE_data_expr, _p);
1725
+ let _startState = 64;
1726
+ this.enterRecursionRule(localContext, 64, CircuitScriptParser.RULE_data_expr, _p);
1675
1727
  let _la;
1676
1728
  try {
1677
1729
  let alternative;
1678
1730
  this.enterOuterAlt(localContext, 1);
1679
1731
  {
1680
- this.state = 380;
1732
+ this.state = 392;
1681
1733
  this.errorHandler.sync(this);
1682
- switch (this.interpreter.adaptivePredict(this.tokenStream, 33, this.context)) {
1734
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1683
1735
  case 1:
1684
1736
  {
1685
1737
  localContext = new RoundedBracketsExprContext(localContext);
1686
1738
  this.context = localContext;
1687
1739
  previousContext = localContext;
1688
- this.state = 364;
1740
+ this.state = 376;
1689
1741
  this.match(CircuitScriptParser.OPEN_PAREN);
1690
- this.state = 365;
1742
+ this.state = 377;
1691
1743
  this.data_expr(0);
1692
- this.state = 366;
1744
+ this.state = 378;
1693
1745
  this.match(CircuitScriptParser.CLOSE_PAREN);
1694
1746
  }
1695
1747
  break;
@@ -1698,7 +1750,7 @@ class CircuitScriptParser extends antlr.Parser {
1698
1750
  localContext = new ValueAtomExprContext(localContext);
1699
1751
  this.context = localContext;
1700
1752
  previousContext = localContext;
1701
- this.state = 370;
1753
+ this.state = 382;
1702
1754
  this.errorHandler.sync(this);
1703
1755
  switch (this.tokenStream.LA(1)) {
1704
1756
  case CircuitScriptParser.Minus:
@@ -1709,13 +1761,13 @@ class CircuitScriptParser extends antlr.Parser {
1709
1761
  case CircuitScriptParser.STRING_VALUE:
1710
1762
  case CircuitScriptParser.PERCENTAGE_VALUE:
1711
1763
  {
1712
- this.state = 368;
1764
+ this.state = 380;
1713
1765
  this.value_expr();
1714
1766
  }
1715
1767
  break;
1716
1768
  case CircuitScriptParser.ID:
1717
1769
  {
1718
- this.state = 369;
1770
+ this.state = 381;
1719
1771
  this.atom_expr();
1720
1772
  }
1721
1773
  break;
@@ -1729,9 +1781,9 @@ class CircuitScriptParser extends antlr.Parser {
1729
1781
  localContext = new UnaryOperatorExprContext(localContext);
1730
1782
  this.context = localContext;
1731
1783
  previousContext = localContext;
1732
- this.state = 372;
1784
+ this.state = 384;
1733
1785
  this.unary_operator();
1734
- this.state = 373;
1786
+ this.state = 385;
1735
1787
  this.data_expr(11);
1736
1788
  }
1737
1789
  break;
@@ -1740,7 +1792,7 @@ class CircuitScriptParser extends antlr.Parser {
1740
1792
  localContext = new DataExprContext(localContext);
1741
1793
  this.context = localContext;
1742
1794
  previousContext = localContext;
1743
- this.state = 375;
1795
+ this.state = 387;
1744
1796
  this.create_component_expr();
1745
1797
  }
1746
1798
  break;
@@ -1749,7 +1801,7 @@ class CircuitScriptParser extends antlr.Parser {
1749
1801
  localContext = new DataExprContext(localContext);
1750
1802
  this.context = localContext;
1751
1803
  previousContext = localContext;
1752
- this.state = 376;
1804
+ this.state = 388;
1753
1805
  this.create_graphic_expr();
1754
1806
  }
1755
1807
  break;
@@ -1758,7 +1810,7 @@ class CircuitScriptParser extends antlr.Parser {
1758
1810
  localContext = new DataExprContext(localContext);
1759
1811
  this.context = localContext;
1760
1812
  previousContext = localContext;
1761
- this.state = 377;
1813
+ this.state = 389;
1762
1814
  this.create_module_expr();
1763
1815
  }
1764
1816
  break;
@@ -1767,7 +1819,7 @@ class CircuitScriptParser extends antlr.Parser {
1767
1819
  localContext = new FunctionCallExprContext(localContext);
1768
1820
  this.context = localContext;
1769
1821
  previousContext = localContext;
1770
- this.state = 378;
1822
+ this.state = 390;
1771
1823
  this.function_call_expr();
1772
1824
  }
1773
1825
  break;
@@ -1776,15 +1828,15 @@ class CircuitScriptParser extends antlr.Parser {
1776
1828
  localContext = new ArrayExprContext(localContext);
1777
1829
  this.context = localContext;
1778
1830
  previousContext = localContext;
1779
- this.state = 379;
1831
+ this.state = 391;
1780
1832
  this.array_expr();
1781
1833
  }
1782
1834
  break;
1783
1835
  }
1784
1836
  this.context.stop = this.tokenStream.LT(-1);
1785
- this.state = 402;
1837
+ this.state = 414;
1786
1838
  this.errorHandler.sync(this);
1787
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1839
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1788
1840
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1789
1841
  if (alternative === 1) {
1790
1842
  if (this.parseListeners != null) {
@@ -1792,18 +1844,18 @@ class CircuitScriptParser extends antlr.Parser {
1792
1844
  }
1793
1845
  previousContext = localContext;
1794
1846
  {
1795
- this.state = 400;
1847
+ this.state = 412;
1796
1848
  this.errorHandler.sync(this);
1797
- switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context)) {
1849
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 35, this.context)) {
1798
1850
  case 1:
1799
1851
  {
1800
1852
  localContext = new MultiplyExprContext(new Data_exprContext(parentContext, parentState));
1801
1853
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1802
- this.state = 382;
1854
+ this.state = 394;
1803
1855
  if (!(this.precpred(this.context, 10))) {
1804
1856
  throw this.createFailedPredicateException("this.precpred(this.context, 10)");
1805
1857
  }
1806
- this.state = 383;
1858
+ this.state = 395;
1807
1859
  _la = this.tokenStream.LA(1);
1808
1860
  if (!(((((_la - 44)) & ~0x1F) === 0 && ((1 << (_la - 44)) & 7) !== 0))) {
1809
1861
  this.errorHandler.recoverInline(this);
@@ -1812,7 +1864,7 @@ class CircuitScriptParser extends antlr.Parser {
1812
1864
  this.errorHandler.reportMatch(this);
1813
1865
  this.consume();
1814
1866
  }
1815
- this.state = 384;
1867
+ this.state = 396;
1816
1868
  this.data_expr(11);
1817
1869
  }
1818
1870
  break;
@@ -1820,11 +1872,11 @@ class CircuitScriptParser extends antlr.Parser {
1820
1872
  {
1821
1873
  localContext = new AdditionExprContext(new Data_exprContext(parentContext, parentState));
1822
1874
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1823
- this.state = 385;
1875
+ this.state = 397;
1824
1876
  if (!(this.precpred(this.context, 9))) {
1825
1877
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
1826
1878
  }
1827
- this.state = 386;
1879
+ this.state = 398;
1828
1880
  _la = this.tokenStream.LA(1);
1829
1881
  if (!(_la === 42 || _la === 43)) {
1830
1882
  this.errorHandler.recoverInline(this);
@@ -1833,7 +1885,7 @@ class CircuitScriptParser extends antlr.Parser {
1833
1885
  this.errorHandler.reportMatch(this);
1834
1886
  this.consume();
1835
1887
  }
1836
- this.state = 387;
1888
+ this.state = 399;
1837
1889
  this.data_expr(10);
1838
1890
  }
1839
1891
  break;
@@ -1841,13 +1893,13 @@ class CircuitScriptParser extends antlr.Parser {
1841
1893
  {
1842
1894
  localContext = new BinaryOperatorExprContext(new Data_exprContext(parentContext, parentState));
1843
1895
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1844
- this.state = 388;
1896
+ this.state = 400;
1845
1897
  if (!(this.precpred(this.context, 8))) {
1846
1898
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
1847
1899
  }
1848
- this.state = 389;
1900
+ this.state = 401;
1849
1901
  this.binary_operator();
1850
- this.state = 390;
1902
+ this.state = 402;
1851
1903
  this.data_expr(9);
1852
1904
  }
1853
1905
  break;
@@ -1855,11 +1907,11 @@ class CircuitScriptParser extends antlr.Parser {
1855
1907
  {
1856
1908
  localContext = new LogicalOperatorExprContext(new Data_exprContext(parentContext, parentState));
1857
1909
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1858
- this.state = 392;
1910
+ this.state = 404;
1859
1911
  if (!(this.precpred(this.context, 7))) {
1860
1912
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
1861
1913
  }
1862
- this.state = 393;
1914
+ this.state = 405;
1863
1915
  _la = this.tokenStream.LA(1);
1864
1916
  if (!(_la === 40 || _la === 41)) {
1865
1917
  this.errorHandler.recoverInline(this);
@@ -1868,7 +1920,7 @@ class CircuitScriptParser extends antlr.Parser {
1868
1920
  this.errorHandler.reportMatch(this);
1869
1921
  this.consume();
1870
1922
  }
1871
- this.state = 394;
1923
+ this.state = 406;
1872
1924
  this.data_expr(8);
1873
1925
  }
1874
1926
  break;
@@ -1876,24 +1928,24 @@ class CircuitScriptParser extends antlr.Parser {
1876
1928
  {
1877
1929
  localContext = new ArrayIndexExprContext(new Data_exprContext(parentContext, parentState));
1878
1930
  this.pushNewRecursionContext(localContext, _startState, CircuitScriptParser.RULE_data_expr);
1879
- this.state = 395;
1931
+ this.state = 407;
1880
1932
  if (!(this.precpred(this.context, 1))) {
1881
1933
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
1882
1934
  }
1883
- this.state = 396;
1935
+ this.state = 408;
1884
1936
  this.match(CircuitScriptParser.T__4);
1885
- this.state = 397;
1937
+ this.state = 409;
1886
1938
  this.data_expr(0);
1887
- this.state = 398;
1939
+ this.state = 410;
1888
1940
  this.match(CircuitScriptParser.T__5);
1889
1941
  }
1890
1942
  break;
1891
1943
  }
1892
1944
  }
1893
1945
  }
1894
- this.state = 404;
1946
+ this.state = 416;
1895
1947
  this.errorHandler.sync(this);
1896
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 35, this.context);
1948
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 36, this.context);
1897
1949
  }
1898
1950
  }
1899
1951
  }
@@ -1913,12 +1965,12 @@ class CircuitScriptParser extends antlr.Parser {
1913
1965
  }
1914
1966
  binary_operator() {
1915
1967
  let localContext = new Binary_operatorContext(this.context, this.state);
1916
- this.enterRule(localContext, 64, CircuitScriptParser.RULE_binary_operator);
1968
+ this.enterRule(localContext, 66, CircuitScriptParser.RULE_binary_operator);
1917
1969
  let _la;
1918
1970
  try {
1919
1971
  this.enterOuterAlt(localContext, 1);
1920
1972
  {
1921
- this.state = 405;
1973
+ this.state = 417;
1922
1974
  _la = this.tokenStream.LA(1);
1923
1975
  if (!(((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 63) !== 0))) {
1924
1976
  this.errorHandler.recoverInline(this);
@@ -1945,12 +1997,12 @@ class CircuitScriptParser extends antlr.Parser {
1945
1997
  }
1946
1998
  unary_operator() {
1947
1999
  let localContext = new Unary_operatorContext(this.context, this.state);
1948
- this.enterRule(localContext, 66, CircuitScriptParser.RULE_unary_operator);
2000
+ this.enterRule(localContext, 68, CircuitScriptParser.RULE_unary_operator);
1949
2001
  let _la;
1950
2002
  try {
1951
2003
  this.enterOuterAlt(localContext, 1);
1952
2004
  {
1953
- this.state = 407;
2005
+ this.state = 419;
1954
2006
  _la = this.tokenStream.LA(1);
1955
2007
  if (!(_la === 31 || _la === 43)) {
1956
2008
  this.errorHandler.recoverInline(this);
@@ -1977,24 +2029,24 @@ class CircuitScriptParser extends antlr.Parser {
1977
2029
  }
1978
2030
  value_expr() {
1979
2031
  let localContext = new Value_exprContext(this.context, this.state);
1980
- this.enterRule(localContext, 68, CircuitScriptParser.RULE_value_expr);
2032
+ this.enterRule(localContext, 70, CircuitScriptParser.RULE_value_expr);
1981
2033
  let _la;
1982
2034
  try {
1983
2035
  this.enterOuterAlt(localContext, 1);
1984
2036
  {
1985
2037
  {
1986
- this.state = 410;
2038
+ this.state = 422;
1987
2039
  this.errorHandler.sync(this);
1988
2040
  _la = this.tokenStream.LA(1);
1989
2041
  if (_la === 43) {
1990
2042
  {
1991
- this.state = 409;
2043
+ this.state = 421;
1992
2044
  this.match(CircuitScriptParser.Minus);
1993
2045
  }
1994
2046
  }
1995
- this.state = 412;
2047
+ this.state = 424;
1996
2048
  _la = this.tokenStream.LA(1);
1997
- if (!(((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 125) !== 0))) {
2049
+ if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 125) !== 0))) {
1998
2050
  this.errorHandler.recoverInline(this);
1999
2051
  }
2000
2052
  else {
@@ -2020,45 +2072,45 @@ class CircuitScriptParser extends antlr.Parser {
2020
2072
  }
2021
2073
  function_def_expr() {
2022
2074
  let localContext = new Function_def_exprContext(this.context, this.state);
2023
- this.enterRule(localContext, 70, CircuitScriptParser.RULE_function_def_expr);
2075
+ this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_def_expr);
2024
2076
  let _la;
2025
2077
  try {
2026
2078
  this.enterOuterAlt(localContext, 1);
2027
2079
  {
2028
- this.state = 414;
2080
+ this.state = 426;
2029
2081
  this.match(CircuitScriptParser.Define);
2030
- this.state = 415;
2082
+ this.state = 427;
2031
2083
  this.match(CircuitScriptParser.ID);
2032
- this.state = 416;
2084
+ this.state = 428;
2033
2085
  this.match(CircuitScriptParser.OPEN_PAREN);
2034
- this.state = 418;
2086
+ this.state = 430;
2035
2087
  this.errorHandler.sync(this);
2036
2088
  _la = this.tokenStream.LA(1);
2037
- if (_la === 56) {
2089
+ if (_la === 57) {
2038
2090
  {
2039
- this.state = 417;
2091
+ this.state = 429;
2040
2092
  this.function_args_expr();
2041
2093
  }
2042
2094
  }
2043
- this.state = 420;
2095
+ this.state = 432;
2044
2096
  this.match(CircuitScriptParser.CLOSE_PAREN);
2045
- this.state = 421;
2097
+ this.state = 433;
2046
2098
  this.match(CircuitScriptParser.T__0);
2047
- this.state = 422;
2099
+ this.state = 434;
2048
2100
  this.match(CircuitScriptParser.NEWLINE);
2049
- this.state = 423;
2101
+ this.state = 435;
2050
2102
  this.match(CircuitScriptParser.INDENT);
2051
- this.state = 426;
2103
+ this.state = 438;
2052
2104
  this.errorHandler.sync(this);
2053
2105
  _la = this.tokenStream.LA(1);
2054
2106
  do {
2055
2107
  {
2056
- this.state = 426;
2108
+ this.state = 438;
2057
2109
  this.errorHandler.sync(this);
2058
2110
  switch (this.tokenStream.LA(1)) {
2059
2111
  case CircuitScriptParser.NEWLINE:
2060
2112
  {
2061
- this.state = 424;
2113
+ this.state = 436;
2062
2114
  this.match(CircuitScriptParser.NEWLINE);
2063
2115
  }
2064
2116
  break;
@@ -2083,9 +2135,10 @@ class CircuitScriptParser extends antlr.Parser {
2083
2135
  case CircuitScriptParser.Sheet:
2084
2136
  case CircuitScriptParser.Addition:
2085
2137
  case CircuitScriptParser.Divide:
2138
+ case CircuitScriptParser.ANNOTATION_START:
2086
2139
  case CircuitScriptParser.ID:
2087
2140
  {
2088
- this.state = 425;
2141
+ this.state = 437;
2089
2142
  this.function_expr();
2090
2143
  }
2091
2144
  break;
@@ -2093,11 +2146,11 @@ class CircuitScriptParser extends antlr.Parser {
2093
2146
  throw new antlr.NoViableAltException(this);
2094
2147
  }
2095
2148
  }
2096
- this.state = 428;
2149
+ this.state = 440;
2097
2150
  this.errorHandler.sync(this);
2098
2151
  _la = this.tokenStream.LA(1);
2099
- } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 4210693) !== 0));
2100
- this.state = 430;
2152
+ } while (((((_la - 4)) & ~0x1F) === 0 && ((1 << (_la - 4)) & 868217905) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 8422405) !== 0));
2153
+ this.state = 442;
2101
2154
  this.match(CircuitScriptParser.DEDENT);
2102
2155
  }
2103
2156
  }
@@ -2117,9 +2170,9 @@ class CircuitScriptParser extends antlr.Parser {
2117
2170
  }
2118
2171
  function_expr() {
2119
2172
  let localContext = new Function_exprContext(this.context, this.state);
2120
- this.enterRule(localContext, 72, CircuitScriptParser.RULE_function_expr);
2173
+ this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_expr);
2121
2174
  try {
2122
- this.state = 434;
2175
+ this.state = 446;
2123
2176
  this.errorHandler.sync(this);
2124
2177
  switch (this.tokenStream.LA(1)) {
2125
2178
  case CircuitScriptParser.T__3:
@@ -2142,17 +2195,18 @@ class CircuitScriptParser extends antlr.Parser {
2142
2195
  case CircuitScriptParser.Sheet:
2143
2196
  case CircuitScriptParser.Addition:
2144
2197
  case CircuitScriptParser.Divide:
2198
+ case CircuitScriptParser.ANNOTATION_START:
2145
2199
  case CircuitScriptParser.ID:
2146
2200
  this.enterOuterAlt(localContext, 1);
2147
2201
  {
2148
- this.state = 432;
2202
+ this.state = 444;
2149
2203
  this.expression();
2150
2204
  }
2151
2205
  break;
2152
2206
  case CircuitScriptParser.Return:
2153
2207
  this.enterOuterAlt(localContext, 2);
2154
2208
  {
2155
- this.state = 433;
2209
+ this.state = 445;
2156
2210
  this.function_return_expr();
2157
2211
  }
2158
2212
  break;
@@ -2176,53 +2230,53 @@ class CircuitScriptParser extends antlr.Parser {
2176
2230
  }
2177
2231
  function_args_expr() {
2178
2232
  let localContext = new Function_args_exprContext(this.context, this.state);
2179
- this.enterRule(localContext, 74, CircuitScriptParser.RULE_function_args_expr);
2233
+ this.enterRule(localContext, 76, CircuitScriptParser.RULE_function_args_expr);
2180
2234
  let _la;
2181
2235
  try {
2182
2236
  let alternative;
2183
- this.state = 465;
2237
+ this.state = 477;
2184
2238
  this.errorHandler.sync(this);
2185
- switch (this.interpreter.adaptivePredict(this.tokenStream, 44, this.context)) {
2239
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context)) {
2186
2240
  case 1:
2187
2241
  this.enterOuterAlt(localContext, 1);
2188
2242
  {
2189
- this.state = 436;
2243
+ this.state = 448;
2190
2244
  this.match(CircuitScriptParser.ID);
2191
- this.state = 441;
2245
+ this.state = 453;
2192
2246
  this.errorHandler.sync(this);
2193
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2247
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2194
2248
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2195
2249
  if (alternative === 1) {
2196
2250
  {
2197
2251
  {
2198
- this.state = 437;
2252
+ this.state = 449;
2199
2253
  this.match(CircuitScriptParser.T__1);
2200
- this.state = 438;
2254
+ this.state = 450;
2201
2255
  this.match(CircuitScriptParser.ID);
2202
2256
  }
2203
2257
  }
2204
2258
  }
2205
- this.state = 443;
2259
+ this.state = 455;
2206
2260
  this.errorHandler.sync(this);
2207
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 41, this.context);
2261
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 42, this.context);
2208
2262
  }
2209
- this.state = 450;
2263
+ this.state = 462;
2210
2264
  this.errorHandler.sync(this);
2211
2265
  _la = this.tokenStream.LA(1);
2212
2266
  while (_la === 2) {
2213
2267
  {
2214
2268
  {
2215
- this.state = 444;
2269
+ this.state = 456;
2216
2270
  this.match(CircuitScriptParser.T__1);
2217
- this.state = 445;
2271
+ this.state = 457;
2218
2272
  this.match(CircuitScriptParser.ID);
2219
- this.state = 446;
2273
+ this.state = 458;
2220
2274
  this.match(CircuitScriptParser.T__2);
2221
- this.state = 447;
2275
+ this.state = 459;
2222
2276
  this.value_expr();
2223
2277
  }
2224
2278
  }
2225
- this.state = 452;
2279
+ this.state = 464;
2226
2280
  this.errorHandler.sync(this);
2227
2281
  _la = this.tokenStream.LA(1);
2228
2282
  }
@@ -2231,29 +2285,29 @@ class CircuitScriptParser extends antlr.Parser {
2231
2285
  case 2:
2232
2286
  this.enterOuterAlt(localContext, 2);
2233
2287
  {
2234
- this.state = 453;
2288
+ this.state = 465;
2235
2289
  this.match(CircuitScriptParser.ID);
2236
- this.state = 454;
2290
+ this.state = 466;
2237
2291
  this.match(CircuitScriptParser.T__2);
2238
- this.state = 455;
2292
+ this.state = 467;
2239
2293
  this.value_expr();
2240
- this.state = 462;
2294
+ this.state = 474;
2241
2295
  this.errorHandler.sync(this);
2242
2296
  _la = this.tokenStream.LA(1);
2243
2297
  while (_la === 2) {
2244
2298
  {
2245
2299
  {
2246
- this.state = 456;
2300
+ this.state = 468;
2247
2301
  this.match(CircuitScriptParser.T__1);
2248
- this.state = 457;
2302
+ this.state = 469;
2249
2303
  this.match(CircuitScriptParser.ID);
2250
- this.state = 458;
2304
+ this.state = 470;
2251
2305
  this.match(CircuitScriptParser.T__2);
2252
- this.state = 459;
2306
+ this.state = 471;
2253
2307
  this.value_expr();
2254
2308
  }
2255
2309
  }
2256
- this.state = 464;
2310
+ this.state = 476;
2257
2311
  this.errorHandler.sync(this);
2258
2312
  _la = this.tokenStream.LA(1);
2259
2313
  }
@@ -2277,28 +2331,28 @@ class CircuitScriptParser extends antlr.Parser {
2277
2331
  }
2278
2332
  atom_expr() {
2279
2333
  let localContext = new Atom_exprContext(this.context, this.state);
2280
- this.enterRule(localContext, 76, CircuitScriptParser.RULE_atom_expr);
2334
+ this.enterRule(localContext, 78, CircuitScriptParser.RULE_atom_expr);
2281
2335
  try {
2282
2336
  let alternative;
2283
2337
  this.enterOuterAlt(localContext, 1);
2284
2338
  {
2285
- this.state = 467;
2339
+ this.state = 479;
2286
2340
  this.match(CircuitScriptParser.ID);
2287
- this.state = 471;
2341
+ this.state = 483;
2288
2342
  this.errorHandler.sync(this);
2289
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2343
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2290
2344
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2291
2345
  if (alternative === 1) {
2292
2346
  {
2293
2347
  {
2294
- this.state = 468;
2348
+ this.state = 480;
2295
2349
  this.trailer_expr2();
2296
2350
  }
2297
2351
  }
2298
2352
  }
2299
- this.state = 473;
2353
+ this.state = 485;
2300
2354
  this.errorHandler.sync(this);
2301
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 45, this.context);
2355
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 46, this.context);
2302
2356
  }
2303
2357
  }
2304
2358
  }
@@ -2318,27 +2372,27 @@ class CircuitScriptParser extends antlr.Parser {
2318
2372
  }
2319
2373
  trailer_expr() {
2320
2374
  let localContext = new Trailer_exprContext(this.context, this.state);
2321
- this.enterRule(localContext, 78, CircuitScriptParser.RULE_trailer_expr);
2375
+ this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr);
2322
2376
  let _la;
2323
2377
  try {
2324
- this.state = 480;
2378
+ this.state = 492;
2325
2379
  this.errorHandler.sync(this);
2326
2380
  switch (this.tokenStream.LA(1)) {
2327
2381
  case CircuitScriptParser.OPEN_PAREN:
2328
2382
  this.enterOuterAlt(localContext, 1);
2329
2383
  {
2330
- this.state = 474;
2384
+ this.state = 486;
2331
2385
  this.match(CircuitScriptParser.OPEN_PAREN);
2332
- this.state = 476;
2386
+ this.state = 488;
2333
2387
  this.errorHandler.sync(this);
2334
2388
  _la = this.tokenStream.LA(1);
2335
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
2389
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2082823) !== 0)) {
2336
2390
  {
2337
- this.state = 475;
2391
+ this.state = 487;
2338
2392
  this.parameters();
2339
2393
  }
2340
2394
  }
2341
- this.state = 478;
2395
+ this.state = 490;
2342
2396
  this.match(CircuitScriptParser.CLOSE_PAREN);
2343
2397
  }
2344
2398
  break;
@@ -2346,7 +2400,7 @@ class CircuitScriptParser extends antlr.Parser {
2346
2400
  case CircuitScriptParser.T__6:
2347
2401
  this.enterOuterAlt(localContext, 2);
2348
2402
  {
2349
- this.state = 479;
2403
+ this.state = 491;
2350
2404
  this.trailer_expr2();
2351
2405
  }
2352
2406
  break;
@@ -2370,28 +2424,28 @@ class CircuitScriptParser extends antlr.Parser {
2370
2424
  }
2371
2425
  trailer_expr2() {
2372
2426
  let localContext = new Trailer_expr2Context(this.context, this.state);
2373
- this.enterRule(localContext, 80, CircuitScriptParser.RULE_trailer_expr2);
2427
+ this.enterRule(localContext, 82, CircuitScriptParser.RULE_trailer_expr2);
2374
2428
  try {
2375
- this.state = 488;
2429
+ this.state = 500;
2376
2430
  this.errorHandler.sync(this);
2377
2431
  switch (this.tokenStream.LA(1)) {
2378
2432
  case CircuitScriptParser.T__6:
2379
2433
  this.enterOuterAlt(localContext, 1);
2380
2434
  {
2381
- this.state = 482;
2435
+ this.state = 494;
2382
2436
  this.match(CircuitScriptParser.T__6);
2383
- this.state = 483;
2437
+ this.state = 495;
2384
2438
  this.match(CircuitScriptParser.ID);
2385
2439
  }
2386
2440
  break;
2387
2441
  case CircuitScriptParser.T__4:
2388
2442
  this.enterOuterAlt(localContext, 2);
2389
2443
  {
2390
- this.state = 484;
2444
+ this.state = 496;
2391
2445
  this.match(CircuitScriptParser.T__4);
2392
- this.state = 485;
2446
+ this.state = 497;
2393
2447
  this.data_expr(0);
2394
- this.state = 486;
2448
+ this.state = 498;
2395
2449
  this.match(CircuitScriptParser.T__5);
2396
2450
  }
2397
2451
  break;
@@ -2415,24 +2469,24 @@ class CircuitScriptParser extends antlr.Parser {
2415
2469
  }
2416
2470
  function_call_expr() {
2417
2471
  let localContext = new Function_call_exprContext(this.context, this.state);
2418
- this.enterRule(localContext, 82, CircuitScriptParser.RULE_function_call_expr);
2472
+ this.enterRule(localContext, 84, CircuitScriptParser.RULE_function_call_expr);
2419
2473
  let _la;
2420
2474
  try {
2421
2475
  let alternative;
2422
2476
  this.enterOuterAlt(localContext, 1);
2423
2477
  {
2424
- this.state = 491;
2478
+ this.state = 503;
2425
2479
  this.errorHandler.sync(this);
2426
2480
  _la = this.tokenStream.LA(1);
2427
2481
  if (_la === 42 || _la === 44) {
2428
2482
  {
2429
- this.state = 490;
2483
+ this.state = 502;
2430
2484
  this.net_namespace_expr();
2431
2485
  }
2432
2486
  }
2433
- this.state = 493;
2487
+ this.state = 505;
2434
2488
  this.match(CircuitScriptParser.ID);
2435
- this.state = 495;
2489
+ this.state = 507;
2436
2490
  this.errorHandler.sync(this);
2437
2491
  alternative = 1;
2438
2492
  do {
@@ -2440,7 +2494,7 @@ class CircuitScriptParser extends antlr.Parser {
2440
2494
  case 1:
2441
2495
  {
2442
2496
  {
2443
- this.state = 494;
2497
+ this.state = 506;
2444
2498
  this.trailer_expr();
2445
2499
  }
2446
2500
  }
@@ -2448,9 +2502,9 @@ class CircuitScriptParser extends antlr.Parser {
2448
2502
  default:
2449
2503
  throw new antlr.NoViableAltException(this);
2450
2504
  }
2451
- this.state = 497;
2505
+ this.state = 509;
2452
2506
  this.errorHandler.sync(this);
2453
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 50, this.context);
2507
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 51, this.context);
2454
2508
  } while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER);
2455
2509
  }
2456
2510
  }
@@ -2470,28 +2524,28 @@ class CircuitScriptParser extends antlr.Parser {
2470
2524
  }
2471
2525
  net_namespace_expr() {
2472
2526
  let localContext = new Net_namespace_exprContext(this.context, this.state);
2473
- this.enterRule(localContext, 84, CircuitScriptParser.RULE_net_namespace_expr);
2527
+ this.enterRule(localContext, 86, CircuitScriptParser.RULE_net_namespace_expr);
2474
2528
  let _la;
2475
2529
  try {
2476
2530
  this.enterOuterAlt(localContext, 1);
2477
2531
  {
2478
- this.state = 500;
2532
+ this.state = 512;
2479
2533
  this.errorHandler.sync(this);
2480
2534
  _la = this.tokenStream.LA(1);
2481
2535
  if (_la === 42) {
2482
2536
  {
2483
- this.state = 499;
2537
+ this.state = 511;
2484
2538
  this.match(CircuitScriptParser.Addition);
2485
2539
  }
2486
2540
  }
2487
- this.state = 502;
2541
+ this.state = 514;
2488
2542
  this.match(CircuitScriptParser.Divide);
2489
- this.state = 504;
2543
+ this.state = 516;
2490
2544
  this.errorHandler.sync(this);
2491
- switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context)) {
2545
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 53, this.context)) {
2492
2546
  case 1:
2493
2547
  {
2494
- this.state = 503;
2548
+ this.state = 515;
2495
2549
  this.data_expr(0);
2496
2550
  }
2497
2551
  break;
@@ -2514,13 +2568,13 @@ class CircuitScriptParser extends antlr.Parser {
2514
2568
  }
2515
2569
  function_return_expr() {
2516
2570
  let localContext = new Function_return_exprContext(this.context, this.state);
2517
- this.enterRule(localContext, 86, CircuitScriptParser.RULE_function_return_expr);
2571
+ this.enterRule(localContext, 88, CircuitScriptParser.RULE_function_return_expr);
2518
2572
  try {
2519
2573
  this.enterOuterAlt(localContext, 1);
2520
2574
  {
2521
- this.state = 506;
2575
+ this.state = 518;
2522
2576
  this.match(CircuitScriptParser.Return);
2523
- this.state = 507;
2577
+ this.state = 519;
2524
2578
  this.data_expr(0);
2525
2579
  }
2526
2580
  }
@@ -2540,15 +2594,15 @@ class CircuitScriptParser extends antlr.Parser {
2540
2594
  }
2541
2595
  property_block_expr() {
2542
2596
  let localContext = new Property_block_exprContext(this.context, this.state);
2543
- this.enterRule(localContext, 88, CircuitScriptParser.RULE_property_block_expr);
2597
+ this.enterRule(localContext, 90, CircuitScriptParser.RULE_property_block_expr);
2544
2598
  try {
2545
2599
  this.enterOuterAlt(localContext, 1);
2546
2600
  {
2547
- this.state = 509;
2601
+ this.state = 521;
2548
2602
  this.property_key_expr();
2549
- this.state = 510;
2603
+ this.state = 522;
2550
2604
  this.match(CircuitScriptParser.T__0);
2551
- this.state = 511;
2605
+ this.state = 523;
2552
2606
  this.expressions_block();
2553
2607
  }
2554
2608
  }
@@ -2568,32 +2622,32 @@ class CircuitScriptParser extends antlr.Parser {
2568
2622
  }
2569
2623
  create_component_expr() {
2570
2624
  let localContext = new Create_component_exprContext(this.context, this.state);
2571
- this.enterRule(localContext, 90, CircuitScriptParser.RULE_create_component_expr);
2625
+ this.enterRule(localContext, 92, CircuitScriptParser.RULE_create_component_expr);
2572
2626
  let _la;
2573
2627
  try {
2574
2628
  this.enterOuterAlt(localContext, 1);
2575
2629
  {
2576
- this.state = 513;
2630
+ this.state = 525;
2577
2631
  this.match(CircuitScriptParser.Create);
2578
- this.state = 514;
2632
+ this.state = 526;
2579
2633
  this.match(CircuitScriptParser.Component);
2580
- this.state = 515;
2634
+ this.state = 527;
2581
2635
  this.match(CircuitScriptParser.T__0);
2582
- this.state = 516;
2636
+ this.state = 528;
2583
2637
  this.match(CircuitScriptParser.NEWLINE);
2584
- this.state = 517;
2638
+ this.state = 529;
2585
2639
  this.match(CircuitScriptParser.INDENT);
2586
- this.state = 520;
2640
+ this.state = 532;
2587
2641
  this.errorHandler.sync(this);
2588
2642
  _la = this.tokenStream.LA(1);
2589
2643
  do {
2590
2644
  {
2591
- this.state = 520;
2645
+ this.state = 532;
2592
2646
  this.errorHandler.sync(this);
2593
2647
  switch (this.tokenStream.LA(1)) {
2594
2648
  case CircuitScriptParser.NEWLINE:
2595
2649
  {
2596
- this.state = 518;
2650
+ this.state = 530;
2597
2651
  this.match(CircuitScriptParser.NEWLINE);
2598
2652
  }
2599
2653
  break;
@@ -2601,7 +2655,7 @@ class CircuitScriptParser extends antlr.Parser {
2601
2655
  case CircuitScriptParser.INTEGER_VALUE:
2602
2656
  case CircuitScriptParser.STRING_VALUE:
2603
2657
  {
2604
- this.state = 519;
2658
+ this.state = 531;
2605
2659
  this.property_expr();
2606
2660
  }
2607
2661
  break;
@@ -2609,11 +2663,11 @@ class CircuitScriptParser extends antlr.Parser {
2609
2663
  throw new antlr.NoViableAltException(this);
2610
2664
  }
2611
2665
  }
2612
- this.state = 522;
2666
+ this.state = 534;
2613
2667
  this.errorHandler.sync(this);
2614
2668
  _la = this.tokenStream.LA(1);
2615
- } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2616
- this.state = 524;
2669
+ } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2670
+ this.state = 536;
2617
2671
  this.match(CircuitScriptParser.DEDENT);
2618
2672
  }
2619
2673
  }
@@ -2633,26 +2687,26 @@ class CircuitScriptParser extends antlr.Parser {
2633
2687
  }
2634
2688
  graphic_expressions_block() {
2635
2689
  let localContext = new Graphic_expressions_blockContext(this.context, this.state);
2636
- this.enterRule(localContext, 92, CircuitScriptParser.RULE_graphic_expressions_block);
2690
+ this.enterRule(localContext, 94, CircuitScriptParser.RULE_graphic_expressions_block);
2637
2691
  let _la;
2638
2692
  try {
2639
2693
  this.enterOuterAlt(localContext, 1);
2640
2694
  {
2641
- this.state = 526;
2695
+ this.state = 538;
2642
2696
  this.match(CircuitScriptParser.NEWLINE);
2643
- this.state = 527;
2697
+ this.state = 539;
2644
2698
  this.match(CircuitScriptParser.INDENT);
2645
- this.state = 530;
2699
+ this.state = 542;
2646
2700
  this.errorHandler.sync(this);
2647
2701
  _la = this.tokenStream.LA(1);
2648
2702
  do {
2649
2703
  {
2650
- this.state = 530;
2704
+ this.state = 542;
2651
2705
  this.errorHandler.sync(this);
2652
2706
  switch (this.tokenStream.LA(1)) {
2653
2707
  case CircuitScriptParser.NEWLINE:
2654
2708
  {
2655
- this.state = 528;
2709
+ this.state = 540;
2656
2710
  this.match(CircuitScriptParser.NEWLINE);
2657
2711
  }
2658
2712
  break;
@@ -2660,7 +2714,7 @@ class CircuitScriptParser extends antlr.Parser {
2660
2714
  case CircuitScriptParser.For:
2661
2715
  case CircuitScriptParser.ID:
2662
2716
  {
2663
- this.state = 529;
2717
+ this.state = 541;
2664
2718
  this.graphic_expr();
2665
2719
  }
2666
2720
  break;
@@ -2668,11 +2722,11 @@ class CircuitScriptParser extends antlr.Parser {
2668
2722
  throw new antlr.NoViableAltException(this);
2669
2723
  }
2670
2724
  }
2671
- this.state = 532;
2725
+ this.state = 544;
2672
2726
  this.errorHandler.sync(this);
2673
2727
  _la = this.tokenStream.LA(1);
2674
- } while (_la === 15 || _la === 25 || _la === 56 || _la === 64);
2675
- this.state = 534;
2728
+ } while (_la === 15 || _la === 25 || _la === 57 || _la === 65);
2729
+ this.state = 546;
2676
2730
  this.match(CircuitScriptParser.DEDENT);
2677
2731
  }
2678
2732
  }
@@ -2692,31 +2746,31 @@ class CircuitScriptParser extends antlr.Parser {
2692
2746
  }
2693
2747
  create_graphic_expr() {
2694
2748
  let localContext = new Create_graphic_exprContext(this.context, this.state);
2695
- this.enterRule(localContext, 94, CircuitScriptParser.RULE_create_graphic_expr);
2749
+ this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_graphic_expr);
2696
2750
  let _la;
2697
2751
  try {
2698
2752
  this.enterOuterAlt(localContext, 1);
2699
2753
  {
2700
- this.state = 536;
2754
+ this.state = 548;
2701
2755
  this.match(CircuitScriptParser.Create);
2702
- this.state = 537;
2756
+ this.state = 549;
2703
2757
  this.match(CircuitScriptParser.Graphic);
2704
- this.state = 541;
2758
+ this.state = 553;
2705
2759
  this.errorHandler.sync(this);
2706
2760
  _la = this.tokenStream.LA(1);
2707
- if (_la === 52) {
2761
+ if (_la === 53) {
2708
2762
  {
2709
- this.state = 538;
2763
+ this.state = 550;
2710
2764
  this.match(CircuitScriptParser.OPEN_PAREN);
2711
- this.state = 539;
2765
+ this.state = 551;
2712
2766
  this.match(CircuitScriptParser.ID);
2713
- this.state = 540;
2767
+ this.state = 552;
2714
2768
  this.match(CircuitScriptParser.CLOSE_PAREN);
2715
2769
  }
2716
2770
  }
2717
- this.state = 543;
2771
+ this.state = 555;
2718
2772
  this.match(CircuitScriptParser.T__0);
2719
- this.state = 544;
2773
+ this.state = 556;
2720
2774
  this.graphic_expressions_block();
2721
2775
  }
2722
2776
  }
@@ -2736,54 +2790,54 @@ class CircuitScriptParser extends antlr.Parser {
2736
2790
  }
2737
2791
  create_module_expr() {
2738
2792
  let localContext = new Create_module_exprContext(this.context, this.state);
2739
- this.enterRule(localContext, 96, CircuitScriptParser.RULE_create_module_expr);
2793
+ this.enterRule(localContext, 98, CircuitScriptParser.RULE_create_module_expr);
2740
2794
  let _la;
2741
2795
  try {
2742
2796
  this.enterOuterAlt(localContext, 1);
2743
2797
  {
2744
- this.state = 546;
2798
+ this.state = 558;
2745
2799
  this.match(CircuitScriptParser.Create);
2746
- this.state = 547;
2800
+ this.state = 559;
2747
2801
  this.match(CircuitScriptParser.Module);
2748
- this.state = 548;
2802
+ this.state = 560;
2749
2803
  this.match(CircuitScriptParser.T__0);
2750
- this.state = 549;
2804
+ this.state = 561;
2751
2805
  this.match(CircuitScriptParser.NEWLINE);
2752
- this.state = 550;
2806
+ this.state = 562;
2753
2807
  this.match(CircuitScriptParser.INDENT);
2754
- this.state = 554;
2808
+ this.state = 566;
2755
2809
  this.errorHandler.sync(this);
2756
2810
  _la = this.tokenStream.LA(1);
2757
2811
  do {
2758
2812
  {
2759
- this.state = 554;
2813
+ this.state = 566;
2760
2814
  this.errorHandler.sync(this);
2761
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context)) {
2815
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context)) {
2762
2816
  case 1:
2763
2817
  {
2764
- this.state = 551;
2818
+ this.state = 563;
2765
2819
  this.match(CircuitScriptParser.NEWLINE);
2766
2820
  }
2767
2821
  break;
2768
2822
  case 2:
2769
2823
  {
2770
- this.state = 552;
2824
+ this.state = 564;
2771
2825
  this.property_expr();
2772
2826
  }
2773
2827
  break;
2774
2828
  case 3:
2775
2829
  {
2776
- this.state = 553;
2830
+ this.state = 565;
2777
2831
  this.property_block_expr();
2778
2832
  }
2779
2833
  break;
2780
2834
  }
2781
2835
  }
2782
- this.state = 556;
2836
+ this.state = 568;
2783
2837
  this.errorHandler.sync(this);
2784
2838
  _la = this.tokenStream.LA(1);
2785
- } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2786
- this.state = 558;
2839
+ } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2840
+ this.state = 570;
2787
2841
  this.match(CircuitScriptParser.DEDENT);
2788
2842
  }
2789
2843
  }
@@ -2803,27 +2857,27 @@ class CircuitScriptParser extends antlr.Parser {
2803
2857
  }
2804
2858
  nested_properties_inner() {
2805
2859
  let localContext = new Nested_properties_innerContext(this.context, this.state);
2806
- this.enterRule(localContext, 98, CircuitScriptParser.RULE_nested_properties_inner);
2860
+ this.enterRule(localContext, 100, CircuitScriptParser.RULE_nested_properties_inner);
2807
2861
  let _la;
2808
2862
  try {
2809
2863
  this.enterOuterAlt(localContext, 1);
2810
2864
  {
2811
2865
  {
2812
- this.state = 560;
2866
+ this.state = 572;
2813
2867
  this.match(CircuitScriptParser.NEWLINE);
2814
- this.state = 561;
2868
+ this.state = 573;
2815
2869
  this.match(CircuitScriptParser.INDENT);
2816
- this.state = 564;
2870
+ this.state = 576;
2817
2871
  this.errorHandler.sync(this);
2818
2872
  _la = this.tokenStream.LA(1);
2819
2873
  do {
2820
2874
  {
2821
- this.state = 564;
2875
+ this.state = 576;
2822
2876
  this.errorHandler.sync(this);
2823
2877
  switch (this.tokenStream.LA(1)) {
2824
2878
  case CircuitScriptParser.NEWLINE:
2825
2879
  {
2826
- this.state = 562;
2880
+ this.state = 574;
2827
2881
  this.match(CircuitScriptParser.NEWLINE);
2828
2882
  }
2829
2883
  break;
@@ -2831,7 +2885,7 @@ class CircuitScriptParser extends antlr.Parser {
2831
2885
  case CircuitScriptParser.INTEGER_VALUE:
2832
2886
  case CircuitScriptParser.STRING_VALUE:
2833
2887
  {
2834
- this.state = 563;
2888
+ this.state = 575;
2835
2889
  this.property_expr();
2836
2890
  }
2837
2891
  break;
@@ -2839,11 +2893,11 @@ class CircuitScriptParser extends antlr.Parser {
2839
2893
  throw new antlr.NoViableAltException(this);
2840
2894
  }
2841
2895
  }
2842
- this.state = 566;
2896
+ this.state = 578;
2843
2897
  this.errorHandler.sync(this);
2844
2898
  _la = this.tokenStream.LA(1);
2845
- } while (((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 275) !== 0));
2846
- this.state = 568;
2899
+ } while (((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 275) !== 0));
2900
+ this.state = 580;
2847
2901
  this.match(CircuitScriptParser.DEDENT);
2848
2902
  }
2849
2903
  }
@@ -2864,10 +2918,10 @@ class CircuitScriptParser extends antlr.Parser {
2864
2918
  }
2865
2919
  graphic_expr() {
2866
2920
  let localContext = new Graphic_exprContext(this.context, this.state);
2867
- this.enterRule(localContext, 100, CircuitScriptParser.RULE_graphic_expr);
2921
+ this.enterRule(localContext, 102, CircuitScriptParser.RULE_graphic_expr);
2868
2922
  let _la;
2869
2923
  try {
2870
- this.state = 596;
2924
+ this.state = 608;
2871
2925
  this.errorHandler.sync(this);
2872
2926
  switch (this.tokenStream.LA(1)) {
2873
2927
  case CircuitScriptParser.Pin:
@@ -2875,47 +2929,47 @@ class CircuitScriptParser extends antlr.Parser {
2875
2929
  localContext = new GraphicCommandExprContext(localContext);
2876
2930
  this.enterOuterAlt(localContext, 1);
2877
2931
  {
2878
- this.state = 570;
2932
+ this.state = 582;
2879
2933
  localContext._command = this.tokenStream.LT(1);
2880
2934
  _la = this.tokenStream.LA(1);
2881
- if (!(_la === 15 || _la === 56)) {
2935
+ if (!(_la === 15 || _la === 57)) {
2882
2936
  localContext._command = this.errorHandler.recoverInline(this);
2883
2937
  }
2884
2938
  else {
2885
2939
  this.errorHandler.reportMatch(this);
2886
2940
  this.consume();
2887
2941
  }
2888
- this.state = 572;
2942
+ this.state = 584;
2889
2943
  this.errorHandler.sync(this);
2890
2944
  _la = this.tokenStream.LA(1);
2891
2945
  if (_la === 1) {
2892
2946
  {
2893
- this.state = 571;
2947
+ this.state = 583;
2894
2948
  this.match(CircuitScriptParser.T__0);
2895
2949
  }
2896
2950
  }
2897
- this.state = 580;
2951
+ this.state = 592;
2898
2952
  this.errorHandler.sync(this);
2899
- switch (this.interpreter.adaptivePredict(this.tokenStream, 63, this.context)) {
2953
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 64, this.context)) {
2900
2954
  case 1:
2901
2955
  {
2902
- this.state = 574;
2956
+ this.state = 586;
2903
2957
  this.parameters();
2904
2958
  }
2905
2959
  break;
2906
2960
  case 2:
2907
2961
  {
2908
- this.state = 575;
2962
+ this.state = 587;
2909
2963
  this.match(CircuitScriptParser.OPEN_PAREN);
2910
- this.state = 576;
2964
+ this.state = 588;
2911
2965
  this.parameters();
2912
- this.state = 577;
2966
+ this.state = 589;
2913
2967
  this.match(CircuitScriptParser.CLOSE_PAREN);
2914
2968
  }
2915
2969
  break;
2916
2970
  case 3:
2917
2971
  {
2918
- this.state = 579;
2972
+ this.state = 591;
2919
2973
  this.nested_properties_inner();
2920
2974
  }
2921
2975
  break;
@@ -2926,33 +2980,33 @@ class CircuitScriptParser extends antlr.Parser {
2926
2980
  localContext = new GraphicForExprContext(localContext);
2927
2981
  this.enterOuterAlt(localContext, 2);
2928
2982
  {
2929
- this.state = 582;
2983
+ this.state = 594;
2930
2984
  this.match(CircuitScriptParser.For);
2931
- this.state = 583;
2985
+ this.state = 595;
2932
2986
  this.match(CircuitScriptParser.ID);
2933
- this.state = 588;
2987
+ this.state = 600;
2934
2988
  this.errorHandler.sync(this);
2935
2989
  _la = this.tokenStream.LA(1);
2936
2990
  while (_la === 2) {
2937
2991
  {
2938
2992
  {
2939
- this.state = 584;
2993
+ this.state = 596;
2940
2994
  this.match(CircuitScriptParser.T__1);
2941
- this.state = 585;
2995
+ this.state = 597;
2942
2996
  this.match(CircuitScriptParser.ID);
2943
2997
  }
2944
2998
  }
2945
- this.state = 590;
2999
+ this.state = 602;
2946
3000
  this.errorHandler.sync(this);
2947
3001
  _la = this.tokenStream.LA(1);
2948
3002
  }
2949
- this.state = 591;
3003
+ this.state = 603;
2950
3004
  this.match(CircuitScriptParser.In);
2951
- this.state = 592;
3005
+ this.state = 604;
2952
3006
  this.data_expr(0);
2953
- this.state = 593;
3007
+ this.state = 605;
2954
3008
  this.match(CircuitScriptParser.T__0);
2955
- this.state = 594;
3009
+ this.state = 606;
2956
3010
  this.graphic_expressions_block();
2957
3011
  }
2958
3012
  break;
@@ -2976,15 +3030,15 @@ class CircuitScriptParser extends antlr.Parser {
2976
3030
  }
2977
3031
  property_expr() {
2978
3032
  let localContext = new Property_exprContext(this.context, this.state);
2979
- this.enterRule(localContext, 102, CircuitScriptParser.RULE_property_expr);
3033
+ this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_expr);
2980
3034
  try {
2981
3035
  this.enterOuterAlt(localContext, 1);
2982
3036
  {
2983
- this.state = 598;
3037
+ this.state = 610;
2984
3038
  this.property_key_expr();
2985
- this.state = 599;
3039
+ this.state = 611;
2986
3040
  this.match(CircuitScriptParser.T__0);
2987
- this.state = 600;
3041
+ this.state = 612;
2988
3042
  this.property_value_expr();
2989
3043
  }
2990
3044
  }
@@ -3004,14 +3058,14 @@ class CircuitScriptParser extends antlr.Parser {
3004
3058
  }
3005
3059
  property_key_expr() {
3006
3060
  let localContext = new Property_key_exprContext(this.context, this.state);
3007
- this.enterRule(localContext, 104, CircuitScriptParser.RULE_property_key_expr);
3061
+ this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_key_expr);
3008
3062
  let _la;
3009
3063
  try {
3010
3064
  this.enterOuterAlt(localContext, 1);
3011
3065
  {
3012
- this.state = 602;
3066
+ this.state = 614;
3013
3067
  _la = this.tokenStream.LA(1);
3014
- if (!(((((_la - 56)) & ~0x1F) === 0 && ((1 << (_la - 56)) & 19) !== 0))) {
3068
+ if (!(((((_la - 57)) & ~0x1F) === 0 && ((1 << (_la - 57)) & 19) !== 0))) {
3015
3069
  this.errorHandler.recoverInline(this);
3016
3070
  }
3017
3071
  else {
@@ -3036,17 +3090,17 @@ class CircuitScriptParser extends antlr.Parser {
3036
3090
  }
3037
3091
  property_value_expr() {
3038
3092
  let localContext = new Property_value_exprContext(this.context, this.state);
3039
- this.enterRule(localContext, 106, CircuitScriptParser.RULE_property_value_expr);
3093
+ this.enterRule(localContext, 108, CircuitScriptParser.RULE_property_value_expr);
3040
3094
  let _la;
3041
3095
  try {
3042
- this.state = 613;
3096
+ this.state = 625;
3043
3097
  this.errorHandler.sync(this);
3044
3098
  switch (this.tokenStream.LA(1)) {
3045
3099
  case CircuitScriptParser.NEWLINE:
3046
3100
  localContext = new Nested_propertiesContext(localContext);
3047
3101
  this.enterOuterAlt(localContext, 1);
3048
3102
  {
3049
- this.state = 604;
3103
+ this.state = 616;
3050
3104
  this.nested_properties_inner();
3051
3105
  }
3052
3106
  break;
@@ -3067,21 +3121,21 @@ class CircuitScriptParser extends antlr.Parser {
3067
3121
  localContext = new Single_line_propertyContext(localContext);
3068
3122
  this.enterOuterAlt(localContext, 2);
3069
3123
  {
3070
- this.state = 605;
3124
+ this.state = 617;
3071
3125
  this.data_expr(0);
3072
- this.state = 610;
3126
+ this.state = 622;
3073
3127
  this.errorHandler.sync(this);
3074
3128
  _la = this.tokenStream.LA(1);
3075
3129
  while (_la === 2) {
3076
3130
  {
3077
3131
  {
3078
- this.state = 606;
3132
+ this.state = 618;
3079
3133
  this.match(CircuitScriptParser.T__1);
3080
- this.state = 607;
3134
+ this.state = 619;
3081
3135
  this.data_expr(0);
3082
3136
  }
3083
3137
  }
3084
- this.state = 612;
3138
+ this.state = 624;
3085
3139
  this.errorHandler.sync(this);
3086
3140
  _la = this.tokenStream.LA(1);
3087
3141
  }
@@ -3107,29 +3161,29 @@ class CircuitScriptParser extends antlr.Parser {
3107
3161
  }
3108
3162
  wire_atom_expr() {
3109
3163
  let localContext = new Wire_atom_exprContext(this.context, this.state);
3110
- this.enterRule(localContext, 108, CircuitScriptParser.RULE_wire_atom_expr);
3164
+ this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_atom_expr);
3111
3165
  try {
3112
- this.state = 621;
3166
+ this.state = 633;
3113
3167
  this.errorHandler.sync(this);
3114
- switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3168
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 70, this.context)) {
3115
3169
  case 1:
3116
3170
  localContext = new Wire_expr_direction_valueContext(localContext);
3117
3171
  this.enterOuterAlt(localContext, 1);
3118
3172
  {
3119
- this.state = 615;
3173
+ this.state = 627;
3120
3174
  this.match(CircuitScriptParser.ID);
3121
- this.state = 618;
3175
+ this.state = 630;
3122
3176
  this.errorHandler.sync(this);
3123
- switch (this.interpreter.adaptivePredict(this.tokenStream, 68, this.context)) {
3177
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 69, this.context)) {
3124
3178
  case 1:
3125
3179
  {
3126
- this.state = 616;
3180
+ this.state = 628;
3127
3181
  this.match(CircuitScriptParser.INTEGER_VALUE);
3128
3182
  }
3129
3183
  break;
3130
3184
  case 2:
3131
3185
  {
3132
- this.state = 617;
3186
+ this.state = 629;
3133
3187
  this.data_expr(0);
3134
3188
  }
3135
3189
  break;
@@ -3140,7 +3194,7 @@ class CircuitScriptParser extends antlr.Parser {
3140
3194
  localContext = new Wire_expr_direction_onlyContext(localContext);
3141
3195
  this.enterOuterAlt(localContext, 2);
3142
3196
  {
3143
- this.state = 620;
3197
+ this.state = 632;
3144
3198
  this.match(CircuitScriptParser.ID);
3145
3199
  }
3146
3200
  break;
@@ -3162,28 +3216,28 @@ class CircuitScriptParser extends antlr.Parser {
3162
3216
  }
3163
3217
  wire_expr() {
3164
3218
  let localContext = new Wire_exprContext(this.context, this.state);
3165
- this.enterRule(localContext, 110, CircuitScriptParser.RULE_wire_expr);
3219
+ this.enterRule(localContext, 112, CircuitScriptParser.RULE_wire_expr);
3166
3220
  try {
3167
3221
  let alternative;
3168
3222
  this.enterOuterAlt(localContext, 1);
3169
3223
  {
3170
- this.state = 623;
3224
+ this.state = 635;
3171
3225
  this.match(CircuitScriptParser.Wire);
3172
- this.state = 627;
3226
+ this.state = 639;
3173
3227
  this.errorHandler.sync(this);
3174
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3228
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3175
3229
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3176
3230
  if (alternative === 1) {
3177
3231
  {
3178
3232
  {
3179
- this.state = 624;
3233
+ this.state = 636;
3180
3234
  this.wire_atom_expr();
3181
3235
  }
3182
3236
  }
3183
3237
  }
3184
- this.state = 629;
3238
+ this.state = 641;
3185
3239
  this.errorHandler.sync(this);
3186
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3240
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3187
3241
  }
3188
3242
  }
3189
3243
  }
@@ -3203,44 +3257,44 @@ class CircuitScriptParser extends antlr.Parser {
3203
3257
  }
3204
3258
  array_expr() {
3205
3259
  let localContext = new Array_exprContext(this.context, this.state);
3206
- this.enterRule(localContext, 112, CircuitScriptParser.RULE_array_expr);
3260
+ this.enterRule(localContext, 114, CircuitScriptParser.RULE_array_expr);
3207
3261
  let _la;
3208
3262
  try {
3209
3263
  this.enterOuterAlt(localContext, 1);
3210
3264
  {
3211
- this.state = 630;
3265
+ this.state = 642;
3212
3266
  this.match(CircuitScriptParser.T__4);
3213
- this.state = 641;
3267
+ this.state = 653;
3214
3268
  this.errorHandler.sync(this);
3215
3269
  _la = this.tokenStream.LA(1);
3216
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 1041415) !== 0)) {
3270
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147484704) !== 0) || ((((_la - 42)) & ~0x1F) === 0 && ((1 << (_la - 42)) & 2082823) !== 0)) {
3217
3271
  {
3218
3272
  {
3219
- this.state = 631;
3273
+ this.state = 643;
3220
3274
  this.data_expr(0);
3221
- this.state = 636;
3275
+ this.state = 648;
3222
3276
  this.errorHandler.sync(this);
3223
3277
  _la = this.tokenStream.LA(1);
3224
3278
  while (_la === 2) {
3225
3279
  {
3226
3280
  {
3227
- this.state = 632;
3281
+ this.state = 644;
3228
3282
  this.match(CircuitScriptParser.T__1);
3229
- this.state = 633;
3283
+ this.state = 645;
3230
3284
  this.data_expr(0);
3231
3285
  }
3232
3286
  }
3233
- this.state = 638;
3287
+ this.state = 650;
3234
3288
  this.errorHandler.sync(this);
3235
3289
  _la = this.tokenStream.LA(1);
3236
3290
  }
3237
3291
  }
3238
3292
  }
3239
- this.state = 643;
3293
+ this.state = 655;
3240
3294
  this.errorHandler.sync(this);
3241
3295
  _la = this.tokenStream.LA(1);
3242
3296
  }
3243
- this.state = 644;
3297
+ this.state = 656;
3244
3298
  this.match(CircuitScriptParser.T__5);
3245
3299
  }
3246
3300
  }
@@ -3260,24 +3314,24 @@ class CircuitScriptParser extends antlr.Parser {
3260
3314
  }
3261
3315
  point_expr() {
3262
3316
  let localContext = new Point_exprContext(this.context, this.state);
3263
- this.enterRule(localContext, 114, CircuitScriptParser.RULE_point_expr);
3317
+ this.enterRule(localContext, 116, CircuitScriptParser.RULE_point_expr);
3264
3318
  try {
3265
3319
  this.enterOuterAlt(localContext, 1);
3266
3320
  {
3267
- this.state = 646;
3321
+ this.state = 658;
3268
3322
  this.match(CircuitScriptParser.Point);
3269
- this.state = 649;
3323
+ this.state = 661;
3270
3324
  this.errorHandler.sync(this);
3271
- switch (this.interpreter.adaptivePredict(this.tokenStream, 73, this.context)) {
3325
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context)) {
3272
3326
  case 1:
3273
3327
  {
3274
- this.state = 647;
3328
+ this.state = 659;
3275
3329
  this.match(CircuitScriptParser.ID);
3276
3330
  }
3277
3331
  break;
3278
3332
  case 2:
3279
3333
  {
3280
- this.state = 648;
3334
+ this.state = 660;
3281
3335
  this.data_expr(0);
3282
3336
  }
3283
3337
  break;
@@ -3300,13 +3354,13 @@ class CircuitScriptParser extends antlr.Parser {
3300
3354
  }
3301
3355
  import_expr() {
3302
3356
  let localContext = new Import_exprContext(this.context, this.state);
3303
- this.enterRule(localContext, 116, CircuitScriptParser.RULE_import_expr);
3357
+ this.enterRule(localContext, 118, CircuitScriptParser.RULE_import_expr);
3304
3358
  try {
3305
3359
  this.enterOuterAlt(localContext, 1);
3306
3360
  {
3307
- this.state = 651;
3361
+ this.state = 663;
3308
3362
  this.match(CircuitScriptParser.Import);
3309
- this.state = 652;
3363
+ this.state = 664;
3310
3364
  this.match(CircuitScriptParser.ID);
3311
3365
  }
3312
3366
  }
@@ -3326,12 +3380,12 @@ class CircuitScriptParser extends antlr.Parser {
3326
3380
  }
3327
3381
  frame_expr() {
3328
3382
  let localContext = new Frame_exprContext(this.context, this.state);
3329
- this.enterRule(localContext, 118, CircuitScriptParser.RULE_frame_expr);
3383
+ this.enterRule(localContext, 120, CircuitScriptParser.RULE_frame_expr);
3330
3384
  let _la;
3331
3385
  try {
3332
3386
  this.enterOuterAlt(localContext, 1);
3333
3387
  {
3334
- this.state = 654;
3388
+ this.state = 666;
3335
3389
  _la = this.tokenStream.LA(1);
3336
3390
  if (!(_la === 32 || _la === 33)) {
3337
3391
  this.errorHandler.recoverInline(this);
@@ -3340,9 +3394,9 @@ class CircuitScriptParser extends antlr.Parser {
3340
3394
  this.errorHandler.reportMatch(this);
3341
3395
  this.consume();
3342
3396
  }
3343
- this.state = 655;
3397
+ this.state = 667;
3344
3398
  this.match(CircuitScriptParser.T__0);
3345
- this.state = 656;
3399
+ this.state = 668;
3346
3400
  this.expressions_block();
3347
3401
  }
3348
3402
  }
@@ -3362,42 +3416,42 @@ class CircuitScriptParser extends antlr.Parser {
3362
3416
  }
3363
3417
  if_expr() {
3364
3418
  let localContext = new If_exprContext(this.context, this.state);
3365
- this.enterRule(localContext, 120, CircuitScriptParser.RULE_if_expr);
3419
+ this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_expr);
3366
3420
  let _la;
3367
3421
  try {
3368
3422
  let alternative;
3369
3423
  this.enterOuterAlt(localContext, 1);
3370
3424
  {
3371
- this.state = 658;
3425
+ this.state = 670;
3372
3426
  this.match(CircuitScriptParser.If);
3373
- this.state = 659;
3427
+ this.state = 671;
3374
3428
  this.data_expr(0);
3375
- this.state = 660;
3429
+ this.state = 672;
3376
3430
  this.match(CircuitScriptParser.T__0);
3377
- this.state = 661;
3431
+ this.state = 673;
3378
3432
  this.expressions_block();
3379
- this.state = 665;
3433
+ this.state = 677;
3380
3434
  this.errorHandler.sync(this);
3381
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3435
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3382
3436
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3383
3437
  if (alternative === 1) {
3384
3438
  {
3385
3439
  {
3386
- this.state = 662;
3440
+ this.state = 674;
3387
3441
  this.if_inner_expr();
3388
3442
  }
3389
3443
  }
3390
3444
  }
3391
- this.state = 667;
3445
+ this.state = 679;
3392
3446
  this.errorHandler.sync(this);
3393
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3447
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 75, this.context);
3394
3448
  }
3395
- this.state = 669;
3449
+ this.state = 681;
3396
3450
  this.errorHandler.sync(this);
3397
3451
  _la = this.tokenStream.LA(1);
3398
3452
  if (_la === 30) {
3399
3453
  {
3400
- this.state = 668;
3454
+ this.state = 680;
3401
3455
  this.else_expr();
3402
3456
  }
3403
3457
  }
@@ -3419,19 +3473,19 @@ class CircuitScriptParser extends antlr.Parser {
3419
3473
  }
3420
3474
  if_inner_expr() {
3421
3475
  let localContext = new If_inner_exprContext(this.context, this.state);
3422
- this.enterRule(localContext, 122, CircuitScriptParser.RULE_if_inner_expr);
3476
+ this.enterRule(localContext, 124, CircuitScriptParser.RULE_if_inner_expr);
3423
3477
  try {
3424
3478
  this.enterOuterAlt(localContext, 1);
3425
3479
  {
3426
- this.state = 671;
3480
+ this.state = 683;
3427
3481
  this.match(CircuitScriptParser.Else);
3428
- this.state = 672;
3482
+ this.state = 684;
3429
3483
  this.match(CircuitScriptParser.If);
3430
- this.state = 673;
3484
+ this.state = 685;
3431
3485
  this.data_expr(0);
3432
- this.state = 674;
3486
+ this.state = 686;
3433
3487
  this.match(CircuitScriptParser.T__0);
3434
- this.state = 675;
3488
+ this.state = 687;
3435
3489
  this.expressions_block();
3436
3490
  }
3437
3491
  }
@@ -3451,15 +3505,15 @@ class CircuitScriptParser extends antlr.Parser {
3451
3505
  }
3452
3506
  else_expr() {
3453
3507
  let localContext = new Else_exprContext(this.context, this.state);
3454
- this.enterRule(localContext, 124, CircuitScriptParser.RULE_else_expr);
3508
+ this.enterRule(localContext, 126, CircuitScriptParser.RULE_else_expr);
3455
3509
  try {
3456
3510
  this.enterOuterAlt(localContext, 1);
3457
3511
  {
3458
- this.state = 677;
3512
+ this.state = 689;
3459
3513
  this.match(CircuitScriptParser.Else);
3460
- this.state = 678;
3514
+ this.state = 690;
3461
3515
  this.match(CircuitScriptParser.T__0);
3462
- this.state = 679;
3516
+ this.state = 691;
3463
3517
  this.expressions_block();
3464
3518
  }
3465
3519
  }
@@ -3479,17 +3533,17 @@ class CircuitScriptParser extends antlr.Parser {
3479
3533
  }
3480
3534
  while_expr() {
3481
3535
  let localContext = new While_exprContext(this.context, this.state);
3482
- this.enterRule(localContext, 126, CircuitScriptParser.RULE_while_expr);
3536
+ this.enterRule(localContext, 128, CircuitScriptParser.RULE_while_expr);
3483
3537
  try {
3484
3538
  this.enterOuterAlt(localContext, 1);
3485
3539
  {
3486
- this.state = 681;
3540
+ this.state = 693;
3487
3541
  this.match(CircuitScriptParser.While);
3488
- this.state = 682;
3542
+ this.state = 694;
3489
3543
  this.data_expr(0);
3490
- this.state = 683;
3544
+ this.state = 695;
3491
3545
  this.match(CircuitScriptParser.T__0);
3492
- this.state = 684;
3546
+ this.state = 696;
3493
3547
  this.expressions_block();
3494
3548
  }
3495
3549
  }
@@ -3509,38 +3563,38 @@ class CircuitScriptParser extends antlr.Parser {
3509
3563
  }
3510
3564
  for_expr() {
3511
3565
  let localContext = new For_exprContext(this.context, this.state);
3512
- this.enterRule(localContext, 128, CircuitScriptParser.RULE_for_expr);
3566
+ this.enterRule(localContext, 130, CircuitScriptParser.RULE_for_expr);
3513
3567
  let _la;
3514
3568
  try {
3515
3569
  this.enterOuterAlt(localContext, 1);
3516
3570
  {
3517
- this.state = 686;
3571
+ this.state = 698;
3518
3572
  this.match(CircuitScriptParser.For);
3519
- this.state = 687;
3573
+ this.state = 699;
3520
3574
  this.match(CircuitScriptParser.ID);
3521
- this.state = 692;
3575
+ this.state = 704;
3522
3576
  this.errorHandler.sync(this);
3523
3577
  _la = this.tokenStream.LA(1);
3524
3578
  while (_la === 2) {
3525
3579
  {
3526
3580
  {
3527
- this.state = 688;
3581
+ this.state = 700;
3528
3582
  this.match(CircuitScriptParser.T__1);
3529
- this.state = 689;
3583
+ this.state = 701;
3530
3584
  this.match(CircuitScriptParser.ID);
3531
3585
  }
3532
3586
  }
3533
- this.state = 694;
3587
+ this.state = 706;
3534
3588
  this.errorHandler.sync(this);
3535
3589
  _la = this.tokenStream.LA(1);
3536
3590
  }
3537
- this.state = 695;
3591
+ this.state = 707;
3538
3592
  this.match(CircuitScriptParser.In);
3539
- this.state = 696;
3593
+ this.state = 708;
3540
3594
  this.data_expr(0);
3541
- this.state = 697;
3595
+ this.state = 709;
3542
3596
  this.match(CircuitScriptParser.T__0);
3543
- this.state = 698;
3597
+ this.state = 710;
3544
3598
  this.expressions_block();
3545
3599
  }
3546
3600
  }
@@ -3558,9 +3612,35 @@ class CircuitScriptParser extends antlr.Parser {
3558
3612
  }
3559
3613
  return localContext;
3560
3614
  }
3615
+ annotation_comment_expr() {
3616
+ let localContext = new Annotation_comment_exprContext(this.context, this.state);
3617
+ this.enterRule(localContext, 132, CircuitScriptParser.RULE_annotation_comment_expr);
3618
+ try {
3619
+ this.enterOuterAlt(localContext, 1);
3620
+ {
3621
+ this.state = 712;
3622
+ this.match(CircuitScriptParser.ANNOTATION_START);
3623
+ this.state = 713;
3624
+ this.match(CircuitScriptParser.ID);
3625
+ }
3626
+ }
3627
+ catch (re) {
3628
+ if (re instanceof antlr.RecognitionException) {
3629
+ this.errorHandler.reportError(this, re);
3630
+ this.errorHandler.recover(this, re);
3631
+ }
3632
+ else {
3633
+ throw re;
3634
+ }
3635
+ }
3636
+ finally {
3637
+ this.exitRule();
3638
+ }
3639
+ return localContext;
3640
+ }
3561
3641
  sempred(localContext, ruleIndex, predIndex) {
3562
3642
  switch (ruleIndex) {
3563
- case 31:
3643
+ case 32:
3564
3644
  return this.data_expr_sempred(localContext, predIndex);
3565
3645
  }
3566
3646
  return true;
@@ -3642,22 +3722,23 @@ CircuitScriptParser.MinusAssign = 48;
3642
3722
  CircuitScriptParser.DivideAssign = 49;
3643
3723
  CircuitScriptParser.MultiplyAssign = 50;
3644
3724
  CircuitScriptParser.ModulusAssign = 51;
3645
- CircuitScriptParser.OPEN_PAREN = 52;
3646
- CircuitScriptParser.CLOSE_PAREN = 53;
3647
- CircuitScriptParser.NOT_CONNECTED = 54;
3648
- CircuitScriptParser.BOOLEAN_VALUE = 55;
3649
- CircuitScriptParser.ID = 56;
3650
- CircuitScriptParser.INTEGER_VALUE = 57;
3651
- CircuitScriptParser.DECIMAL_VALUE = 58;
3652
- CircuitScriptParser.NUMERIC_VALUE = 59;
3653
- CircuitScriptParser.STRING_VALUE = 60;
3654
- CircuitScriptParser.PERCENTAGE_VALUE = 61;
3655
- CircuitScriptParser.ALPHA_NUMERIC = 62;
3656
- CircuitScriptParser.WS = 63;
3657
- CircuitScriptParser.NEWLINE = 64;
3658
- CircuitScriptParser.COMMENT = 65;
3659
- CircuitScriptParser.INDENT = 66;
3660
- CircuitScriptParser.DEDENT = 67;
3725
+ CircuitScriptParser.ANNOTATION_START = 52;
3726
+ CircuitScriptParser.OPEN_PAREN = 53;
3727
+ CircuitScriptParser.CLOSE_PAREN = 54;
3728
+ CircuitScriptParser.NOT_CONNECTED = 55;
3729
+ CircuitScriptParser.BOOLEAN_VALUE = 56;
3730
+ CircuitScriptParser.ID = 57;
3731
+ CircuitScriptParser.INTEGER_VALUE = 58;
3732
+ CircuitScriptParser.DECIMAL_VALUE = 59;
3733
+ CircuitScriptParser.NUMERIC_VALUE = 60;
3734
+ CircuitScriptParser.STRING_VALUE = 61;
3735
+ CircuitScriptParser.PERCENTAGE_VALUE = 62;
3736
+ CircuitScriptParser.ALPHA_NUMERIC = 63;
3737
+ CircuitScriptParser.WS = 64;
3738
+ CircuitScriptParser.NEWLINE = 65;
3739
+ CircuitScriptParser.COMMENT = 66;
3740
+ CircuitScriptParser.INDENT = 67;
3741
+ CircuitScriptParser.DEDENT = 68;
3661
3742
  CircuitScriptParser.RULE_script = 0;
3662
3743
  CircuitScriptParser.RULE_expression = 1;
3663
3744
  CircuitScriptParser.RULE_flow_expressions = 2;
@@ -3680,49 +3761,51 @@ CircuitScriptParser.RULE_at_to_multiple_line_expr = 18;
3680
3761
  CircuitScriptParser.RULE_at_to_multiple_line_expr_to_pin = 19;
3681
3762
  CircuitScriptParser.RULE_at_block = 20;
3682
3763
  CircuitScriptParser.RULE_at_block_expressions = 21;
3683
- CircuitScriptParser.RULE_at_block_pin_expr = 22;
3684
- CircuitScriptParser.RULE_at_block_pin_expression_simple = 23;
3685
- CircuitScriptParser.RULE_at_block_pin_expression_complex = 24;
3686
- CircuitScriptParser.RULE_assignment_expr = 25;
3687
- CircuitScriptParser.RULE_operator_assignment_expr = 26;
3688
- CircuitScriptParser.RULE_keyword_assignment_expr = 27;
3689
- CircuitScriptParser.RULE_parameters = 28;
3690
- CircuitScriptParser.RULE_property_set_expr = 29;
3691
- CircuitScriptParser.RULE_double_dot_property_set_expr = 30;
3692
- CircuitScriptParser.RULE_data_expr = 31;
3693
- CircuitScriptParser.RULE_binary_operator = 32;
3694
- CircuitScriptParser.RULE_unary_operator = 33;
3695
- CircuitScriptParser.RULE_value_expr = 34;
3696
- CircuitScriptParser.RULE_function_def_expr = 35;
3697
- CircuitScriptParser.RULE_function_expr = 36;
3698
- CircuitScriptParser.RULE_function_args_expr = 37;
3699
- CircuitScriptParser.RULE_atom_expr = 38;
3700
- CircuitScriptParser.RULE_trailer_expr = 39;
3701
- CircuitScriptParser.RULE_trailer_expr2 = 40;
3702
- CircuitScriptParser.RULE_function_call_expr = 41;
3703
- CircuitScriptParser.RULE_net_namespace_expr = 42;
3704
- CircuitScriptParser.RULE_function_return_expr = 43;
3705
- CircuitScriptParser.RULE_property_block_expr = 44;
3706
- CircuitScriptParser.RULE_create_component_expr = 45;
3707
- CircuitScriptParser.RULE_graphic_expressions_block = 46;
3708
- CircuitScriptParser.RULE_create_graphic_expr = 47;
3709
- CircuitScriptParser.RULE_create_module_expr = 48;
3710
- CircuitScriptParser.RULE_nested_properties_inner = 49;
3711
- CircuitScriptParser.RULE_graphic_expr = 50;
3712
- CircuitScriptParser.RULE_property_expr = 51;
3713
- CircuitScriptParser.RULE_property_key_expr = 52;
3714
- CircuitScriptParser.RULE_property_value_expr = 53;
3715
- CircuitScriptParser.RULE_wire_atom_expr = 54;
3716
- CircuitScriptParser.RULE_wire_expr = 55;
3717
- CircuitScriptParser.RULE_array_expr = 56;
3718
- CircuitScriptParser.RULE_point_expr = 57;
3719
- CircuitScriptParser.RULE_import_expr = 58;
3720
- CircuitScriptParser.RULE_frame_expr = 59;
3721
- CircuitScriptParser.RULE_if_expr = 60;
3722
- CircuitScriptParser.RULE_if_inner_expr = 61;
3723
- CircuitScriptParser.RULE_else_expr = 62;
3724
- CircuitScriptParser.RULE_while_expr = 63;
3725
- CircuitScriptParser.RULE_for_expr = 64;
3764
+ CircuitScriptParser.RULE_at_block_header = 22;
3765
+ CircuitScriptParser.RULE_at_block_pin_expr = 23;
3766
+ CircuitScriptParser.RULE_at_block_pin_expression_simple = 24;
3767
+ CircuitScriptParser.RULE_at_block_pin_expression_complex = 25;
3768
+ CircuitScriptParser.RULE_assignment_expr = 26;
3769
+ CircuitScriptParser.RULE_operator_assignment_expr = 27;
3770
+ CircuitScriptParser.RULE_keyword_assignment_expr = 28;
3771
+ CircuitScriptParser.RULE_parameters = 29;
3772
+ CircuitScriptParser.RULE_property_set_expr = 30;
3773
+ CircuitScriptParser.RULE_double_dot_property_set_expr = 31;
3774
+ CircuitScriptParser.RULE_data_expr = 32;
3775
+ CircuitScriptParser.RULE_binary_operator = 33;
3776
+ CircuitScriptParser.RULE_unary_operator = 34;
3777
+ CircuitScriptParser.RULE_value_expr = 35;
3778
+ CircuitScriptParser.RULE_function_def_expr = 36;
3779
+ CircuitScriptParser.RULE_function_expr = 37;
3780
+ CircuitScriptParser.RULE_function_args_expr = 38;
3781
+ CircuitScriptParser.RULE_atom_expr = 39;
3782
+ CircuitScriptParser.RULE_trailer_expr = 40;
3783
+ CircuitScriptParser.RULE_trailer_expr2 = 41;
3784
+ CircuitScriptParser.RULE_function_call_expr = 42;
3785
+ CircuitScriptParser.RULE_net_namespace_expr = 43;
3786
+ CircuitScriptParser.RULE_function_return_expr = 44;
3787
+ CircuitScriptParser.RULE_property_block_expr = 45;
3788
+ CircuitScriptParser.RULE_create_component_expr = 46;
3789
+ CircuitScriptParser.RULE_graphic_expressions_block = 47;
3790
+ CircuitScriptParser.RULE_create_graphic_expr = 48;
3791
+ CircuitScriptParser.RULE_create_module_expr = 49;
3792
+ CircuitScriptParser.RULE_nested_properties_inner = 50;
3793
+ CircuitScriptParser.RULE_graphic_expr = 51;
3794
+ CircuitScriptParser.RULE_property_expr = 52;
3795
+ CircuitScriptParser.RULE_property_key_expr = 53;
3796
+ CircuitScriptParser.RULE_property_value_expr = 54;
3797
+ CircuitScriptParser.RULE_wire_atom_expr = 55;
3798
+ CircuitScriptParser.RULE_wire_expr = 56;
3799
+ CircuitScriptParser.RULE_array_expr = 57;
3800
+ CircuitScriptParser.RULE_point_expr = 58;
3801
+ CircuitScriptParser.RULE_import_expr = 59;
3802
+ CircuitScriptParser.RULE_frame_expr = 60;
3803
+ CircuitScriptParser.RULE_if_expr = 61;
3804
+ CircuitScriptParser.RULE_if_inner_expr = 62;
3805
+ CircuitScriptParser.RULE_else_expr = 63;
3806
+ CircuitScriptParser.RULE_while_expr = 64;
3807
+ CircuitScriptParser.RULE_for_expr = 65;
3808
+ CircuitScriptParser.RULE_annotation_comment_expr = 66;
3726
3809
  CircuitScriptParser.literalNames = [
3727
3810
  null, "':'", "','", "'='", "'..'", "'['", "']'", "'.'", "'break'",
3728
3811
  "'branch'", "'create'", "'component'", "'graphic'", "'module'",
@@ -3731,7 +3814,7 @@ CircuitScriptParser.literalNames = [
3731
3814
  "'while'", "'continue'", "'if'", "'else'", null, "'frame'", "'sheet'",
3732
3815
  "'=='", "'!='", "'>'", "'>='", "'<'", "'<='", null, null, "'+'",
3733
3816
  "'-'", "'/'", "'*'", "'%'", "'+='", "'-='", "'/='", "'*='", "'%='",
3734
- "'('", "')'"
3817
+ "'#='", "'('", "')'"
3735
3818
  ];
3736
3819
  CircuitScriptParser.symbolicNames = [
3737
3820
  null, null, null, null, null, null, null, null, "Break", "Branch",
@@ -3741,10 +3824,11 @@ CircuitScriptParser.symbolicNames = [
3741
3824
  "Sheet", "Equals", "NotEquals", "GreaterThan", "GreatOrEqualThan",
3742
3825
  "LessThan", "LessOrEqualThan", "LogicalAnd", "LogicalOr", "Addition",
3743
3826
  "Minus", "Divide", "Multiply", "Modulus", "AdditionAssign", "MinusAssign",
3744
- "DivideAssign", "MultiplyAssign", "ModulusAssign", "OPEN_PAREN",
3745
- "CLOSE_PAREN", "NOT_CONNECTED", "BOOLEAN_VALUE", "ID", "INTEGER_VALUE",
3746
- "DECIMAL_VALUE", "NUMERIC_VALUE", "STRING_VALUE", "PERCENTAGE_VALUE",
3747
- "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT", "INDENT", "DEDENT"
3827
+ "DivideAssign", "MultiplyAssign", "ModulusAssign", "ANNOTATION_START",
3828
+ "OPEN_PAREN", "CLOSE_PAREN", "NOT_CONNECTED", "BOOLEAN_VALUE", "ID",
3829
+ "INTEGER_VALUE", "DECIMAL_VALUE", "NUMERIC_VALUE", "STRING_VALUE",
3830
+ "PERCENTAGE_VALUE", "ALPHA_NUMERIC", "WS", "NEWLINE", "COMMENT",
3831
+ "INDENT", "DEDENT"
3748
3832
  ];
3749
3833
  CircuitScriptParser.ruleNames = [
3750
3834
  "script", "expression", "flow_expressions", "graph_expressions",
@@ -3753,9 +3837,10 @@ CircuitScriptParser.ruleNames = [
3753
3837
  "data_expr_with_assignment", "add_component_expr", "component_select_expr",
3754
3838
  "pin_select_expr2", "at_component_expr", "to_component_expr", "at_to_multiple_expr",
3755
3839
  "at_to_multiple_line_expr", "at_to_multiple_line_expr_to_pin", "at_block",
3756
- "at_block_expressions", "at_block_pin_expr", "at_block_pin_expression_simple",
3757
- "at_block_pin_expression_complex", "assignment_expr", "operator_assignment_expr",
3758
- "keyword_assignment_expr", "parameters", "property_set_expr", "double_dot_property_set_expr",
3840
+ "at_block_expressions", "at_block_header", "at_block_pin_expr",
3841
+ "at_block_pin_expression_simple", "at_block_pin_expression_complex",
3842
+ "assignment_expr", "operator_assignment_expr", "keyword_assignment_expr",
3843
+ "parameters", "property_set_expr", "double_dot_property_set_expr",
3759
3844
  "data_expr", "binary_operator", "unary_operator", "value_expr",
3760
3845
  "function_def_expr", "function_expr", "function_args_expr", "atom_expr",
3761
3846
  "trailer_expr", "trailer_expr2", "function_call_expr", "net_namespace_expr",
@@ -3764,10 +3849,10 @@ CircuitScriptParser.ruleNames = [
3764
3849
  "nested_properties_inner", "graphic_expr", "property_expr", "property_key_expr",
3765
3850
  "property_value_expr", "wire_atom_expr", "wire_expr", "array_expr",
3766
3851
  "point_expr", "import_expr", "frame_expr", "if_expr", "if_inner_expr",
3767
- "else_expr", "while_expr", "for_expr",
3852
+ "else_expr", "while_expr", "for_expr", "annotation_comment_expr",
3768
3853
  ];
3769
3854
  CircuitScriptParser._serializedATN = [
3770
- 4, 1, 67, 701, 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,
3855
+ 4, 1, 68, 716, 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,
3771
3856
  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,
3772
3857
  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,
3773
3858
  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,
@@ -3776,255 +3861,260 @@ CircuitScriptParser._serializedATN = [
3776
3861
  2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46,
3777
3862
  7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52,
3778
3863
  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,
3779
- 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 1, 0, 1, 0, 5,
3780
- 0, 133, 8, 0, 10, 0, 12, 0, 136, 9, 0, 1, 0, 1, 0, 4, 0, 140, 8, 0, 11, 0, 12, 0, 141, 1,
3781
- 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 158, 8,
3782
- 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 165, 8, 2, 1, 3, 1, 3, 3, 3, 169, 8, 3, 1, 4, 1, 4, 1,
3783
- 4, 1, 4, 1, 4, 1, 4, 3, 4, 177, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 4, 5, 183, 8, 5, 11, 5, 12, 5,
3784
- 184, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 4, 7, 199, 8, 7,
3785
- 11, 7, 12, 7, 200, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10,
3786
- 1, 10, 3, 10, 216, 8, 10, 1, 11, 1, 11, 3, 11, 220, 8, 11, 1, 11, 5, 11, 223, 8, 11, 10,
3787
- 11, 12, 11, 226, 9, 11, 1, 11, 3, 11, 229, 8, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1,
3788
- 13, 3, 13, 237, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 5,
3789
- 16, 248, 8, 16, 10, 16, 12, 16, 251, 9, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 5,
3790
- 17, 259, 8, 17, 10, 17, 12, 17, 262, 9, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 4, 17, 269,
3791
- 8, 17, 11, 17, 12, 17, 270, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 280,
3792
- 8, 18, 10, 18, 12, 18, 283, 9, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
3793
- 4, 20, 293, 8, 20, 11, 20, 12, 20, 294, 1, 20, 1, 20, 1, 21, 1, 21, 3, 21, 301, 8, 21,
3794
- 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 307, 8, 22, 1, 23, 1, 23, 3, 23, 311, 8, 23, 1, 24, 1,
3795
- 24, 1, 25, 1, 25, 3, 25, 317, 8, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1,
3796
- 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 333, 8, 28, 10, 28, 12, 28, 336, 9,
3797
- 28, 1, 28, 1, 28, 5, 28, 340, 8, 28, 10, 28, 12, 28, 343, 9, 28, 1, 28, 1, 28, 1, 28, 5,
3798
- 28, 348, 8, 28, 10, 28, 12, 28, 351, 9, 28, 3, 28, 353, 8, 28, 1, 29, 1, 29, 1, 29, 1,
3799
- 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3,
3800
- 31, 371, 8, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 381, 8, 31,
3801
- 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31,
3802
- 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 401, 8, 31, 10, 31, 12, 31, 404, 9, 31, 1, 32,
3803
- 1, 32, 1, 33, 1, 33, 1, 34, 3, 34, 411, 8, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35,
3804
- 3, 35, 419, 8, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 4, 35, 427, 8, 35, 11, 35,
3805
- 12, 35, 428, 1, 35, 1, 35, 1, 36, 1, 36, 3, 36, 435, 8, 36, 1, 37, 1, 37, 1, 37, 5, 37,
3806
- 440, 8, 37, 10, 37, 12, 37, 443, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 449, 8, 37,
3807
- 10, 37, 12, 37, 452, 9, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 461,
3808
- 8, 37, 10, 37, 12, 37, 464, 9, 37, 3, 37, 466, 8, 37, 1, 38, 1, 38, 5, 38, 470, 8, 38,
3809
- 10, 38, 12, 38, 473, 9, 38, 1, 39, 1, 39, 3, 39, 477, 8, 39, 1, 39, 1, 39, 3, 39, 481,
3810
- 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 489, 8, 40, 1, 41, 3, 41, 492, 8,
3811
- 41, 1, 41, 1, 41, 4, 41, 496, 8, 41, 11, 41, 12, 41, 497, 1, 42, 3, 42, 501, 8, 42, 1,
3812
- 42, 1, 42, 3, 42, 505, 8, 42, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1,
3813
- 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 4, 45, 521, 8, 45, 11, 45, 12, 45, 522, 1, 45, 1,
3814
- 45, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 531, 8, 46, 11, 46, 12, 46, 532, 1, 46, 1, 46, 1,
3815
- 47, 1, 47, 1, 47, 1, 47, 1, 47, 3, 47, 542, 8, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1,
3816
- 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 4, 48, 555, 8, 48, 11, 48, 12, 48, 556, 1, 48, 1,
3817
- 48, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 565, 8, 49, 11, 49, 12, 49, 566, 1, 49, 1, 49, 1,
3818
- 50, 1, 50, 3, 50, 573, 8, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 3, 50, 581, 8, 50,
3819
- 1, 50, 1, 50, 1, 50, 1, 50, 5, 50, 587, 8, 50, 10, 50, 12, 50, 590, 9, 50, 1, 50, 1, 50,
3820
- 1, 50, 1, 50, 1, 50, 3, 50, 597, 8, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 53,
3821
- 1, 53, 1, 53, 1, 53, 5, 53, 609, 8, 53, 10, 53, 12, 53, 612, 9, 53, 3, 53, 614, 8, 53,
3822
- 1, 54, 1, 54, 1, 54, 3, 54, 619, 8, 54, 1, 54, 3, 54, 622, 8, 54, 1, 55, 1, 55, 5, 55, 626,
3823
- 8, 55, 10, 55, 12, 55, 629, 9, 55, 1, 56, 1, 56, 1, 56, 1, 56, 5, 56, 635, 8, 56, 10, 56,
3824
- 12, 56, 638, 9, 56, 5, 56, 640, 8, 56, 10, 56, 12, 56, 643, 9, 56, 1, 56, 1, 56, 1, 57,
3825
- 1, 57, 1, 57, 3, 57, 650, 8, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60,
3826
- 1, 60, 1, 60, 1, 60, 1, 60, 5, 60, 664, 8, 60, 10, 60, 12, 60, 667, 9, 60, 1, 60, 3, 60,
3827
- 670, 8, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63,
3828
- 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 5, 64, 691, 8, 64, 10, 64, 12, 64,
3829
- 694, 9, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 0, 1, 62, 65, 0, 2, 4, 6, 8, 10, 12,
3830
- 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56,
3831
- 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100,
3832
- 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 0, 14, 2, 0,
3833
- 9, 9, 19, 21, 1, 0, 56, 57, 2, 0, 57, 57, 60, 60, 2, 0, 54, 54, 57, 57, 1, 0, 47, 51, 1,
3834
- 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2, 0, 31, 31, 43, 43, 2, 0, 55, 55,
3835
- 57, 61, 2, 0, 15, 15, 56, 56, 2, 0, 56, 57, 60, 60, 1, 0, 32, 33, 741, 0, 134, 1, 0, 0,
3836
- 0, 2, 157, 1, 0, 0, 0, 4, 164, 1, 0, 0, 0, 6, 168, 1, 0, 0, 0, 8, 176, 1, 0, 0, 0, 10, 178,
3837
- 1, 0, 0, 0, 12, 188, 1, 0, 0, 0, 14, 192, 1, 0, 0, 0, 16, 204, 1, 0, 0, 0, 18, 208, 1, 0,
3838
- 0, 0, 20, 211, 1, 0, 0, 0, 22, 219, 1, 0, 0, 0, 24, 230, 1, 0, 0, 0, 26, 236, 1, 0, 0, 0,
3839
- 28, 238, 1, 0, 0, 0, 30, 240, 1, 0, 0, 0, 32, 243, 1, 0, 0, 0, 34, 252, 1, 0, 0, 0, 36, 274,
3840
- 1, 0, 0, 0, 38, 284, 1, 0, 0, 0, 40, 286, 1, 0, 0, 0, 42, 300, 1, 0, 0, 0, 44, 302, 1, 0,
3841
- 0, 0, 46, 310, 1, 0, 0, 0, 48, 312, 1, 0, 0, 0, 50, 316, 1, 0, 0, 0, 52, 321, 1, 0, 0, 0,
3842
- 54, 325, 1, 0, 0, 0, 56, 352, 1, 0, 0, 0, 58, 354, 1, 0, 0, 0, 60, 358, 1, 0, 0, 0, 62, 380,
3843
- 1, 0, 0, 0, 64, 405, 1, 0, 0, 0, 66, 407, 1, 0, 0, 0, 68, 410, 1, 0, 0, 0, 70, 414, 1, 0,
3844
- 0, 0, 72, 434, 1, 0, 0, 0, 74, 465, 1, 0, 0, 0, 76, 467, 1, 0, 0, 0, 78, 480, 1, 0, 0, 0,
3845
- 80, 488, 1, 0, 0, 0, 82, 491, 1, 0, 0, 0, 84, 500, 1, 0, 0, 0, 86, 506, 1, 0, 0, 0, 88, 509,
3846
- 1, 0, 0, 0, 90, 513, 1, 0, 0, 0, 92, 526, 1, 0, 0, 0, 94, 536, 1, 0, 0, 0, 96, 546, 1, 0,
3847
- 0, 0, 98, 560, 1, 0, 0, 0, 100, 596, 1, 0, 0, 0, 102, 598, 1, 0, 0, 0, 104, 602, 1, 0, 0,
3848
- 0, 106, 613, 1, 0, 0, 0, 108, 621, 1, 0, 0, 0, 110, 623, 1, 0, 0, 0, 112, 630, 1, 0, 0,
3849
- 0, 114, 646, 1, 0, 0, 0, 116, 651, 1, 0, 0, 0, 118, 654, 1, 0, 0, 0, 120, 658, 1, 0, 0,
3850
- 0, 122, 671, 1, 0, 0, 0, 124, 677, 1, 0, 0, 0, 126, 681, 1, 0, 0, 0, 128, 686, 1, 0, 0,
3851
- 0, 130, 133, 3, 116, 58, 0, 131, 133, 5, 64, 0, 0, 132, 130, 1, 0, 0, 0, 132, 131, 1,
3852
- 0, 0, 0, 133, 136, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 139, 1,
3853
- 0, 0, 0, 136, 134, 1, 0, 0, 0, 137, 140, 3, 2, 1, 0, 138, 140, 5, 64, 0, 0, 139, 137, 1,
3854
- 0, 0, 0, 139, 138, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 139, 1, 0, 0, 0, 141, 142, 1,
3855
- 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 144, 5, 0, 0, 1, 144, 1, 1, 0, 0, 0, 145, 158, 3, 6,
3856
- 3, 0, 146, 158, 3, 50, 25, 0, 147, 158, 3, 52, 26, 0, 148, 158, 3, 58, 29, 0, 149, 158,
3857
- 3, 14, 7, 0, 150, 158, 3, 60, 30, 0, 151, 158, 3, 70, 35, 0, 152, 158, 3, 82, 41, 0, 153,
3858
- 158, 3, 116, 58, 0, 154, 158, 3, 76, 38, 0, 155, 158, 3, 118, 59, 0, 156, 158, 3, 4,
3859
- 2, 0, 157, 145, 1, 0, 0, 0, 157, 146, 1, 0, 0, 0, 157, 147, 1, 0, 0, 0, 157, 148, 1, 0,
3860
- 0, 0, 157, 149, 1, 0, 0, 0, 157, 150, 1, 0, 0, 0, 157, 151, 1, 0, 0, 0, 157, 152, 1, 0,
3861
- 0, 0, 157, 153, 1, 0, 0, 0, 157, 154, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 157, 156, 1, 0,
3862
- 0, 0, 158, 3, 1, 0, 0, 0, 159, 165, 3, 120, 60, 0, 160, 165, 3, 126, 63, 0, 161, 165,
3863
- 3, 128, 64, 0, 162, 165, 5, 8, 0, 0, 163, 165, 5, 28, 0, 0, 164, 159, 1, 0, 0, 0, 164,
3864
- 160, 1, 0, 0, 0, 164, 161, 1, 0, 0, 0, 164, 162, 1, 0, 0, 0, 164, 163, 1, 0, 0, 0, 165,
3865
- 5, 1, 0, 0, 0, 166, 169, 3, 8, 4, 0, 167, 169, 3, 12, 6, 0, 168, 166, 1, 0, 0, 0, 168, 167,
3866
- 1, 0, 0, 0, 169, 7, 1, 0, 0, 0, 170, 177, 3, 24, 12, 0, 171, 177, 3, 32, 16, 0, 172, 177,
3867
- 3, 30, 15, 0, 173, 177, 3, 40, 20, 0, 174, 177, 3, 110, 55, 0, 175, 177, 3, 114, 57,
3868
- 0, 176, 170, 1, 0, 0, 0, 176, 171, 1, 0, 0, 0, 176, 172, 1, 0, 0, 0, 176, 173, 1, 0, 0,
3869
- 0, 176, 174, 1, 0, 0, 0, 176, 175, 1, 0, 0, 0, 177, 9, 1, 0, 0, 0, 178, 179, 5, 64, 0, 0,
3870
- 179, 182, 5, 66, 0, 0, 180, 183, 5, 64, 0, 0, 181, 183, 3, 2, 1, 0, 182, 180, 1, 0, 0,
3871
- 0, 182, 181, 1, 0, 0, 0, 183, 184, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0,
3872
- 0, 185, 186, 1, 0, 0, 0, 186, 187, 5, 67, 0, 0, 187, 11, 1, 0, 0, 0, 188, 189, 7, 0, 0,
3873
- 0, 189, 190, 5, 1, 0, 0, 190, 191, 3, 10, 5, 0, 191, 13, 1, 0, 0, 0, 192, 193, 3, 76, 38,
3874
- 0, 193, 194, 5, 1, 0, 0, 194, 195, 5, 64, 0, 0, 195, 198, 5, 66, 0, 0, 196, 199, 5, 64,
3875
- 0, 0, 197, 199, 3, 16, 8, 0, 198, 196, 1, 0, 0, 0, 198, 197, 1, 0, 0, 0, 199, 200, 1, 0,
3876
- 0, 0, 200, 198, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 203, 5, 67,
3877
- 0, 0, 203, 15, 1, 0, 0, 0, 204, 205, 7, 1, 0, 0, 205, 206, 5, 1, 0, 0, 206, 207, 3, 68,
3878
- 34, 0, 207, 17, 1, 0, 0, 0, 208, 209, 5, 15, 0, 0, 209, 210, 3, 62, 31, 0, 210, 19, 1,
3879
- 0, 0, 0, 211, 212, 5, 56, 0, 0, 212, 215, 5, 1, 0, 0, 213, 216, 3, 68, 34, 0, 214, 216,
3880
- 5, 56, 0, 0, 215, 213, 1, 0, 0, 0, 215, 214, 1, 0, 0, 0, 216, 21, 1, 0, 0, 0, 217, 220,
3881
- 3, 62, 31, 0, 218, 220, 3, 50, 25, 0, 219, 217, 1, 0, 0, 0, 219, 218, 1, 0, 0, 0, 220,
3882
- 224, 1, 0, 0, 0, 221, 223, 3, 20, 10, 0, 222, 221, 1, 0, 0, 0, 223, 226, 1, 0, 0, 0, 224,
3883
- 222, 1, 0, 0, 0, 224, 225, 1, 0, 0, 0, 225, 228, 1, 0, 0, 0, 226, 224, 1, 0, 0, 0, 227,
3884
- 229, 3, 18, 9, 0, 228, 227, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 23, 1, 0, 0, 0, 230,
3885
- 231, 5, 16, 0, 0, 231, 232, 3, 22, 11, 0, 232, 25, 1, 0, 0, 0, 233, 237, 3, 22, 11, 0,
3886
- 234, 237, 3, 18, 9, 0, 235, 237, 5, 19, 0, 0, 236, 233, 1, 0, 0, 0, 236, 234, 1, 0, 0,
3887
- 0, 236, 235, 1, 0, 0, 0, 237, 27, 1, 0, 0, 0, 238, 239, 7, 2, 0, 0, 239, 29, 1, 0, 0, 0,
3888
- 240, 241, 5, 17, 0, 0, 241, 242, 3, 26, 13, 0, 242, 31, 1, 0, 0, 0, 243, 244, 5, 18, 0,
3889
- 0, 244, 249, 3, 26, 13, 0, 245, 246, 5, 2, 0, 0, 246, 248, 3, 26, 13, 0, 247, 245, 1,
3890
- 0, 0, 0, 248, 251, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 33, 1, 0,
3891
- 0, 0, 251, 249, 1, 0, 0, 0, 252, 253, 5, 17, 0, 0, 253, 254, 3, 26, 13, 0, 254, 255, 5,
3892
- 18, 0, 0, 255, 260, 3, 26, 13, 0, 256, 257, 5, 2, 0, 0, 257, 259, 3, 26, 13, 0, 258, 256,
3893
- 1, 0, 0, 0, 259, 262, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 260, 261, 1, 0, 0, 0, 261, 263,
3894
- 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 263, 264, 5, 1, 0, 0, 264, 265, 5, 64, 0, 0, 265, 268,
3895
- 5, 66, 0, 0, 266, 269, 5, 64, 0, 0, 267, 269, 3, 36, 18, 0, 268, 266, 1, 0, 0, 0, 268,
3896
- 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 270, 271, 1, 0, 0, 0, 271,
3897
- 272, 1, 0, 0, 0, 272, 273, 5, 67, 0, 0, 273, 35, 1, 0, 0, 0, 274, 275, 3, 28, 14, 0, 275,
3898
- 276, 5, 1, 0, 0, 276, 281, 3, 38, 19, 0, 277, 278, 5, 2, 0, 0, 278, 280, 3, 38, 19, 0,
3899
- 279, 277, 1, 0, 0, 0, 280, 283, 1, 0, 0, 0, 281, 279, 1, 0, 0, 0, 281, 282, 1, 0, 0, 0,
3900
- 282, 37, 1, 0, 0, 0, 283, 281, 1, 0, 0, 0, 284, 285, 7, 3, 0, 0, 285, 39, 1, 0, 0, 0, 286,
3901
- 287, 3, 30, 15, 0, 287, 288, 5, 1, 0, 0, 288, 289, 5, 64, 0, 0, 289, 292, 5, 66, 0, 0,
3902
- 290, 293, 5, 64, 0, 0, 291, 293, 3, 42, 21, 0, 292, 290, 1, 0, 0, 0, 292, 291, 1, 0, 0,
3903
- 0, 293, 294, 1, 0, 0, 0, 294, 292, 1, 0, 0, 0, 294, 295, 1, 0, 0, 0, 295, 296, 1, 0, 0,
3904
- 0, 296, 297, 5, 67, 0, 0, 297, 41, 1, 0, 0, 0, 298, 301, 3, 2, 1, 0, 299, 301, 3, 44, 22,
3905
- 0, 300, 298, 1, 0, 0, 0, 300, 299, 1, 0, 0, 0, 301, 43, 1, 0, 0, 0, 302, 303, 3, 28, 14,
3906
- 0, 303, 306, 5, 1, 0, 0, 304, 307, 3, 46, 23, 0, 305, 307, 3, 48, 24, 0, 306, 304, 1,
3907
- 0, 0, 0, 306, 305, 1, 0, 0, 0, 307, 45, 1, 0, 0, 0, 308, 311, 3, 2, 1, 0, 309, 311, 5, 54,
3908
- 0, 0, 310, 308, 1, 0, 0, 0, 310, 309, 1, 0, 0, 0, 311, 47, 1, 0, 0, 0, 312, 313, 3, 10,
3909
- 5, 0, 313, 49, 1, 0, 0, 0, 314, 317, 3, 76, 38, 0, 315, 317, 3, 82, 41, 0, 316, 314, 1,
3910
- 0, 0, 0, 316, 315, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 318, 319, 5, 3, 0, 0, 319, 320, 3,
3911
- 62, 31, 0, 320, 51, 1, 0, 0, 0, 321, 322, 3, 76, 38, 0, 322, 323, 7, 4, 0, 0, 323, 324,
3912
- 3, 62, 31, 0, 324, 53, 1, 0, 0, 0, 325, 326, 5, 56, 0, 0, 326, 327, 5, 3, 0, 0, 327, 328,
3913
- 3, 62, 31, 0, 328, 55, 1, 0, 0, 0, 329, 334, 3, 62, 31, 0, 330, 331, 5, 2, 0, 0, 331, 333,
3914
- 3, 62, 31, 0, 332, 330, 1, 0, 0, 0, 333, 336, 1, 0, 0, 0, 334, 332, 1, 0, 0, 0, 334, 335,
3915
- 1, 0, 0, 0, 335, 341, 1, 0, 0, 0, 336, 334, 1, 0, 0, 0, 337, 338, 5, 2, 0, 0, 338, 340,
3916
- 3, 54, 27, 0, 339, 337, 1, 0, 0, 0, 340, 343, 1, 0, 0, 0, 341, 339, 1, 0, 0, 0, 341, 342,
3917
- 1, 0, 0, 0, 342, 353, 1, 0, 0, 0, 343, 341, 1, 0, 0, 0, 344, 349, 3, 54, 27, 0, 345, 346,
3918
- 5, 2, 0, 0, 346, 348, 3, 54, 27, 0, 347, 345, 1, 0, 0, 0, 348, 351, 1, 0, 0, 0, 349, 347,
3919
- 1, 0, 0, 0, 349, 350, 1, 0, 0, 0, 350, 353, 1, 0, 0, 0, 351, 349, 1, 0, 0, 0, 352, 329,
3920
- 1, 0, 0, 0, 352, 344, 1, 0, 0, 0, 353, 57, 1, 0, 0, 0, 354, 355, 3, 76, 38, 0, 355, 356,
3921
- 5, 3, 0, 0, 356, 357, 3, 62, 31, 0, 357, 59, 1, 0, 0, 0, 358, 359, 5, 4, 0, 0, 359, 360,
3922
- 5, 56, 0, 0, 360, 361, 5, 3, 0, 0, 361, 362, 3, 62, 31, 0, 362, 61, 1, 0, 0, 0, 363, 364,
3923
- 6, 31, -1, 0, 364, 365, 5, 52, 0, 0, 365, 366, 3, 62, 31, 0, 366, 367, 5, 53, 0, 0, 367,
3924
- 381, 1, 0, 0, 0, 368, 371, 3, 68, 34, 0, 369, 371, 3, 76, 38, 0, 370, 368, 1, 0, 0, 0,
3925
- 370, 369, 1, 0, 0, 0, 371, 381, 1, 0, 0, 0, 372, 373, 3, 66, 33, 0, 373, 374, 3, 62, 31,
3926
- 11, 374, 381, 1, 0, 0, 0, 375, 381, 3, 90, 45, 0, 376, 381, 3, 94, 47, 0, 377, 381, 3,
3927
- 96, 48, 0, 378, 381, 3, 82, 41, 0, 379, 381, 3, 112, 56, 0, 380, 363, 1, 0, 0, 0, 380,
3928
- 370, 1, 0, 0, 0, 380, 372, 1, 0, 0, 0, 380, 375, 1, 0, 0, 0, 380, 376, 1, 0, 0, 0, 380,
3929
- 377, 1, 0, 0, 0, 380, 378, 1, 0, 0, 0, 380, 379, 1, 0, 0, 0, 381, 402, 1, 0, 0, 0, 382,
3930
- 383, 10, 10, 0, 0, 383, 384, 7, 5, 0, 0, 384, 401, 3, 62, 31, 11, 385, 386, 10, 9, 0,
3931
- 0, 386, 387, 7, 6, 0, 0, 387, 401, 3, 62, 31, 10, 388, 389, 10, 8, 0, 0, 389, 390, 3,
3932
- 64, 32, 0, 390, 391, 3, 62, 31, 9, 391, 401, 1, 0, 0, 0, 392, 393, 10, 7, 0, 0, 393, 394,
3933
- 7, 7, 0, 0, 394, 401, 3, 62, 31, 8, 395, 396, 10, 1, 0, 0, 396, 397, 5, 5, 0, 0, 397, 398,
3934
- 3, 62, 31, 0, 398, 399, 5, 6, 0, 0, 399, 401, 1, 0, 0, 0, 400, 382, 1, 0, 0, 0, 400, 385,
3935
- 1, 0, 0, 0, 400, 388, 1, 0, 0, 0, 400, 392, 1, 0, 0, 0, 400, 395, 1, 0, 0, 0, 401, 404,
3936
- 1, 0, 0, 0, 402, 400, 1, 0, 0, 0, 402, 403, 1, 0, 0, 0, 403, 63, 1, 0, 0, 0, 404, 402, 1,
3937
- 0, 0, 0, 405, 406, 7, 8, 0, 0, 406, 65, 1, 0, 0, 0, 407, 408, 7, 9, 0, 0, 408, 67, 1, 0,
3938
- 0, 0, 409, 411, 5, 43, 0, 0, 410, 409, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 1, 0,
3939
- 0, 0, 412, 413, 7, 10, 0, 0, 413, 69, 1, 0, 0, 0, 414, 415, 5, 23, 0, 0, 415, 416, 5, 56,
3940
- 0, 0, 416, 418, 5, 52, 0, 0, 417, 419, 3, 74, 37, 0, 418, 417, 1, 0, 0, 0, 418, 419, 1,
3941
- 0, 0, 0, 419, 420, 1, 0, 0, 0, 420, 421, 5, 53, 0, 0, 421, 422, 5, 1, 0, 0, 422, 423, 5,
3942
- 64, 0, 0, 423, 426, 5, 66, 0, 0, 424, 427, 5, 64, 0, 0, 425, 427, 3, 72, 36, 0, 426, 424,
3943
- 1, 0, 0, 0, 426, 425, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 428, 429,
3944
- 1, 0, 0, 0, 429, 430, 1, 0, 0, 0, 430, 431, 5, 67, 0, 0, 431, 71, 1, 0, 0, 0, 432, 435,
3945
- 3, 2, 1, 0, 433, 435, 3, 86, 43, 0, 434, 432, 1, 0, 0, 0, 434, 433, 1, 0, 0, 0, 435, 73,
3946
- 1, 0, 0, 0, 436, 441, 5, 56, 0, 0, 437, 438, 5, 2, 0, 0, 438, 440, 5, 56, 0, 0, 439, 437,
3947
- 1, 0, 0, 0, 440, 443, 1, 0, 0, 0, 441, 439, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 450,
3948
- 1, 0, 0, 0, 443, 441, 1, 0, 0, 0, 444, 445, 5, 2, 0, 0, 445, 446, 5, 56, 0, 0, 446, 447,
3949
- 5, 3, 0, 0, 447, 449, 3, 68, 34, 0, 448, 444, 1, 0, 0, 0, 449, 452, 1, 0, 0, 0, 450, 448,
3950
- 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 466, 1, 0, 0, 0, 452, 450, 1, 0, 0, 0, 453, 454,
3951
- 5, 56, 0, 0, 454, 455, 5, 3, 0, 0, 455, 462, 3, 68, 34, 0, 456, 457, 5, 2, 0, 0, 457, 458,
3952
- 5, 56, 0, 0, 458, 459, 5, 3, 0, 0, 459, 461, 3, 68, 34, 0, 460, 456, 1, 0, 0, 0, 461, 464,
3953
- 1, 0, 0, 0, 462, 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 462,
3954
- 1, 0, 0, 0, 465, 436, 1, 0, 0, 0, 465, 453, 1, 0, 0, 0, 466, 75, 1, 0, 0, 0, 467, 471, 5,
3955
- 56, 0, 0, 468, 470, 3, 80, 40, 0, 469, 468, 1, 0, 0, 0, 470, 473, 1, 0, 0, 0, 471, 469,
3956
- 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 77, 1, 0, 0, 0, 473, 471, 1, 0, 0, 0, 474, 476, 5,
3957
- 52, 0, 0, 475, 477, 3, 56, 28, 0, 476, 475, 1, 0, 0, 0, 476, 477, 1, 0, 0, 0, 477, 478,
3958
- 1, 0, 0, 0, 478, 481, 5, 53, 0, 0, 479, 481, 3, 80, 40, 0, 480, 474, 1, 0, 0, 0, 480, 479,
3959
- 1, 0, 0, 0, 481, 79, 1, 0, 0, 0, 482, 483, 5, 7, 0, 0, 483, 489, 5, 56, 0, 0, 484, 485,
3960
- 5, 5, 0, 0, 485, 486, 3, 62, 31, 0, 486, 487, 5, 6, 0, 0, 487, 489, 1, 0, 0, 0, 488, 482,
3961
- 1, 0, 0, 0, 488, 484, 1, 0, 0, 0, 489, 81, 1, 0, 0, 0, 490, 492, 3, 84, 42, 0, 491, 490,
3962
- 1, 0, 0, 0, 491, 492, 1, 0, 0, 0, 492, 493, 1, 0, 0, 0, 493, 495, 5, 56, 0, 0, 494, 496,
3963
- 3, 78, 39, 0, 495, 494, 1, 0, 0, 0, 496, 497, 1, 0, 0, 0, 497, 495, 1, 0, 0, 0, 497, 498,
3964
- 1, 0, 0, 0, 498, 83, 1, 0, 0, 0, 499, 501, 5, 42, 0, 0, 500, 499, 1, 0, 0, 0, 500, 501,
3965
- 1, 0, 0, 0, 501, 502, 1, 0, 0, 0, 502, 504, 5, 44, 0, 0, 503, 505, 3, 62, 31, 0, 504, 503,
3966
- 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 85, 1, 0, 0, 0, 506, 507, 5, 22, 0, 0, 507, 508,
3967
- 3, 62, 31, 0, 508, 87, 1, 0, 0, 0, 509, 510, 3, 104, 52, 0, 510, 511, 5, 1, 0, 0, 511,
3968
- 512, 3, 10, 5, 0, 512, 89, 1, 0, 0, 0, 513, 514, 5, 10, 0, 0, 514, 515, 5, 11, 0, 0, 515,
3969
- 516, 5, 1, 0, 0, 516, 517, 5, 64, 0, 0, 517, 520, 5, 66, 0, 0, 518, 521, 5, 64, 0, 0, 519,
3970
- 521, 3, 102, 51, 0, 520, 518, 1, 0, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522,
3971
- 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 5, 67, 0, 0, 525,
3972
- 91, 1, 0, 0, 0, 526, 527, 5, 64, 0, 0, 527, 530, 5, 66, 0, 0, 528, 531, 5, 64, 0, 0, 529,
3973
- 531, 3, 100, 50, 0, 530, 528, 1, 0, 0, 0, 530, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532,
3974
- 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, 535, 5, 67, 0, 0, 535,
3975
- 93, 1, 0, 0, 0, 536, 537, 5, 10, 0, 0, 537, 541, 5, 12, 0, 0, 538, 539, 5, 52, 0, 0, 539,
3976
- 540, 5, 56, 0, 0, 540, 542, 5, 53, 0, 0, 541, 538, 1, 0, 0, 0, 541, 542, 1, 0, 0, 0, 542,
3977
- 543, 1, 0, 0, 0, 543, 544, 5, 1, 0, 0, 544, 545, 3, 92, 46, 0, 545, 95, 1, 0, 0, 0, 546,
3978
- 547, 5, 10, 0, 0, 547, 548, 5, 13, 0, 0, 548, 549, 5, 1, 0, 0, 549, 550, 5, 64, 0, 0, 550,
3979
- 554, 5, 66, 0, 0, 551, 555, 5, 64, 0, 0, 552, 555, 3, 102, 51, 0, 553, 555, 3, 88, 44,
3980
- 0, 554, 551, 1, 0, 0, 0, 554, 552, 1, 0, 0, 0, 554, 553, 1, 0, 0, 0, 555, 556, 1, 0, 0,
3981
- 0, 556, 554, 1, 0, 0, 0, 556, 557, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 559, 5, 67, 0,
3982
- 0, 559, 97, 1, 0, 0, 0, 560, 561, 5, 64, 0, 0, 561, 564, 5, 66, 0, 0, 562, 565, 5, 64,
3983
- 0, 0, 563, 565, 3, 102, 51, 0, 564, 562, 1, 0, 0, 0, 564, 563, 1, 0, 0, 0, 565, 566, 1,
3984
- 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 567, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 5,
3985
- 67, 0, 0, 569, 99, 1, 0, 0, 0, 570, 572, 7, 11, 0, 0, 571, 573, 5, 1, 0, 0, 572, 571, 1,
3986
- 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 580, 1, 0, 0, 0, 574, 581, 3, 56, 28, 0, 575, 576,
3987
- 5, 52, 0, 0, 576, 577, 3, 56, 28, 0, 577, 578, 5, 53, 0, 0, 578, 581, 1, 0, 0, 0, 579,
3988
- 581, 3, 98, 49, 0, 580, 574, 1, 0, 0, 0, 580, 575, 1, 0, 0, 0, 580, 579, 1, 0, 0, 0, 581,
3989
- 597, 1, 0, 0, 0, 582, 583, 5, 25, 0, 0, 583, 588, 5, 56, 0, 0, 584, 585, 5, 2, 0, 0, 585,
3990
- 587, 5, 56, 0, 0, 586, 584, 1, 0, 0, 0, 587, 590, 1, 0, 0, 0, 588, 586, 1, 0, 0, 0, 588,
3991
- 589, 1, 0, 0, 0, 589, 591, 1, 0, 0, 0, 590, 588, 1, 0, 0, 0, 591, 592, 5, 26, 0, 0, 592,
3992
- 593, 3, 62, 31, 0, 593, 594, 5, 1, 0, 0, 594, 595, 3, 92, 46, 0, 595, 597, 1, 0, 0, 0,
3993
- 596, 570, 1, 0, 0, 0, 596, 582, 1, 0, 0, 0, 597, 101, 1, 0, 0, 0, 598, 599, 3, 104, 52,
3994
- 0, 599, 600, 5, 1, 0, 0, 600, 601, 3, 106, 53, 0, 601, 103, 1, 0, 0, 0, 602, 603, 7, 12,
3995
- 0, 0, 603, 105, 1, 0, 0, 0, 604, 614, 3, 98, 49, 0, 605, 610, 3, 62, 31, 0, 606, 607,
3996
- 5, 2, 0, 0, 607, 609, 3, 62, 31, 0, 608, 606, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608,
3997
- 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 604,
3998
- 1, 0, 0, 0, 613, 605, 1, 0, 0, 0, 614, 107, 1, 0, 0, 0, 615, 618, 5, 56, 0, 0, 616, 619,
3999
- 5, 57, 0, 0, 617, 619, 3, 62, 31, 0, 618, 616, 1, 0, 0, 0, 618, 617, 1, 0, 0, 0, 619, 622,
4000
- 1, 0, 0, 0, 620, 622, 5, 56, 0, 0, 621, 615, 1, 0, 0, 0, 621, 620, 1, 0, 0, 0, 622, 109,
4001
- 1, 0, 0, 0, 623, 627, 5, 14, 0, 0, 624, 626, 3, 108, 54, 0, 625, 624, 1, 0, 0, 0, 626,
4002
- 629, 1, 0, 0, 0, 627, 625, 1, 0, 0, 0, 627, 628, 1, 0, 0, 0, 628, 111, 1, 0, 0, 0, 629,
4003
- 627, 1, 0, 0, 0, 630, 641, 5, 5, 0, 0, 631, 636, 3, 62, 31, 0, 632, 633, 5, 2, 0, 0, 633,
4004
- 635, 3, 62, 31, 0, 634, 632, 1, 0, 0, 0, 635, 638, 1, 0, 0, 0, 636, 634, 1, 0, 0, 0, 636,
4005
- 637, 1, 0, 0, 0, 637, 640, 1, 0, 0, 0, 638, 636, 1, 0, 0, 0, 639, 631, 1, 0, 0, 0, 640,
4006
- 643, 1, 0, 0, 0, 641, 639, 1, 0, 0, 0, 641, 642, 1, 0, 0, 0, 642, 644, 1, 0, 0, 0, 643,
4007
- 641, 1, 0, 0, 0, 644, 645, 5, 6, 0, 0, 645, 113, 1, 0, 0, 0, 646, 649, 5, 19, 0, 0, 647,
4008
- 650, 5, 56, 0, 0, 648, 650, 3, 62, 31, 0, 649, 647, 1, 0, 0, 0, 649, 648, 1, 0, 0, 0, 650,
4009
- 115, 1, 0, 0, 0, 651, 652, 5, 24, 0, 0, 652, 653, 5, 56, 0, 0, 653, 117, 1, 0, 0, 0, 654,
4010
- 655, 7, 13, 0, 0, 655, 656, 5, 1, 0, 0, 656, 657, 3, 10, 5, 0, 657, 119, 1, 0, 0, 0, 658,
4011
- 659, 5, 29, 0, 0, 659, 660, 3, 62, 31, 0, 660, 661, 5, 1, 0, 0, 661, 665, 3, 10, 5, 0,
4012
- 662, 664, 3, 122, 61, 0, 663, 662, 1, 0, 0, 0, 664, 667, 1, 0, 0, 0, 665, 663, 1, 0, 0,
4013
- 0, 665, 666, 1, 0, 0, 0, 666, 669, 1, 0, 0, 0, 667, 665, 1, 0, 0, 0, 668, 670, 3, 124,
4014
- 62, 0, 669, 668, 1, 0, 0, 0, 669, 670, 1, 0, 0, 0, 670, 121, 1, 0, 0, 0, 671, 672, 5, 30,
4015
- 0, 0, 672, 673, 5, 29, 0, 0, 673, 674, 3, 62, 31, 0, 674, 675, 5, 1, 0, 0, 675, 676, 3,
4016
- 10, 5, 0, 676, 123, 1, 0, 0, 0, 677, 678, 5, 30, 0, 0, 678, 679, 5, 1, 0, 0, 679, 680,
4017
- 3, 10, 5, 0, 680, 125, 1, 0, 0, 0, 681, 682, 5, 27, 0, 0, 682, 683, 3, 62, 31, 0, 683,
4018
- 684, 5, 1, 0, 0, 684, 685, 3, 10, 5, 0, 685, 127, 1, 0, 0, 0, 686, 687, 5, 25, 0, 0, 687,
4019
- 692, 5, 56, 0, 0, 688, 689, 5, 2, 0, 0, 689, 691, 5, 56, 0, 0, 690, 688, 1, 0, 0, 0, 691,
4020
- 694, 1, 0, 0, 0, 692, 690, 1, 0, 0, 0, 692, 693, 1, 0, 0, 0, 693, 695, 1, 0, 0, 0, 694,
4021
- 692, 1, 0, 0, 0, 695, 696, 5, 26, 0, 0, 696, 697, 3, 62, 31, 0, 697, 698, 5, 1, 0, 0, 698,
4022
- 699, 3, 10, 5, 0, 699, 129, 1, 0, 0, 0, 77, 132, 134, 139, 141, 157, 164, 168, 176,
4023
- 182, 184, 198, 200, 215, 219, 224, 228, 236, 249, 260, 268, 270, 281, 292, 294,
4024
- 300, 306, 310, 316, 334, 341, 349, 352, 370, 380, 400, 402, 410, 418, 426, 428,
4025
- 434, 441, 450, 462, 465, 471, 476, 480, 488, 491, 497, 500, 504, 520, 522, 530,
4026
- 532, 541, 554, 556, 564, 566, 572, 580, 588, 596, 610, 613, 618, 621, 627, 636,
4027
- 641, 649, 665, 669, 692
3864
+ 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,
3865
+ 2, 66, 7, 66, 1, 0, 1, 0, 5, 0, 137, 8, 0, 10, 0, 12, 0, 140, 9, 0, 1, 0, 1, 0, 4, 0, 144,
3866
+ 8, 0, 11, 0, 12, 0, 145, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3867
+ 1, 1, 1, 1, 1, 1, 1, 3, 1, 163, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 170, 8, 2, 1, 3, 1,
3868
+ 3, 3, 3, 174, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 182, 8, 4, 1, 5, 1, 5, 1, 5, 1,
3869
+ 5, 4, 5, 188, 8, 5, 11, 5, 12, 5, 189, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7,
3870
+ 1, 7, 1, 7, 1, 7, 4, 7, 204, 8, 7, 11, 7, 12, 7, 205, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1,
3871
+ 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 221, 8, 10, 1, 11, 1, 11, 3, 11, 225, 8,
3872
+ 11, 1, 11, 5, 11, 228, 8, 11, 10, 11, 12, 11, 231, 9, 11, 1, 11, 3, 11, 234, 8, 11, 1,
3873
+ 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 3, 13, 242, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1,
3874
+ 15, 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 253, 8, 16, 10, 16, 12, 16, 256, 9, 16, 1, 17, 1,
3875
+ 17, 1, 17, 1, 17, 1, 17, 1, 17, 5, 17, 264, 8, 17, 10, 17, 12, 17, 267, 9, 17, 1, 17, 1,
3876
+ 17, 1, 17, 1, 17, 1, 17, 4, 17, 274, 8, 17, 11, 17, 12, 17, 275, 1, 17, 1, 17, 1, 18, 1,
3877
+ 18, 1, 18, 1, 18, 1, 18, 5, 18, 285, 8, 18, 10, 18, 12, 18, 288, 9, 18, 1, 19, 1, 19, 1,
3878
+ 20, 1, 20, 1, 20, 1, 20, 1, 20, 4, 20, 297, 8, 20, 11, 20, 12, 20, 298, 1, 20, 1, 20, 1,
3879
+ 21, 1, 21, 3, 21, 305, 8, 21, 1, 22, 1, 22, 1, 22, 5, 22, 310, 8, 22, 10, 22, 12, 22, 313,
3880
+ 9, 22, 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 319, 8, 23, 1, 24, 1, 24, 3, 24, 323, 8, 24, 1,
3881
+ 25, 1, 25, 1, 26, 1, 26, 3, 26, 329, 8, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1,
3882
+ 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 5, 29, 345, 8, 29, 10, 29, 12, 29,
3883
+ 348, 9, 29, 1, 29, 1, 29, 5, 29, 352, 8, 29, 10, 29, 12, 29, 355, 9, 29, 1, 29, 1, 29,
3884
+ 1, 29, 5, 29, 360, 8, 29, 10, 29, 12, 29, 363, 9, 29, 3, 29, 365, 8, 29, 1, 30, 1, 30,
3885
+ 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
3886
+ 1, 32, 3, 32, 383, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 3, 32,
3887
+ 393, 8, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32,
3888
+ 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 5, 32, 413, 8, 32, 10, 32, 12, 32, 416,
3889
+ 9, 32, 1, 33, 1, 33, 1, 34, 1, 34, 1, 35, 3, 35, 423, 8, 35, 1, 35, 1, 35, 1, 36, 1, 36,
3890
+ 1, 36, 1, 36, 3, 36, 431, 8, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 4, 36, 439, 8,
3891
+ 36, 11, 36, 12, 36, 440, 1, 36, 1, 36, 1, 37, 1, 37, 3, 37, 447, 8, 37, 1, 38, 1, 38, 1,
3892
+ 38, 5, 38, 452, 8, 38, 10, 38, 12, 38, 455, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38, 461,
3893
+ 8, 38, 10, 38, 12, 38, 464, 9, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 5, 38,
3894
+ 473, 8, 38, 10, 38, 12, 38, 476, 9, 38, 3, 38, 478, 8, 38, 1, 39, 1, 39, 5, 39, 482, 8,
3895
+ 39, 10, 39, 12, 39, 485, 9, 39, 1, 40, 1, 40, 3, 40, 489, 8, 40, 1, 40, 1, 40, 3, 40, 493,
3896
+ 8, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 501, 8, 41, 1, 42, 3, 42, 504, 8,
3897
+ 42, 1, 42, 1, 42, 4, 42, 508, 8, 42, 11, 42, 12, 42, 509, 1, 43, 3, 43, 513, 8, 43, 1,
3898
+ 43, 1, 43, 3, 43, 517, 8, 43, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1,
3899
+ 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 4, 46, 533, 8, 46, 11, 46, 12, 46, 534, 1, 46, 1,
3900
+ 46, 1, 47, 1, 47, 1, 47, 1, 47, 4, 47, 543, 8, 47, 11, 47, 12, 47, 544, 1, 47, 1, 47, 1,
3901
+ 48, 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 554, 8, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1,
3902
+ 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 4, 49, 567, 8, 49, 11, 49, 12, 49, 568, 1, 49, 1,
3903
+ 49, 1, 50, 1, 50, 1, 50, 1, 50, 4, 50, 577, 8, 50, 11, 50, 12, 50, 578, 1, 50, 1, 50, 1,
3904
+ 51, 1, 51, 3, 51, 585, 8, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 3, 51, 593, 8, 51,
3905
+ 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 599, 8, 51, 10, 51, 12, 51, 602, 9, 51, 1, 51, 1, 51,
3906
+ 1, 51, 1, 51, 1, 51, 3, 51, 609, 8, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54,
3907
+ 1, 54, 1, 54, 1, 54, 5, 54, 621, 8, 54, 10, 54, 12, 54, 624, 9, 54, 3, 54, 626, 8, 54,
3908
+ 1, 55, 1, 55, 1, 55, 3, 55, 631, 8, 55, 1, 55, 3, 55, 634, 8, 55, 1, 56, 1, 56, 5, 56, 638,
3909
+ 8, 56, 10, 56, 12, 56, 641, 9, 56, 1, 57, 1, 57, 1, 57, 1, 57, 5, 57, 647, 8, 57, 10, 57,
3910
+ 12, 57, 650, 9, 57, 5, 57, 652, 8, 57, 10, 57, 12, 57, 655, 9, 57, 1, 57, 1, 57, 1, 58,
3911
+ 1, 58, 1, 58, 3, 58, 662, 8, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61,
3912
+ 1, 61, 1, 61, 1, 61, 1, 61, 5, 61, 676, 8, 61, 10, 61, 12, 61, 679, 9, 61, 1, 61, 3, 61,
3913
+ 682, 8, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64,
3914
+ 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 5, 65, 703, 8, 65, 10, 65, 12, 65,
3915
+ 706, 9, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 0, 1, 64, 67,
3916
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44,
3917
+ 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88,
3918
+ 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
3919
+ 126, 128, 130, 132, 0, 14, 2, 0, 9, 9, 19, 21, 1, 0, 57, 58, 2, 0, 58, 58, 61, 61, 2, 0,
3920
+ 55, 55, 58, 58, 1, 0, 47, 51, 1, 0, 44, 46, 1, 0, 42, 43, 1, 0, 40, 41, 1, 0, 34, 39, 2,
3921
+ 0, 31, 31, 43, 43, 2, 0, 56, 56, 58, 62, 2, 0, 15, 15, 57, 57, 2, 0, 57, 58, 61, 61, 1,
3922
+ 0, 32, 33, 756, 0, 138, 1, 0, 0, 0, 2, 162, 1, 0, 0, 0, 4, 169, 1, 0, 0, 0, 6, 173, 1, 0,
3923
+ 0, 0, 8, 181, 1, 0, 0, 0, 10, 183, 1, 0, 0, 0, 12, 193, 1, 0, 0, 0, 14, 197, 1, 0, 0, 0, 16,
3924
+ 209, 1, 0, 0, 0, 18, 213, 1, 0, 0, 0, 20, 216, 1, 0, 0, 0, 22, 224, 1, 0, 0, 0, 24, 235,
3925
+ 1, 0, 0, 0, 26, 241, 1, 0, 0, 0, 28, 243, 1, 0, 0, 0, 30, 245, 1, 0, 0, 0, 32, 248, 1, 0,
3926
+ 0, 0, 34, 257, 1, 0, 0, 0, 36, 279, 1, 0, 0, 0, 38, 289, 1, 0, 0, 0, 40, 291, 1, 0, 0, 0,
3927
+ 42, 304, 1, 0, 0, 0, 44, 306, 1, 0, 0, 0, 46, 314, 1, 0, 0, 0, 48, 322, 1, 0, 0, 0, 50, 324,
3928
+ 1, 0, 0, 0, 52, 328, 1, 0, 0, 0, 54, 333, 1, 0, 0, 0, 56, 337, 1, 0, 0, 0, 58, 364, 1, 0,
3929
+ 0, 0, 60, 366, 1, 0, 0, 0, 62, 370, 1, 0, 0, 0, 64, 392, 1, 0, 0, 0, 66, 417, 1, 0, 0, 0,
3930
+ 68, 419, 1, 0, 0, 0, 70, 422, 1, 0, 0, 0, 72, 426, 1, 0, 0, 0, 74, 446, 1, 0, 0, 0, 76, 477,
3931
+ 1, 0, 0, 0, 78, 479, 1, 0, 0, 0, 80, 492, 1, 0, 0, 0, 82, 500, 1, 0, 0, 0, 84, 503, 1, 0,
3932
+ 0, 0, 86, 512, 1, 0, 0, 0, 88, 518, 1, 0, 0, 0, 90, 521, 1, 0, 0, 0, 92, 525, 1, 0, 0, 0,
3933
+ 94, 538, 1, 0, 0, 0, 96, 548, 1, 0, 0, 0, 98, 558, 1, 0, 0, 0, 100, 572, 1, 0, 0, 0, 102,
3934
+ 608, 1, 0, 0, 0, 104, 610, 1, 0, 0, 0, 106, 614, 1, 0, 0, 0, 108, 625, 1, 0, 0, 0, 110,
3935
+ 633, 1, 0, 0, 0, 112, 635, 1, 0, 0, 0, 114, 642, 1, 0, 0, 0, 116, 658, 1, 0, 0, 0, 118,
3936
+ 663, 1, 0, 0, 0, 120, 666, 1, 0, 0, 0, 122, 670, 1, 0, 0, 0, 124, 683, 1, 0, 0, 0, 126,
3937
+ 689, 1, 0, 0, 0, 128, 693, 1, 0, 0, 0, 130, 698, 1, 0, 0, 0, 132, 712, 1, 0, 0, 0, 134,
3938
+ 137, 3, 118, 59, 0, 135, 137, 5, 65, 0, 0, 136, 134, 1, 0, 0, 0, 136, 135, 1, 0, 0, 0,
3939
+ 137, 140, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 143, 1, 0, 0, 0,
3940
+ 140, 138, 1, 0, 0, 0, 141, 144, 3, 2, 1, 0, 142, 144, 5, 65, 0, 0, 143, 141, 1, 0, 0, 0,
3941
+ 143, 142, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0,
3942
+ 146, 147, 1, 0, 0, 0, 147, 148, 5, 0, 0, 1, 148, 1, 1, 0, 0, 0, 149, 163, 3, 6, 3, 0, 150,
3943
+ 163, 3, 52, 26, 0, 151, 163, 3, 54, 27, 0, 152, 163, 3, 60, 30, 0, 153, 163, 3, 14, 7,
3944
+ 0, 154, 163, 3, 62, 31, 0, 155, 163, 3, 72, 36, 0, 156, 163, 3, 84, 42, 0, 157, 163,
3945
+ 3, 118, 59, 0, 158, 163, 3, 78, 39, 0, 159, 163, 3, 120, 60, 0, 160, 163, 3, 4, 2, 0,
3946
+ 161, 163, 3, 132, 66, 0, 162, 149, 1, 0, 0, 0, 162, 150, 1, 0, 0, 0, 162, 151, 1, 0, 0,
3947
+ 0, 162, 152, 1, 0, 0, 0, 162, 153, 1, 0, 0, 0, 162, 154, 1, 0, 0, 0, 162, 155, 1, 0, 0,
3948
+ 0, 162, 156, 1, 0, 0, 0, 162, 157, 1, 0, 0, 0, 162, 158, 1, 0, 0, 0, 162, 159, 1, 0, 0,
3949
+ 0, 162, 160, 1, 0, 0, 0, 162, 161, 1, 0, 0, 0, 163, 3, 1, 0, 0, 0, 164, 170, 3, 122, 61,
3950
+ 0, 165, 170, 3, 128, 64, 0, 166, 170, 3, 130, 65, 0, 167, 170, 5, 8, 0, 0, 168, 170,
3951
+ 5, 28, 0, 0, 169, 164, 1, 0, 0, 0, 169, 165, 1, 0, 0, 0, 169, 166, 1, 0, 0, 0, 169, 167,
3952
+ 1, 0, 0, 0, 169, 168, 1, 0, 0, 0, 170, 5, 1, 0, 0, 0, 171, 174, 3, 8, 4, 0, 172, 174, 3,
3953
+ 12, 6, 0, 173, 171, 1, 0, 0, 0, 173, 172, 1, 0, 0, 0, 174, 7, 1, 0, 0, 0, 175, 182, 3, 24,
3954
+ 12, 0, 176, 182, 3, 32, 16, 0, 177, 182, 3, 30, 15, 0, 178, 182, 3, 40, 20, 0, 179, 182,
3955
+ 3, 112, 56, 0, 180, 182, 3, 116, 58, 0, 181, 175, 1, 0, 0, 0, 181, 176, 1, 0, 0, 0, 181,
3956
+ 177, 1, 0, 0, 0, 181, 178, 1, 0, 0, 0, 181, 179, 1, 0, 0, 0, 181, 180, 1, 0, 0, 0, 182,
3957
+ 9, 1, 0, 0, 0, 183, 184, 5, 65, 0, 0, 184, 187, 5, 67, 0, 0, 185, 188, 5, 65, 0, 0, 186,
3958
+ 188, 3, 2, 1, 0, 187, 185, 1, 0, 0, 0, 187, 186, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189,
3959
+ 187, 1, 0, 0, 0, 189, 190, 1, 0, 0, 0, 190, 191, 1, 0, 0, 0, 191, 192, 5, 68, 0, 0, 192,
3960
+ 11, 1, 0, 0, 0, 193, 194, 7, 0, 0, 0, 194, 195, 5, 1, 0, 0, 195, 196, 3, 10, 5, 0, 196,
3961
+ 13, 1, 0, 0, 0, 197, 198, 3, 78, 39, 0, 198, 199, 5, 1, 0, 0, 199, 200, 5, 65, 0, 0, 200,
3962
+ 203, 5, 67, 0, 0, 201, 204, 5, 65, 0, 0, 202, 204, 3, 16, 8, 0, 203, 201, 1, 0, 0, 0, 203,
3963
+ 202, 1, 0, 0, 0, 204, 205, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206,
3964
+ 207, 1, 0, 0, 0, 207, 208, 5, 68, 0, 0, 208, 15, 1, 0, 0, 0, 209, 210, 7, 1, 0, 0, 210,
3965
+ 211, 5, 1, 0, 0, 211, 212, 3, 70, 35, 0, 212, 17, 1, 0, 0, 0, 213, 214, 5, 15, 0, 0, 214,
3966
+ 215, 3, 64, 32, 0, 215, 19, 1, 0, 0, 0, 216, 217, 5, 57, 0, 0, 217, 220, 5, 1, 0, 0, 218,
3967
+ 221, 3, 70, 35, 0, 219, 221, 5, 57, 0, 0, 220, 218, 1, 0, 0, 0, 220, 219, 1, 0, 0, 0, 221,
3968
+ 21, 1, 0, 0, 0, 222, 225, 3, 64, 32, 0, 223, 225, 3, 52, 26, 0, 224, 222, 1, 0, 0, 0, 224,
3969
+ 223, 1, 0, 0, 0, 225, 229, 1, 0, 0, 0, 226, 228, 3, 20, 10, 0, 227, 226, 1, 0, 0, 0, 228,
3970
+ 231, 1, 0, 0, 0, 229, 227, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 233, 1, 0, 0, 0, 231,
3971
+ 229, 1, 0, 0, 0, 232, 234, 3, 18, 9, 0, 233, 232, 1, 0, 0, 0, 233, 234, 1, 0, 0, 0, 234,
3972
+ 23, 1, 0, 0, 0, 235, 236, 5, 16, 0, 0, 236, 237, 3, 22, 11, 0, 237, 25, 1, 0, 0, 0, 238,
3973
+ 242, 3, 22, 11, 0, 239, 242, 3, 18, 9, 0, 240, 242, 5, 19, 0, 0, 241, 238, 1, 0, 0, 0,
3974
+ 241, 239, 1, 0, 0, 0, 241, 240, 1, 0, 0, 0, 242, 27, 1, 0, 0, 0, 243, 244, 7, 2, 0, 0, 244,
3975
+ 29, 1, 0, 0, 0, 245, 246, 5, 17, 0, 0, 246, 247, 3, 26, 13, 0, 247, 31, 1, 0, 0, 0, 248,
3976
+ 249, 5, 18, 0, 0, 249, 254, 3, 26, 13, 0, 250, 251, 5, 2, 0, 0, 251, 253, 3, 26, 13, 0,
3977
+ 252, 250, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 254, 255, 1, 0, 0, 0,
3978
+ 255, 33, 1, 0, 0, 0, 256, 254, 1, 0, 0, 0, 257, 258, 5, 17, 0, 0, 258, 259, 3, 26, 13,
3979
+ 0, 259, 260, 5, 18, 0, 0, 260, 265, 3, 26, 13, 0, 261, 262, 5, 2, 0, 0, 262, 264, 3, 26,
3980
+ 13, 0, 263, 261, 1, 0, 0, 0, 264, 267, 1, 0, 0, 0, 265, 263, 1, 0, 0, 0, 265, 266, 1, 0,
3981
+ 0, 0, 266, 268, 1, 0, 0, 0, 267, 265, 1, 0, 0, 0, 268, 269, 5, 1, 0, 0, 269, 270, 5, 65,
3982
+ 0, 0, 270, 273, 5, 67, 0, 0, 271, 274, 5, 65, 0, 0, 272, 274, 3, 36, 18, 0, 273, 271,
3983
+ 1, 0, 0, 0, 273, 272, 1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 273, 1, 0, 0, 0, 275, 276,
3984
+ 1, 0, 0, 0, 276, 277, 1, 0, 0, 0, 277, 278, 5, 68, 0, 0, 278, 35, 1, 0, 0, 0, 279, 280,
3985
+ 3, 28, 14, 0, 280, 281, 5, 1, 0, 0, 281, 286, 3, 38, 19, 0, 282, 283, 5, 2, 0, 0, 283,
3986
+ 285, 3, 38, 19, 0, 284, 282, 1, 0, 0, 0, 285, 288, 1, 0, 0, 0, 286, 284, 1, 0, 0, 0, 286,
3987
+ 287, 1, 0, 0, 0, 287, 37, 1, 0, 0, 0, 288, 286, 1, 0, 0, 0, 289, 290, 7, 3, 0, 0, 290, 39,
3988
+ 1, 0, 0, 0, 291, 292, 3, 44, 22, 0, 292, 293, 5, 65, 0, 0, 293, 296, 5, 67, 0, 0, 294,
3989
+ 297, 5, 65, 0, 0, 295, 297, 3, 42, 21, 0, 296, 294, 1, 0, 0, 0, 296, 295, 1, 0, 0, 0, 297,
3990
+ 298, 1, 0, 0, 0, 298, 296, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300,
3991
+ 301, 5, 68, 0, 0, 301, 41, 1, 0, 0, 0, 302, 305, 3, 2, 1, 0, 303, 305, 3, 46, 23, 0, 304,
3992
+ 302, 1, 0, 0, 0, 304, 303, 1, 0, 0, 0, 305, 43, 1, 0, 0, 0, 306, 307, 3, 30, 15, 0, 307,
3993
+ 311, 5, 1, 0, 0, 308, 310, 3, 132, 66, 0, 309, 308, 1, 0, 0, 0, 310, 313, 1, 0, 0, 0, 311,
3994
+ 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 45, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 315,
3995
+ 3, 28, 14, 0, 315, 318, 5, 1, 0, 0, 316, 319, 3, 48, 24, 0, 317, 319, 3, 50, 25, 0, 318,
3996
+ 316, 1, 0, 0, 0, 318, 317, 1, 0, 0, 0, 319, 47, 1, 0, 0, 0, 320, 323, 3, 2, 1, 0, 321, 323,
3997
+ 5, 55, 0, 0, 322, 320, 1, 0, 0, 0, 322, 321, 1, 0, 0, 0, 323, 49, 1, 0, 0, 0, 324, 325,
3998
+ 3, 10, 5, 0, 325, 51, 1, 0, 0, 0, 326, 329, 3, 78, 39, 0, 327, 329, 3, 84, 42, 0, 328,
3999
+ 326, 1, 0, 0, 0, 328, 327, 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 5, 3, 0, 0, 331,
4000
+ 332, 3, 64, 32, 0, 332, 53, 1, 0, 0, 0, 333, 334, 3, 78, 39, 0, 334, 335, 7, 4, 0, 0, 335,
4001
+ 336, 3, 64, 32, 0, 336, 55, 1, 0, 0, 0, 337, 338, 5, 57, 0, 0, 338, 339, 5, 3, 0, 0, 339,
4002
+ 340, 3, 64, 32, 0, 340, 57, 1, 0, 0, 0, 341, 346, 3, 64, 32, 0, 342, 343, 5, 2, 0, 0, 343,
4003
+ 345, 3, 64, 32, 0, 344, 342, 1, 0, 0, 0, 345, 348, 1, 0, 0, 0, 346, 344, 1, 0, 0, 0, 346,
4004
+ 347, 1, 0, 0, 0, 347, 353, 1, 0, 0, 0, 348, 346, 1, 0, 0, 0, 349, 350, 5, 2, 0, 0, 350,
4005
+ 352, 3, 56, 28, 0, 351, 349, 1, 0, 0, 0, 352, 355, 1, 0, 0, 0, 353, 351, 1, 0, 0, 0, 353,
4006
+ 354, 1, 0, 0, 0, 354, 365, 1, 0, 0, 0, 355, 353, 1, 0, 0, 0, 356, 361, 3, 56, 28, 0, 357,
4007
+ 358, 5, 2, 0, 0, 358, 360, 3, 56, 28, 0, 359, 357, 1, 0, 0, 0, 360, 363, 1, 0, 0, 0, 361,
4008
+ 359, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 361, 1, 0, 0, 0, 364,
4009
+ 341, 1, 0, 0, 0, 364, 356, 1, 0, 0, 0, 365, 59, 1, 0, 0, 0, 366, 367, 3, 78, 39, 0, 367,
4010
+ 368, 5, 3, 0, 0, 368, 369, 3, 64, 32, 0, 369, 61, 1, 0, 0, 0, 370, 371, 5, 4, 0, 0, 371,
4011
+ 372, 5, 57, 0, 0, 372, 373, 5, 3, 0, 0, 373, 374, 3, 64, 32, 0, 374, 63, 1, 0, 0, 0, 375,
4012
+ 376, 6, 32, -1, 0, 376, 377, 5, 53, 0, 0, 377, 378, 3, 64, 32, 0, 378, 379, 5, 54, 0,
4013
+ 0, 379, 393, 1, 0, 0, 0, 380, 383, 3, 70, 35, 0, 381, 383, 3, 78, 39, 0, 382, 380, 1,
4014
+ 0, 0, 0, 382, 381, 1, 0, 0, 0, 383, 393, 1, 0, 0, 0, 384, 385, 3, 68, 34, 0, 385, 386,
4015
+ 3, 64, 32, 11, 386, 393, 1, 0, 0, 0, 387, 393, 3, 92, 46, 0, 388, 393, 3, 96, 48, 0, 389,
4016
+ 393, 3, 98, 49, 0, 390, 393, 3, 84, 42, 0, 391, 393, 3, 114, 57, 0, 392, 375, 1, 0, 0,
4017
+ 0, 392, 382, 1, 0, 0, 0, 392, 384, 1, 0, 0, 0, 392, 387, 1, 0, 0, 0, 392, 388, 1, 0, 0,
4018
+ 0, 392, 389, 1, 0, 0, 0, 392, 390, 1, 0, 0, 0, 392, 391, 1, 0, 0, 0, 393, 414, 1, 0, 0,
4019
+ 0, 394, 395, 10, 10, 0, 0, 395, 396, 7, 5, 0, 0, 396, 413, 3, 64, 32, 11, 397, 398, 10,
4020
+ 9, 0, 0, 398, 399, 7, 6, 0, 0, 399, 413, 3, 64, 32, 10, 400, 401, 10, 8, 0, 0, 401, 402,
4021
+ 3, 66, 33, 0, 402, 403, 3, 64, 32, 9, 403, 413, 1, 0, 0, 0, 404, 405, 10, 7, 0, 0, 405,
4022
+ 406, 7, 7, 0, 0, 406, 413, 3, 64, 32, 8, 407, 408, 10, 1, 0, 0, 408, 409, 5, 5, 0, 0, 409,
4023
+ 410, 3, 64, 32, 0, 410, 411, 5, 6, 0, 0, 411, 413, 1, 0, 0, 0, 412, 394, 1, 0, 0, 0, 412,
4024
+ 397, 1, 0, 0, 0, 412, 400, 1, 0, 0, 0, 412, 404, 1, 0, 0, 0, 412, 407, 1, 0, 0, 0, 413,
4025
+ 416, 1, 0, 0, 0, 414, 412, 1, 0, 0, 0, 414, 415, 1, 0, 0, 0, 415, 65, 1, 0, 0, 0, 416, 414,
4026
+ 1, 0, 0, 0, 417, 418, 7, 8, 0, 0, 418, 67, 1, 0, 0, 0, 419, 420, 7, 9, 0, 0, 420, 69, 1,
4027
+ 0, 0, 0, 421, 423, 5, 43, 0, 0, 422, 421, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0, 423, 424, 1,
4028
+ 0, 0, 0, 424, 425, 7, 10, 0, 0, 425, 71, 1, 0, 0, 0, 426, 427, 5, 23, 0, 0, 427, 428, 5,
4029
+ 57, 0, 0, 428, 430, 5, 53, 0, 0, 429, 431, 3, 76, 38, 0, 430, 429, 1, 0, 0, 0, 430, 431,
4030
+ 1, 0, 0, 0, 431, 432, 1, 0, 0, 0, 432, 433, 5, 54, 0, 0, 433, 434, 5, 1, 0, 0, 434, 435,
4031
+ 5, 65, 0, 0, 435, 438, 5, 67, 0, 0, 436, 439, 5, 65, 0, 0, 437, 439, 3, 74, 37, 0, 438,
4032
+ 436, 1, 0, 0, 0, 438, 437, 1, 0, 0, 0, 439, 440, 1, 0, 0, 0, 440, 438, 1, 0, 0, 0, 440,
4033
+ 441, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 5, 68, 0, 0, 443, 73, 1, 0, 0, 0, 444,
4034
+ 447, 3, 2, 1, 0, 445, 447, 3, 88, 44, 0, 446, 444, 1, 0, 0, 0, 446, 445, 1, 0, 0, 0, 447,
4035
+ 75, 1, 0, 0, 0, 448, 453, 5, 57, 0, 0, 449, 450, 5, 2, 0, 0, 450, 452, 5, 57, 0, 0, 451,
4036
+ 449, 1, 0, 0, 0, 452, 455, 1, 0, 0, 0, 453, 451, 1, 0, 0, 0, 453, 454, 1, 0, 0, 0, 454,
4037
+ 462, 1, 0, 0, 0, 455, 453, 1, 0, 0, 0, 456, 457, 5, 2, 0, 0, 457, 458, 5, 57, 0, 0, 458,
4038
+ 459, 5, 3, 0, 0, 459, 461, 3, 70, 35, 0, 460, 456, 1, 0, 0, 0, 461, 464, 1, 0, 0, 0, 462,
4039
+ 460, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 478, 1, 0, 0, 0, 464, 462, 1, 0, 0, 0, 465,
4040
+ 466, 5, 57, 0, 0, 466, 467, 5, 3, 0, 0, 467, 474, 3, 70, 35, 0, 468, 469, 5, 2, 0, 0, 469,
4041
+ 470, 5, 57, 0, 0, 470, 471, 5, 3, 0, 0, 471, 473, 3, 70, 35, 0, 472, 468, 1, 0, 0, 0, 473,
4042
+ 476, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 478, 1, 0, 0, 0, 476,
4043
+ 474, 1, 0, 0, 0, 477, 448, 1, 0, 0, 0, 477, 465, 1, 0, 0, 0, 478, 77, 1, 0, 0, 0, 479, 483,
4044
+ 5, 57, 0, 0, 480, 482, 3, 82, 41, 0, 481, 480, 1, 0, 0, 0, 482, 485, 1, 0, 0, 0, 483, 481,
4045
+ 1, 0, 0, 0, 483, 484, 1, 0, 0, 0, 484, 79, 1, 0, 0, 0, 485, 483, 1, 0, 0, 0, 486, 488, 5,
4046
+ 53, 0, 0, 487, 489, 3, 58, 29, 0, 488, 487, 1, 0, 0, 0, 488, 489, 1, 0, 0, 0, 489, 490,
4047
+ 1, 0, 0, 0, 490, 493, 5, 54, 0, 0, 491, 493, 3, 82, 41, 0, 492, 486, 1, 0, 0, 0, 492, 491,
4048
+ 1, 0, 0, 0, 493, 81, 1, 0, 0, 0, 494, 495, 5, 7, 0, 0, 495, 501, 5, 57, 0, 0, 496, 497,
4049
+ 5, 5, 0, 0, 497, 498, 3, 64, 32, 0, 498, 499, 5, 6, 0, 0, 499, 501, 1, 0, 0, 0, 500, 494,
4050
+ 1, 0, 0, 0, 500, 496, 1, 0, 0, 0, 501, 83, 1, 0, 0, 0, 502, 504, 3, 86, 43, 0, 503, 502,
4051
+ 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 505, 1, 0, 0, 0, 505, 507, 5, 57, 0, 0, 506, 508,
4052
+ 3, 80, 40, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 507, 1, 0, 0, 0, 509, 510,
4053
+ 1, 0, 0, 0, 510, 85, 1, 0, 0, 0, 511, 513, 5, 42, 0, 0, 512, 511, 1, 0, 0, 0, 512, 513,
4054
+ 1, 0, 0, 0, 513, 514, 1, 0, 0, 0, 514, 516, 5, 44, 0, 0, 515, 517, 3, 64, 32, 0, 516, 515,
4055
+ 1, 0, 0, 0, 516, 517, 1, 0, 0, 0, 517, 87, 1, 0, 0, 0, 518, 519, 5, 22, 0, 0, 519, 520,
4056
+ 3, 64, 32, 0, 520, 89, 1, 0, 0, 0, 521, 522, 3, 106, 53, 0, 522, 523, 5, 1, 0, 0, 523,
4057
+ 524, 3, 10, 5, 0, 524, 91, 1, 0, 0, 0, 525, 526, 5, 10, 0, 0, 526, 527, 5, 11, 0, 0, 527,
4058
+ 528, 5, 1, 0, 0, 528, 529, 5, 65, 0, 0, 529, 532, 5, 67, 0, 0, 530, 533, 5, 65, 0, 0, 531,
4059
+ 533, 3, 104, 52, 0, 532, 530, 1, 0, 0, 0, 532, 531, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534,
4060
+ 532, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 536, 1, 0, 0, 0, 536, 537, 5, 68, 0, 0, 537,
4061
+ 93, 1, 0, 0, 0, 538, 539, 5, 65, 0, 0, 539, 542, 5, 67, 0, 0, 540, 543, 5, 65, 0, 0, 541,
4062
+ 543, 3, 102, 51, 0, 542, 540, 1, 0, 0, 0, 542, 541, 1, 0, 0, 0, 543, 544, 1, 0, 0, 0, 544,
4063
+ 542, 1, 0, 0, 0, 544, 545, 1, 0, 0, 0, 545, 546, 1, 0, 0, 0, 546, 547, 5, 68, 0, 0, 547,
4064
+ 95, 1, 0, 0, 0, 548, 549, 5, 10, 0, 0, 549, 553, 5, 12, 0, 0, 550, 551, 5, 53, 0, 0, 551,
4065
+ 552, 5, 57, 0, 0, 552, 554, 5, 54, 0, 0, 553, 550, 1, 0, 0, 0, 553, 554, 1, 0, 0, 0, 554,
4066
+ 555, 1, 0, 0, 0, 555, 556, 5, 1, 0, 0, 556, 557, 3, 94, 47, 0, 557, 97, 1, 0, 0, 0, 558,
4067
+ 559, 5, 10, 0, 0, 559, 560, 5, 13, 0, 0, 560, 561, 5, 1, 0, 0, 561, 562, 5, 65, 0, 0, 562,
4068
+ 566, 5, 67, 0, 0, 563, 567, 5, 65, 0, 0, 564, 567, 3, 104, 52, 0, 565, 567, 3, 90, 45,
4069
+ 0, 566, 563, 1, 0, 0, 0, 566, 564, 1, 0, 0, 0, 566, 565, 1, 0, 0, 0, 567, 568, 1, 0, 0,
4070
+ 0, 568, 566, 1, 0, 0, 0, 568, 569, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 571, 5, 68, 0,
4071
+ 0, 571, 99, 1, 0, 0, 0, 572, 573, 5, 65, 0, 0, 573, 576, 5, 67, 0, 0, 574, 577, 5, 65,
4072
+ 0, 0, 575, 577, 3, 104, 52, 0, 576, 574, 1, 0, 0, 0, 576, 575, 1, 0, 0, 0, 577, 578, 1,
4073
+ 0, 0, 0, 578, 576, 1, 0, 0, 0, 578, 579, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 5,
4074
+ 68, 0, 0, 581, 101, 1, 0, 0, 0, 582, 584, 7, 11, 0, 0, 583, 585, 5, 1, 0, 0, 584, 583,
4075
+ 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 592, 1, 0, 0, 0, 586, 593, 3, 58, 29, 0, 587, 588,
4076
+ 5, 53, 0, 0, 588, 589, 3, 58, 29, 0, 589, 590, 5, 54, 0, 0, 590, 593, 1, 0, 0, 0, 591,
4077
+ 593, 3, 100, 50, 0, 592, 586, 1, 0, 0, 0, 592, 587, 1, 0, 0, 0, 592, 591, 1, 0, 0, 0, 593,
4078
+ 609, 1, 0, 0, 0, 594, 595, 5, 25, 0, 0, 595, 600, 5, 57, 0, 0, 596, 597, 5, 2, 0, 0, 597,
4079
+ 599, 5, 57, 0, 0, 598, 596, 1, 0, 0, 0, 599, 602, 1, 0, 0, 0, 600, 598, 1, 0, 0, 0, 600,
4080
+ 601, 1, 0, 0, 0, 601, 603, 1, 0, 0, 0, 602, 600, 1, 0, 0, 0, 603, 604, 5, 26, 0, 0, 604,
4081
+ 605, 3, 64, 32, 0, 605, 606, 5, 1, 0, 0, 606, 607, 3, 94, 47, 0, 607, 609, 1, 0, 0, 0,
4082
+ 608, 582, 1, 0, 0, 0, 608, 594, 1, 0, 0, 0, 609, 103, 1, 0, 0, 0, 610, 611, 3, 106, 53,
4083
+ 0, 611, 612, 5, 1, 0, 0, 612, 613, 3, 108, 54, 0, 613, 105, 1, 0, 0, 0, 614, 615, 7, 12,
4084
+ 0, 0, 615, 107, 1, 0, 0, 0, 616, 626, 3, 100, 50, 0, 617, 622, 3, 64, 32, 0, 618, 619,
4085
+ 5, 2, 0, 0, 619, 621, 3, 64, 32, 0, 620, 618, 1, 0, 0, 0, 621, 624, 1, 0, 0, 0, 622, 620,
4086
+ 1, 0, 0, 0, 622, 623, 1, 0, 0, 0, 623, 626, 1, 0, 0, 0, 624, 622, 1, 0, 0, 0, 625, 616,
4087
+ 1, 0, 0, 0, 625, 617, 1, 0, 0, 0, 626, 109, 1, 0, 0, 0, 627, 630, 5, 57, 0, 0, 628, 631,
4088
+ 5, 58, 0, 0, 629, 631, 3, 64, 32, 0, 630, 628, 1, 0, 0, 0, 630, 629, 1, 0, 0, 0, 631, 634,
4089
+ 1, 0, 0, 0, 632, 634, 5, 57, 0, 0, 633, 627, 1, 0, 0, 0, 633, 632, 1, 0, 0, 0, 634, 111,
4090
+ 1, 0, 0, 0, 635, 639, 5, 14, 0, 0, 636, 638, 3, 110, 55, 0, 637, 636, 1, 0, 0, 0, 638,
4091
+ 641, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 113, 1, 0, 0, 0, 641,
4092
+ 639, 1, 0, 0, 0, 642, 653, 5, 5, 0, 0, 643, 648, 3, 64, 32, 0, 644, 645, 5, 2, 0, 0, 645,
4093
+ 647, 3, 64, 32, 0, 646, 644, 1, 0, 0, 0, 647, 650, 1, 0, 0, 0, 648, 646, 1, 0, 0, 0, 648,
4094
+ 649, 1, 0, 0, 0, 649, 652, 1, 0, 0, 0, 650, 648, 1, 0, 0, 0, 651, 643, 1, 0, 0, 0, 652,
4095
+ 655, 1, 0, 0, 0, 653, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 656, 1, 0, 0, 0, 655,
4096
+ 653, 1, 0, 0, 0, 656, 657, 5, 6, 0, 0, 657, 115, 1, 0, 0, 0, 658, 661, 5, 19, 0, 0, 659,
4097
+ 662, 5, 57, 0, 0, 660, 662, 3, 64, 32, 0, 661, 659, 1, 0, 0, 0, 661, 660, 1, 0, 0, 0, 662,
4098
+ 117, 1, 0, 0, 0, 663, 664, 5, 24, 0, 0, 664, 665, 5, 57, 0, 0, 665, 119, 1, 0, 0, 0, 666,
4099
+ 667, 7, 13, 0, 0, 667, 668, 5, 1, 0, 0, 668, 669, 3, 10, 5, 0, 669, 121, 1, 0, 0, 0, 670,
4100
+ 671, 5, 29, 0, 0, 671, 672, 3, 64, 32, 0, 672, 673, 5, 1, 0, 0, 673, 677, 3, 10, 5, 0,
4101
+ 674, 676, 3, 124, 62, 0, 675, 674, 1, 0, 0, 0, 676, 679, 1, 0, 0, 0, 677, 675, 1, 0, 0,
4102
+ 0, 677, 678, 1, 0, 0, 0, 678, 681, 1, 0, 0, 0, 679, 677, 1, 0, 0, 0, 680, 682, 3, 126,
4103
+ 63, 0, 681, 680, 1, 0, 0, 0, 681, 682, 1, 0, 0, 0, 682, 123, 1, 0, 0, 0, 683, 684, 5, 30,
4104
+ 0, 0, 684, 685, 5, 29, 0, 0, 685, 686, 3, 64, 32, 0, 686, 687, 5, 1, 0, 0, 687, 688, 3,
4105
+ 10, 5, 0, 688, 125, 1, 0, 0, 0, 689, 690, 5, 30, 0, 0, 690, 691, 5, 1, 0, 0, 691, 692,
4106
+ 3, 10, 5, 0, 692, 127, 1, 0, 0, 0, 693, 694, 5, 27, 0, 0, 694, 695, 3, 64, 32, 0, 695,
4107
+ 696, 5, 1, 0, 0, 696, 697, 3, 10, 5, 0, 697, 129, 1, 0, 0, 0, 698, 699, 5, 25, 0, 0, 699,
4108
+ 704, 5, 57, 0, 0, 700, 701, 5, 2, 0, 0, 701, 703, 5, 57, 0, 0, 702, 700, 1, 0, 0, 0, 703,
4109
+ 706, 1, 0, 0, 0, 704, 702, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 707, 1, 0, 0, 0, 706,
4110
+ 704, 1, 0, 0, 0, 707, 708, 5, 26, 0, 0, 708, 709, 3, 64, 32, 0, 709, 710, 5, 1, 0, 0, 710,
4111
+ 711, 3, 10, 5, 0, 711, 131, 1, 0, 0, 0, 712, 713, 5, 52, 0, 0, 713, 714, 5, 57, 0, 0, 714,
4112
+ 133, 1, 0, 0, 0, 78, 136, 138, 143, 145, 162, 169, 173, 181, 187, 189, 203, 205, 220,
4113
+ 224, 229, 233, 241, 254, 265, 273, 275, 286, 296, 298, 304, 311, 318, 322, 328,
4114
+ 346, 353, 361, 364, 382, 392, 412, 414, 422, 430, 438, 440, 446, 453, 462, 474,
4115
+ 477, 483, 488, 492, 500, 503, 509, 512, 516, 532, 534, 542, 544, 553, 566, 568,
4116
+ 576, 578, 584, 592, 600, 608, 622, 625, 630, 633, 639, 648, 653, 661, 677, 681,
4117
+ 704
4028
4118
  ];
4029
4119
  CircuitScriptParser.vocabulary = new antlr.Vocabulary(CircuitScriptParser.literalNames, CircuitScriptParser.symbolicNames, []);
4030
4120
  CircuitScriptParser.decisionsToDFA = CircuitScriptParser._ATN.decisionToState.map((ds, index) => new antlr.DFA(ds, index));
@@ -4108,6 +4198,9 @@ class ExpressionContext extends antlr.ParserRuleContext {
4108
4198
  flow_expressions() {
4109
4199
  return this.getRuleContext(0, Flow_expressionsContext);
4110
4200
  }
4201
+ annotation_comment_expr() {
4202
+ return this.getRuleContext(0, Annotation_comment_exprContext);
4203
+ }
4111
4204
  get ruleIndex() {
4112
4205
  return CircuitScriptParser.RULE_expression;
4113
4206
  }
@@ -4652,8 +4745,8 @@ class At_blockContext extends antlr.ParserRuleContext {
4652
4745
  constructor(parent, invokingState) {
4653
4746
  super(parent, invokingState);
4654
4747
  }
4655
- at_component_expr() {
4656
- return this.getRuleContext(0, At_component_exprContext);
4748
+ at_block_header() {
4749
+ return this.getRuleContext(0, At_block_headerContext);
4657
4750
  }
4658
4751
  NEWLINE(i) {
4659
4752
  if (i === undefined) {
@@ -4711,6 +4804,32 @@ class At_block_expressionsContext extends antlr.ParserRuleContext {
4711
4804
  }
4712
4805
  }
4713
4806
  exports.At_block_expressionsContext = At_block_expressionsContext;
4807
+ class At_block_headerContext extends antlr.ParserRuleContext {
4808
+ constructor(parent, invokingState) {
4809
+ super(parent, invokingState);
4810
+ }
4811
+ at_component_expr() {
4812
+ return this.getRuleContext(0, At_component_exprContext);
4813
+ }
4814
+ annotation_comment_expr(i) {
4815
+ if (i === undefined) {
4816
+ return this.getRuleContexts(Annotation_comment_exprContext);
4817
+ }
4818
+ return this.getRuleContext(i, Annotation_comment_exprContext);
4819
+ }
4820
+ get ruleIndex() {
4821
+ return CircuitScriptParser.RULE_at_block_header;
4822
+ }
4823
+ accept(visitor) {
4824
+ if (visitor.visitAt_block_header) {
4825
+ return visitor.visitAt_block_header(this);
4826
+ }
4827
+ else {
4828
+ return visitor.visitChildren(this);
4829
+ }
4830
+ }
4831
+ }
4832
+ exports.At_block_headerContext = At_block_headerContext;
4714
4833
  class At_block_pin_exprContext extends antlr.ParserRuleContext {
4715
4834
  constructor(parent, invokingState) {
4716
4835
  super(parent, invokingState);
@@ -6299,3 +6418,26 @@ class For_exprContext extends antlr.ParserRuleContext {
6299
6418
  }
6300
6419
  }
6301
6420
  exports.For_exprContext = For_exprContext;
6421
+ class Annotation_comment_exprContext extends antlr.ParserRuleContext {
6422
+ constructor(parent, invokingState) {
6423
+ super(parent, invokingState);
6424
+ }
6425
+ ANNOTATION_START() {
6426
+ return this.getToken(CircuitScriptParser.ANNOTATION_START, 0);
6427
+ }
6428
+ ID() {
6429
+ return this.getToken(CircuitScriptParser.ID, 0);
6430
+ }
6431
+ get ruleIndex() {
6432
+ return CircuitScriptParser.RULE_annotation_comment_expr;
6433
+ }
6434
+ accept(visitor) {
6435
+ if (visitor.visitAnnotation_comment_expr) {
6436
+ return visitor.visitAnnotation_comment_expr(this);
6437
+ }
6438
+ else {
6439
+ return visitor.visitChildren(this);
6440
+ }
6441
+ }
6442
+ }
6443
+ exports.Annotation_comment_exprContext = Annotation_comment_exprContext;