c-next 0.1.61 → 0.1.63

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 (104) hide show
  1. package/README.md +86 -63
  2. package/grammar/CNext.g4 +3 -17
  3. package/package.json +1 -1
  4. package/src/cli/serve/ServeCommand.ts +57 -45
  5. package/src/lib/__tests__/parseCHeader.mocked.test.ts +145 -0
  6. package/src/transpiler/Transpiler.ts +603 -613
  7. package/src/transpiler/__tests__/DualCodePaths.test.ts +5 -1
  8. package/src/transpiler/__tests__/Transpiler.coverage.test.ts +2 -99
  9. package/src/transpiler/__tests__/Transpiler.test.ts +3 -26
  10. package/src/transpiler/data/IncludeTreeWalker.ts +1 -1
  11. package/src/transpiler/logic/analysis/InitializationAnalyzer.ts +23 -52
  12. package/src/transpiler/logic/parser/grammar/CNext.interp +1 -3
  13. package/src/transpiler/logic/parser/grammar/CNextListener.ts +0 -22
  14. package/src/transpiler/logic/parser/grammar/CNextParser.ts +665 -1084
  15. package/src/transpiler/logic/parser/grammar/CNextVisitor.ts +0 -14
  16. package/src/transpiler/logic/symbols/CppSymbolCollector.ts +67 -43
  17. package/src/transpiler/logic/symbols/cnext/collectors/StructCollector.ts +156 -70
  18. package/src/transpiler/logic/symbols/cnext/collectors/VariableCollector.ts +31 -6
  19. package/src/transpiler/logic/symbols/cnext/utils/TypeUtils.ts +43 -11
  20. package/src/transpiler/output/codegen/CodeGenState.ts +811 -0
  21. package/src/transpiler/output/codegen/CodeGenerator.ts +1410 -2587
  22. package/src/transpiler/output/codegen/TypeResolver.ts +193 -149
  23. package/src/transpiler/output/codegen/TypeValidator.ts +148 -370
  24. package/src/transpiler/output/codegen/__tests__/CodeGenState.test.ts +446 -0
  25. package/src/transpiler/output/codegen/__tests__/CodeGenerator.test.ts +2082 -52
  26. package/src/transpiler/output/codegen/__tests__/TrackVariableTypeHelpers.test.ts +1 -1
  27. package/src/transpiler/output/codegen/__tests__/TypeResolver.test.ts +435 -196
  28. package/src/transpiler/output/codegen/__tests__/TypeValidator.resolution.test.ts +51 -67
  29. package/src/transpiler/output/codegen/__tests__/TypeValidator.test.ts +495 -471
  30. package/src/transpiler/output/codegen/analysis/MemberChainAnalyzer.ts +227 -66
  31. package/src/transpiler/output/codegen/analysis/StringLengthCounter.ts +55 -58
  32. package/src/transpiler/output/codegen/analysis/__tests__/MemberChainAnalyzer.test.ts +288 -275
  33. package/src/transpiler/output/codegen/analysis/__tests__/StringLengthCounter.test.ts +101 -144
  34. package/src/transpiler/output/codegen/assignment/AssignmentClassifier.ts +195 -133
  35. package/src/transpiler/output/codegen/assignment/AssignmentContextBuilder.ts +24 -74
  36. package/src/transpiler/output/codegen/assignment/AssignmentKind.ts +3 -0
  37. package/src/transpiler/output/codegen/assignment/IAssignmentContext.ts +3 -0
  38. package/src/transpiler/output/codegen/assignment/__tests__/AssignmentClassifier.test.ts +290 -320
  39. package/src/transpiler/output/codegen/assignment/handlers/BitAccessHandlers.ts +42 -0
  40. package/src/transpiler/output/codegen/assignment/handlers/__tests__/BitAccessHandlers.test.ts +76 -2
  41. package/src/transpiler/output/codegen/generators/GeneratorRegistry.ts +12 -0
  42. package/src/transpiler/output/codegen/generators/IOrchestrator.ts +5 -1
  43. package/src/transpiler/output/codegen/generators/__tests__/GeneratorRegistry.test.ts +28 -1
  44. package/src/transpiler/output/codegen/generators/declarationGenerators/ArrayDimensionUtils.ts +67 -0
  45. package/src/transpiler/output/codegen/generators/declarationGenerators/RegisterGenerator.ts +11 -24
  46. package/src/transpiler/output/codegen/generators/declarationGenerators/RegisterMacroGenerator.ts +64 -0
  47. package/src/transpiler/output/codegen/generators/declarationGenerators/ScopeGenerator.ts +137 -61
  48. package/src/transpiler/output/codegen/generators/declarationGenerators/ScopedRegisterGenerator.ts +18 -27
  49. package/src/transpiler/output/codegen/generators/declarationGenerators/StructGenerator.ts +100 -23
  50. package/src/transpiler/output/codegen/generators/declarationGenerators/__tests__/ArrayDimensionUtils.test.ts +125 -0
  51. package/src/transpiler/output/codegen/generators/declarationGenerators/__tests__/ScopeGenerator.test.ts +157 -4
  52. package/src/transpiler/output/codegen/generators/expressions/PostfixExpressionGenerator.ts +5 -1
  53. package/src/transpiler/output/codegen/generators/statements/ControlFlowGenerator.ts +1 -17
  54. package/src/transpiler/output/codegen/generators/support/HelperGenerator.ts +23 -22
  55. package/src/transpiler/output/codegen/helpers/ArrayAccessHelper.ts +129 -0
  56. package/src/transpiler/output/codegen/helpers/ArrayInitHelper.ts +54 -61
  57. package/src/transpiler/output/codegen/helpers/AssignmentExpectedTypeResolver.ts +40 -44
  58. package/src/transpiler/output/codegen/helpers/AssignmentTargetExtractor.ts +17 -45
  59. package/src/transpiler/output/codegen/helpers/AssignmentValidator.ts +83 -78
  60. package/src/transpiler/output/codegen/helpers/CppModeHelper.ts +22 -30
  61. package/src/transpiler/output/codegen/helpers/EnumAssignmentValidator.ts +108 -50
  62. package/src/transpiler/output/codegen/helpers/FloatBitHelper.ts +16 -31
  63. package/src/transpiler/output/codegen/helpers/MemberSeparatorResolver.ts +10 -3
  64. package/src/transpiler/output/codegen/helpers/StringDeclHelper.ts +103 -96
  65. package/src/transpiler/output/codegen/helpers/SymbolLookupHelper.ts +44 -0
  66. package/src/transpiler/output/codegen/helpers/TypeGenerationHelper.ts +9 -0
  67. package/src/transpiler/output/codegen/helpers/__tests__/ArrayAccessHelper.test.ts +479 -0
  68. package/src/transpiler/output/codegen/helpers/__tests__/ArrayInitHelper.test.ts +58 -103
  69. package/src/transpiler/output/codegen/helpers/__tests__/AssignmentExpectedTypeResolver.test.ts +97 -40
  70. package/src/transpiler/output/codegen/helpers/__tests__/AssignmentValidator.test.ts +223 -128
  71. package/src/transpiler/output/codegen/helpers/__tests__/CppModeHelper.test.ts +68 -41
  72. package/src/transpiler/output/codegen/helpers/__tests__/EnumAssignmentValidator.test.ts +198 -47
  73. package/src/transpiler/output/codegen/helpers/__tests__/FloatBitHelper.test.ts +39 -37
  74. package/src/transpiler/output/codegen/helpers/__tests__/MemberSeparatorResolver.test.ts +1 -0
  75. package/src/transpiler/output/codegen/helpers/__tests__/StringDeclHelper.test.ts +191 -453
  76. package/src/transpiler/output/codegen/helpers/__tests__/SymbolLookupHelper.test.ts +201 -0
  77. package/src/transpiler/output/codegen/helpers/__tests__/TypeGenerationHelper.test.ts +50 -0
  78. package/src/transpiler/output/codegen/resolution/EnumTypeResolver.ts +229 -0
  79. package/src/transpiler/output/codegen/resolution/ScopeResolver.ts +60 -0
  80. package/src/transpiler/output/codegen/resolution/SizeofResolver.ts +177 -0
  81. package/src/transpiler/output/codegen/resolution/__tests__/EnumTypeResolver.test.ts +336 -0
  82. package/src/transpiler/output/codegen/resolution/__tests__/SizeofResolver.test.ts +201 -0
  83. package/src/transpiler/output/codegen/types/IArrayAccessDeps.ts +23 -0
  84. package/src/transpiler/output/codegen/types/IArrayAccessInfo.ts +26 -0
  85. package/src/transpiler/output/codegen/types/IMemberSeparatorDeps.ts +7 -0
  86. package/src/transpiler/output/codegen/utils/CodegenParserUtils.ts +98 -0
  87. package/src/transpiler/output/codegen/utils/ExpressionUnwrapper.ts +22 -22
  88. package/src/transpiler/output/codegen/utils/__tests__/CodegenParserUtils.test.ts +228 -0
  89. package/src/transpiler/types/IFileResult.ts +0 -4
  90. package/src/transpiler/types/IPipelineFile.ts +27 -0
  91. package/src/transpiler/types/IPipelineInput.ts +23 -0
  92. package/src/transpiler/types/TranspilerState.ts +1 -1
  93. package/src/utils/FormatUtils.ts +28 -2
  94. package/src/utils/MapUtils.ts +25 -0
  95. package/src/utils/PostfixAnalysisUtils.ts +48 -0
  96. package/src/utils/__tests__/FormatUtils.test.ts +42 -0
  97. package/src/utils/__tests__/MapUtils.test.ts +85 -0
  98. package/src/utils/constants/OperatorMappings.ts +19 -0
  99. package/src/transpiler/logic/StandaloneContextBuilder.ts +0 -150
  100. package/src/transpiler/logic/__tests__/StandaloneContextBuilder.test.ts +0 -647
  101. package/src/transpiler/output/codegen/types/ITypeResolverDeps.ts +0 -23
  102. package/src/transpiler/output/codegen/types/ITypeValidatorDeps.ts +0 -53
  103. package/src/transpiler/types/ITranspileContext.ts +0 -49
  104. package/src/transpiler/types/ITranspileContribution.ts +0 -32
@@ -203,21 +203,19 @@ export class CNextParser extends antlr.Parser {
203
203
  public static readonly RULE_fieldInitializer = 71;
204
204
  public static readonly RULE_arrayInitializer = 72;
205
205
  public static readonly RULE_arrayInitializerElement = 73;
206
- public static readonly RULE_memberAccess = 74;
207
- public static readonly RULE_arrayAccess = 75;
208
- public static readonly RULE_argumentList = 76;
209
- public static readonly RULE_type = 77;
210
- public static readonly RULE_scopedType = 78;
211
- public static readonly RULE_globalType = 79;
212
- public static readonly RULE_qualifiedType = 80;
213
- public static readonly RULE_primitiveType = 81;
214
- public static readonly RULE_userType = 82;
215
- public static readonly RULE_templateType = 83;
216
- public static readonly RULE_templateArgumentList = 84;
217
- public static readonly RULE_templateArgument = 85;
218
- public static readonly RULE_stringType = 86;
219
- public static readonly RULE_arrayType = 87;
220
- public static readonly RULE_literal = 88;
206
+ public static readonly RULE_argumentList = 74;
207
+ public static readonly RULE_type = 75;
208
+ public static readonly RULE_scopedType = 76;
209
+ public static readonly RULE_globalType = 77;
210
+ public static readonly RULE_qualifiedType = 78;
211
+ public static readonly RULE_primitiveType = 79;
212
+ public static readonly RULE_userType = 80;
213
+ public static readonly RULE_templateType = 81;
214
+ public static readonly RULE_templateArgumentList = 82;
215
+ public static readonly RULE_templateArgument = 83;
216
+ public static readonly RULE_stringType = 84;
217
+ public static readonly RULE_arrayType = 85;
218
+ public static readonly RULE_literal = 86;
221
219
 
222
220
  public static readonly literalNames = [
223
221
  null, "'?'", null, null, null, null, null, null, null, null, null,
@@ -277,10 +275,9 @@ export class CNextParser extends antlr.Parser {
277
275
  "unaryExpression", "postfixExpression", "postfixOp", "primaryExpression",
278
276
  "sizeofExpression", "castExpression", "structInitializer", "fieldInitializerList",
279
277
  "fieldInitializer", "arrayInitializer", "arrayInitializerElement",
280
- "memberAccess", "arrayAccess", "argumentList", "type", "scopedType",
281
- "globalType", "qualifiedType", "primitiveType", "userType", "templateType",
282
- "templateArgumentList", "templateArgument", "stringType", "arrayType",
283
- "literal",
278
+ "argumentList", "type", "scopedType", "globalType", "qualifiedType",
279
+ "primitiveType", "userType", "templateType", "templateArgumentList",
280
+ "templateArgument", "stringType", "arrayType", "literal",
284
281
  ];
285
282
 
286
283
  public get grammarFileName(): string { return "CNext.g4"; }
@@ -304,17 +301,17 @@ export class CNextParser extends antlr.Parser {
304
301
  try {
305
302
  this.enterOuterAlt(localContext, 1);
306
303
  {
307
- this.state = 182;
304
+ this.state = 178;
308
305
  this.errorHandler.sync(this);
309
306
  _la = this.tokenStream.LA(1);
310
307
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2044) !== 0)) {
311
308
  {
312
- this.state = 180;
309
+ this.state = 176;
313
310
  this.errorHandler.sync(this);
314
311
  switch (this.tokenStream.LA(1)) {
315
312
  case CNextParser.INCLUDE_DIRECTIVE:
316
313
  {
317
- this.state = 178;
314
+ this.state = 174;
318
315
  this.includeDirective();
319
316
  }
320
317
  break;
@@ -327,7 +324,7 @@ export class CNextParser extends antlr.Parser {
327
324
  case CNextParser.ENDIF_DIRECTIVE:
328
325
  case CNextParser.PRAGMA_TARGET:
329
326
  {
330
- this.state = 179;
327
+ this.state = 175;
331
328
  this.preprocessorDirective();
332
329
  }
333
330
  break;
@@ -335,25 +332,25 @@ export class CNextParser extends antlr.Parser {
335
332
  throw new antlr.NoViableAltException(this);
336
333
  }
337
334
  }
338
- this.state = 184;
335
+ this.state = 180;
339
336
  this.errorHandler.sync(this);
340
337
  _la = this.tokenStream.LA(1);
341
338
  }
342
- this.state = 188;
339
+ this.state = 184;
343
340
  this.errorHandler.sync(this);
344
341
  _la = this.tokenStream.LA(1);
345
342
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3799040) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2146973757) !== 0) || _la === 113) {
346
343
  {
347
344
  {
348
- this.state = 185;
345
+ this.state = 181;
349
346
  this.declaration();
350
347
  }
351
348
  }
352
- this.state = 190;
349
+ this.state = 186;
353
350
  this.errorHandler.sync(this);
354
351
  _la = this.tokenStream.LA(1);
355
352
  }
356
- this.state = 191;
353
+ this.state = 187;
357
354
  this.match(CNextParser.EOF);
358
355
  }
359
356
  }
