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