circuitscript 0.1.20 → 0.1.22

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