@@ -376,7 +373,7 @@ export class CNextParser extends antlr.Parser {
376
373
  try {
377
374
  this.enterOuterAlt(localContext, 1);
378
375
  {
379
- this.state = 193;
376
+ this.state = 189;
380
377
  this.match(CNextParser.INCLUDE_DIRECTIVE);
381
378
  }
382
379
  }
@@ -397,7 +394,7 @@ export class CNextParser extends antlr.Parser {
397
394
  let localContext = new PreprocessorDirectiveContext(this.context, this.state);
398
395
  this.enterRule(localContext, 4, CNextParser.RULE_preprocessorDirective);
399
396
  try {
400
- this.state = 198;
397
+ this.state = 194;
401
398
  this.errorHandler.sync(this);
402
399
  switch (this.tokenStream.LA(1)) {
403
400
  case CNextParser.DEFINE_FUNCTION:
@@ -405,7 +402,7 @@ export class CNextParser extends antlr.Parser {
405
402
  case CNextParser.DEFINE_FLAG:
406
403
  this.enterOuterAlt(localContext, 1);
407
404
  {
408
- this.state = 195;
405
+ this.state = 191;
409
406
  this.defineDirective();
410
407
  }
411
408
  break;
@@ -415,14 +412,14 @@ export class CNextParser extends antlr.Parser {
415
412
  case CNextParser.ENDIF_DIRECTIVE:
416
413
  this.enterOuterAlt(localContext, 2);
417
414
  {
418
- this.state = 196;
415
+ this.state = 192;
419
416
  this.conditionalDirective();
420
417
  }
421
418
  break;
422
419
  case CNextParser.PRAGMA_TARGET:
423
420
  this.enterOuterAlt(localContext, 3);
424
421
  {
425
- this.state = 197;
422
+ this.state = 193;
426
423
  this.pragmaDirective();
427
424
  }
428
425
  break;
@@ -450,7 +447,7 @@ export class CNextParser extends antlr.Parser {
450
447
  try {
451
448
  this.enterOuterAlt(localContext, 1);
452
449
  {
453
- this.state = 200;
450
+ this.state = 196;
454
451
  _la = this.tokenStream.LA(1);
455
452
  if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 56) !== 0))) {
456
453
  this.errorHandler.recoverInline(this);
@@ -481,7 +478,7 @@ export class CNextParser extends antlr.Parser {
481
478
  try {
482
479
  this.enterOuterAlt(localContext, 1);
483
480
  {
484
- this.state = 202;
481
+ this.state = 198;
485
482
  _la = this.tokenStream.LA(1);
486
483
  if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 960) !== 0))) {
487
484
  this.errorHandler.recoverInline(this);
@@ -511,7 +508,7 @@ export class CNextParser extends antlr.Parser {
511
508
  try {
512
509
  this.enterOuterAlt(localContext, 1);
513
510
  {
514
- this.state = 204;
511
+ this.state = 200;
515
512
  this.match(CNextParser.PRAGMA_TARGET);
516
513
  }
517
514
  }
@@ -532,55 +529,55 @@ export class CNextParser extends antlr.Parser {
532
529
  let localContext = new DeclarationContext(this.context, this.state);
533
530
  this.enterRule(localContext, 12, CNextParser.RULE_declaration);
534
531
  try {
535
- this.state = 213;
532
+ this.state = 209;
536
533
  this.errorHandler.sync(this);
537
534
  switch (this.interpreter.adaptivePredict(this.tokenStream, 4, this.context) ) {
538
535
  case 1:
539
536
  this.enterOuterAlt(localContext, 1);
540
537
  {
541
- this.state = 206;
538
+ this.state = 202;
542
539
  this.scopeDeclaration();
543
540
  }
544
541
  break;
545
542
  case 2:
546
543
  this.enterOuterAlt(localContext, 2);
547
544
  {
548
- this.state = 207;
545
+ this.state = 203;
549
546
  this.registerDeclaration();
550
547
  }
551
548
  break;
552
549
  case 3:
553
550
  this.enterOuterAlt(localContext, 3);
554
551
  {
555
- this.state = 208;
552
+ this.state = 204;
556
553
  this.structDeclaration();
557
554
  }
558
555
  break;
559
556
  case 4:
560
557
  this.enterOuterAlt(localContext, 4);
561
558
  {
562
- this.state = 209;
559
+ this.state = 205;
563
560
  this.enumDeclaration();
564
561
  }
565
562
  break;
566
563
  case 5:
567
564
  this.enterOuterAlt(localContext, 5);
568
565
  {
569
- this.state = 210;
566
+ this.state = 206;
570
567
  this.bitmapDeclaration();
571
568
  }
572
569
  break;
573
570
  case 6:
574
571
  this.enterOuterAlt(localContext, 6);
575
572
  {
576
- this.state = 211;
573
+ this.state = 207;
577
574
  this.functionDeclaration();
578
575
  }
579
576
  break;
580
577
  case 7:
581
578
  this.enterOuterAlt(localContext, 7);
582
579
  {
583
- this.state = 212;
580
+ this.state = 208;
584
581
  this.variableDeclaration();
585
582
  }
586
583
  break;
@@ -606,27 +603,27 @@ export class CNextParser extends antlr.Parser {
606
603
  try {
607
604
  this.enterOuterAlt(localContext, 1);
608
605
  {
609
- this.state = 215;
606
+ this.state = 211;
610
607
  this.match(CNextParser.SCOPE);
611
- this.state = 216;
608
+ this.state = 212;
612
609
  this.match(CNextParser.IDENTIFIER);
613
- this.state = 217;
610
+ this.state = 213;
614
611
  this.match(CNextParser.LBRACE);
615
- this.state = 221;
612
+ this.state = 217;
616
613
  this.errorHandler.sync(this);
617
614
  _la = this.tokenStream.LA(1);
618
615
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4190208) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2146973757) !== 0) || _la === 113) {
619
616
  {
620
617
  {
621
- this.state = 218;
618
+ this.state = 214;
622
619
  this.scopeMember();
623
620
  }
624
621
  }
625
- this.state = 223;
622
+ this.state = 219;
626
623
  this.errorHandler.sync(this);
627
624
  _la = this.tokenStream.LA(1);
628
625
  }
629
- this.state = 224;
626
+ this.state = 220;
630
627
  this.match(CNextParser.RBRACE);
631
628
  }
632
629
  }
@@ -648,108 +645,108 @@ export class CNextParser extends antlr.Parser {
648
645
  this.enterRule(localContext, 16, CNextParser.RULE_scopeMember);
649
646
  let _la: number;
650
647
  try {
651
- this.state = 250;
648
+ this.state = 246;
652
649
  this.errorHandler.sync(this);
653
650
  switch (this.interpreter.adaptivePredict(this.tokenStream, 12, this.context) ) {
654
651
  case 1:
655
652
  this.enterOuterAlt(localContext, 1);
656
653
  {
657
- this.state = 227;
654
+ this.state = 223;
658
655
  this.errorHandler.sync(this);
659
656
  _la = this.tokenStream.LA(1);
660
657
  if (_la === 17 || _la === 18) {
661
658
  {
662
- this.state = 226;
659
+ this.state = 222;
663
660
  this.visibilityModifier();
664
661
  }
665
662
  }
666
663
 
667
- this.state = 229;
664
+ this.state = 225;
668
665
  this.variableDeclaration();
669
666
  }
670
667
  break;
671
668
  case 2:
672
669
  this.enterOuterAlt(localContext, 2);
673
670
  {
674
- this.state = 231;
671
+ this.state = 227;
675
672
  this.errorHandler.sync(this);
676
673
  _la = this.tokenStream.LA(1);
677
674
  if (_la === 17 || _la === 18) {
678
675
  {
679
- this.state = 230;
676
+ this.state = 226;
680
677
  this.visibilityModifier();
681
678
  }
682
679
  }
683
680
 
684
- this.state = 233;
681
+ this.state = 229;
685
682
  this.functionDeclaration();
686
683
  }
687
684
  break;
688
685
  case 3:
689
686
  this.enterOuterAlt(localContext, 3);
690
687
  {
691
- this.state = 235;
688
+ this.state = 231;
692
689
  this.errorHandler.sync(this);
693
690
  _la = this.tokenStream.LA(1);
694
691
  if (_la === 17 || _la === 18) {
695
692
  {
696
- this.state = 234;
693
+ this.state = 230;
697
694
  this.visibilityModifier();
698
695
  }
699
696
  }
700
697
 
701
- this.state = 237;
698
+ this.state = 233;
702
699
  this.enumDeclaration();
703
700
  }
704
701
  break;
705
702
  case 4:
706
703
  this.enterOuterAlt(localContext, 4);
707
704
  {
708
- this.state = 239;
705
+ this.state = 235;
709
706
  this.errorHandler.sync(this);
710
707
  _la = this.tokenStream.LA(1);
711
708
  if (_la === 17 || _la === 18) {
712
709
  {
713
- this.state = 238;
710
+ this.state = 234;
714
711
  this.visibilityModifier();
715
712
  }
716
713
  }
717
714
 
718
- this.state = 241;
715
+ this.state = 237;
719
716
  this.bitmapDeclaration();
720
717
  }
721
718
  break;
722
719
  case 5:
723
720
  this.enterOuterAlt(localContext, 5);
724
721
  {
725
- this.state = 243;
722
+ this.state = 239;
726
723
  this.errorHandler.sync(this);
727
724
  _la = this.tokenStream.LA(1);
728
725
  if (_la === 17 || _la === 18) {
729
726
  {
730
- this.state = 242;
727
+ this.state = 238;
731
728
  this.visibilityModifier();
732
729
  }
733
730
  }
734
731
 
735
- this.state = 245;
732
+ this.state = 241;
736
733
  this.registerDeclaration();
737
734
  }
738
735
  break;
739
736
  case 6:
740
737
  this.enterOuterAlt(localContext, 6);
741
738
  {
742
- this.state = 247;
739
+ this.state = 243;
743
740
  this.errorHandler.sync(this);
744
741
  _la = this.tokenStream.LA(1);
745
742
  if (_la === 17 || _la === 18) {
746
743
  {
747
- this.state = 246;
744
+ this.state = 242;
748
745
  this.visibilityModifier();
749
746
  }
750
747
  }
751
748
 
752
- this.state = 249;
749
+ this.state = 245;
753
750
  this.structDeclaration();
754
751
  }
755
752
  break;
@@ -775,7 +772,7 @@ export class CNextParser extends antlr.Parser {
775
772
  try {
776
773
  this.enterOuterAlt(localContext, 1);
777
774
  {
778
- this.state = 252;
775
+ this.state = 248;
779
776
  _la = this.tokenStream.LA(1);
780
777
  if(!(_la === 17 || _la === 18)) {
781
778
  this.errorHandler.recoverInline(this);
@@ -806,31 +803,31 @@ export class CNextParser extends antlr.Parser {
806
803
  try {
807
804
  this.enterOuterAlt(localContext, 1);
808
805
  {
809
- this.state = 254;
806
+ this.state = 250;
810
807
  this.match(CNextParser.REGISTER);
811
- this.state = 255;
808
+ this.state = 251;
812
809
  this.match(CNextParser.IDENTIFIER);
813
- this.state = 256;
810
+ this.state = 252;
814
811
  this.match(CNextParser.AT);
815
- this.state = 257;
812
+ this.state = 253;
816
813
  this.expression();
817
- this.state = 258;
814
+ this.state = 254;
818
815
  this.match(CNextParser.LBRACE);
819
- this.state = 262;
816
+ this.state = 258;
820
817
  this.errorHandler.sync(this);
821
818
  _la = this.tokenStream.LA(1);
822
819
  while (_la === 113) {
823
820
  {
824
821
  {
825
- this.state = 259;
822
+ this.state = 255;
826
823
  this.registerMember();
827
824
  }
828
825
  }
829
- this.state = 264;
826
+ this.state = 260;
830
827
  this.errorHandler.sync(this);
831
828
  _la = this.tokenStream.LA(1);
832
829
  }
833
- this.state = 265;
830
+ this.state = 261;
834
831
  this.match(CNextParser.RBRACE);
835
832
  }
836
833
  }
@@ -854,24 +851,24 @@ export class CNextParser extends antlr.Parser {
854
851
  try {
855
852
  this.enterOuterAlt(localContext, 1);
856
853
  {
857
- this.state = 267;
854
+ this.state = 263;
858
855
  this.match(CNextParser.IDENTIFIER);
859
- this.state = 268;
856
+ this.state = 264;
860
857
  this.match(CNextParser.COLON);
861
- this.state = 269;
858
+ this.state = 265;
862
859
  this.type_();
863
- this.state = 270;
860
+ this.state = 266;
864
861
  this.accessModifier();
865
- this.state = 271;
862
+ this.state = 267;
866
863
  this.match(CNextParser.AT);
867
- this.state = 272;
864
+ this.state = 268;
868
865
  this.expression();
869
- this.state = 274;
866
+ this.state = 270;
870
867
  this.errorHandler.sync(this);
871
868
  _la = this.tokenStream.LA(1);
872
869
  if (_la === 103) {
873
870
  {
874
- this.state = 273;
871
+ this.state = 269;
875
872
  this.match(CNextParser.COMMA);
876
873
  }
877
874
  }
@@ -898,7 +895,7 @@ export class CNextParser extends antlr.Parser {
898
895
  try {
899
896
  this.enterOuterAlt(localContext, 1);
900
897
  {
901
- this.state = 276;
898
+ this.state = 272;
902
899
  _la = this.tokenStream.LA(1);
903
900
  if(!(((((_la - 40)) & ~0x1F) === 0 && ((1 << (_la - 40)) & 31) !== 0))) {
904
901
  this.errorHandler.recoverInline(this);
@@ -929,27 +926,27 @@ export class CNextParser extends antlr.Parser {
929
926
  try {
930
927
  this.enterOuterAlt(localContext, 1);
931
928
  {
932
- this.state = 278;
929
+ this.state = 274;
933
930
  this.match(CNextParser.STRUCT);
934
- this.state = 279;
931
+ this.state = 275;
935
932
  this.match(CNextParser.IDENTIFIER);
936
- this.state = 280;
933
+ this.state = 276;
937
934
  this.match(CNextParser.LBRACE);
938
- this.state = 284;
935
+ this.state = 280;
939
936
  this.errorHandler.sync(this);
940
937
  _la = this.tokenStream.LA(1);
941
938
  while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2146304) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2146959361) !== 0) || _la === 113) {
942
939
  {
943
940
  {
944
- this.state = 281;
941
+ this.state = 277;
945
942
  this.structMember();
946
943
  }
947
944
  }
948
- this.state = 286;
945
+ this.state = 282;
949
946
  this.errorHandler.sync(this);
950
947
  _la = this.tokenStream.LA(1);
951
948
  }
952
- this.state = 287;
949
+ this.state = 283;
953
950
  this.match(CNextParser.RBRACE);
954
951
  }
955
952
  }
@@ -973,25 +970,25 @@ export class CNextParser extends antlr.Parser {
973
970
  try {
974
971
  this.enterOuterAlt(localContext, 1);
975
972
  {
976
- this.state = 289;
973
+ this.state = 285;
977
974
  this.type_();
978
- this.state = 290;
975
+ this.state = 286;
979
976
  this.match(CNextParser.IDENTIFIER);
980
- this.state = 294;
977
+ this.state = 290;
981
978
  this.errorHandler.sync(this);
982
979
  _la = this.tokenStream.LA(1);
983
980
  while (_la === 100) {
984
981
  {
985
982
  {
986
- this.state = 291;
983
+ this.state = 287;
987
984
  this.arrayDimension();
988
985
  }
989
986
  }
990
- this.state = 296;
987
+ this.state = 292;
991
988
  this.errorHandler.sync(this);
992
989
  _la = this.tokenStream.LA(1);
993
990
  }
994
- this.state = 297;
991
+ this.state = 293;
995
992
  this.match(CNextParser.SEMI);
996
993
  }
997
994
  }
@@ -1016,43 +1013,43 @@ export class CNextParser extends antlr.Parser {
1016
1013
  let alternative: number;
1017
1014
  this.enterOuterAlt(localContext, 1);
1018
1015
  {
1019
- this.state = 299;
1016
+ this.state = 295;
1020
1017
  this.match(CNextParser.ENUM);
1021
- this.state = 300;
1018
+ this.state = 296;
1022
1019
  this.match(CNextParser.IDENTIFIER);
1023
- this.state = 301;
1020
+ this.state = 297;
1024
1021
  this.match(CNextParser.LBRACE);
1025
- this.state = 302;
1022
+ this.state = 298;
1026
1023
  this.enumMember();
1027
- this.state = 307;
1024
+ this.state = 303;
1028
1025
  this.errorHandler.sync(this);
1029
1026
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 17, this.context);
1030
1027
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1031
1028
  if (alternative === 1) {
1032
1029
  {
1033
1030
  {
1034
- this.state = 303;
1031
+ this.state = 299;
1035
1032
  this.match(CNextParser.COMMA);
1036
- this.state = 304;
1033
+ this.state = 300;
1037
1034
  this.enumMember();
1038
1035
  }
1039
1036
  }
1040
1037
  }
1041
- this.state = 309;
1038
+ this.state = 305;
1042
1039
  this.errorHandler.sync(this);
1043
1040
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 17, this.context);
1044
1041
  }
1045
- this.state = 311;
1042
+ this.state = 307;
1046
1043
  this.errorHandler.sync(this);
1047
1044
  _la = this.tokenStream.LA(1);
1048
1045
  if (_la === 103) {
1049
1046
  {
1050
- this.state = 310;
1047
+ this.state = 306;
1051
1048
  this.match(CNextParser.COMMA);
1052
1049
  }
1053
1050
  }
1054
1051
 
1055
- this.state = 313;
1052
+ this.state = 309;
1056
1053
  this.match(CNextParser.RBRACE);
1057
1054
  }
1058
1055
  }
@@ -1076,16 +1073,16 @@ export class CNextParser extends antlr.Parser {
1076
1073
  try {
1077
1074
  this.enterOuterAlt(localContext, 1);
1078
1075
  {
1079
- this.state = 315;
1076
+ this.state = 311;
1080
1077
  this.match(CNextParser.IDENTIFIER);
1081
- this.state = 318;
1078
+ this.state = 314;
1082
1079
  this.errorHandler.sync(this);
1083
1080
  _la = this.tokenStream.LA(1);
1084
1081
  if (_la === 75) {
1085
1082
  {
1086
- this.state = 316;
1083
+ this.state = 312;
1087
1084
  this.match(CNextParser.ASSIGN);
1088
- this.state = 317;
1085
+ this.state = 313;
1089
1086
  this.expression();
1090
1087
  }
1091
1088
  }
@@ -1113,43 +1110,43 @@ export class CNextParser extends antlr.Parser {
1113
1110
  let alternative: number;
1114
1111
  this.enterOuterAlt(localContext, 1);
1115
1112
  {
1116
- this.state = 320;
1113
+ this.state = 316;
1117
1114
  this.bitmapType();
1118
- this.state = 321;
1115
+ this.state = 317;
1119
1116
  this.match(CNextParser.IDENTIFIER);
1120
- this.state = 322;
1117
+ this.state = 318;
1121
1118
  this.match(CNextParser.LBRACE);
1122
- this.state = 323;
1119
+ this.state = 319;
1123
1120
  this.bitmapMember();
1124
- this.state = 328;
1121
+ this.state = 324;
1125
1122
  this.errorHandler.sync(this);
1126
1123
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
1127
1124
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
1128
1125
  if (alternative === 1) {
1129
1126
  {
1130
1127
  {
1131
- this.state = 324;
1128
+ this.state = 320;
1132
1129
  this.match(CNextParser.COMMA);
1133
- this.state = 325;
1130
+ this.state = 321;
1134
1131
  this.bitmapMember();
1135
1132
  }
1136
1133
  }
1137
1134
  }
1138
- this.state = 330;
1135
+ this.state = 326;
1139
1136
  this.errorHandler.sync(this);
1140
1137
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 20, this.context);
1141
1138
  }
1142
- this.state = 332;
1139
+ this.state = 328;
1143
1140
  this.errorHandler.sync(this);
1144
1141
  _la = this.tokenStream.LA(1);
1145
1142
  if (_la === 103) {
1146
1143
  {
1147
- this.state = 331;
1144
+ this.state = 327;
1148
1145
  this.match(CNextParser.COMMA);
1149
1146
  }
1150
1147
  }
1151
1148
 
1152
- this.state = 334;
1149
+ this.state = 330;
1153
1150
  this.match(CNextParser.RBRACE);
1154
1151
  }
1155
1152
  }
@@ -1173,7 +1170,7 @@ export class CNextParser extends antlr.Parser {
1173
1170
  try {
1174
1171
  this.enterOuterAlt(localContext, 1);
1175
1172
  {
1176
- this.state = 336;
1173
+ this.state = 332;
1177
1174
  _la = this.tokenStream.LA(1);
1178
1175
  if(!(((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 15) !== 0))) {
1179
1176
  this.errorHandler.recoverInline(this);
@@ -1204,18 +1201,18 @@ export class CNextParser extends antlr.Parser {
1204
1201
  try {
1205
1202
  this.enterOuterAlt(localContext, 1);
1206
1203
  {
1207
- this.state = 338;
1204
+ this.state = 334;
1208
1205
  this.match(CNextParser.IDENTIFIER);
1209
- this.state = 342;
1206
+ this.state = 338;
1210
1207
  this.errorHandler.sync(this);
1211
1208
  _la = this.tokenStream.LA(1);
1212
1209
  if (_la === 100) {
1213
1210
  {
1214
- this.state = 339;
1211
+ this.state = 335;
1215
1212
  this.match(CNextParser.LBRACKET);
1216
- this.state = 340;
1213
+ this.state = 336;
1217
1214
  this.match(CNextParser.INTEGER_LITERAL);
1218
- this.state = 341;
1215
+ this.state = 337;
1219
1216
  this.match(CNextParser.RBRACKET);
1220
1217
  }
1221
1218
  }
@@ -1242,25 +1239,25 @@ export class CNextParser extends antlr.Parser {
1242
1239
  try {
1243
1240
  this.enterOuterAlt(localContext, 1);
1244
1241
  {
1245
- this.state = 344;
1242
+ this.state = 340;
1246
1243
  this.type_();
1247
- this.state = 345;
1244
+ this.state = 341;
1248
1245
  this.match(CNextParser.IDENTIFIER);
1249
- this.state = 346;
1246
+ this.state = 342;
1250
1247
  this.match(CNextParser.LPAREN);
1251
- this.state = 348;
1248
+ this.state = 344;
1252
1249
  this.errorHandler.sync(this);
1253
1250
  _la = this.tokenStream.LA(1);
1254
1251
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2670592) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 2146959361) !== 0) || _la === 113) {
1255
1252
  {
1256
- this.state = 347;
1253
+ this.state = 343;
1257
1254
  this.parameterList();
1258
1255
  }
1259
1256
  }
1260
1257
 
1261
- this.state = 350;
1258
+ this.state = 346;
1262
1259
  this.match(CNextParser.RPAREN);
1263
- this.state = 351;
1260
+ this.state = 347;
1264
1261
  this.block();
1265
1262
  }
1266
1263
  }
@@ -1284,21 +1281,21 @@ export class CNextParser extends antlr.Parser {
1284
1281
  try {
1285
1282
  this.enterOuterAlt(localContext, 1);
1286
1283
  {
1287
- this.state = 353;
1284
+ this.state = 349;
1288
1285
  this.parameter();
1289
- this.state = 358;
1286
+ this.state = 354;
1290
1287
  this.errorHandler.sync(this);
1291
1288
  _la = this.tokenStream.LA(1);
1292
1289
  while (_la === 103) {
1293
1290
  {
1294
1291
  {
1295
- this.state = 354;
1292
+ this.state = 350;
1296
1293
  this.match(CNextParser.COMMA);
1297
- this.state = 355;
1294
+ this.state = 351;
1298
1295
  this.parameter();
1299
1296
  }
1300
1297
  }
1301
- this.state = 360;
1298
+ this.state = 356;
1302
1299
  this.errorHandler.sync(this);
1303
1300
  _la = this.tokenStream.LA(1);
1304
1301
  }
@@ -1324,31 +1321,31 @@ export class CNextParser extends antlr.Parser {
1324
1321
  try {
1325
1322
  this.enterOuterAlt(localContext, 1);
1326
1323
  {
1327
- this.state = 362;
1324
+ this.state = 358;
1328
1325
  this.errorHandler.sync(this);
1329
1326
  _la = this.tokenStream.LA(1);
1330
1327
  if (_la === 19) {
1331
1328
  {
1332
- this.state = 361;
1329
+ this.state = 357;
1333
1330
  this.constModifier();
1334
1331
  }
1335
1332
  }
1336
1333
 
1337
- this.state = 364;
1334
+ this.state = 360;
1338
1335
  this.type_();
1339
- this.state = 365;
1336
+ this.state = 361;
1340
1337
  this.match(CNextParser.IDENTIFIER);
1341
- this.state = 369;
1338
+ this.state = 365;
1342
1339
  this.errorHandler.sync(this);
1343
1340
  _la = this.tokenStream.LA(1);
1344
1341
  while (_la === 100) {
1345
1342
  {
1346
1343
  {
1347
- this.state = 366;
1344
+ this.state = 362;
1348
1345
  this.arrayDimension();
1349
1346
  }
1350
1347
  }
1351
- this.state = 371;
1348
+ this.state = 367;
1352
1349
  this.errorHandler.sync(this);
1353
1350
  _la = this.tokenStream.LA(1);
1354
1351
  }
@@ -1373,7 +1370,7 @@ export class CNextParser extends antlr.Parser {
1373
1370
  try {
1374
1371
  this.enterOuterAlt(localContext, 1);
1375
1372
  {
1376
- this.state = 372;
1373
+ this.state = 368;
1377
1374
  this.match(CNextParser.CONST);
1378
1375
  }
1379
1376
  }
@@ -1396,7 +1393,7 @@ export class CNextParser extends antlr.Parser {
1396
1393
  try {
1397
1394
  this.enterOuterAlt(localContext, 1);
1398
1395
  {
1399
- this.state = 374;
1396
+ this.state = 370;
1400
1397
  this.match(CNextParser.VOLATILE);
1401
1398
  }
1402
1399
  }
@@ -1420,7 +1417,7 @@ export class CNextParser extends antlr.Parser {
1420
1417
  try {
1421
1418
  this.enterOuterAlt(localContext, 1);
1422
1419
  {
1423
- this.state = 376;
1420
+ this.state = 372;
1424
1421
  _la = this.tokenStream.LA(1);
1425
1422
  if(!(_la === 45 || _la === 46)) {
1426
1423
  this.errorHandler.recoverInline(this);
@@ -1450,7 +1447,7 @@ export class CNextParser extends antlr.Parser {
1450
1447
  try {
1451
1448
  this.enterOuterAlt(localContext, 1);
1452
1449
  {
1453
- this.state = 378;
1450
+ this.state = 374;
1454
1451
  this.match(CNextParser.ATOMIC);
1455
1452
  }
1456
1453
  }
@@ -1474,19 +1471,19 @@ export class CNextParser extends antlr.Parser {
1474
1471
  try {
1475
1472
  this.enterOuterAlt(localContext, 1);
1476
1473
  {
1477
- this.state = 380;
1474
+ this.state = 376;
1478
1475
  this.match(CNextParser.LBRACKET);
1479
- this.state = 382;
1476
+ this.state = 378;
1480
1477
  this.errorHandler.sync(this);
1481
1478
  _la = this.tokenStream.LA(1);
1482
1479
  if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2147532800) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 1966091) !== 0) || ((((_la - 83)) & ~0x1F) === 0 && ((1 << (_la - 83)) & 2130879681) !== 0)) {
1483
1480
  {
1484
- this.state = 381;
1481
+ this.state = 377;
1485
1482
  this.expression();
1486
1483
  }
1487
1484
  }
1488
1485
 
1489
- this.state = 384;
1486
+ this.state = 380;
1490
1487
  this.match(CNextParser.RBRACKET);
1491
1488
  }
1492
1489
  }
@@ -1508,100 +1505,100 @@ export class CNextParser extends antlr.Parser {
1508
1505
  this.enterRule(localContext, 56, CNextParser.RULE_variableDeclaration);
1509
1506
  let _la: number;
1510
1507
  try {
1511
- this.state = 419;
1508
+ this.state = 415;
1512
1509
  this.errorHandler.sync(this);
1513
1510
  switch (this.interpreter.adaptivePredict(this.tokenStream, 34, this.context) ) {
1514
1511
  case 1:
1515
1512
  this.enterOuterAlt(localContext, 1);
1516
1513
  {
1517
- this.state = 387;
1514
+ this.state = 383;
1518
1515
  this.errorHandler.sync(this);
1519
1516
  _la = this.tokenStream.LA(1);
1520
1517
  if (_la === 47) {
1521
1518
  {
1522
- this.state = 386;
1519
+ this.state = 382;
1523
1520
  this.atomicModifier();
1524
1521
  }
1525
1522
  }
1526
1523
 
1527
- this.state = 390;
1524
+ this.state = 386;
1528
1525
  this.errorHandler.sync(this);
1529
1526
  _la = this.tokenStream.LA(1);
1530
1527
  if (_la === 20) {
1531
1528
  {
1532
- this.state = 389;
1529
+ this.state = 385;
1533
1530
  this.volatileModifier();
1534
1531
  }
1535
1532
  }
1536
1533
 
1537
- this.state = 393;
1534
+ this.state = 389;
1538
1535
  this.errorHandler.sync(this);
1539
1536
  _la = this.tokenStream.LA(1);
1540
1537
  if (_la === 19) {
1541
1538
  {
1542
- this.state = 392;
1539
+ this.state = 388;
1543
1540
  this.constModifier();
1544
1541
  }
1545
1542
  }
1546
1543
 
1547
- this.state = 396;
1544
+ this.state = 392;
1548
1545
  this.errorHandler.sync(this);
1549
1546
  _la = this.tokenStream.LA(1);
1550
1547
  if (_la === 45 || _la === 46) {
1551
1548
  {
1552
- this.state = 395;
1549
+ this.state = 391;
1553
1550
  this.overflowModifier();
1554
1551
  }
1555
1552
  }
1556
1553
 
1557
- this.state = 398;
1554
+ this.state = 394;
1558
1555
  this.type_();
1559
- this.state = 399;
1556
+ this.state = 395;
1560
1557
  this.match(CNextParser.IDENTIFIER);
1561
- this.state = 403;
1558
+ this.state = 399;
1562
1559
  this.errorHandler.sync(this);
1563
1560
  _la = this.tokenStream.LA(1);
1564
1561
  while (_la === 100) {
1565
1562
  {
1566
1563
  {
1567
- this.state = 400;
1564
+ this.state = 396;
1568
1565
  this.arrayDimension();
1569
1566
  }
1570
1567
  }
1571
- this.state = 405;
1568
+ this.state = 401;
1572
1569
  this.errorHandler.sync(this);
1573
1570
  _la = this.tokenStream.LA(1);
1574
1571
  }
1575
- this.state = 408;
1572
+ this.state = 404;
1576
1573
  this.errorHandler.sync(this);
1577
1574
  _la = this.tokenStream.LA(1);
1578
1575
  if (_la === 75) {
1579
1576
  {
1580
- this.state = 406;
1577
+ this.state = 402;
1581
1578
  this.match(CNextParser.ASSIGN);
1582
- this.state = 407;
1579
+ this.state = 403;
1583
1580
  this.expression();
1584
1581
  }
1585
1582
  }
1586
1583
 
1587
- this.state = 410;
1584
+ this.state = 406;
1588
1585
  this.match(CNextParser.SEMI);
1589
1586
  }
1590
1587
  break;
1591
1588
  case 2:
1592
1589
  this.enterOuterAlt(localContext, 2);
1593
1590
  {
1594
- this.state = 412;
1591
+ this.state = 408;
1595
1592
  this.type_();
1596
- this.state = 413;
1593
+ this.state = 409;
1597
1594
  this.match(CNextParser.IDENTIFIER);
1598
- this.state = 414;
1595
+ this.state = 410;
1599
1596
  this.match(CNextParser.LPAREN);
1600
- this.state = 415;
1597
+ this.state = 411;
1601
1598
  this.constructorArgumentList();
1602
- this.state = 416;
1599
+ this.state = 412;
1603
1600
  this.match(CNextParser.RPAREN);
1604
- this.state = 417;
1601
+ this.state = 413;
1605
1602
  this.match(CNextParser.SEMI);
1606
1603
  }
1607
1604
  break;
@@ -1627,21 +1624,21 @@ export class CNextParser extends antlr.Parser {
1627
1624
  try {
1628
1625
  this.enterOuterAlt(localContext, 1);
1629
1626
  {
1630
- this.state = 421;
1627
+ this.state = 417;
1631
1628
  this.match(CNextParser.IDENTIFIER);
1632
- this.state = 426;
1629
+ this.state = 422;
1633
1630
  this.errorHandler.sync(this);
1634
1631
  _la = this.tokenStream.LA(1);
1635
1632
  while (_la === 103) {
1636
1633
  {
1637
1634
  {
1638
- this.state = 422;
1635
+ this.state = 418;
1639
1636
  this.match(CNextParser.COMMA);
1640
- this.state = 423;
1637
+ this.state = 419;
1641
1638
  this.match(CNextParser.IDENTIFIER);
1642
1639
  }
1643
1640
  }
1644
- this.state = 428;
1641
+ this.state = 424;
1645
1642
  this.errorHandler.sync(this);
1646
1643
  _la = this.tokenStream.LA(1);
1647
1644
  }
@@ -1667,23 +1664,23 @@ export class CNextParser extends antlr.Parser {
1667
1664
  try {
1668
1665
  this.enterOuterAlt(localContext, 1);
1669
1666
  {
1670
- this.state = 429;
1667
+ this.state = 425;
1671
1668
  this.match(CNextParser.LBRACE);
1672
- this.state = 433;
1669
+ this.state = 429;
1673
1670
  this.errorHandler.sync(this);
1674
1671
  _la = this.tokenStream.LA(1);
1675
1672
  while (((((_la - 14)) & ~0x1F) === 0 && ((1 << (_la - 14)) & 2151628259) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 524287) !== 0) || ((((_la - 83)) & ~0x1F) === 0 && ((1 << (_la - 83)) & 2130879681) !== 0)) {
1676
1673
  {
1677
1674
  {
1678
- this.state = 430;
1675
+ this.state = 426;
1679
1676
  this.statement();
1680
1677
  }
1681
1678
  }
1682
- this.state = 435;
1679
+ this.state = 431;
1683
1680
  this.errorHandler.sync(this);
1684
1681
  _la = this.tokenStream.LA(1);
1685
1682
  }
1686
- this.state = 436;
1683
+ this.state = 432;
1687
1684
  this.match(CNextParser.RBRACE);
1688
1685
  }
1689
1686
  }
@@ -1704,83 +1701,83 @@ export class CNextParser extends antlr.Parser {
1704
1701
  let localContext = new StatementContext(this.context, this.state);
1705
1702
  this.enterRule(localContext, 62, CNextParser.RULE_statement);
1706
1703
  try {
1707
- this.state = 449;
1704
+ this.state = 445;
1708
1705
  this.errorHandler.sync(this);
1709
1706
  switch (this.interpreter.adaptivePredict(this.tokenStream, 37, this.context) ) {
1710
1707
  case 1:
1711
1708
  this.enterOuterAlt(localContext, 1);
1712
1709
  {
1713
- this.state = 438;
1710
+ this.state = 434;
1714
1711
  this.variableDeclaration();
1715
1712
  }
1716
1713
  break;
1717
1714
  case 2:
1718
1715
  this.enterOuterAlt(localContext, 2);
1719
1716
  {
1720
- this.state = 439;
1717
+ this.state = 435;
1721
1718
  this.assignmentStatement();
1722
1719
  }
1723
1720
  break;
1724
1721
  case 3:
1725
1722
  this.enterOuterAlt(localContext, 3);
1726
1723
  {
1727
- this.state = 440;
1724
+ this.state = 436;
1728
1725
  this.expressionStatement();
1729
1726
  }
1730
1727
  break;
1731
1728
  case 4:
1732
1729
  this.enterOuterAlt(localContext, 4);
1733
1730
  {
1734
- this.state = 441;
1731
+ this.state = 437;
1735
1732
  this.ifStatement();
1736
1733
  }
1737
1734
  break;
1738
1735
  case 5:
1739
1736
  this.enterOuterAlt(localContext, 5);
1740
1737
  {
1741
- this.state = 442;
1738
+ this.state = 438;
1742
1739
  this.whileStatement();
1743
1740
  }
1744
1741
  break;
1745
1742
  case 6:
1746
1743
  this.enterOuterAlt(localContext, 6);
1747
1744
  {
1748
- this.state = 443;
1745
+ this.state = 439;
1749
1746
  this.doWhileStatement();
1750
1747
  }
1751
1748
  break;
1752
1749
  case 7:
1753
1750
  this.enterOuterAlt(localContext, 7);
1754
1751
  {
1755
- this.state = 444;
1752
+ this.state = 440;
1756
1753
  this.forStatement();
1757
1754
  }
1758
1755
  break;
1759
1756
  case 8:
1760
1757
  this.enterOuterAlt(localContext, 8);
1761
1758
  {
1762
- this.state = 445;
1759
+ this.state = 441;
1763
1760
  this.switchStatement();
1764
1761
  }
1765
1762
  break;
1766
1763
  case 9:
1767
1764
  this.enterOuterAlt(localContext, 9);
1768
1765
  {
1769
- this.state = 446;
1766
+ this.state = 442;
1770
1767
  this.returnStatement();
1771
1768
  }
1772
1769
  break;
1773
1770
  case 10:
1774
1771
  this.enterOuterAlt(localContext, 10);
1775
1772
  {
1776
- this.state = 447;
1773
+ this.state = 443;
1777
1774
  this.criticalStatement();
1778
1775
  }
1779
1776
  break;
1780
1777
  case 11:
1781
1778
  this.enterOuterAlt(localContext, 11);
1782
1779
  {
1783
- this.state = 448;
1780
+ this.state = 444;
1784
1781
  this.block();
1785
1782
  }
1786
1783
  break;
@@ -1805,9 +1802,9 @@ export class CNextParser extends antlr.Parser {
1805
1802
  try {
1806
1803
  this.enterOuterAlt(localContext, 1);
1807
1804
  {
1808
- this.state = 451;
1805
+ this.state = 447;
1809
1806
  this.match(CNextParser.CRITICAL);
1810
- this.state = 452;
1807
+ this.state = 448;
1811
1808
  this.block();
1812
1809
  }
1813
1810
  }
@@ -1830,13 +1827,13 @@ export class CNextParser extends antlr.Parser {
1830
1827
  try {
1831
1828
  this.enterOuterAlt(localContext, 1);
1832
1829
  {
1833
- this.state = 454;
1830
+ this.state = 450;
1834
1831
  this.assignmentTarget();
1835
- this.state = 455;
1832
+ this.state = 451;
1836
1833
  this.assignmentOperator();
1837
- this.state = 456;
1834
+ this.state = 452;
1838
1835
  this.expression();
1839
- this.state = 457;
1836
+ this.state = 453;
1840
1837
  this.match(CNextParser.SEMI);
1841
1838
  }
1842
1839
  }
@@ -1860,7 +1857,7 @@ export class CNextParser extends antlr.Parser {
1860
1857
  try {
1861
1858
  this.enterOuterAlt(localContext, 1);
1862
1859
  {
1863
- this.state = 459;
1860
+ this.state = 455;
1864
1861
  _la = this.tokenStream.LA(1);
1865
1862
  if(!(((((_la - 65)) & ~0x1F) === 0 && ((1 << (_la - 65)) & 2047) !== 0))) {
1866
1863
  this.errorHandler.recoverInline(this);
@@ -1891,78 +1888,80 @@ export class CNextParser extends antlr.Parser {
1891
1888
  try {
1892
1889
  this.state = 482;
1893
1890
  this.errorHandler.sync(this);
1894
- switch (this.interpreter.adaptivePredict(this.tokenStream, 40, this.context) ) {
1895
- case 1:
1891
+ switch (this.tokenStream.LA(1)) {
1892
+ case CNextParser.GLOBAL:
1896
1893
  this.enterOuterAlt(localContext, 1);
1897
1894
  {
1898
- this.state = 461;
1895
+ this.state = 457;
1899
1896
  this.match(CNextParser.GLOBAL);
1900
- this.state = 462;
1897
+ this.state = 458;
1901
1898
  this.match(CNextParser.DOT);
1902
- this.state = 463;
1899
+ this.state = 459;
1903
1900
  this.match(CNextParser.IDENTIFIER);
1904
- this.state = 467;
1901
+ this.state = 463;
1905
1902
  this.errorHandler.sync(this);
1906
1903
  _la = this.tokenStream.LA(1);
1907
1904
  while (_la === 100 || _la === 104) {
1908
1905
  {
1909
1906
  {
1910
- this.state = 464;
1907
+ this.state = 460;
1911
1908
  this.postfixTargetOp();
1912
1909
  }
1913
1910
  }
1914
- this.state = 469;
1911
+ this.state = 465;
1915
1912
  this.errorHandler.sync(this);
1916
1913
  _la = this.tokenStream.LA(1);
1917
1914
  }
1918
1915
  }
1919
1916
  break;
1920
- case 2:
1917
+ case CNextParser.THIS:
1921
1918
  this.enterOuterAlt(localContext, 2);
1922
1919
  {
1923
- this.state = 470;
1920
+ this.state = 466;
1924
1921
  this.match(CNextParser.THIS);
1925
- this.state = 471;
1922
+ this.state = 467;
1926
1923
  this.match(CNextParser.DOT);
1927
- this.state = 472;
1924
+ this.state = 468;
1928
1925
  this.match(CNextParser.IDENTIFIER);
1929
- this.state = 476;
1926
+ this.state = 472;
1930
1927
  this.errorHandler.sync(this);
1931
1928
  _la = this.tokenStream.LA(1);
1932
1929
  while (_la === 100 || _la === 104) {
1933
1930
  {
1934
1931
  {
1935
- this.state = 473;
1932
+ this.state = 469;
1936
1933
  this.postfixTargetOp();
1937
1934
  }
1938
1935
  }
1939
- this.state = 478;
1936
+ this.state = 474;
1940
1937
  this.errorHandler.sync(this);
1941
1938
  _la = this.tokenStream.LA(1);
1942
1939
  }
1943
1940
  }
1944
1941
  break;
1945
- case 3:
1942
+ case CNextParser.IDENTIFIER:
1946
1943
  this.enterOuterAlt(localContext, 3);
1947
1944
  {
1945
+ this.state = 475;
1946
+ this.match(CNextParser.IDENTIFIER);
1948
1947
  this.state = 479;
1949
- this.arrayAccess();
1950
- }
1951
- break;
1952
- case 4:
1953
- this.enterOuterAlt(localContext, 4);
1954
- {
1955
- this.state = 480;
1956
- this.memberAccess();
1948
+ this.errorHandler.sync(this);
1949
+ _la = this.tokenStream.LA(1);
1950
+ while (_la === 100 || _la === 104) {
1951
+ {
1952
+ {
1953
+ this.state = 476;
1954
+ this.postfixTargetOp();
1955
+ }
1956
+ }
1957
+ this.state = 481;
1958
+ this.errorHandler.sync(this);
1959
+ _la = this.tokenStream.LA(1);
1957
1960
  }
1958
- break;
1959
- case 5:
1960
- this.enterOuterAlt(localContext, 5);
1961
- {
1962
- this.state = 481;
1963
- this.match(CNextParser.IDENTIFIER);
1964
1961
  }
1965
1962
  break;
1963
+ default:
1964
+ throw new antlr.NoViableAltException(this);
1966
1965
  }
1967
1966
  }
1968
1967
  catch (re) {
@@ -1984,7 +1983,7 @@ export class CNextParser extends antlr.Parser {
1984
1983
  try {
1985
1984
  this.state = 496;
1986
1985
  this.errorHandler.sync(this);
1987
- switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context) ) {
1986
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 42, this.context) ) {
1988
1987
  case 1:
1989
1988
  this.enterOuterAlt(localContext, 1);
1990
1989
  {
@@ -2078,7 +2077,7 @@ export class CNextParser extends antlr.Parser {
2078
2077
  this.statement();
2079
2078
  this.state = 508;
2080
2079
  this.errorHandler.sync(this);
2081
- switch (this.interpreter.adaptivePredict(this.tokenStream, 42, this.context) ) {
2080
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 43, this.context) ) {
2082
2081
  case 1:
2083
2082
  {
2084
2083
  this.state = 506;
@@ -2239,7 +2238,7 @@ export class CNextParser extends antlr.Parser {
2239
2238
  try {
2240
2239
  this.state = 542;
2241
2240
  this.errorHandler.sync(this);
2242
- switch (this.interpreter.adaptivePredict(this.tokenStream, 46, this.context) ) {
2241
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 47, this.context) ) {
2243
2242
  case 1:
2244
2243
  this.enterOuterAlt(localContext, 1);
2245
2244
  {
@@ -2550,7 +2549,7 @@ export class CNextParser extends antlr.Parser {
2550
2549
  try {
2551
2550
  this.state = 617;
2552
2551
  this.errorHandler.sync(this);
2553
- switch (this.interpreter.adaptivePredict(this.tokenStream, 58, this.context) ) {
2552
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 59, this.context) ) {
2554
2553
  case 1:
2555
2554
  this.enterOuterAlt(localContext, 1);
2556
2555
  {
@@ -2697,7 +2696,7 @@ export class CNextParser extends antlr.Parser {
2697
2696
  try {
2698
2697
  this.state = 638;
2699
2698
  this.errorHandler.sync(this);
2700
- switch (this.interpreter.adaptivePredict(this.tokenStream, 60, this.context) ) {
2699
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 61, this.context) ) {
2701
2700
  case 1:
2702
2701
  this.enterOuterAlt(localContext, 1);
2703
2702
  {
@@ -3139,7 +3138,7 @@ export class CNextParser extends antlr.Parser {
3139
3138
  this.unaryExpression();
3140
3139
  this.state = 717;
3141
3140
  this.errorHandler.sync(this);
3142
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3141
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3143
3142
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3144
3143
  if (alternative === 1) {
3145
3144
  {
@@ -3160,7 +3159,7 @@ export class CNextParser extends antlr.Parser {
3160
3159
  }
3161
3160
  this.state = 719;
3162
3161
  this.errorHandler.sync(this);
3163
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 70, this.context);
3162
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 71, this.context);
3164
3163
  }
3165
3164
  }
3166
3165
  }
@@ -3274,7 +3273,7 @@ export class CNextParser extends antlr.Parser {
3274
3273
  this.primaryExpression();
3275
3274
  this.state = 735;
3276
3275
  this.errorHandler.sync(this);
3277
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3276
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3278
3277
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3279
3278
  if (alternative === 1) {
3280
3279
  {
@@ -3286,7 +3285,7 @@ export class CNextParser extends antlr.Parser {
3286
3285
  }
3287
3286
  this.state = 737;
3288
3287
  this.errorHandler.sync(this);
3289
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 72, this.context);
3288
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 73, this.context);
3290
3289
  }
3291
3290
  }
3292
3291
  }
@@ -3310,7 +3309,7 @@ export class CNextParser extends antlr.Parser {
3310
3309
  try {
3311
3310
  this.state = 755;
3312
3311
  this.errorHandler.sync(this);
3313
- switch (this.interpreter.adaptivePredict(this.tokenStream, 74, this.context) ) {
3312
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context) ) {
3314
3313
  case 1:
3315
3314
  this.enterOuterAlt(localContext, 1);
3316
3315
  {
@@ -3386,7 +3385,7 @@ export class CNextParser extends antlr.Parser {
3386
3385
  try {
3387
3386
  this.state = 769;
3388
3387
  this.errorHandler.sync(this);
3389
- switch (this.interpreter.adaptivePredict(this.tokenStream, 75, this.context) ) {
3388
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context) ) {
3390
3389
  case 1:
3391
3390
  this.enterOuterAlt(localContext, 1);
3392
3391
  {
@@ -3481,7 +3480,7 @@ export class CNextParser extends antlr.Parser {
3481
3480
  this.match(CNextParser.LPAREN);
3482
3481
  this.state = 775;
3483
3482
  this.errorHandler.sync(this);
3484
- switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context) ) {
3483
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 77, this.context) ) {
3485
3484
  case 1:
3486
3485
  {
3487
3486
  this.state = 773;
@@ -3610,7 +3609,7 @@ export class CNextParser extends antlr.Parser {
3610
3609
  this.fieldInitializer();
3611
3610
  this.state = 801;
3612
3611
  this.errorHandler.sync(this);
3613
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 79, this.context);
3612
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 80, this.context);
3614
3613
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3615
3614
  if (alternative === 1) {
3616
3615
  {
@@ -3624,7 +3623,7 @@ export class CNextParser extends antlr.Parser {
3624
3623
  }
3625
3624
  this.state = 803;
3626
3625
  this.errorHandler.sync(this);
3627
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 79, this.context);
3626
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 80, this.context);
3628
3627
  }
3629
3628
  this.state = 805;
3630
3629
  this.errorHandler.sync(this);
@@ -3686,7 +3685,7 @@ export class CNextParser extends antlr.Parser {
3686
3685
  let alternative: number;
3687
3686
  this.state = 830;
3688
3687
  this.errorHandler.sync(this);
3689
- switch (this.interpreter.adaptivePredict(this.tokenStream, 83, this.context) ) {
3688
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 84, this.context) ) {
3690
3689
  case 1:
3691
3690
  this.enterOuterAlt(localContext, 1);
3692
3691
  {
@@ -3696,7 +3695,7 @@ export class CNextParser extends antlr.Parser {
3696
3695
  this.arrayInitializerElement();
3697
3696
  this.state = 817;
3698
3697
  this.errorHandler.sync(this);
3699
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3698
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3700
3699
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3701
3700
  if (alternative === 1) {
3702
3701
  {
@@ -3710,7 +3709,7 @@ export class CNextParser extends antlr.Parser {
3710
3709
  }
3711
3710
  this.state = 819;
3712
3711
  this.errorHandler.sync(this);
3713
- alternative = this.interpreter.adaptivePredict(this.tokenStream, 81, this.context);
3712
+ alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3714
3713
  }
3715
3714
  this.state = 821;
3716
3715
  this.errorHandler.sync(this);
@@ -3760,7 +3759,7 @@ export class CNextParser extends antlr.Parser {
3760
3759
  try {
3761
3760
  this.state = 835;
3762
3761
  this.errorHandler.sync(this);
3763
- switch (this.interpreter.adaptivePredict(this.tokenStream, 84, this.context) ) {
3762
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 85, this.context) ) {
3764
3763
  case 1:
3765
3764
  this.enterOuterAlt(localContext, 1);
3766
3765
  {
@@ -3797,286 +3796,28 @@ export class CNextParser extends antlr.Parser {
3797
3796
  }
3798
3797
  return localContext;
3799
3798
  }
3800
- public memberAccess(): MemberAccessContext {
3801
- let localContext = new MemberAccessContext(this.context, this.state);
3802
- this.enterRule(localContext, 148, CNextParser.RULE_memberAccess);
3803
- let _la: number;
3804
- try {
3805
- this.state = 898;
3806
- this.errorHandler.sync(this);
3807
- switch (this.interpreter.adaptivePredict(this.tokenStream, 93, this.context) ) {
3808
- case 1:
3809
- this.enterOuterAlt(localContext, 1);
3810
- {
3811
- this.state = 837;
3812
- this.match(CNextParser.IDENTIFIER);
3813
- this.state = 840;
3814
- this.errorHandler.sync(this);
3815
- _la = this.tokenStream.LA(1);
3816
- do {
3817
- {
3818
- {
3819
- this.state = 838;
3820
- this.match(CNextParser.DOT);
3821
- this.state = 839;
3822
- this.match(CNextParser.IDENTIFIER);
3823
- }
3824
- }
3825
- this.state = 842;
3826
- this.errorHandler.sync(this);
3827
- _la = this.tokenStream.LA(1);
3828
- } while (_la === 104);
3829
- this.state = 848;
3830
- this.errorHandler.sync(this);
3831
- _la = this.tokenStream.LA(1);
3832
- do {
3833
- {
3834
- {
3835
- this.state = 844;
3836
- this.match(CNextParser.LBRACKET);
3837
- this.state = 845;
3838
- this.expression();
3839
- this.state = 846;
3840
- this.match(CNextParser.RBRACKET);
3841
- }
3842
- }
3843
- this.state = 850;
3844
- this.errorHandler.sync(this);
3845
- _la = this.tokenStream.LA(1);
3846
- } while (_la === 100);
3847
- }
3848
- break;
3849
- case 2:
3850
- this.enterOuterAlt(localContext, 2);
3851
- {
3852
- this.state = 852;
3853
- this.match(CNextParser.IDENTIFIER);
3854
- this.state = 855;
3855
- this.errorHandler.sync(this);
3856
- _la = this.tokenStream.LA(1);
3857
- do {
3858
- {
3859
- {
3860
- this.state = 853;
3861
- this.match(CNextParser.DOT);
3862
- this.state = 854;
3863
- this.match(CNextParser.IDENTIFIER);
3864
- }
3865
- }
3866
- this.state = 857;
3867
- this.errorHandler.sync(this);
3868
- _la = this.tokenStream.LA(1);
3869
- } while (_la === 104);
3870
- this.state = 859;
3871
- this.match(CNextParser.LBRACKET);
3872
- this.state = 860;
3873
- this.expression();
3874
- this.state = 861;
3875
- this.match(CNextParser.COMMA);
3876
- this.state = 862;
3877
- this.expression();
3878
- this.state = 863;
3879
- this.match(CNextParser.RBRACKET);
3880
- }
3881
- break;
3882
- case 3:
3883
- this.enterOuterAlt(localContext, 3);
3884
- {
3885
- this.state = 865;
3886
- this.match(CNextParser.IDENTIFIER);
3887
- this.state = 868;
3888
- this.errorHandler.sync(this);
3889
- _la = this.tokenStream.LA(1);
3890
- do {
3891
- {
3892
- {
3893
- this.state = 866;
3894
- this.match(CNextParser.DOT);
3895
- this.state = 867;
3896
- this.match(CNextParser.IDENTIFIER);
3897
- }
3898
- }
3899
- this.state = 870;
3900
- this.errorHandler.sync(this);
3901
- _la = this.tokenStream.LA(1);
3902
- } while (_la === 104);
3903
- }
3904
- break;
3905
- case 4:
3906
- this.enterOuterAlt(localContext, 4);
3907
- {
3908
- this.state = 872;
3909
- this.match(CNextParser.IDENTIFIER);
3910
- this.state = 877;
3911
- this.errorHandler.sync(this);
3912
- _la = this.tokenStream.LA(1);
3913
- do {
3914
- {
3915
- {
3916
- this.state = 873;
3917
- this.match(CNextParser.LBRACKET);
3918
- this.state = 874;
3919
- this.expression();
3920
- this.state = 875;
3921
- this.match(CNextParser.RBRACKET);
3922
- }
3923
- }
3924
- this.state = 879;
3925
- this.errorHandler.sync(this);
3926
- _la = this.tokenStream.LA(1);
3927
- } while (_la === 100);
3928
- this.state = 883;
3929
- this.errorHandler.sync(this);
3930
- _la = this.tokenStream.LA(1);
3931
- do {
3932
- {
3933
- {
3934
- this.state = 881;
3935
- this.match(CNextParser.DOT);
3936
- this.state = 882;
3937
- this.match(CNextParser.IDENTIFIER);
3938
- }
3939
- }
3940
- this.state = 885;
3941
- this.errorHandler.sync(this);
3942
- _la = this.tokenStream.LA(1);
3943
- } while (_la === 104);
3944
- }
3945
- break;
3946
- case 5:
3947
- this.enterOuterAlt(localContext, 5);
3948
- {
3949
- this.state = 887;
3950
- this.match(CNextParser.IDENTIFIER);
3951
- this.state = 894;
3952
- this.errorHandler.sync(this);
3953
- _la = this.tokenStream.LA(1);
3954
- do {
3955
- {
3956
- this.state = 894;
3957
- this.errorHandler.sync(this);
3958
- switch (this.tokenStream.LA(1)) {
3959
- case CNextParser.LBRACKET:
3960
- {
3961
- {
3962
- this.state = 888;
3963
- this.match(CNextParser.LBRACKET);
3964
- this.state = 889;
3965
- this.expression();
3966
- this.state = 890;
3967
- this.match(CNextParser.RBRACKET);
3968
- }
3969
- }
3970
- break;
3971
- case CNextParser.DOT:
3972
- {
3973
- {
3974
- this.state = 892;
3975
- this.match(CNextParser.DOT);
3976
- this.state = 893;
3977
- this.match(CNextParser.IDENTIFIER);
3978
- }
3979
- }
3980
- break;
3981
- default:
3982
- throw new antlr.NoViableAltException(this);
3983
- }
3984
- }
3985
- this.state = 896;
3986
- this.errorHandler.sync(this);
3987
- _la = this.tokenStream.LA(1);
3988
- } while (_la === 100 || _la === 104);
3989
- }
3990
- break;
3991
- }
3992
- }
3993
- catch (re) {
3994
- if (re instanceof antlr.RecognitionException) {
3995
- this.errorHandler.reportError(this, re);
3996
- this.errorHandler.recover(this, re);
3997
- } else {
3998
- throw re;
3999
- }
4000
- }
4001
- finally {
4002
- this.exitRule();
4003
- }
4004
- return localContext;
4005
- }
4006
- public arrayAccess(): ArrayAccessContext {
4007
- let localContext = new ArrayAccessContext(this.context, this.state);
4008
- this.enterRule(localContext, 150, CNextParser.RULE_arrayAccess);
4009
- try {
4010
- this.state = 912;
4011
- this.errorHandler.sync(this);
4012
- switch (this.interpreter.adaptivePredict(this.tokenStream, 94, this.context) ) {
4013
- case 1:
4014
- this.enterOuterAlt(localContext, 1);
4015
- {
4016
- this.state = 900;
4017
- this.match(CNextParser.IDENTIFIER);
4018
- this.state = 901;
4019
- this.match(CNextParser.LBRACKET);
4020
- this.state = 902;
4021
- this.expression();
4022
- this.state = 903;
4023
- this.match(CNextParser.RBRACKET);
4024
- }
4025
- break;
4026
- case 2:
4027
- this.enterOuterAlt(localContext, 2);
4028
- {
4029
- this.state = 905;
4030
- this.match(CNextParser.IDENTIFIER);
4031
- this.state = 906;
4032
- this.match(CNextParser.LBRACKET);
4033
- this.state = 907;
4034
- this.expression();
4035
- this.state = 908;
4036
- this.match(CNextParser.COMMA);
4037
- this.state = 909;
4038
- this.expression();
4039
- this.state = 910;
4040
- this.match(CNextParser.RBRACKET);
4041
- }
4042
- break;
4043
- }
4044
- }
4045
- catch (re) {
4046
- if (re instanceof antlr.RecognitionException) {
4047
- this.errorHandler.reportError(this, re);
4048
- this.errorHandler.recover(this, re);
4049
- } else {
4050
- throw re;
4051
- }
4052
- }
4053
- finally {
4054
- this.exitRule();
4055
- }
4056
- return localContext;
4057
- }
4058
3799
  public argumentList(): ArgumentListContext {
4059
3800
  let localContext = new ArgumentListContext(this.context, this.state);
4060
- this.enterRule(localContext, 152, CNextParser.RULE_argumentList);
3801
+ this.enterRule(localContext, 148, CNextParser.RULE_argumentList);
4061
3802
  let _la: number;
4062
3803
  try {
4063
3804
  this.enterOuterAlt(localContext, 1);
4064
3805
  {
4065
- this.state = 914;
3806
+ this.state = 837;
4066
3807
  this.expression();
4067
- this.state = 919;
3808
+ this.state = 842;
4068
3809
  this.errorHandler.sync(this);
4069
3810
  _la = this.tokenStream.LA(1);
4070
3811
  while (_la === 103) {
4071
3812
  {
4072
3813
  {
4073
- this.state = 915;
3814
+ this.state = 838;
4074
3815
  this.match(CNextParser.COMMA);
4075
- this.state = 916;
3816
+ this.state = 839;
4076
3817
  this.expression();
4077
3818
  }
4078
3819
  }
4079
- this.state = 921;
3820
+ this.state = 844;
4080
3821
  this.errorHandler.sync(this);
4081
3822
  _la = this.tokenStream.LA(1);
4082
3823
  }
@@ -4097,71 +3838,71 @@ export class CNextParser extends antlr.Parser {
4097
3838
  }
4098
3839
  public type_(): TypeContext {
4099
3840
  let localContext = new TypeContext(this.context, this.state);
4100
- this.enterRule(localContext, 154, CNextParser.RULE_type);
3841
+ this.enterRule(localContext, 150, CNextParser.RULE_type);
4101
3842
  try {
4102
- this.state = 931;
3843
+ this.state = 854;
4103
3844
  this.errorHandler.sync(this);
4104
- switch (this.interpreter.adaptivePredict(this.tokenStream, 96, this.context) ) {
3845
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 87, this.context) ) {
4105
3846
  case 1:
4106
3847
  this.enterOuterAlt(localContext, 1);
4107
3848
  {
4108
- this.state = 922;
3849
+ this.state = 845;
4109
3850
  this.primitiveType();
4110
3851
  }
4111
3852
  break;
4112
3853
  case 2:
4113
3854
  this.enterOuterAlt(localContext, 2);
4114
3855
  {
4115
- this.state = 923;
3856
+ this.state = 846;
4116
3857
  this.stringType();
4117
3858
  }
4118
3859
  break;
4119
3860
  case 3:
4120
3861
  this.enterOuterAlt(localContext, 3);
4121
3862
  {
4122
- this.state = 924;
3863
+ this.state = 847;
4123
3864
  this.scopedType();
4124
3865
  }
4125
3866
  break;
4126
3867
  case 4:
4127
3868
  this.enterOuterAlt(localContext, 4);
4128
3869
  {
4129
- this.state = 925;
3870
+ this.state = 848;
4130
3871
  this.globalType();
4131
3872
  }
4132
3873
  break;
4133
3874
  case 5:
4134
3875
  this.enterOuterAlt(localContext, 5);
4135
3876
  {
4136
- this.state = 926;
3877
+ this.state = 849;
4137
3878
  this.qualifiedType();
4138
3879
  }
4139
3880
  break;
4140
3881
  case 6:
4141
3882
  this.enterOuterAlt(localContext, 6);
4142
3883
  {
4143
- this.state = 927;
3884
+ this.state = 850;
4144
3885
  this.templateType();
4145
3886
  }
4146
3887
  break;
4147
3888
  case 7:
4148
3889
  this.enterOuterAlt(localContext, 7);
4149
3890
  {
4150
- this.state = 928;
3891
+ this.state = 851;
4151
3892
  this.userType();
4152
3893
  }
4153
3894
  break;
4154
3895
  case 8:
4155
3896
  this.enterOuterAlt(localContext, 8);
4156
3897
  {
4157
- this.state = 929;
3898
+ this.state = 852;
4158
3899
  this.arrayType();
4159
3900
  }
4160
3901
  break;
4161
3902
  case 9:
4162
3903
  this.enterOuterAlt(localContext, 9);
4163
3904
  {
4164
- this.state = 930;
3905
+ this.state = 853;
4165
3906
  this.match(CNextParser.VOID);
4166
3907
  }
4167
3908
  break;
@@ -4182,15 +3923,15 @@ export class CNextParser extends antlr.Parser {
4182
3923
  }
4183
3924
  public scopedType(): ScopedTypeContext {
4184
3925
  let localContext = new ScopedTypeContext(this.context, this.state);
4185
- this.enterRule(localContext, 156, CNextParser.RULE_scopedType);
3926
+ this.enterRule(localContext, 152, CNextParser.RULE_scopedType);
4186
3927
  try {
4187
3928
  this.enterOuterAlt(localContext, 1);
4188
3929
  {
4189
- this.state = 933;
3930
+ this.state = 856;
4190
3931
  this.match(CNextParser.THIS);
4191
- this.state = 934;
3932
+ this.state = 857;
4192
3933
  this.match(CNextParser.DOT);
4193
- this.state = 935;
3934
+ this.state = 858;
4194
3935
  this.match(CNextParser.IDENTIFIER);
4195
3936
  }
4196
3937
  }
@@ -4209,15 +3950,15 @@ export class CNextParser extends antlr.Parser {
4209
3950
  }
4210
3951
  public globalType(): GlobalTypeContext {
4211
3952
  let localContext = new GlobalTypeContext(this.context, this.state);
4212
- this.enterRule(localContext, 158, CNextParser.RULE_globalType);
3953
+ this.enterRule(localContext, 154, CNextParser.RULE_globalType);
4213
3954
  try {
4214
3955
  this.enterOuterAlt(localContext, 1);
4215
3956
  {
4216
- this.state = 937;
3957
+ this.state = 860;
4217
3958
  this.match(CNextParser.GLOBAL);
4218
- this.state = 938;
3959
+ this.state = 861;
4219
3960
  this.match(CNextParser.DOT);
4220
- this.state = 939;
3961
+ this.state = 862;
4221
3962
  this.match(CNextParser.IDENTIFIER);
4222
3963
  }
4223
3964
  }
@@ -4236,26 +3977,26 @@ export class CNextParser extends antlr.Parser {
4236
3977
  }
4237
3978
  public qualifiedType(): QualifiedTypeContext {
4238
3979
  let localContext = new QualifiedTypeContext(this.context, this.state);
4239
- this.enterRule(localContext, 160, CNextParser.RULE_qualifiedType);
3980
+ this.enterRule(localContext, 156, CNextParser.RULE_qualifiedType);
4240
3981
  let _la: number;
4241
3982
  try {
4242
3983
  this.enterOuterAlt(localContext, 1);
4243
3984
  {
4244
- this.state = 941;
3985
+ this.state = 864;
4245
3986
  this.match(CNextParser.IDENTIFIER);
4246
- this.state = 944;
3987
+ this.state = 867;
4247
3988
  this.errorHandler.sync(this);
4248
3989
  _la = this.tokenStream.LA(1);
4249
3990
  do {
4250
3991
  {
4251
3992
  {
4252
- this.state = 942;
3993
+ this.state = 865;
4253
3994
  this.match(CNextParser.DOT);
4254
- this.state = 943;
3995
+ this.state = 866;
4255
3996
  this.match(CNextParser.IDENTIFIER);
4256
3997
  }
4257
3998
  }
4258
- this.state = 946;
3999
+ this.state = 869;
4259
4000
  this.errorHandler.sync(this);
4260
4001
  _la = this.tokenStream.LA(1);
4261
4002
  } while (_la === 104);
@@ -4276,12 +4017,12 @@ export class CNextParser extends antlr.Parser {
4276
4017
  }
4277
4018
  public primitiveType(): PrimitiveTypeContext {
4278
4019
  let localContext = new PrimitiveTypeContext(this.context, this.state);
4279
- this.enterRule(localContext, 162, CNextParser.RULE_primitiveType);
4020
+ this.enterRule(localContext, 158, CNextParser.RULE_primitiveType);
4280
4021
  let _la: number;
4281
4022
  try {
4282
4023
  this.enterOuterAlt(localContext, 1);
4283
4024
  {
4284
- this.state = 948;
4025
+ this.state = 871;
4285
4026
  _la = this.tokenStream.LA(1);
4286
4027
  if(!(((((_la - 53)) & ~0x1F) === 0 && ((1 << (_la - 53)) & 4095) !== 0))) {
4287
4028
  this.errorHandler.recoverInline(this);
@@ -4307,11 +4048,11 @@ export class CNextParser extends antlr.Parser {
4307
4048
  }
4308
4049
  public userType(): UserTypeContext {
4309
4050
  let localContext = new UserTypeContext(this.context, this.state);
4310
- this.enterRule(localContext, 164, CNextParser.RULE_userType);
4051
+ this.enterRule(localContext, 160, CNextParser.RULE_userType);
4311
4052
  try {
4312
4053
  this.enterOuterAlt(localContext, 1);
4313
4054
  {
4314
- this.state = 950;
4055
+ this.state = 873;
4315
4056
  this.match(CNextParser.IDENTIFIER);
4316
4057
  }
4317
4058
  }
@@ -4330,17 +4071,17 @@ export class CNextParser extends antlr.Parser {
4330
4071
  }
4331
4072
  public templateType(): TemplateTypeContext {
4332
4073
  let localContext = new TemplateTypeContext(this.context, this.state);
4333
- this.enterRule(localContext, 166, CNextParser.RULE_templateType);
4074
+ this.enterRule(localContext, 162, CNextParser.RULE_templateType);
4334
4075
  try {
4335
4076
  this.enterOuterAlt(localContext, 1);
4336
4077
  {
4337
- this.state = 952;
4078
+ this.state = 875;
4338
4079
  this.match(CNextParser.IDENTIFIER);
4339
- this.state = 953;
4080
+ this.state = 876;
4340
4081
  this.match(CNextParser.LT);
4341
- this.state = 954;
4082
+ this.state = 877;
4342
4083
  this.templateArgumentList();
4343
- this.state = 955;
4084
+ this.state = 878;
4344
4085
  this.match(CNextParser.GT);
4345
4086
  }
4346
4087
  }
@@ -4359,26 +4100,26 @@ export class CNextParser extends antlr.Parser {
4359
4100
  }
4360
4101
  public templateArgumentList(): TemplateArgumentListContext {
4361
4102
  let localContext = new TemplateArgumentListContext(this.context, this.state);
4362
- this.enterRule(localContext, 168, CNextParser.RULE_templateArgumentList);
4103
+ this.enterRule(localContext, 164, CNextParser.RULE_templateArgumentList);
4363
4104
  let _la: number;
4364
4105
  try {
4365
4106
  this.enterOuterAlt(localContext, 1);
4366
4107
  {
4367
- this.state = 957;
4108
+ this.state = 880;
4368
4109
  this.templateArgument();
4369
- this.state = 962;
4110
+ this.state = 885;
4370
4111
  this.errorHandler.sync(this);
4371
4112
  _la = this.tokenStream.LA(1);
4372
4113
  while (_la === 103) {
4373
4114
  {
4374
4115
  {
4375
- this.state = 958;
4116
+ this.state = 881;
4376
4117
  this.match(CNextParser.COMMA);
4377
- this.state = 959;
4118
+ this.state = 882;
4378
4119
  this.templateArgument();
4379
4120
  }
4380
4121
  }
4381
- this.state = 964;
4122
+ this.state = 887;
4382
4123
  this.errorHandler.sync(this);
4383
4124
  _la = this.tokenStream.LA(1);
4384
4125
  }
@@ -4399,36 +4140,36 @@ export class CNextParser extends antlr.Parser {
4399
4140
  }
4400
4141
  public templateArgument(): TemplateArgumentContext {
4401
4142
  let localContext = new TemplateArgumentContext(this.context, this.state);
4402
- this.enterRule(localContext, 170, CNextParser.RULE_templateArgument);
4143
+ this.enterRule(localContext, 166, CNextParser.RULE_templateArgument);
4403
4144
  try {
4404
- this.state = 969;
4145
+ this.state = 892;
4405
4146
  this.errorHandler.sync(this);
4406
- switch (this.interpreter.adaptivePredict(this.tokenStream, 99, this.context) ) {
4147
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 90, this.context) ) {
4407
4148
  case 1:
4408
4149
  this.enterOuterAlt(localContext, 1);
4409
4150
  {
4410
- this.state = 965;
4151
+ this.state = 888;
4411
4152
  this.templateType();
4412
4153
  }
4413
4154
  break;
4414
4155
  case 2:
4415
4156
  this.enterOuterAlt(localContext, 2);
4416
4157
  {
4417
- this.state = 966;
4158
+ this.state = 889;
4418
4159
  this.primitiveType();
4419
4160
  }
4420
4161
  break;
4421
4162
  case 3:
4422
4163
  this.enterOuterAlt(localContext, 3);
4423
4164
  {
4424
- this.state = 967;
4165
+ this.state = 890;
4425
4166
  this.match(CNextParser.IDENTIFIER);
4426
4167
  }
4427
4168
  break;
4428
4169
  case 4:
4429
4170
  this.enterOuterAlt(localContext, 4);
4430
4171
  {
4431
- this.state = 968;
4172
+ this.state = 891;
4432
4173
  this.match(CNextParser.INTEGER_LITERAL);
4433
4174
  }
4434
4175
  break;
@@ -4449,28 +4190,28 @@ export class CNextParser extends antlr.Parser {
4449
4190
  }
4450
4191
  public stringType(): StringTypeContext {
4451
4192
  let localContext = new StringTypeContext(this.context, this.state);
4452
- this.enterRule(localContext, 172, CNextParser.RULE_stringType);
4193
+ this.enterRule(localContext, 168, CNextParser.RULE_stringType);
4453
4194
  try {
4454
- this.state = 976;
4195
+ this.state = 899;
4455
4196
  this.errorHandler.sync(this);
4456
- switch (this.interpreter.adaptivePredict(this.tokenStream, 100, this.context) ) {
4197
+ switch (this.interpreter.adaptivePredict(this.tokenStream, 91, this.context) ) {
4457
4198
  case 1:
4458
4199
  this.enterOuterAlt(localContext, 1);
4459
4200
  {
4460
- this.state = 971;
4201
+ this.state = 894;
4461
4202
  this.match(CNextParser.STRING);
4462
- this.state = 972;
4203
+ this.state = 895;
4463
4204
  this.match(CNextParser.LT);
4464
- this.state = 973;
4205
+ this.state = 896;
4465
4206
  this.match(CNextParser.INTEGER_LITERAL);
4466
- this.state = 974;
4207
+ this.state = 897;
4467
4208
  this.match(CNextParser.GT);
4468
4209
  }
4469
4210
  break;
4470
4211
  case 2:
4471
4212
  this.enterOuterAlt(localContext, 2);
4472
4213
  {
4473
- this.state = 975;
4214
+ this.state = 898;
4474
4215
  this.match(CNextParser.STRING);
4475
4216
  }
4476
4217
  break;
@@ -4491,9 +4232,9 @@ export class CNextParser extends antlr.Parser {
4491
4232
  }
4492
4233
  public arrayType(): ArrayTypeContext {
4493
4234
  let localContext = new ArrayTypeContext(this.context, this.state);
4494
- this.enterRule(localContext, 174, CNextParser.RULE_arrayType);
4235
+ this.enterRule(localContext, 170, CNextParser.RULE_arrayType);
4495
4236
  try {
4496
- this.state = 988;
4237
+ this.state = 911;
4497
4238
  this.errorHandler.sync(this);
4498
4239
  switch (this.tokenStream.LA(1)) {
4499
4240
  case CNextParser.U8:
@@ -4510,26 +4251,26 @@ export class CNextParser extends antlr.Parser {
4510
4251
  case CNextParser.ISR_TYPE:
4511
4252
  this.enterOuterAlt(localContext, 1);
4512
4253
  {
4513
- this.state = 978;
4254
+ this.state = 901;
4514
4255
  this.primitiveType();
4515
- this.state = 979;
4256
+ this.state = 902;
4516
4257
  this.match(CNextParser.LBRACKET);
4517
- this.state = 980;
4258
+ this.state = 903;
4518
4259
  this.expression();
4519
- this.state = 981;
4260
+ this.state = 904;
4520
4261
  this.match(CNextParser.RBRACKET);
4521
4262
  }
4522
4263
  break;
4523
4264
  case CNextParser.IDENTIFIER:
4524
4265
  this.enterOuterAlt(localContext, 2);
4525
4266
  {
4526
- this.state = 983;
4267
+ this.state = 906;
4527
4268
  this.userType();
4528
- this.state = 984;
4269
+ this.state = 907;
4529
4270
  this.match(CNextParser.LBRACKET);
4530
- this.state = 985;
4271
+ this.state = 908;
4531
4272
  this.expression();
4532
- this.state = 986;
4273
+ this.state = 909;
4533
4274
  this.match(CNextParser.RBRACKET);
4534
4275
  }
4535
4276
  break;
@@ -4552,12 +4293,12 @@ export class CNextParser extends antlr.Parser {
4552
4293
  }
4553
4294
  public literal(): LiteralContext {
4554
4295
  let localContext = new LiteralContext(this.context, this.state);
4555
- this.enterRule(localContext, 176, CNextParser.RULE_literal);
4296
+ this.enterRule(localContext, 172, CNextParser.RULE_literal);
4556
4297
  let _la: number;
4557
4298
  try {
4558
4299
  this.enterOuterAlt(localContext, 1);
4559
4300
  {
4560
- this.state = 990;
4301
+ this.state = 913;
4561
4302
  _la = this.tokenStream.LA(1);
4562
4303
  if(!(((((_la - 31)) & ~0x1F) === 0 && ((1 << (_la - 31)) & 3932167) !== 0) || ((((_la - 107)) & ~0x1F) === 0 && ((1 << (_la - 107)) & 63) !== 0))) {
4563
4304
  this.errorHandler.recoverInline(this);
@@ -4583,7 +4324,7 @@ export class CNextParser extends antlr.Parser {
4583
4324
  }
4584
4325
 
4585
4326
  public static readonly _serializedATN: number[] = [
4586
- 4,1,117,993,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,
4327
+ 4,1,117,916,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,
4587
4328
  7,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,
4588
4329
  13,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,
4589
4330
  20,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,
@@ -4596,364 +4337,333 @@ export class CNextParser extends antlr.Parser {
4596
4337
  65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,
4597
4338
  72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,
4598
4339
  78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,
4599
- 85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,1,0,1,0,5,0,181,8,0,10,0,12,
4600
- 0,184,9,0,1,0,5,0,187,8,0,10,0,12,0,190,9,0,1,0,1,0,1,1,1,1,1,2,
4601
- 1,2,1,2,3,2,199,8,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,6,1,6,
4602
- 1,6,1,6,3,6,214,8,6,1,7,1,7,1,7,1,7,5,7,220,8,7,10,7,12,7,223,9,
4603
- 7,1,7,1,7,1,8,3,8,228,8,8,1,8,1,8,3,8,232,8,8,1,8,1,8,3,8,236,8,
4604
- 8,1,8,1,8,3,8,240,8,8,1,8,1,8,3,8,244,8,8,1,8,1,8,3,8,248,8,8,1,
4605
- 8,3,8,251,8,8,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,5,10,261,8,10,
4606
- 10,10,12,10,264,9,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,
4607
- 3,11,275,8,11,1,12,1,12,1,13,1,13,1,13,1,13,5,13,283,8,13,10,13,
4608
- 12,13,286,9,13,1,13,1,13,1,14,1,14,1,14,5,14,293,8,14,10,14,12,14,
4609
- 296,9,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,5,15,306,8,15,10,
4610
- 15,12,15,309,9,15,1,15,3,15,312,8,15,1,15,1,15,1,16,1,16,1,16,3,
4611
- 16,319,8,16,1,17,1,17,1,17,1,17,1,17,1,17,5,17,327,8,17,10,17,12,
4612
- 17,330,9,17,1,17,3,17,333,8,17,1,17,1,17,1,18,1,18,1,19,1,19,1,19,
4613
- 1,19,3,19,343,8,19,1,20,1,20,1,20,1,20,3,20,349,8,20,1,20,1,20,1,
4614
- 20,1,21,1,21,1,21,5,21,357,8,21,10,21,12,21,360,9,21,1,22,3,22,363,
4615
- 8,22,1,22,1,22,1,22,5,22,368,8,22,10,22,12,22,371,9,22,1,23,1,23,
4616
- 1,24,1,24,1,25,1,25,1,26,1,26,1,27,1,27,3,27,383,8,27,1,27,1,27,
4617
- 1,28,3,28,388,8,28,1,28,3,28,391,8,28,1,28,3,28,394,8,28,1,28,3,
4618
- 28,397,8,28,1,28,1,28,1,28,5,28,402,8,28,10,28,12,28,405,9,28,1,
4619
- 28,1,28,3,28,409,8,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,
4620
- 28,3,28,420,8,28,1,29,1,29,1,29,5,29,425,8,29,10,29,12,29,428,9,
4621
- 29,1,30,1,30,5,30,432,8,30,10,30,12,30,435,9,30,1,30,1,30,1,31,1,
4622
- 31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,450,8,31,1,
4623
- 32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,35,1,35,1,35,1,
4624
- 35,5,35,466,8,35,10,35,12,35,469,9,35,1,35,1,35,1,35,1,35,5,35,475,
4625
- 8,35,10,35,12,35,478,9,35,1,35,1,35,1,35,3,35,483,8,35,1,36,1,36,
4626
- 1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,3,36,497,8,36,
4627
- 1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,38,3,38,509,8,38,
4628
- 1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,
4629
- 1,40,1,41,1,41,1,41,3,41,528,8,41,1,41,1,41,3,41,532,8,41,1,41,1,
4630
- 41,3,41,536,8,41,1,41,1,41,1,41,1,42,1,42,3,42,543,8,42,1,43,3,43,
4631
- 546,8,43,1,43,3,43,549,8,43,1,43,3,43,552,8,43,1,43,1,43,1,43,5,
4632
- 43,557,8,43,10,43,12,43,560,9,43,1,43,1,43,3,43,564,8,43,1,44,1,
4633
- 44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,3,46,576,8,46,1,46,1,
4634
- 46,1,47,1,47,1,47,1,47,1,47,1,47,4,47,586,8,47,11,47,12,47,587,1,
4635
- 47,3,47,591,8,47,1,47,1,47,1,48,1,48,1,48,1,48,5,48,599,8,48,10,
4636
- 48,12,48,602,9,48,1,48,1,48,1,49,1,49,1,49,3,49,609,8,49,1,49,1,
4637
- 49,3,49,613,8,49,1,49,1,49,1,49,3,49,618,8,49,1,50,1,50,1,50,1,50,
4638
- 3,50,624,8,50,1,50,1,50,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,
4639
- 1,52,1,52,1,52,3,52,639,8,52,1,53,1,53,1,53,5,53,644,8,53,10,53,
4640
- 12,53,647,9,53,1,54,1,54,1,54,5,54,652,8,54,10,54,12,54,655,9,54,
4641
- 1,55,1,55,1,55,5,55,660,8,55,10,55,12,55,663,9,55,1,56,1,56,1,56,
4642
- 5,56,668,8,56,10,56,12,56,671,9,56,1,57,1,57,1,57,5,57,676,8,57,
4643
- 10,57,12,57,679,9,57,1,58,1,58,1,58,5,58,684,8,58,10,58,12,58,687,
4644
- 9,58,1,59,1,59,1,59,5,59,692,8,59,10,59,12,59,695,9,59,1,60,1,60,
4645
- 1,60,5,60,700,8,60,10,60,12,60,703,9,60,1,61,1,61,1,61,5,61,708,
4646
- 8,61,10,61,12,61,711,9,61,1,62,1,62,1,62,5,62,716,8,62,10,62,12,
4647
- 62,719,9,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,3,63,730,
4648
- 8,63,1,64,1,64,5,64,734,8,64,10,64,12,64,737,9,64,1,65,1,65,1,65,
4649
- 1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,3,65,753,
4650
- 8,65,1,65,3,65,756,8,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,
4651
- 1,66,1,66,1,66,1,66,3,66,770,8,66,1,67,1,67,1,67,1,67,3,67,776,8,
4652
- 67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,3,69,788,8,
4653
- 69,1,69,1,69,1,69,1,69,1,69,3,69,795,8,69,1,70,1,70,1,70,5,70,800,
4654
- 8,70,10,70,12,70,803,9,70,1,70,3,70,806,8,70,1,71,1,71,1,71,1,71,
4655
- 1,72,1,72,1,72,1,72,5,72,816,8,72,10,72,12,72,819,9,72,1,72,3,72,
4656
- 822,8,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,3,72,831,8,72,1,73,1,
4657
- 73,1,73,3,73,836,8,73,1,74,1,74,1,74,4,74,841,8,74,11,74,12,74,842,
4658
- 1,74,1,74,1,74,1,74,4,74,849,8,74,11,74,12,74,850,1,74,1,74,1,74,
4659
- 4,74,856,8,74,11,74,12,74,857,1,74,1,74,1,74,1,74,1,74,1,74,1,74,
4660
- 1,74,1,74,4,74,869,8,74,11,74,12,74,870,1,74,1,74,1,74,1,74,1,74,
4661
- 4,74,878,8,74,11,74,12,74,879,1,74,1,74,4,74,884,8,74,11,74,12,74,
4662
- 885,1,74,1,74,1,74,1,74,1,74,1,74,1,74,4,74,895,8,74,11,74,12,74,
4663
- 896,3,74,899,8,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,
4664
- 75,1,75,1,75,3,75,913,8,75,1,76,1,76,1,76,5,76,918,8,76,10,76,12,
4665
- 76,921,9,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,3,77,932,
4666
- 8,77,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,80,1,80,1,80,4,80,
4667
- 945,8,80,11,80,12,80,946,1,81,1,81,1,82,1,82,1,83,1,83,1,83,1,83,
4668
- 1,83,1,84,1,84,1,84,5,84,961,8,84,10,84,12,84,964,9,84,1,85,1,85,
4669
- 1,85,1,85,3,85,970,8,85,1,86,1,86,1,86,1,86,1,86,3,86,977,8,86,1,
4670
- 87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,3,87,989,8,87,1,
4671
- 88,1,88,1,88,0,0,89,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,
4672
- 34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,
4673
- 78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,
4674
- 116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,
4675
- 148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,0,14,
4676
- 1,0,3,5,1,0,6,9,1,0,17,18,1,0,40,44,1,0,36,39,1,0,45,46,1,0,65,75,
4677
- 1,0,76,77,1,0,78,81,1,0,94,95,1,0,82,83,1,0,84,86,1,0,53,64,3,0,
4678
- 31,33,49,52,107,112,1057,0,182,1,0,0,0,2,193,1,0,0,0,4,198,1,0,0,
4679
- 0,6,200,1,0,0,0,8,202,1,0,0,0,10,204,1,0,0,0,12,213,1,0,0,0,14,215,
4680
- 1,0,0,0,16,250,1,0,0,0,18,252,1,0,0,0,20,254,1,0,0,0,22,267,1,0,
4681
- 0,0,24,276,1,0,0,0,26,278,1,0,0,0,28,289,1,0,0,0,30,299,1,0,0,0,
4682
- 32,315,1,0,0,0,34,320,1,0,0,0,36,336,1,0,0,0,38,338,1,0,0,0,40,344,
4683
- 1,0,0,0,42,353,1,0,0,0,44,362,1,0,0,0,46,372,1,0,0,0,48,374,1,0,
4684
- 0,0,50,376,1,0,0,0,52,378,1,0,0,0,54,380,1,0,0,0,56,419,1,0,0,0,
4685
- 58,421,1,0,0,0,60,429,1,0,0,0,62,449,1,0,0,0,64,451,1,0,0,0,66,454,
4686
- 1,0,0,0,68,459,1,0,0,0,70,482,1,0,0,0,72,496,1,0,0,0,74,498,1,0,
4687
- 0,0,76,501,1,0,0,0,78,510,1,0,0,0,80,516,1,0,0,0,82,524,1,0,0,0,
4688
- 84,542,1,0,0,0,86,545,1,0,0,0,88,565,1,0,0,0,90,569,1,0,0,0,92,573,
4689
- 1,0,0,0,94,579,1,0,0,0,96,594,1,0,0,0,98,617,1,0,0,0,100,619,1,0,
4690
- 0,0,102,627,1,0,0,0,104,638,1,0,0,0,106,640,1,0,0,0,108,648,1,0,
4691
- 0,0,110,656,1,0,0,0,112,664,1,0,0,0,114,672,1,0,0,0,116,680,1,0,
4692
- 0,0,118,688,1,0,0,0,120,696,1,0,0,0,122,704,1,0,0,0,124,712,1,0,
4693
- 0,0,126,729,1,0,0,0,128,731,1,0,0,0,130,755,1,0,0,0,132,769,1,0,
4694
- 0,0,134,771,1,0,0,0,136,779,1,0,0,0,138,794,1,0,0,0,140,796,1,0,
4695
- 0,0,142,807,1,0,0,0,144,830,1,0,0,0,146,835,1,0,0,0,148,898,1,0,
4696
- 0,0,150,912,1,0,0,0,152,914,1,0,0,0,154,931,1,0,0,0,156,933,1,0,
4697
- 0,0,158,937,1,0,0,0,160,941,1,0,0,0,162,948,1,0,0,0,164,950,1,0,
4698
- 0,0,166,952,1,0,0,0,168,957,1,0,0,0,170,969,1,0,0,0,172,976,1,0,
4699
- 0,0,174,988,1,0,0,0,176,990,1,0,0,0,178,181,3,2,1,0,179,181,3,4,
4700
- 2,0,180,178,1,0,0,0,180,179,1,0,0,0,181,184,1,0,0,0,182,180,1,0,
4701
- 0,0,182,183,1,0,0,0,183,188,1,0,0,0,184,182,1,0,0,0,185,187,3,12,
4702
- 6,0,186,185,1,0,0,0,187,190,1,0,0,0,188,186,1,0,0,0,188,189,1,0,
4703
- 0,0,189,191,1,0,0,0,190,188,1,0,0,0,191,192,5,0,0,1,192,1,1,0,0,
4704
- 0,193,194,5,2,0,0,194,3,1,0,0,0,195,199,3,6,3,0,196,199,3,8,4,0,
4705
- 197,199,3,10,5,0,198,195,1,0,0,0,198,196,1,0,0,0,198,197,1,0,0,0,
4706
- 199,5,1,0,0,0,200,201,7,0,0,0,201,7,1,0,0,0,202,203,7,1,0,0,203,
4707
- 9,1,0,0,0,204,205,5,10,0,0,205,11,1,0,0,0,206,214,3,14,7,0,207,214,
4708
- 3,20,10,0,208,214,3,26,13,0,209,214,3,30,15,0,210,214,3,34,17,0,
4709
- 211,214,3,40,20,0,212,214,3,56,28,0,213,206,1,0,0,0,213,207,1,0,
4710
- 0,0,213,208,1,0,0,0,213,209,1,0,0,0,213,210,1,0,0,0,213,211,1,0,
4711
- 0,0,213,212,1,0,0,0,214,13,1,0,0,0,215,216,5,11,0,0,216,217,5,113,
4712
- 0,0,217,221,5,98,0,0,218,220,3,16,8,0,219,218,1,0,0,0,220,223,1,
4713
- 0,0,0,221,219,1,0,0,0,221,222,1,0,0,0,222,224,1,0,0,0,223,221,1,
4714
- 0,0,0,224,225,5,99,0,0,225,15,1,0,0,0,226,228,3,18,9,0,227,226,1,
4715
- 0,0,0,227,228,1,0,0,0,228,229,1,0,0,0,229,251,3,56,28,0,230,232,
4716
- 3,18,9,0,231,230,1,0,0,0,231,232,1,0,0,0,232,233,1,0,0,0,233,251,
4717
- 3,40,20,0,234,236,3,18,9,0,235,234,1,0,0,0,235,236,1,0,0,0,236,237,
4718
- 1,0,0,0,237,251,3,30,15,0,238,240,3,18,9,0,239,238,1,0,0,0,239,240,
4719
- 1,0,0,0,240,241,1,0,0,0,241,251,3,34,17,0,242,244,3,18,9,0,243,242,
4720
- 1,0,0,0,243,244,1,0,0,0,244,245,1,0,0,0,245,251,3,20,10,0,246,248,
4721
- 3,18,9,0,247,246,1,0,0,0,247,248,1,0,0,0,248,249,1,0,0,0,249,251,
4722
- 3,26,13,0,250,227,1,0,0,0,250,231,1,0,0,0,250,235,1,0,0,0,250,239,
4723
- 1,0,0,0,250,243,1,0,0,0,250,247,1,0,0,0,251,17,1,0,0,0,252,253,7,
4724
- 2,0,0,253,19,1,0,0,0,254,255,5,16,0,0,255,256,5,113,0,0,256,257,
4725
- 5,105,0,0,257,258,3,102,51,0,258,262,5,98,0,0,259,261,3,22,11,0,
4726
- 260,259,1,0,0,0,261,264,1,0,0,0,262,260,1,0,0,0,262,263,1,0,0,0,
4727
- 263,265,1,0,0,0,264,262,1,0,0,0,265,266,5,99,0,0,266,21,1,0,0,0,
4728
- 267,268,5,113,0,0,268,269,5,106,0,0,269,270,3,154,77,0,270,271,3,
4729
- 24,12,0,271,272,5,105,0,0,272,274,3,102,51,0,273,275,5,103,0,0,274,
4730
- 273,1,0,0,0,274,275,1,0,0,0,275,23,1,0,0,0,276,277,7,3,0,0,277,25,
4731
- 1,0,0,0,278,279,5,12,0,0,279,280,5,113,0,0,280,284,5,98,0,0,281,
4732
- 283,3,28,14,0,282,281,1,0,0,0,283,286,1,0,0,0,284,282,1,0,0,0,284,
4733
- 285,1,0,0,0,285,287,1,0,0,0,286,284,1,0,0,0,287,288,5,99,0,0,288,
4734
- 27,1,0,0,0,289,290,3,154,77,0,290,294,5,113,0,0,291,293,3,54,27,
4735
- 0,292,291,1,0,0,0,293,296,1,0,0,0,294,292,1,0,0,0,294,295,1,0,0,
4736
- 0,295,297,1,0,0,0,296,294,1,0,0,0,297,298,5,102,0,0,298,29,1,0,0,
4737
- 0,299,300,5,13,0,0,300,301,5,113,0,0,301,302,5,98,0,0,302,307,3,
4738
- 32,16,0,303,304,5,103,0,0,304,306,3,32,16,0,305,303,1,0,0,0,306,
4739
- 309,1,0,0,0,307,305,1,0,0,0,307,308,1,0,0,0,308,311,1,0,0,0,309,
4740
- 307,1,0,0,0,310,312,5,103,0,0,311,310,1,0,0,0,311,312,1,0,0,0,312,
4741
- 313,1,0,0,0,313,314,5,99,0,0,314,31,1,0,0,0,315,318,5,113,0,0,316,
4742
- 317,5,75,0,0,317,319,3,102,51,0,318,316,1,0,0,0,318,319,1,0,0,0,
4743
- 319,33,1,0,0,0,320,321,3,36,18,0,321,322,5,113,0,0,322,323,5,98,
4744
- 0,0,323,328,3,38,19,0,324,325,5,103,0,0,325,327,3,38,19,0,326,324,
4745
- 1,0,0,0,327,330,1,0,0,0,328,326,1,0,0,0,328,329,1,0,0,0,329,332,
4746
- 1,0,0,0,330,328,1,0,0,0,331,333,5,103,0,0,332,331,1,0,0,0,332,333,
4747
- 1,0,0,0,333,334,1,0,0,0,334,335,5,99,0,0,335,35,1,0,0,0,336,337,
4748
- 7,4,0,0,337,37,1,0,0,0,338,342,5,113,0,0,339,340,5,100,0,0,340,341,
4749
- 5,110,0,0,341,343,5,101,0,0,342,339,1,0,0,0,342,343,1,0,0,0,343,
4750
- 39,1,0,0,0,344,345,3,154,77,0,345,346,5,113,0,0,346,348,5,96,0,0,
4751
- 347,349,3,42,21,0,348,347,1,0,0,0,348,349,1,0,0,0,349,350,1,0,0,
4752
- 0,350,351,5,97,0,0,351,352,3,60,30,0,352,41,1,0,0,0,353,358,3,44,
4753
- 22,0,354,355,5,103,0,0,355,357,3,44,22,0,356,354,1,0,0,0,357,360,
4754
- 1,0,0,0,358,356,1,0,0,0,358,359,1,0,0,0,359,43,1,0,0,0,360,358,1,
4755
- 0,0,0,361,363,3,46,23,0,362,361,1,0,0,0,362,363,1,0,0,0,363,364,
4756
- 1,0,0,0,364,365,3,154,77,0,365,369,5,113,0,0,366,368,3,54,27,0,367,
4757
- 366,1,0,0,0,368,371,1,0,0,0,369,367,1,0,0,0,369,370,1,0,0,0,370,
4758
- 45,1,0,0,0,371,369,1,0,0,0,372,373,5,19,0,0,373,47,1,0,0,0,374,375,
4759
- 5,20,0,0,375,49,1,0,0,0,376,377,7,5,0,0,377,51,1,0,0,0,378,379,5,
4760
- 47,0,0,379,53,1,0,0,0,380,382,5,100,0,0,381,383,3,102,51,0,382,381,
4761
- 1,0,0,0,382,383,1,0,0,0,383,384,1,0,0,0,384,385,5,101,0,0,385,55,
4762
- 1,0,0,0,386,388,3,52,26,0,387,386,1,0,0,0,387,388,1,0,0,0,388,390,
4763
- 1,0,0,0,389,391,3,48,24,0,390,389,1,0,0,0,390,391,1,0,0,0,391,393,
4764
- 1,0,0,0,392,394,3,46,23,0,393,392,1,0,0,0,393,394,1,0,0,0,394,396,
4765
- 1,0,0,0,395,397,3,50,25,0,396,395,1,0,0,0,396,397,1,0,0,0,397,398,
4766
- 1,0,0,0,398,399,3,154,77,0,399,403,5,113,0,0,400,402,3,54,27,0,401,
4767
- 400,1,0,0,0,402,405,1,0,0,0,403,401,1,0,0,0,403,404,1,0,0,0,404,
4768
- 408,1,0,0,0,405,403,1,0,0,0,406,407,5,75,0,0,407,409,3,102,51,0,
4769
- 408,406,1,0,0,0,408,409,1,0,0,0,409,410,1,0,0,0,410,411,5,102,0,
4770
- 0,411,420,1,0,0,0,412,413,3,154,77,0,413,414,5,113,0,0,414,415,5,
4771
- 96,0,0,415,416,3,58,29,0,416,417,5,97,0,0,417,418,5,102,0,0,418,
4772
- 420,1,0,0,0,419,387,1,0,0,0,419,412,1,0,0,0,420,57,1,0,0,0,421,426,
4773
- 5,113,0,0,422,423,5,103,0,0,423,425,5,113,0,0,424,422,1,0,0,0,425,
4774
- 428,1,0,0,0,426,424,1,0,0,0,426,427,1,0,0,0,427,59,1,0,0,0,428,426,
4775
- 1,0,0,0,429,433,5,98,0,0,430,432,3,62,31,0,431,430,1,0,0,0,432,435,
4776
- 1,0,0,0,433,431,1,0,0,0,433,434,1,0,0,0,434,436,1,0,0,0,435,433,
4777
- 1,0,0,0,436,437,5,99,0,0,437,61,1,0,0,0,438,450,3,56,28,0,439,450,
4778
- 3,66,33,0,440,450,3,74,37,0,441,450,3,76,38,0,442,450,3,78,39,0,
4779
- 443,450,3,80,40,0,444,450,3,82,41,0,445,450,3,94,47,0,446,450,3,
4780
- 92,46,0,447,450,3,64,32,0,448,450,3,60,30,0,449,438,1,0,0,0,449,
4781
- 439,1,0,0,0,449,440,1,0,0,0,449,441,1,0,0,0,449,442,1,0,0,0,449,
4782
- 443,1,0,0,0,449,444,1,0,0,0,449,445,1,0,0,0,449,446,1,0,0,0,449,
4783
- 447,1,0,0,0,449,448,1,0,0,0,450,63,1,0,0,0,451,452,5,48,0,0,452,
4784
- 453,3,60,30,0,453,65,1,0,0,0,454,455,3,70,35,0,455,456,3,68,34,0,
4785
- 456,457,3,102,51,0,457,458,5,102,0,0,458,67,1,0,0,0,459,460,7,6,
4786
- 0,0,460,69,1,0,0,0,461,462,5,15,0,0,462,463,5,104,0,0,463,467,5,
4787
- 113,0,0,464,466,3,72,36,0,465,464,1,0,0,0,466,469,1,0,0,0,467,465,
4788
- 1,0,0,0,467,468,1,0,0,0,468,483,1,0,0,0,469,467,1,0,0,0,470,471,
4789
- 5,14,0,0,471,472,5,104,0,0,472,476,5,113,0,0,473,475,3,72,36,0,474,
4790
- 473,1,0,0,0,475,478,1,0,0,0,476,474,1,0,0,0,476,477,1,0,0,0,477,
4791
- 483,1,0,0,0,478,476,1,0,0,0,479,483,3,150,75,0,480,483,3,148,74,
4792
- 0,481,483,5,113,0,0,482,461,1,0,0,0,482,470,1,0,0,0,482,479,1,0,
4793
- 0,0,482,480,1,0,0,0,482,481,1,0,0,0,483,71,1,0,0,0,484,485,5,104,
4794
- 0,0,485,497,5,113,0,0,486,487,5,100,0,0,487,488,3,102,51,0,488,489,
4795
- 5,101,0,0,489,497,1,0,0,0,490,491,5,100,0,0,491,492,3,102,51,0,492,
4796
- 493,5,103,0,0,493,494,3,102,51,0,494,495,5,101,0,0,495,497,1,0,0,
4797
- 0,496,484,1,0,0,0,496,486,1,0,0,0,496,490,1,0,0,0,497,73,1,0,0,0,
4798
- 498,499,3,102,51,0,499,500,5,102,0,0,500,75,1,0,0,0,501,502,5,22,
4799
- 0,0,502,503,5,96,0,0,503,504,3,102,51,0,504,505,5,97,0,0,505,508,
4800
- 3,62,31,0,506,507,5,23,0,0,507,509,3,62,31,0,508,506,1,0,0,0,508,
4801
- 509,1,0,0,0,509,77,1,0,0,0,510,511,5,24,0,0,511,512,5,96,0,0,512,
4802
- 513,3,102,51,0,513,514,5,97,0,0,514,515,3,62,31,0,515,79,1,0,0,0,
4803
- 516,517,5,25,0,0,517,518,3,60,30,0,518,519,5,24,0,0,519,520,5,96,
4804
- 0,0,520,521,3,102,51,0,521,522,5,97,0,0,522,523,5,102,0,0,523,81,
4805
- 1,0,0,0,524,525,5,26,0,0,525,527,5,96,0,0,526,528,3,84,42,0,527,
4806
- 526,1,0,0,0,527,528,1,0,0,0,528,529,1,0,0,0,529,531,5,102,0,0,530,
4807
- 532,3,102,51,0,531,530,1,0,0,0,531,532,1,0,0,0,532,533,1,0,0,0,533,
4808
- 535,5,102,0,0,534,536,3,90,45,0,535,534,1,0,0,0,535,536,1,0,0,0,
4809
- 536,537,1,0,0,0,537,538,5,97,0,0,538,539,3,62,31,0,539,83,1,0,0,
4810
- 0,540,543,3,86,43,0,541,543,3,88,44,0,542,540,1,0,0,0,542,541,1,
4811
- 0,0,0,543,85,1,0,0,0,544,546,3,52,26,0,545,544,1,0,0,0,545,546,1,
4812
- 0,0,0,546,548,1,0,0,0,547,549,3,48,24,0,548,547,1,0,0,0,548,549,
4813
- 1,0,0,0,549,551,1,0,0,0,550,552,3,50,25,0,551,550,1,0,0,0,551,552,
4814
- 1,0,0,0,552,553,1,0,0,0,553,554,3,154,77,0,554,558,5,113,0,0,555,
4815
- 557,3,54,27,0,556,555,1,0,0,0,557,560,1,0,0,0,558,556,1,0,0,0,558,
4816
- 559,1,0,0,0,559,563,1,0,0,0,560,558,1,0,0,0,561,562,5,75,0,0,562,
4817
- 564,3,102,51,0,563,561,1,0,0,0,563,564,1,0,0,0,564,87,1,0,0,0,565,
4818
- 566,3,70,35,0,566,567,3,68,34,0,567,568,3,102,51,0,568,89,1,0,0,
4819
- 0,569,570,3,70,35,0,570,571,3,68,34,0,571,572,3,102,51,0,572,91,
4820
- 1,0,0,0,573,575,5,30,0,0,574,576,3,102,51,0,575,574,1,0,0,0,575,
4821
- 576,1,0,0,0,576,577,1,0,0,0,577,578,5,102,0,0,578,93,1,0,0,0,579,
4822
- 580,5,27,0,0,580,581,5,96,0,0,581,582,3,102,51,0,582,583,5,97,0,
4823
- 0,583,585,5,98,0,0,584,586,3,96,48,0,585,584,1,0,0,0,586,587,1,0,
4824
- 0,0,587,585,1,0,0,0,587,588,1,0,0,0,588,590,1,0,0,0,589,591,3,100,
4825
- 50,0,590,589,1,0,0,0,590,591,1,0,0,0,591,592,1,0,0,0,592,593,5,99,
4826
- 0,0,593,95,1,0,0,0,594,595,5,28,0,0,595,600,3,98,49,0,596,597,5,
4827
- 88,0,0,597,599,3,98,49,0,598,596,1,0,0,0,599,602,1,0,0,0,600,598,
4828
- 1,0,0,0,600,601,1,0,0,0,601,603,1,0,0,0,602,600,1,0,0,0,603,604,
4829
- 3,60,30,0,604,97,1,0,0,0,605,618,3,160,80,0,606,618,5,113,0,0,607,
4830
- 609,5,83,0,0,608,607,1,0,0,0,608,609,1,0,0,0,609,610,1,0,0,0,610,
4831
- 618,5,110,0,0,611,613,5,83,0,0,612,611,1,0,0,0,612,613,1,0,0,0,613,
4832
- 614,1,0,0,0,614,618,5,107,0,0,615,618,5,108,0,0,616,618,5,112,0,
4833
- 0,617,605,1,0,0,0,617,606,1,0,0,0,617,608,1,0,0,0,617,612,1,0,0,
4834
- 0,617,615,1,0,0,0,617,616,1,0,0,0,618,99,1,0,0,0,619,623,5,29,0,
4835
- 0,620,621,5,96,0,0,621,622,5,110,0,0,622,624,5,97,0,0,623,620,1,
4836
- 0,0,0,623,624,1,0,0,0,624,625,1,0,0,0,625,626,3,60,30,0,626,101,
4837
- 1,0,0,0,627,628,3,104,52,0,628,103,1,0,0,0,629,630,5,96,0,0,630,
4838
- 631,3,106,53,0,631,632,5,97,0,0,632,633,5,1,0,0,633,634,3,106,53,
4839
- 0,634,635,5,106,0,0,635,636,3,106,53,0,636,639,1,0,0,0,637,639,3,
4840
- 106,53,0,638,629,1,0,0,0,638,637,1,0,0,0,639,105,1,0,0,0,640,645,
4841
- 3,108,54,0,641,642,5,88,0,0,642,644,3,108,54,0,643,641,1,0,0,0,644,
4842
- 647,1,0,0,0,645,643,1,0,0,0,645,646,1,0,0,0,646,107,1,0,0,0,647,
4843
- 645,1,0,0,0,648,653,3,110,55,0,649,650,5,87,0,0,650,652,3,110,55,
4844
- 0,651,649,1,0,0,0,652,655,1,0,0,0,653,651,1,0,0,0,653,654,1,0,0,
4845
- 0,654,109,1,0,0,0,655,653,1,0,0,0,656,661,3,112,56,0,657,658,7,7,
4846
- 0,0,658,660,3,112,56,0,659,657,1,0,0,0,660,663,1,0,0,0,661,659,1,
4847
- 0,0,0,661,662,1,0,0,0,662,111,1,0,0,0,663,661,1,0,0,0,664,669,3,
4848
- 114,57,0,665,666,7,8,0,0,666,668,3,114,57,0,667,665,1,0,0,0,668,
4849
- 671,1,0,0,0,669,667,1,0,0,0,669,670,1,0,0,0,670,113,1,0,0,0,671,
4850
- 669,1,0,0,0,672,677,3,116,58,0,673,674,5,91,0,0,674,676,3,116,58,
4851
- 0,675,673,1,0,0,0,676,679,1,0,0,0,677,675,1,0,0,0,677,678,1,0,0,
4852
- 0,678,115,1,0,0,0,679,677,1,0,0,0,680,685,3,118,59,0,681,682,5,92,
4853
- 0,0,682,684,3,118,59,0,683,681,1,0,0,0,684,687,1,0,0,0,685,683,1,
4854
- 0,0,0,685,686,1,0,0,0,686,117,1,0,0,0,687,685,1,0,0,0,688,693,3,
4855
- 120,60,0,689,690,5,90,0,0,690,692,3,120,60,0,691,689,1,0,0,0,692,
4856
- 695,1,0,0,0,693,691,1,0,0,0,693,694,1,0,0,0,694,119,1,0,0,0,695,
4857
- 693,1,0,0,0,696,701,3,122,61,0,697,698,7,9,0,0,698,700,3,122,61,
4858
- 0,699,697,1,0,0,0,700,703,1,0,0,0,701,699,1,0,0,0,701,702,1,0,0,
4859
- 0,702,121,1,0,0,0,703,701,1,0,0,0,704,709,3,124,62,0,705,706,7,10,
4860
- 0,0,706,708,3,124,62,0,707,705,1,0,0,0,708,711,1,0,0,0,709,707,1,
4861
- 0,0,0,709,710,1,0,0,0,710,123,1,0,0,0,711,709,1,0,0,0,712,717,3,
4862
- 126,63,0,713,714,7,11,0,0,714,716,3,126,63,0,715,713,1,0,0,0,716,
4863
- 719,1,0,0,0,717,715,1,0,0,0,717,718,1,0,0,0,718,125,1,0,0,0,719,
4864
- 717,1,0,0,0,720,721,5,89,0,0,721,730,3,126,63,0,722,723,5,83,0,0,
4865
- 723,730,3,126,63,0,724,725,5,93,0,0,725,730,3,126,63,0,726,727,5,
4866
- 90,0,0,727,730,3,126,63,0,728,730,3,128,64,0,729,720,1,0,0,0,729,
4867
- 722,1,0,0,0,729,724,1,0,0,0,729,726,1,0,0,0,729,728,1,0,0,0,730,
4868
- 127,1,0,0,0,731,735,3,132,66,0,732,734,3,130,65,0,733,732,1,0,0,
4869
- 0,734,737,1,0,0,0,735,733,1,0,0,0,735,736,1,0,0,0,736,129,1,0,0,
4870
- 0,737,735,1,0,0,0,738,739,5,104,0,0,739,756,5,113,0,0,740,741,5,
4871
- 100,0,0,741,742,3,102,51,0,742,743,5,101,0,0,743,756,1,0,0,0,744,
4872
- 745,5,100,0,0,745,746,3,102,51,0,746,747,5,103,0,0,747,748,3,102,
4873
- 51,0,748,749,5,101,0,0,749,756,1,0,0,0,750,752,5,96,0,0,751,753,
4874
- 3,152,76,0,752,751,1,0,0,0,752,753,1,0,0,0,753,754,1,0,0,0,754,756,
4875
- 5,97,0,0,755,738,1,0,0,0,755,740,1,0,0,0,755,744,1,0,0,0,755,750,
4876
- 1,0,0,0,756,131,1,0,0,0,757,770,3,134,67,0,758,770,3,136,68,0,759,
4877
- 770,3,138,69,0,760,770,3,144,72,0,761,770,5,14,0,0,762,770,5,15,
4878
- 0,0,763,770,5,113,0,0,764,770,3,176,88,0,765,766,5,96,0,0,766,767,
4879
- 3,102,51,0,767,768,5,97,0,0,768,770,1,0,0,0,769,757,1,0,0,0,769,
4880
- 758,1,0,0,0,769,759,1,0,0,0,769,760,1,0,0,0,769,761,1,0,0,0,769,
4881
- 762,1,0,0,0,769,763,1,0,0,0,769,764,1,0,0,0,769,765,1,0,0,0,770,
4882
- 133,1,0,0,0,771,772,5,35,0,0,772,775,5,96,0,0,773,776,3,154,77,0,
4883
- 774,776,3,102,51,0,775,773,1,0,0,0,775,774,1,0,0,0,776,777,1,0,0,
4884
- 0,777,778,5,97,0,0,778,135,1,0,0,0,779,780,5,96,0,0,780,781,3,154,
4885
- 77,0,781,782,5,97,0,0,782,783,3,126,63,0,783,137,1,0,0,0,784,785,
4886
- 5,113,0,0,785,787,5,98,0,0,786,788,3,140,70,0,787,786,1,0,0,0,787,
4887
- 788,1,0,0,0,788,789,1,0,0,0,789,795,5,99,0,0,790,791,5,98,0,0,791,
4888
- 792,3,140,70,0,792,793,5,99,0,0,793,795,1,0,0,0,794,784,1,0,0,0,
4889
- 794,790,1,0,0,0,795,139,1,0,0,0,796,801,3,142,71,0,797,798,5,103,
4890
- 0,0,798,800,3,142,71,0,799,797,1,0,0,0,800,803,1,0,0,0,801,799,1,
4891
- 0,0,0,801,802,1,0,0,0,802,805,1,0,0,0,803,801,1,0,0,0,804,806,5,
4892
- 103,0,0,805,804,1,0,0,0,805,806,1,0,0,0,806,141,1,0,0,0,807,808,
4893
- 5,113,0,0,808,809,5,106,0,0,809,810,3,102,51,0,810,143,1,0,0,0,811,
4894
- 812,5,100,0,0,812,817,3,146,73,0,813,814,5,103,0,0,814,816,3,146,
4895
- 73,0,815,813,1,0,0,0,816,819,1,0,0,0,817,815,1,0,0,0,817,818,1,0,
4896
- 0,0,818,821,1,0,0,0,819,817,1,0,0,0,820,822,5,103,0,0,821,820,1,
4897
- 0,0,0,821,822,1,0,0,0,822,823,1,0,0,0,823,824,5,101,0,0,824,831,
4898
- 1,0,0,0,825,826,5,100,0,0,826,827,3,102,51,0,827,828,5,84,0,0,828,
4899
- 829,5,101,0,0,829,831,1,0,0,0,830,811,1,0,0,0,830,825,1,0,0,0,831,
4900
- 145,1,0,0,0,832,836,3,102,51,0,833,836,3,138,69,0,834,836,3,144,
4901
- 72,0,835,832,1,0,0,0,835,833,1,0,0,0,835,834,1,0,0,0,836,147,1,0,
4902
- 0,0,837,840,5,113,0,0,838,839,5,104,0,0,839,841,5,113,0,0,840,838,
4903
- 1,0,0,0,841,842,1,0,0,0,842,840,1,0,0,0,842,843,1,0,0,0,843,848,
4904
- 1,0,0,0,844,845,5,100,0,0,845,846,3,102,51,0,846,847,5,101,0,0,847,
4905
- 849,1,0,0,0,848,844,1,0,0,0,849,850,1,0,0,0,850,848,1,0,0,0,850,
4906
- 851,1,0,0,0,851,899,1,0,0,0,852,855,5,113,0,0,853,854,5,104,0,0,
4907
- 854,856,5,113,0,0,855,853,1,0,0,0,856,857,1,0,0,0,857,855,1,0,0,
4908
- 0,857,858,1,0,0,0,858,859,1,0,0,0,859,860,5,100,0,0,860,861,3,102,
4909
- 51,0,861,862,5,103,0,0,862,863,3,102,51,0,863,864,5,101,0,0,864,
4910
- 899,1,0,0,0,865,868,5,113,0,0,866,867,5,104,0,0,867,869,5,113,0,
4911
- 0,868,866,1,0,0,0,869,870,1,0,0,0,870,868,1,0,0,0,870,871,1,0,0,
4912
- 0,871,899,1,0,0,0,872,877,5,113,0,0,873,874,5,100,0,0,874,875,3,
4913
- 102,51,0,875,876,5,101,0,0,876,878,1,0,0,0,877,873,1,0,0,0,878,879,
4914
- 1,0,0,0,879,877,1,0,0,0,879,880,1,0,0,0,880,883,1,0,0,0,881,882,
4915
- 5,104,0,0,882,884,5,113,0,0,883,881,1,0,0,0,884,885,1,0,0,0,885,
4916
- 883,1,0,0,0,885,886,1,0,0,0,886,899,1,0,0,0,887,894,5,113,0,0,888,
4917
- 889,5,100,0,0,889,890,3,102,51,0,890,891,5,101,0,0,891,895,1,0,0,
4918
- 0,892,893,5,104,0,0,893,895,5,113,0,0,894,888,1,0,0,0,894,892,1,
4919
- 0,0,0,895,896,1,0,0,0,896,894,1,0,0,0,896,897,1,0,0,0,897,899,1,
4920
- 0,0,0,898,837,1,0,0,0,898,852,1,0,0,0,898,865,1,0,0,0,898,872,1,
4921
- 0,0,0,898,887,1,0,0,0,899,149,1,0,0,0,900,901,5,113,0,0,901,902,
4922
- 5,100,0,0,902,903,3,102,51,0,903,904,5,101,0,0,904,913,1,0,0,0,905,
4923
- 906,5,113,0,0,906,907,5,100,0,0,907,908,3,102,51,0,908,909,5,103,
4924
- 0,0,909,910,3,102,51,0,910,911,5,101,0,0,911,913,1,0,0,0,912,900,
4925
- 1,0,0,0,912,905,1,0,0,0,913,151,1,0,0,0,914,919,3,102,51,0,915,916,
4926
- 5,103,0,0,916,918,3,102,51,0,917,915,1,0,0,0,918,921,1,0,0,0,919,
4927
- 917,1,0,0,0,919,920,1,0,0,0,920,153,1,0,0,0,921,919,1,0,0,0,922,
4928
- 932,3,162,81,0,923,932,3,172,86,0,924,932,3,156,78,0,925,932,3,158,
4929
- 79,0,926,932,3,160,80,0,927,932,3,166,83,0,928,932,3,164,82,0,929,
4930
- 932,3,174,87,0,930,932,5,21,0,0,931,922,1,0,0,0,931,923,1,0,0,0,
4931
- 931,924,1,0,0,0,931,925,1,0,0,0,931,926,1,0,0,0,931,927,1,0,0,0,
4932
- 931,928,1,0,0,0,931,929,1,0,0,0,931,930,1,0,0,0,932,155,1,0,0,0,
4933
- 933,934,5,14,0,0,934,935,5,104,0,0,935,936,5,113,0,0,936,157,1,0,
4934
- 0,0,937,938,5,15,0,0,938,939,5,104,0,0,939,940,5,113,0,0,940,159,
4935
- 1,0,0,0,941,944,5,113,0,0,942,943,5,104,0,0,943,945,5,113,0,0,944,
4936
- 942,1,0,0,0,945,946,1,0,0,0,946,944,1,0,0,0,946,947,1,0,0,0,947,
4937
- 161,1,0,0,0,948,949,7,12,0,0,949,163,1,0,0,0,950,951,5,113,0,0,951,
4938
- 165,1,0,0,0,952,953,5,113,0,0,953,954,5,78,0,0,954,955,3,168,84,
4939
- 0,955,956,5,79,0,0,956,167,1,0,0,0,957,962,3,170,85,0,958,959,5,
4940
- 103,0,0,959,961,3,170,85,0,960,958,1,0,0,0,961,964,1,0,0,0,962,960,
4941
- 1,0,0,0,962,963,1,0,0,0,963,169,1,0,0,0,964,962,1,0,0,0,965,970,
4942
- 3,166,83,0,966,970,3,162,81,0,967,970,5,113,0,0,968,970,5,110,0,
4943
- 0,969,965,1,0,0,0,969,966,1,0,0,0,969,967,1,0,0,0,969,968,1,0,0,
4944
- 0,970,171,1,0,0,0,971,972,5,34,0,0,972,973,5,78,0,0,973,974,5,110,
4945
- 0,0,974,977,5,79,0,0,975,977,5,34,0,0,976,971,1,0,0,0,976,975,1,
4946
- 0,0,0,977,173,1,0,0,0,978,979,3,162,81,0,979,980,5,100,0,0,980,981,
4947
- 3,102,51,0,981,982,5,101,0,0,982,989,1,0,0,0,983,984,3,164,82,0,
4948
- 984,985,5,100,0,0,985,986,3,102,51,0,986,987,5,101,0,0,987,989,1,
4949
- 0,0,0,988,978,1,0,0,0,988,983,1,0,0,0,989,175,1,0,0,0,990,991,7,
4950
- 13,0,0,991,177,1,0,0,0,102,180,182,188,198,213,221,227,231,235,239,
4951
- 243,247,250,262,274,284,294,307,311,318,328,332,342,348,358,362,
4952
- 369,382,387,390,393,396,403,408,419,426,433,449,467,476,482,496,
4953
- 508,527,531,535,542,545,548,551,558,563,575,587,590,600,608,612,
4954
- 617,623,638,645,653,661,669,677,685,693,701,709,717,729,735,752,
4955
- 755,769,775,787,794,801,805,817,821,830,835,842,850,857,870,879,
4956
- 885,894,896,898,912,919,931,946,962,969,976,988
4340
+ 85,7,85,2,86,7,86,1,0,1,0,5,0,177,8,0,10,0,12,0,180,9,0,1,0,5,0,
4341
+ 183,8,0,10,0,12,0,186,9,0,1,0,1,0,1,1,1,1,1,2,1,2,1,2,3,2,195,8,
4342
+ 2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,210,8,
4343
+ 6,1,7,1,7,1,7,1,7,5,7,216,8,7,10,7,12,7,219,9,7,1,7,1,7,1,8,3,8,
4344
+ 224,8,8,1,8,1,8,3,8,228,8,8,1,8,1,8,3,8,232,8,8,1,8,1,8,3,8,236,
4345
+ 8,8,1,8,1,8,3,8,240,8,8,1,8,1,8,3,8,244,8,8,1,8,3,8,247,8,8,1,9,
4346
+ 1,9,1,10,1,10,1,10,1,10,1,10,1,10,5,10,257,8,10,10,10,12,10,260,
4347
+ 9,10,1,10,1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,3,11,271,8,11,
4348
+ 1,12,1,12,1,13,1,13,1,13,1,13,5,13,279,8,13,10,13,12,13,282,9,13,
4349
+ 1,13,1,13,1,14,1,14,1,14,5,14,289,8,14,10,14,12,14,292,9,14,1,14,
4350
+ 1,14,1,15,1,15,1,15,1,15,1,15,1,15,5,15,302,8,15,10,15,12,15,305,
4351
+ 9,15,1,15,3,15,308,8,15,1,15,1,15,1,16,1,16,1,16,3,16,315,8,16,1,
4352
+ 17,1,17,1,17,1,17,1,17,1,17,5,17,323,8,17,10,17,12,17,326,9,17,1,
4353
+ 17,3,17,329,8,17,1,17,1,17,1,18,1,18,1,19,1,19,1,19,1,19,3,19,339,
4354
+ 8,19,1,20,1,20,1,20,1,20,3,20,345,8,20,1,20,1,20,1,20,1,21,1,21,
4355
+ 1,21,5,21,353,8,21,10,21,12,21,356,9,21,1,22,3,22,359,8,22,1,22,
4356
+ 1,22,1,22,5,22,364,8,22,10,22,12,22,367,9,22,1,23,1,23,1,24,1,24,
4357
+ 1,25,1,25,1,26,1,26,1,27,1,27,3,27,379,8,27,1,27,1,27,1,28,3,28,
4358
+ 384,8,28,1,28,3,28,387,8,28,1,28,3,28,390,8,28,1,28,3,28,393,8,28,
4359
+ 1,28,1,28,1,28,5,28,398,8,28,10,28,12,28,401,9,28,1,28,1,28,3,28,
4360
+ 405,8,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3,28,416,8,
4361
+ 28,1,29,1,29,1,29,5,29,421,8,29,10,29,12,29,424,9,29,1,30,1,30,5,
4362
+ 30,428,8,30,10,30,12,30,431,9,30,1,30,1,30,1,31,1,31,1,31,1,31,1,
4363
+ 31,1,31,1,31,1,31,1,31,1,31,1,31,3,31,446,8,31,1,32,1,32,1,32,1,
4364
+ 33,1,33,1,33,1,33,1,33,1,34,1,34,1,35,1,35,1,35,1,35,5,35,462,8,
4365
+ 35,10,35,12,35,465,9,35,1,35,1,35,1,35,1,35,5,35,471,8,35,10,35,
4366
+ 12,35,474,9,35,1,35,1,35,5,35,478,8,35,10,35,12,35,481,9,35,3,35,
4367
+ 483,8,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,
4368
+ 1,36,3,36,497,8,36,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,
4369
+ 1,38,3,38,509,8,38,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,
4370
+ 1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,3,41,528,8,41,1,41,1,41,
4371
+ 3,41,532,8,41,1,41,1,41,3,41,536,8,41,1,41,1,41,1,41,1,42,1,42,3,
4372
+ 42,543,8,42,1,43,3,43,546,8,43,1,43,3,43,549,8,43,1,43,3,43,552,
4373
+ 8,43,1,43,1,43,1,43,5,43,557,8,43,10,43,12,43,560,9,43,1,43,1,43,
4374
+ 3,43,564,8,43,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,46,1,46,
4375
+ 3,46,576,8,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,4,47,586,8,
4376
+ 47,11,47,12,47,587,1,47,3,47,591,8,47,1,47,1,47,1,48,1,48,1,48,1,
4377
+ 48,5,48,599,8,48,10,48,12,48,602,9,48,1,48,1,48,1,49,1,49,1,49,3,
4378
+ 49,609,8,49,1,49,1,49,3,49,613,8,49,1,49,1,49,1,49,3,49,618,8,49,
4379
+ 1,50,1,50,1,50,1,50,3,50,624,8,50,1,50,1,50,1,51,1,51,1,52,1,52,
4380
+ 1,52,1,52,1,52,1,52,1,52,1,52,1,52,3,52,639,8,52,1,53,1,53,1,53,
4381
+ 5,53,644,8,53,10,53,12,53,647,9,53,1,54,1,54,1,54,5,54,652,8,54,
4382
+ 10,54,12,54,655,9,54,1,55,1,55,1,55,5,55,660,8,55,10,55,12,55,663,
4383
+ 9,55,1,56,1,56,1,56,5,56,668,8,56,10,56,12,56,671,9,56,1,57,1,57,
4384
+ 1,57,5,57,676,8,57,10,57,12,57,679,9,57,1,58,1,58,1,58,5,58,684,
4385
+ 8,58,10,58,12,58,687,9,58,1,59,1,59,1,59,5,59,692,8,59,10,59,12,
4386
+ 59,695,9,59,1,60,1,60,1,60,5,60,700,8,60,10,60,12,60,703,9,60,1,
4387
+ 61,1,61,1,61,5,61,708,8,61,10,61,12,61,711,9,61,1,62,1,62,1,62,5,
4388
+ 62,716,8,62,10,62,12,62,719,9,62,1,63,1,63,1,63,1,63,1,63,1,63,1,
4389
+ 63,1,63,1,63,3,63,730,8,63,1,64,1,64,5,64,734,8,64,10,64,12,64,737,
4390
+ 9,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,
4391
+ 1,65,1,65,3,65,753,8,65,1,65,3,65,756,8,65,1,66,1,66,1,66,1,66,1,
4392
+ 66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,3,66,770,8,66,1,67,1,67,1,
4393
+ 67,1,67,3,67,776,8,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,
4394
+ 69,1,69,3,69,788,8,69,1,69,1,69,1,69,1,69,1,69,3,69,795,8,69,1,70,
4395
+ 1,70,1,70,5,70,800,8,70,10,70,12,70,803,9,70,1,70,3,70,806,8,70,
4396
+ 1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,5,72,816,8,72,10,72,12,72,
4397
+ 819,9,72,1,72,3,72,822,8,72,1,72,1,72,1,72,1,72,1,72,1,72,1,72,3,
4398
+ 72,831,8,72,1,73,1,73,1,73,3,73,836,8,73,1,74,1,74,1,74,5,74,841,
4399
+ 8,74,10,74,12,74,844,9,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,
4400
+ 1,75,3,75,855,8,75,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,78,
4401
+ 1,78,1,78,4,78,868,8,78,11,78,12,78,869,1,79,1,79,1,80,1,80,1,81,
4402
+ 1,81,1,81,1,81,1,81,1,82,1,82,1,82,5,82,884,8,82,10,82,12,82,887,
4403
+ 9,82,1,83,1,83,1,83,1,83,3,83,893,8,83,1,84,1,84,1,84,1,84,1,84,
4404
+ 3,84,900,8,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,
4405
+ 3,85,912,8,85,1,86,1,86,1,86,0,0,87,0,2,4,6,8,10,12,14,16,18,20,
4406
+ 22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,
4407
+ 66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,
4408
+ 108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,
4409
+ 140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,
4410
+ 172,0,14,1,0,3,5,1,0,6,9,1,0,17,18,1,0,40,44,1,0,36,39,1,0,45,46,
4411
+ 1,0,65,75,1,0,76,77,1,0,78,81,1,0,94,95,1,0,82,83,1,0,84,86,1,0,
4412
+ 53,64,3,0,31,33,49,52,107,112,968,0,178,1,0,0,0,2,189,1,0,0,0,4,
4413
+ 194,1,0,0,0,6,196,1,0,0,0,8,198,1,0,0,0,10,200,1,0,0,0,12,209,1,
4414
+ 0,0,0,14,211,1,0,0,0,16,246,1,0,0,0,18,248,1,0,0,0,20,250,1,0,0,
4415
+ 0,22,263,1,0,0,0,24,272,1,0,0,0,26,274,1,0,0,0,28,285,1,0,0,0,30,
4416
+ 295,1,0,0,0,32,311,1,0,0,0,34,316,1,0,0,0,36,332,1,0,0,0,38,334,
4417
+ 1,0,0,0,40,340,1,0,0,0,42,349,1,0,0,0,44,358,1,0,0,0,46,368,1,0,
4418
+ 0,0,48,370,1,0,0,0,50,372,1,0,0,0,52,374,1,0,0,0,54,376,1,0,0,0,
4419
+ 56,415,1,0,0,0,58,417,1,0,0,0,60,425,1,0,0,0,62,445,1,0,0,0,64,447,
4420
+ 1,0,0,0,66,450,1,0,0,0,68,455,1,0,0,0,70,482,1,0,0,0,72,496,1,0,
4421
+ 0,0,74,498,1,0,0,0,76,501,1,0,0,0,78,510,1,0,0,0,80,516,1,0,0,0,
4422
+ 82,524,1,0,0,0,84,542,1,0,0,0,86,545,1,0,0,0,88,565,1,0,0,0,90,569,
4423
+ 1,0,0,0,92,573,1,0,0,0,94,579,1,0,0,0,96,594,1,0,0,0,98,617,1,0,
4424
+ 0,0,100,619,1,0,0,0,102,627,1,0,0,0,104,638,1,0,0,0,106,640,1,0,
4425
+ 0,0,108,648,1,0,0,0,110,656,1,0,0,0,112,664,1,0,0,0,114,672,1,0,
4426
+ 0,0,116,680,1,0,0,0,118,688,1,0,0,0,120,696,1,0,0,0,122,704,1,0,
4427
+ 0,0,124,712,1,0,0,0,126,729,1,0,0,0,128,731,1,0,0,0,130,755,1,0,
4428
+ 0,0,132,769,1,0,0,0,134,771,1,0,0,0,136,779,1,0,0,0,138,794,1,0,
4429
+ 0,0,140,796,1,0,0,0,142,807,1,0,0,0,144,830,1,0,0,0,146,835,1,0,
4430
+ 0,0,148,837,1,0,0,0,150,854,1,0,0,0,152,856,1,0,0,0,154,860,1,0,
4431
+ 0,0,156,864,1,0,0,0,158,871,1,0,0,0,160,873,1,0,0,0,162,875,1,0,
4432
+ 0,0,164,880,1,0,0,0,166,892,1,0,0,0,168,899,1,0,0,0,170,911,1,0,
4433
+ 0,0,172,913,1,0,0,0,174,177,3,2,1,0,175,177,3,4,2,0,176,174,1,0,
4434
+ 0,0,176,175,1,0,0,0,177,180,1,0,0,0,178,176,1,0,0,0,178,179,1,0,
4435
+ 0,0,179,184,1,0,0,0,180,178,1,0,0,0,181,183,3,12,6,0,182,181,1,0,
4436
+ 0,0,183,186,1,0,0,0,184,182,1,0,0,0,184,185,1,0,0,0,185,187,1,0,
4437
+ 0,0,186,184,1,0,0,0,187,188,5,0,0,1,188,1,1,0,0,0,189,190,5,2,0,
4438
+ 0,190,3,1,0,0,0,191,195,3,6,3,0,192,195,3,8,4,0,193,195,3,10,5,0,
4439
+ 194,191,1,0,0,0,194,192,1,0,0,0,194,193,1,0,0,0,195,5,1,0,0,0,196,
4440
+ 197,7,0,0,0,197,7,1,0,0,0,198,199,7,1,0,0,199,9,1,0,0,0,200,201,
4441
+ 5,10,0,0,201,11,1,0,0,0,202,210,3,14,7,0,203,210,3,20,10,0,204,210,
4442
+ 3,26,13,0,205,210,3,30,15,0,206,210,3,34,17,0,207,210,3,40,20,0,
4443
+ 208,210,3,56,28,0,209,202,1,0,0,0,209,203,1,0,0,0,209,204,1,0,0,
4444
+ 0,209,205,1,0,0,0,209,206,1,0,0,0,209,207,1,0,0,0,209,208,1,0,0,
4445
+ 0,210,13,1,0,0,0,211,212,5,11,0,0,212,213,5,113,0,0,213,217,5,98,
4446
+ 0,0,214,216,3,16,8,0,215,214,1,0,0,0,216,219,1,0,0,0,217,215,1,0,
4447
+ 0,0,217,218,1,0,0,0,218,220,1,0,0,0,219,217,1,0,0,0,220,221,5,99,
4448
+ 0,0,221,15,1,0,0,0,222,224,3,18,9,0,223,222,1,0,0,0,223,224,1,0,
4449
+ 0,0,224,225,1,0,0,0,225,247,3,56,28,0,226,228,3,18,9,0,227,226,1,
4450
+ 0,0,0,227,228,1,0,0,0,228,229,1,0,0,0,229,247,3,40,20,0,230,232,
4451
+ 3,18,9,0,231,230,1,0,0,0,231,232,1,0,0,0,232,233,1,0,0,0,233,247,
4452
+ 3,30,15,0,234,236,3,18,9,0,235,234,1,0,0,0,235,236,1,0,0,0,236,237,
4453
+ 1,0,0,0,237,247,3,34,17,0,238,240,3,18,9,0,239,238,1,0,0,0,239,240,
4454
+ 1,0,0,0,240,241,1,0,0,0,241,247,3,20,10,0,242,244,3,18,9,0,243,242,
4455
+ 1,0,0,0,243,244,1,0,0,0,244,245,1,0,0,0,245,247,3,26,13,0,246,223,
4456
+ 1,0,0,0,246,227,1,0,0,0,246,231,1,0,0,0,246,235,1,0,0,0,246,239,
4457
+ 1,0,0,0,246,243,1,0,0,0,247,17,1,0,0,0,248,249,7,2,0,0,249,19,1,
4458
+ 0,0,0,250,251,5,16,0,0,251,252,5,113,0,0,252,253,5,105,0,0,253,254,
4459
+ 3,102,51,0,254,258,5,98,0,0,255,257,3,22,11,0,256,255,1,0,0,0,257,
4460
+ 260,1,0,0,0,258,256,1,0,0,0,258,259,1,0,0,0,259,261,1,0,0,0,260,
4461
+ 258,1,0,0,0,261,262,5,99,0,0,262,21,1,0,0,0,263,264,5,113,0,0,264,
4462
+ 265,5,106,0,0,265,266,3,150,75,0,266,267,3,24,12,0,267,268,5,105,
4463
+ 0,0,268,270,3,102,51,0,269,271,5,103,0,0,270,269,1,0,0,0,270,271,
4464
+ 1,0,0,0,271,23,1,0,0,0,272,273,7,3,0,0,273,25,1,0,0,0,274,275,5,
4465
+ 12,0,0,275,276,5,113,0,0,276,280,5,98,0,0,277,279,3,28,14,0,278,
4466
+ 277,1,0,0,0,279,282,1,0,0,0,280,278,1,0,0,0,280,281,1,0,0,0,281,
4467
+ 283,1,0,0,0,282,280,1,0,0,0,283,284,5,99,0,0,284,27,1,0,0,0,285,
4468
+ 286,3,150,75,0,286,290,5,113,0,0,287,289,3,54,27,0,288,287,1,0,0,
4469
+ 0,289,292,1,0,0,0,290,288,1,0,0,0,290,291,1,0,0,0,291,293,1,0,0,
4470
+ 0,292,290,1,0,0,0,293,294,5,102,0,0,294,29,1,0,0,0,295,296,5,13,
4471
+ 0,0,296,297,5,113,0,0,297,298,5,98,0,0,298,303,3,32,16,0,299,300,
4472
+ 5,103,0,0,300,302,3,32,16,0,301,299,1,0,0,0,302,305,1,0,0,0,303,
4473
+ 301,1,0,0,0,303,304,1,0,0,0,304,307,1,0,0,0,305,303,1,0,0,0,306,
4474
+ 308,5,103,0,0,307,306,1,0,0,0,307,308,1,0,0,0,308,309,1,0,0,0,309,
4475
+ 310,5,99,0,0,310,31,1,0,0,0,311,314,5,113,0,0,312,313,5,75,0,0,313,
4476
+ 315,3,102,51,0,314,312,1,0,0,0,314,315,1,0,0,0,315,33,1,0,0,0,316,
4477
+ 317,3,36,18,0,317,318,5,113,0,0,318,319,5,98,0,0,319,324,3,38,19,
4478
+ 0,320,321,5,103,0,0,321,323,3,38,19,0,322,320,1,0,0,0,323,326,1,
4479
+ 0,0,0,324,322,1,0,0,0,324,325,1,0,0,0,325,328,1,0,0,0,326,324,1,
4480
+ 0,0,0,327,329,5,103,0,0,328,327,1,0,0,0,328,329,1,0,0,0,329,330,
4481
+ 1,0,0,0,330,331,5,99,0,0,331,35,1,0,0,0,332,333,7,4,0,0,333,37,1,
4482
+ 0,0,0,334,338,5,113,0,0,335,336,5,100,0,0,336,337,5,110,0,0,337,
4483
+ 339,5,101,0,0,338,335,1,0,0,0,338,339,1,0,0,0,339,39,1,0,0,0,340,
4484
+ 341,3,150,75,0,341,342,5,113,0,0,342,344,5,96,0,0,343,345,3,42,21,
4485
+ 0,344,343,1,0,0,0,344,345,1,0,0,0,345,346,1,0,0,0,346,347,5,97,0,
4486
+ 0,347,348,3,60,30,0,348,41,1,0,0,0,349,354,3,44,22,0,350,351,5,103,
4487
+ 0,0,351,353,3,44,22,0,352,350,1,0,0,0,353,356,1,0,0,0,354,352,1,
4488
+ 0,0,0,354,355,1,0,0,0,355,43,1,0,0,0,356,354,1,0,0,0,357,359,3,46,
4489
+ 23,0,358,357,1,0,0,0,358,359,1,0,0,0,359,360,1,0,0,0,360,361,3,150,
4490
+ 75,0,361,365,5,113,0,0,362,364,3,54,27,0,363,362,1,0,0,0,364,367,
4491
+ 1,0,0,0,365,363,1,0,0,0,365,366,1,0,0,0,366,45,1,0,0,0,367,365,1,
4492
+ 0,0,0,368,369,5,19,0,0,369,47,1,0,0,0,370,371,5,20,0,0,371,49,1,
4493
+ 0,0,0,372,373,7,5,0,0,373,51,1,0,0,0,374,375,5,47,0,0,375,53,1,0,
4494
+ 0,0,376,378,5,100,0,0,377,379,3,102,51,0,378,377,1,0,0,0,378,379,
4495
+ 1,0,0,0,379,380,1,0,0,0,380,381,5,101,0,0,381,55,1,0,0,0,382,384,
4496
+ 3,52,26,0,383,382,1,0,0,0,383,384,1,0,0,0,384,386,1,0,0,0,385,387,
4497
+ 3,48,24,0,386,385,1,0,0,0,386,387,1,0,0,0,387,389,1,0,0,0,388,390,
4498
+ 3,46,23,0,389,388,1,0,0,0,389,390,1,0,0,0,390,392,1,0,0,0,391,393,
4499
+ 3,50,25,0,392,391,1,0,0,0,392,393,1,0,0,0,393,394,1,0,0,0,394,395,
4500
+ 3,150,75,0,395,399,5,113,0,0,396,398,3,54,27,0,397,396,1,0,0,0,398,
4501
+ 401,1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400,404,1,0,0,0,401,
4502
+ 399,1,0,0,0,402,403,5,75,0,0,403,405,3,102,51,0,404,402,1,0,0,0,
4503
+ 404,405,1,0,0,0,405,406,1,0,0,0,406,407,5,102,0,0,407,416,1,0,0,
4504
+ 0,408,409,3,150,75,0,409,410,5,113,0,0,410,411,5,96,0,0,411,412,
4505
+ 3,58,29,0,412,413,5,97,0,0,413,414,5,102,0,0,414,416,1,0,0,0,415,
4506
+ 383,1,0,0,0,415,408,1,0,0,0,416,57,1,0,0,0,417,422,5,113,0,0,418,
4507
+ 419,5,103,0,0,419,421,5,113,0,0,420,418,1,0,0,0,421,424,1,0,0,0,
4508
+ 422,420,1,0,0,0,422,423,1,0,0,0,423,59,1,0,0,0,424,422,1,0,0,0,425,
4509
+ 429,5,98,0,0,426,428,3,62,31,0,427,426,1,0,0,0,428,431,1,0,0,0,429,
4510
+ 427,1,0,0,0,429,430,1,0,0,0,430,432,1,0,0,0,431,429,1,0,0,0,432,
4511
+ 433,5,99,0,0,433,61,1,0,0,0,434,446,3,56,28,0,435,446,3,66,33,0,
4512
+ 436,446,3,74,37,0,437,446,3,76,38,0,438,446,3,78,39,0,439,446,3,
4513
+ 80,40,0,440,446,3,82,41,0,441,446,3,94,47,0,442,446,3,92,46,0,443,
4514
+ 446,3,64,32,0,444,446,3,60,30,0,445,434,1,0,0,0,445,435,1,0,0,0,
4515
+ 445,436,1,0,0,0,445,437,1,0,0,0,445,438,1,0,0,0,445,439,1,0,0,0,
4516
+ 445,440,1,0,0,0,445,441,1,0,0,0,445,442,1,0,0,0,445,443,1,0,0,0,
4517
+ 445,444,1,0,0,0,446,63,1,0,0,0,447,448,5,48,0,0,448,449,3,60,30,
4518
+ 0,449,65,1,0,0,0,450,451,3,70,35,0,451,452,3,68,34,0,452,453,3,102,
4519
+ 51,0,453,454,5,102,0,0,454,67,1,0,0,0,455,456,7,6,0,0,456,69,1,0,
4520
+ 0,0,457,458,5,15,0,0,458,459,5,104,0,0,459,463,5,113,0,0,460,462,
4521
+ 3,72,36,0,461,460,1,0,0,0,462,465,1,0,0,0,463,461,1,0,0,0,463,464,
4522
+ 1,0,0,0,464,483,1,0,0,0,465,463,1,0,0,0,466,467,5,14,0,0,467,468,
4523
+ 5,104,0,0,468,472,5,113,0,0,469,471,3,72,36,0,470,469,1,0,0,0,471,
4524
+ 474,1,0,0,0,472,470,1,0,0,0,472,473,1,0,0,0,473,483,1,0,0,0,474,
4525
+ 472,1,0,0,0,475,479,5,113,0,0,476,478,3,72,36,0,477,476,1,0,0,0,
4526
+ 478,481,1,0,0,0,479,477,1,0,0,0,479,480,1,0,0,0,480,483,1,0,0,0,
4527
+ 481,479,1,0,0,0,482,457,1,0,0,0,482,466,1,0,0,0,482,475,1,0,0,0,
4528
+ 483,71,1,0,0,0,484,485,5,104,0,0,485,497,5,113,0,0,486,487,5,100,
4529
+ 0,0,487,488,3,102,51,0,488,489,5,101,0,0,489,497,1,0,0,0,490,491,
4530
+ 5,100,0,0,491,492,3,102,51,0,492,493,5,103,0,0,493,494,3,102,51,
4531
+ 0,494,495,5,101,0,0,495,497,1,0,0,0,496,484,1,0,0,0,496,486,1,0,
4532
+ 0,0,496,490,1,0,0,0,497,73,1,0,0,0,498,499,3,102,51,0,499,500,5,
4533
+ 102,0,0,500,75,1,0,0,0,501,502,5,22,0,0,502,503,5,96,0,0,503,504,
4534
+ 3,102,51,0,504,505,5,97,0,0,505,508,3,62,31,0,506,507,5,23,0,0,507,
4535
+ 509,3,62,31,0,508,506,1,0,0,0,508,509,1,0,0,0,509,77,1,0,0,0,510,
4536
+ 511,5,24,0,0,511,512,5,96,0,0,512,513,3,102,51,0,513,514,5,97,0,
4537
+ 0,514,515,3,62,31,0,515,79,1,0,0,0,516,517,5,25,0,0,517,518,3,60,
4538
+ 30,0,518,519,5,24,0,0,519,520,5,96,0,0,520,521,3,102,51,0,521,522,
4539
+ 5,97,0,0,522,523,5,102,0,0,523,81,1,0,0,0,524,525,5,26,0,0,525,527,
4540
+ 5,96,0,0,526,528,3,84,42,0,527,526,1,0,0,0,527,528,1,0,0,0,528,529,
4541
+ 1,0,0,0,529,531,5,102,0,0,530,532,3,102,51,0,531,530,1,0,0,0,531,
4542
+ 532,1,0,0,0,532,533,1,0,0,0,533,535,5,102,0,0,534,536,3,90,45,0,
4543
+ 535,534,1,0,0,0,535,536,1,0,0,0,536,537,1,0,0,0,537,538,5,97,0,0,
4544
+ 538,539,3,62,31,0,539,83,1,0,0,0,540,543,3,86,43,0,541,543,3,88,
4545
+ 44,0,542,540,1,0,0,0,542,541,1,0,0,0,543,85,1,0,0,0,544,546,3,52,
4546
+ 26,0,545,544,1,0,0,0,545,546,1,0,0,0,546,548,1,0,0,0,547,549,3,48,
4547
+ 24,0,548,547,1,0,0,0,548,549,1,0,0,0,549,551,1,0,0,0,550,552,3,50,
4548
+ 25,0,551,550,1,0,0,0,551,552,1,0,0,0,552,553,1,0,0,0,553,554,3,150,
4549
+ 75,0,554,558,5,113,0,0,555,557,3,54,27,0,556,555,1,0,0,0,557,560,
4550
+ 1,0,0,0,558,556,1,0,0,0,558,559,1,0,0,0,559,563,1,0,0,0,560,558,
4551
+ 1,0,0,0,561,562,5,75,0,0,562,564,3,102,51,0,563,561,1,0,0,0,563,
4552
+ 564,1,0,0,0,564,87,1,0,0,0,565,566,3,70,35,0,566,567,3,68,34,0,567,
4553
+ 568,3,102,51,0,568,89,1,0,0,0,569,570,3,70,35,0,570,571,3,68,34,
4554
+ 0,571,572,3,102,51,0,572,91,1,0,0,0,573,575,5,30,0,0,574,576,3,102,
4555
+ 51,0,575,574,1,0,0,0,575,576,1,0,0,0,576,577,1,0,0,0,577,578,5,102,
4556
+ 0,0,578,93,1,0,0,0,579,580,5,27,0,0,580,581,5,96,0,0,581,582,3,102,
4557
+ 51,0,582,583,5,97,0,0,583,585,5,98,0,0,584,586,3,96,48,0,585,584,
4558
+ 1,0,0,0,586,587,1,0,0,0,587,585,1,0,0,0,587,588,1,0,0,0,588,590,
4559
+ 1,0,0,0,589,591,3,100,50,0,590,589,1,0,0,0,590,591,1,0,0,0,591,592,
4560
+ 1,0,0,0,592,593,5,99,0,0,593,95,1,0,0,0,594,595,5,28,0,0,595,600,
4561
+ 3,98,49,0,596,597,5,88,0,0,597,599,3,98,49,0,598,596,1,0,0,0,599,
4562
+ 602,1,0,0,0,600,598,1,0,0,0,600,601,1,0,0,0,601,603,1,0,0,0,602,
4563
+ 600,1,0,0,0,603,604,3,60,30,0,604,97,1,0,0,0,605,618,3,156,78,0,
4564
+ 606,618,5,113,0,0,607,609,5,83,0,0,608,607,1,0,0,0,608,609,1,0,0,
4565
+ 0,609,610,1,0,0,0,610,618,5,110,0,0,611,613,5,83,0,0,612,611,1,0,
4566
+ 0,0,612,613,1,0,0,0,613,614,1,0,0,0,614,618,5,107,0,0,615,618,5,
4567
+ 108,0,0,616,618,5,112,0,0,617,605,1,0,0,0,617,606,1,0,0,0,617,608,
4568
+ 1,0,0,0,617,612,1,0,0,0,617,615,1,0,0,0,617,616,1,0,0,0,618,99,1,
4569
+ 0,0,0,619,623,5,29,0,0,620,621,5,96,0,0,621,622,5,110,0,0,622,624,
4570
+ 5,97,0,0,623,620,1,0,0,0,623,624,1,0,0,0,624,625,1,0,0,0,625,626,
4571
+ 3,60,30,0,626,101,1,0,0,0,627,628,3,104,52,0,628,103,1,0,0,0,629,
4572
+ 630,5,96,0,0,630,631,3,106,53,0,631,632,5,97,0,0,632,633,5,1,0,0,
4573
+ 633,634,3,106,53,0,634,635,5,106,0,0,635,636,3,106,53,0,636,639,
4574
+ 1,0,0,0,637,639,3,106,53,0,638,629,1,0,0,0,638,637,1,0,0,0,639,105,
4575
+ 1,0,0,0,640,645,3,108,54,0,641,642,5,88,0,0,642,644,3,108,54,0,643,
4576
+ 641,1,0,0,0,644,647,1,0,0,0,645,643,1,0,0,0,645,646,1,0,0,0,646,
4577
+ 107,1,0,0,0,647,645,1,0,0,0,648,653,3,110,55,0,649,650,5,87,0,0,
4578
+ 650,652,3,110,55,0,651,649,1,0,0,0,652,655,1,0,0,0,653,651,1,0,0,
4579
+ 0,653,654,1,0,0,0,654,109,1,0,0,0,655,653,1,0,0,0,656,661,3,112,
4580
+ 56,0,657,658,7,7,0,0,658,660,3,112,56,0,659,657,1,0,0,0,660,663,
4581
+ 1,0,0,0,661,659,1,0,0,0,661,662,1,0,0,0,662,111,1,0,0,0,663,661,
4582
+ 1,0,0,0,664,669,3,114,57,0,665,666,7,8,0,0,666,668,3,114,57,0,667,
4583
+ 665,1,0,0,0,668,671,1,0,0,0,669,667,1,0,0,0,669,670,1,0,0,0,670,
4584
+ 113,1,0,0,0,671,669,1,0,0,0,672,677,3,116,58,0,673,674,5,91,0,0,
4585
+ 674,676,3,116,58,0,675,673,1,0,0,0,676,679,1,0,0,0,677,675,1,0,0,
4586
+ 0,677,678,1,0,0,0,678,115,1,0,0,0,679,677,1,0,0,0,680,685,3,118,
4587
+ 59,0,681,682,5,92,0,0,682,684,3,118,59,0,683,681,1,0,0,0,684,687,
4588
+ 1,0,0,0,685,683,1,0,0,0,685,686,1,0,0,0,686,117,1,0,0,0,687,685,
4589
+ 1,0,0,0,688,693,3,120,60,0,689,690,5,90,0,0,690,692,3,120,60,0,691,
4590
+ 689,1,0,0,0,692,695,1,0,0,0,693,691,1,0,0,0,693,694,1,0,0,0,694,
4591
+ 119,1,0,0,0,695,693,1,0,0,0,696,701,3,122,61,0,697,698,7,9,0,0,698,
4592
+ 700,3,122,61,0,699,697,1,0,0,0,700,703,1,0,0,0,701,699,1,0,0,0,701,
4593
+ 702,1,0,0,0,702,121,1,0,0,0,703,701,1,0,0,0,704,709,3,124,62,0,705,
4594
+ 706,7,10,0,0,706,708,3,124,62,0,707,705,1,0,0,0,708,711,1,0,0,0,
4595
+ 709,707,1,0,0,0,709,710,1,0,0,0,710,123,1,0,0,0,711,709,1,0,0,0,
4596
+ 712,717,3,126,63,0,713,714,7,11,0,0,714,716,3,126,63,0,715,713,1,
4597
+ 0,0,0,716,719,1,0,0,0,717,715,1,0,0,0,717,718,1,0,0,0,718,125,1,
4598
+ 0,0,0,719,717,1,0,0,0,720,721,5,89,0,0,721,730,3,126,63,0,722,723,
4599
+ 5,83,0,0,723,730,3,126,63,0,724,725,5,93,0,0,725,730,3,126,63,0,
4600
+ 726,727,5,90,0,0,727,730,3,126,63,0,728,730,3,128,64,0,729,720,1,
4601
+ 0,0,0,729,722,1,0,0,0,729,724,1,0,0,0,729,726,1,0,0,0,729,728,1,
4602
+ 0,0,0,730,127,1,0,0,0,731,735,3,132,66,0,732,734,3,130,65,0,733,
4603
+ 732,1,0,0,0,734,737,1,0,0,0,735,733,1,0,0,0,735,736,1,0,0,0,736,
4604
+ 129,1,0,0,0,737,735,1,0,0,0,738,739,5,104,0,0,739,756,5,113,0,0,
4605
+ 740,741,5,100,0,0,741,742,3,102,51,0,742,743,5,101,0,0,743,756,1,
4606
+ 0,0,0,744,745,5,100,0,0,745,746,3,102,51,0,746,747,5,103,0,0,747,
4607
+ 748,3,102,51,0,748,749,5,101,0,0,749,756,1,0,0,0,750,752,5,96,0,
4608
+ 0,751,753,3,148,74,0,752,751,1,0,0,0,752,753,1,0,0,0,753,754,1,0,
4609
+ 0,0,754,756,5,97,0,0,755,738,1,0,0,0,755,740,1,0,0,0,755,744,1,0,
4610
+ 0,0,755,750,1,0,0,0,756,131,1,0,0,0,757,770,3,134,67,0,758,770,3,
4611
+ 136,68,0,759,770,3,138,69,0,760,770,3,144,72,0,761,770,5,14,0,0,
4612
+ 762,770,5,15,0,0,763,770,5,113,0,0,764,770,3,172,86,0,765,766,5,
4613
+ 96,0,0,766,767,3,102,51,0,767,768,5,97,0,0,768,770,1,0,0,0,769,757,
4614
+ 1,0,0,0,769,758,1,0,0,0,769,759,1,0,0,0,769,760,1,0,0,0,769,761,
4615
+ 1,0,0,0,769,762,1,0,0,0,769,763,1,0,0,0,769,764,1,0,0,0,769,765,
4616
+ 1,0,0,0,770,133,1,0,0,0,771,772,5,35,0,0,772,775,5,96,0,0,773,776,
4617
+ 3,150,75,0,774,776,3,102,51,0,775,773,1,0,0,0,775,774,1,0,0,0,776,
4618
+ 777,1,0,0,0,777,778,5,97,0,0,778,135,1,0,0,0,779,780,5,96,0,0,780,
4619
+ 781,3,150,75,0,781,782,5,97,0,0,782,783,3,126,63,0,783,137,1,0,0,
4620
+ 0,784,785,5,113,0,0,785,787,5,98,0,0,786,788,3,140,70,0,787,786,
4621
+ 1,0,0,0,787,788,1,0,0,0,788,789,1,0,0,0,789,795,5,99,0,0,790,791,
4622
+ 5,98,0,0,791,792,3,140,70,0,792,793,5,99,0,0,793,795,1,0,0,0,794,
4623
+ 784,1,0,0,0,794,790,1,0,0,0,795,139,1,0,0,0,796,801,3,142,71,0,797,
4624
+ 798,5,103,0,0,798,800,3,142,71,0,799,797,1,0,0,0,800,803,1,0,0,0,
4625
+ 801,799,1,0,0,0,801,802,1,0,0,0,802,805,1,0,0,0,803,801,1,0,0,0,
4626
+ 804,806,5,103,0,0,805,804,1,0,0,0,805,806,1,0,0,0,806,141,1,0,0,
4627
+ 0,807,808,5,113,0,0,808,809,5,106,0,0,809,810,3,102,51,0,810,143,
4628
+ 1,0,0,0,811,812,5,100,0,0,812,817,3,146,73,0,813,814,5,103,0,0,814,
4629
+ 816,3,146,73,0,815,813,1,0,0,0,816,819,1,0,0,0,817,815,1,0,0,0,817,
4630
+ 818,1,0,0,0,818,821,1,0,0,0,819,817,1,0,0,0,820,822,5,103,0,0,821,
4631
+ 820,1,0,0,0,821,822,1,0,0,0,822,823,1,0,0,0,823,824,5,101,0,0,824,
4632
+ 831,1,0,0,0,825,826,5,100,0,0,826,827,3,102,51,0,827,828,5,84,0,
4633
+ 0,828,829,5,101,0,0,829,831,1,0,0,0,830,811,1,0,0,0,830,825,1,0,
4634
+ 0,0,831,145,1,0,0,0,832,836,3,102,51,0,833,836,3,138,69,0,834,836,
4635
+ 3,144,72,0,835,832,1,0,0,0,835,833,1,0,0,0,835,834,1,0,0,0,836,147,
4636
+ 1,0,0,0,837,842,3,102,51,0,838,839,5,103,0,0,839,841,3,102,51,0,
4637
+ 840,838,1,0,0,0,841,844,1,0,0,0,842,840,1,0,0,0,842,843,1,0,0,0,
4638
+ 843,149,1,0,0,0,844,842,1,0,0,0,845,855,3,158,79,0,846,855,3,168,
4639
+ 84,0,847,855,3,152,76,0,848,855,3,154,77,0,849,855,3,156,78,0,850,
4640
+ 855,3,162,81,0,851,855,3,160,80,0,852,855,3,170,85,0,853,855,5,21,
4641
+ 0,0,854,845,1,0,0,0,854,846,1,0,0,0,854,847,1,0,0,0,854,848,1,0,
4642
+ 0,0,854,849,1,0,0,0,854,850,1,0,0,0,854,851,1,0,0,0,854,852,1,0,
4643
+ 0,0,854,853,1,0,0,0,855,151,1,0,0,0,856,857,5,14,0,0,857,858,5,104,
4644
+ 0,0,858,859,5,113,0,0,859,153,1,0,0,0,860,861,5,15,0,0,861,862,5,
4645
+ 104,0,0,862,863,5,113,0,0,863,155,1,0,0,0,864,867,5,113,0,0,865,
4646
+ 866,5,104,0,0,866,868,5,113,0,0,867,865,1,0,0,0,868,869,1,0,0,0,
4647
+ 869,867,1,0,0,0,869,870,1,0,0,0,870,157,1,0,0,0,871,872,7,12,0,0,
4648
+ 872,159,1,0,0,0,873,874,5,113,0,0,874,161,1,0,0,0,875,876,5,113,
4649
+ 0,0,876,877,5,78,0,0,877,878,3,164,82,0,878,879,5,79,0,0,879,163,
4650
+ 1,0,0,0,880,885,3,166,83,0,881,882,5,103,0,0,882,884,3,166,83,0,
4651
+ 883,881,1,0,0,0,884,887,1,0,0,0,885,883,1,0,0,0,885,886,1,0,0,0,
4652
+ 886,165,1,0,0,0,887,885,1,0,0,0,888,893,3,162,81,0,889,893,3,158,
4653
+ 79,0,890,893,5,113,0,0,891,893,5,110,0,0,892,888,1,0,0,0,892,889,
4654
+ 1,0,0,0,892,890,1,0,0,0,892,891,1,0,0,0,893,167,1,0,0,0,894,895,
4655
+ 5,34,0,0,895,896,5,78,0,0,896,897,5,110,0,0,897,900,5,79,0,0,898,
4656
+ 900,5,34,0,0,899,894,1,0,0,0,899,898,1,0,0,0,900,169,1,0,0,0,901,
4657
+ 902,3,158,79,0,902,903,5,100,0,0,903,904,3,102,51,0,904,905,5,101,
4658
+ 0,0,905,912,1,0,0,0,906,907,3,160,80,0,907,908,5,100,0,0,908,909,
4659
+ 3,102,51,0,909,910,5,101,0,0,910,912,1,0,0,0,911,901,1,0,0,0,911,
4660
+ 906,1,0,0,0,912,171,1,0,0,0,913,914,7,13,0,0,914,173,1,0,0,0,93,
4661
+ 176,178,184,194,209,217,223,227,231,235,239,243,246,258,270,280,
4662
+ 290,303,307,314,324,328,338,344,354,358,365,378,383,386,389,392,
4663
+ 399,404,415,422,429,445,463,472,479,482,496,508,527,531,535,542,
4664
+ 545,548,551,558,563,575,587,590,600,608,612,617,623,638,645,653,
4665
+ 661,669,677,685,693,701,709,717,729,735,752,755,769,775,787,794,
4666
+ 801,805,817,821,830,835,842,854,869,885,892,899,911
4957
4667
  ];
4958
4668
 
4959
4669
  private static __ATN: antlr.ATN;
@@ -6500,8 +6210,8 @@ export class AssignmentTargetContext extends antlr.ParserRuleContext {
6500
6210
  public DOT(): antlr.TerminalNode | null {
6501
6211
  return this.getToken(CNextParser.DOT, 0);
6502
6212
  }
6503
- public IDENTIFIER(): antlr.TerminalNode | null {
6504
- return this.getToken(CNextParser.IDENTIFIER, 0);
6213
+ public IDENTIFIER(): antlr.TerminalNode {
6214
+ return this.getToken(CNextParser.IDENTIFIER, 0)!;
6505
6215
  }
6506
6216
  public postfixTargetOp(): PostfixTargetOpContext[];
6507
6217
  public postfixTargetOp(i: number): PostfixTargetOpContext | null;
@@ -6515,12 +6225,6 @@ export class AssignmentTargetContext extends antlr.ParserRuleContext {
6515
6225
  public THIS(): antlr.TerminalNode | null {
6516
6226
  return this.getToken(CNextParser.THIS, 0);
6517
6227
  }
6518
- public arrayAccess(): ArrayAccessContext | null {
6519
- return this.getRuleContext(0, ArrayAccessContext);
6520
- }
6521
- public memberAccess(): MemberAccessContext | null {
6522
- return this.getRuleContext(0, MemberAccessContext);
6523
- }
6524
6228
  public override get ruleIndex(): number {
6525
6229
  return CNextParser.RULE_assignmentTarget;
6526
6230
  }
@@ -8317,129 +8021,6 @@ export class ArrayInitializerElementContext extends antlr.ParserRuleContext {
8317
8021
  }
8318
8022
 
8319
8023
 
8320
- export class MemberAccessContext extends antlr.ParserRuleContext {
8321
- public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {
8322
- super(parent, invokingState);
8323
- }
8324
- public IDENTIFIER(): antlr.TerminalNode[];
8325
- public IDENTIFIER(i: number): antlr.TerminalNode | null;
8326
- public IDENTIFIER(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] {
8327
- if (i === undefined) {
8328
- return this.getTokens(CNextParser.IDENTIFIER);
8329
- } else {
8330
- return this.getToken(CNextParser.IDENTIFIER, i);
8331
- }
8332
- }
8333
- public DOT(): antlr.TerminalNode[];
8334
- public DOT(i: number): antlr.TerminalNode | null;
8335
- public DOT(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] {
8336
- if (i === undefined) {
8337
- return this.getTokens(CNextParser.DOT);
8338
- } else {
8339
- return this.getToken(CNextParser.DOT, i);
8340
- }
8341
- }
8342
- public LBRACKET(): antlr.TerminalNode[];
8343
- public LBRACKET(i: number): antlr.TerminalNode | null;
8344
- public LBRACKET(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] {
8345
- if (i === undefined) {
8346
- return this.getTokens(CNextParser.LBRACKET);
8347
- } else {
8348
- return this.getToken(CNextParser.LBRACKET, i);
8349
- }
8350
- }
8351
- public expression(): ExpressionContext[];
8352
- public expression(i: number): ExpressionContext | null;
8353
- public expression(i?: number): ExpressionContext[] | ExpressionContext | null {
8354
- if (i === undefined) {
8355
- return this.getRuleContexts(ExpressionContext);
8356
- }
8357
-
8358
- return this.getRuleContext(i, ExpressionContext);
8359
- }
8360
- public RBRACKET(): antlr.TerminalNode[];
8361
- public RBRACKET(i: number): antlr.TerminalNode | null;
8362
- public RBRACKET(i?: number): antlr.TerminalNode | null | antlr.TerminalNode[] {
8363
- if (i === undefined) {
8364
- return this.getTokens(CNextParser.RBRACKET);
8365
- } else {
8366
- return this.getToken(CNextParser.RBRACKET, i);
8367
- }
8368
- }
8369
- public COMMA(): antlr.TerminalNode | null {
8370
- return this.getToken(CNextParser.COMMA, 0);
8371
- }
8372
- public override get ruleIndex(): number {
8373
- return CNextParser.RULE_memberAccess;
8374
- }
8375
- public override enterRule(listener: CNextListener): void {
8376
- if(listener.enterMemberAccess) {
8377
- listener.enterMemberAccess(this);
8378
- }
8379
- }
8380
- public override exitRule(listener: CNextListener): void {
8381
- if(listener.exitMemberAccess) {
8382
- listener.exitMemberAccess(this);
8383
- }
8384
- }
8385
- public override accept<Result>(visitor: CNextVisitor<Result>): Result | null {
8386
- if (visitor.visitMemberAccess) {
8387
- return visitor.visitMemberAccess(this);
8388
- } else {
8389
- return visitor.visitChildren(this);
8390
- }
8391
- }
8392
- }
8393
-
8394
-
8395
- export class ArrayAccessContext extends antlr.ParserRuleContext {
8396
- public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {
8397
- super(parent, invokingState);
8398
- }
8399
- public IDENTIFIER(): antlr.TerminalNode {
8400
- return this.getToken(CNextParser.IDENTIFIER, 0)!;
8401
- }
8402
- public LBRACKET(): antlr.TerminalNode {
8403
- return this.getToken(CNextParser.LBRACKET, 0)!;
8404
- }
8405
- public expression(): ExpressionContext[];
8406
- public expression(i: number): ExpressionContext | null;
8407
- public expression(i?: number): ExpressionContext[] | ExpressionContext | null {
8408
- if (i === undefined) {
8409
- return this.getRuleContexts(ExpressionContext);
8410
- }
8411
-
8412
- return this.getRuleContext(i, ExpressionContext);
8413
- }
8414
- public RBRACKET(): antlr.TerminalNode {
8415
- return this.getToken(CNextParser.RBRACKET, 0)!;
8416
- }
8417
- public COMMA(): antlr.TerminalNode | null {
8418
- return this.getToken(CNextParser.COMMA, 0);
8419
- }
8420
- public override get ruleIndex(): number {
8421
- return CNextParser.RULE_arrayAccess;
8422
- }
8423
- public override enterRule(listener: CNextListener): void {
8424
- if(listener.enterArrayAccess) {
8425
- listener.enterArrayAccess(this);
8426
- }
8427
- }
8428
- public override exitRule(listener: CNextListener): void {
8429
- if(listener.exitArrayAccess) {
8430
- listener.exitArrayAccess(this);
8431
- }
8432
- }
8433
- public override accept<Result>(visitor: CNextVisitor<Result>): Result | null {
8434
- if (visitor.visitArrayAccess) {
8435
- return visitor.visitArrayAccess(this);
8436
- } else {
8437
- return visitor.visitChildren(this);
8438
- }
8439
- }
8440
- }
8441
-
8442
-
8443
8024
  export class ArgumentListContext extends antlr.ParserRuleContext {
8444
8025
  public constructor(parent: antlr.ParserRuleContext | null, invokingState: number) {
8445
8026
  super(parent, invokingState);