c-next 0.2.12 → 0.2.13

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 (66) hide show
  1. package/README.md +80 -649
  2. package/dist/index.js +7387 -6211
  3. package/dist/index.js.map +4 -4
  4. package/grammar/C.g4 +9 -3
  5. package/package.json +1 -2
  6. package/src/__tests__/index.test.ts +1 -1
  7. package/src/cli/CleanCommand.ts +8 -12
  8. package/src/cli/Cli.ts +29 -6
  9. package/src/cli/Runner.ts +42 -62
  10. package/src/cli/__tests__/CleanCommand.test.ts +10 -10
  11. package/src/cli/__tests__/Cli.test.ts +59 -7
  12. package/src/cli/__tests__/ConfigPrinter.test.ts +12 -12
  13. package/src/cli/__tests__/PathNormalizer.test.ts +5 -5
  14. package/src/cli/__tests__/Runner.test.ts +108 -82
  15. package/src/cli/serve/ServeCommand.ts +1 -1
  16. package/src/cli/types/ICliConfig.ts +2 -2
  17. package/src/lib/parseWithSymbols.ts +21 -21
  18. package/src/transpiler/Transpiler.ts +88 -43
  19. package/src/transpiler/__tests__/DualCodePaths.test.ts +29 -29
  20. package/src/transpiler/__tests__/Transpiler.coverage.test.ts +244 -72
  21. package/src/transpiler/__tests__/Transpiler.test.ts +32 -72
  22. package/src/transpiler/__tests__/determineProjectRoot.test.ts +30 -28
  23. package/src/transpiler/__tests__/needsConditionalPreprocessing.test.ts +1 -1
  24. package/src/transpiler/data/CNextMarkerDetector.ts +34 -0
  25. package/src/transpiler/data/CppEntryPointScanner.ts +174 -0
  26. package/src/transpiler/data/FileDiscovery.ts +2 -105
  27. package/src/transpiler/data/InputExpansion.ts +37 -81
  28. package/src/transpiler/data/__tests__/CNextMarkerDetector.test.ts +62 -0
  29. package/src/transpiler/data/__tests__/CppEntryPointScanner.test.ts +239 -0
  30. package/src/transpiler/data/__tests__/FileDiscovery.test.ts +45 -191
  31. package/src/transpiler/data/__tests__/InputExpansion.test.ts +36 -204
  32. package/src/transpiler/logic/analysis/InitializationAnalyzer.ts +2 -2
  33. package/src/transpiler/logic/analysis/PassByValueAnalyzer.ts +4 -5
  34. package/src/transpiler/logic/parser/c/grammar/C.interp +19 -1
  35. package/src/transpiler/logic/parser/c/grammar/C.tokens +231 -213
  36. package/src/transpiler/logic/parser/c/grammar/CLexer.interp +28 -1
  37. package/src/transpiler/logic/parser/c/grammar/CLexer.tokens +231 -213
  38. package/src/transpiler/logic/parser/c/grammar/CLexer.ts +654 -600
  39. package/src/transpiler/logic/parser/c/grammar/CParser.ts +1175 -1099
  40. package/src/transpiler/logic/symbols/SymbolTable.ts +19 -7
  41. package/src/transpiler/logic/symbols/__tests__/SymbolTable.test.ts +78 -0
  42. package/src/transpiler/logic/symbols/cnext/__tests__/TSymbolInfoAdapter.test.ts +6 -6
  43. package/src/transpiler/logic/symbols/cnext/adapters/TSymbolInfoAdapter.ts +28 -27
  44. package/src/transpiler/logic/symbols/cnext/index.ts +4 -4
  45. package/src/transpiler/logic/symbols/cnext/utils/SymbolNameUtils.ts +5 -5
  46. package/src/transpiler/output/codegen/CodeGenerator.ts +7 -1
  47. package/src/transpiler/output/codegen/__tests__/CodeGenerator.test.ts +15 -0
  48. package/src/transpiler/output/codegen/__tests__/ExpressionWalker.test.ts +3 -3
  49. package/src/transpiler/output/codegen/__tests__/RequireInclude.test.ts +14 -14
  50. package/src/transpiler/output/codegen/__tests__/TrackVariableTypeHelpers.test.ts +2 -2
  51. package/src/transpiler/output/codegen/utils/QualifiedNameGenerator.ts +7 -7
  52. package/src/transpiler/output/codegen/utils/__tests__/QualifiedNameGenerator.test.ts +3 -3
  53. package/src/transpiler/output/headers/BaseHeaderGenerator.ts +10 -1
  54. package/src/transpiler/output/headers/HeaderGenerator.ts +3 -0
  55. package/src/transpiler/output/headers/HeaderGeneratorUtils.ts +6 -2
  56. package/src/transpiler/output/headers/__tests__/HeaderGeneratorUtils.test.ts +16 -0
  57. package/src/transpiler/output/headers/adapters/HeaderSymbolAdapter.ts +19 -19
  58. package/src/transpiler/output/headers/adapters/__tests__/HeaderSymbolAdapter.test.ts +5 -5
  59. package/src/transpiler/state/SymbolRegistry.ts +10 -12
  60. package/src/transpiler/state/__tests__/SymbolRegistry.test.ts +11 -13
  61. package/src/transpiler/types/IPipelineFile.ts +3 -0
  62. package/src/transpiler/types/ITranspilerConfig.ts +2 -2
  63. package/src/transpiler/types/symbols/IScopeSymbol.ts +1 -1
  64. package/src/utils/FunctionUtils.ts +3 -3
  65. package/src/utils/__tests__/FunctionUtils.test.ts +6 -4
  66. package/src/transpiler/data/types/IDiscoveryOptions.ts +0 -15
@@ -37,107 +37,116 @@ export class CParser extends antlr.Parser {
37
37
  public static readonly T__22 = 23;
38
38
  public static readonly T__23 = 24;
39
39
  public static readonly T__24 = 25;
40
- public static readonly Auto = 26;
41
- public static readonly Break = 27;
42
- public static readonly Case = 28;
43
- public static readonly Char = 29;
44
- public static readonly Const = 30;
45
- public static readonly Continue = 31;
46
- public static readonly Default = 32;
47
- public static readonly Do = 33;
48
- public static readonly Double = 34;
49
- public static readonly Else = 35;
50
- public static readonly Enum = 36;
51
- public static readonly Extern = 37;
52
- public static readonly Float = 38;
53
- public static readonly For = 39;
54
- public static readonly Goto = 40;
55
- public static readonly If = 41;
56
- public static readonly Inline = 42;
57
- public static readonly Int = 43;
58
- public static readonly Long = 44;
59
- public static readonly Register = 45;
60
- public static readonly Restrict = 46;
61
- public static readonly Return = 47;
62
- public static readonly Short = 48;
63
- public static readonly Signed = 49;
64
- public static readonly Sizeof = 50;
65
- public static readonly Static = 51;
66
- public static readonly Struct = 52;
67
- public static readonly Switch = 53;
68
- public static readonly Typedef = 54;
69
- public static readonly Union = 55;
70
- public static readonly Unsigned = 56;
71
- public static readonly Void = 57;
72
- public static readonly Volatile = 58;
73
- public static readonly While = 59;
74
- public static readonly Alignas = 60;
75
- public static readonly Alignof = 61;
76
- public static readonly Atomic = 62;
77
- public static readonly Bool = 63;
78
- public static readonly Complex = 64;
79
- public static readonly Generic = 65;
80
- public static readonly Imaginary = 66;
81
- public static readonly Noreturn = 67;
82
- public static readonly StaticAssert = 68;
83
- public static readonly ThreadLocal = 69;
84
- public static readonly LeftParen = 70;
85
- public static readonly RightParen = 71;
86
- public static readonly LeftBracket = 72;
87
- public static readonly RightBracket = 73;
88
- public static readonly LeftBrace = 74;
89
- public static readonly RightBrace = 75;
90
- public static readonly Less = 76;
91
- public static readonly LessEqual = 77;
92
- public static readonly Greater = 78;
93
- public static readonly GreaterEqual = 79;
94
- public static readonly LeftShift = 80;
95
- public static readonly RightShift = 81;
96
- public static readonly Plus = 82;
97
- public static readonly PlusPlus = 83;
98
- public static readonly Minus = 84;
99
- public static readonly MinusMinus = 85;
100
- public static readonly Star = 86;
101
- public static readonly Div = 87;
102
- public static readonly Mod = 88;
103
- public static readonly And = 89;
104
- public static readonly Or = 90;
105
- public static readonly AndAnd = 91;
106
- public static readonly OrOr = 92;
107
- public static readonly Caret = 93;
108
- public static readonly Not = 94;
109
- public static readonly Tilde = 95;
110
- public static readonly Question = 96;
111
- public static readonly Colon = 97;
112
- public static readonly Semi = 98;
113
- public static readonly Comma = 99;
114
- public static readonly Assign = 100;
115
- public static readonly StarAssign = 101;
116
- public static readonly DivAssign = 102;
117
- public static readonly ModAssign = 103;
118
- public static readonly PlusAssign = 104;
119
- public static readonly MinusAssign = 105;
120
- public static readonly LeftShiftAssign = 106;
121
- public static readonly RightShiftAssign = 107;
122
- public static readonly AndAssign = 108;
123
- public static readonly XorAssign = 109;
124
- public static readonly OrAssign = 110;
125
- public static readonly Equal = 111;
126
- public static readonly NotEqual = 112;
127
- public static readonly Arrow = 113;
128
- public static readonly Dot = 114;
129
- public static readonly Ellipsis = 115;
130
- public static readonly Identifier = 116;
131
- public static readonly Constant = 117;
132
- public static readonly DigitSequence = 118;
133
- public static readonly StringLiteral = 119;
134
- public static readonly MultiLineMacro = 120;
135
- public static readonly Directive = 121;
136
- public static readonly AsmBlock = 122;
137
- public static readonly Whitespace = 123;
138
- public static readonly Newline = 124;
139
- public static readonly BlockComment = 125;
140
- public static readonly LineComment = 126;
40
+ public static readonly T__25 = 26;
41
+ public static readonly T__26 = 27;
42
+ public static readonly T__27 = 28;
43
+ public static readonly T__28 = 29;
44
+ public static readonly T__29 = 30;
45
+ public static readonly T__30 = 31;
46
+ public static readonly T__31 = 32;
47
+ public static readonly T__32 = 33;
48
+ public static readonly T__33 = 34;
49
+ public static readonly Auto = 35;
50
+ public static readonly Break = 36;
51
+ public static readonly Case = 37;
52
+ public static readonly Char = 38;
53
+ public static readonly Const = 39;
54
+ public static readonly Continue = 40;
55
+ public static readonly Default = 41;
56
+ public static readonly Do = 42;
57
+ public static readonly Double = 43;
58
+ public static readonly Else = 44;
59
+ public static readonly Enum = 45;
60
+ public static readonly Extern = 46;
61
+ public static readonly Float = 47;
62
+ public static readonly For = 48;
63
+ public static readonly Goto = 49;
64
+ public static readonly If = 50;
65
+ public static readonly Inline = 51;
66
+ public static readonly Int = 52;
67
+ public static readonly Long = 53;
68
+ public static readonly Register = 54;
69
+ public static readonly Restrict = 55;
70
+ public static readonly Return = 56;
71
+ public static readonly Short = 57;
72
+ public static readonly Signed = 58;
73
+ public static readonly Sizeof = 59;
74
+ public static readonly Static = 60;
75
+ public static readonly Struct = 61;
76
+ public static readonly Switch = 62;
77
+ public static readonly Typedef = 63;
78
+ public static readonly Union = 64;
79
+ public static readonly Unsigned = 65;
80
+ public static readonly Void = 66;
81
+ public static readonly Volatile = 67;
82
+ public static readonly While = 68;
83
+ public static readonly Alignas = 69;
84
+ public static readonly Alignof = 70;
85
+ public static readonly Atomic = 71;
86
+ public static readonly Bool = 72;
87
+ public static readonly Complex = 73;
88
+ public static readonly Generic = 74;
89
+ public static readonly Imaginary = 75;
90
+ public static readonly Noreturn = 76;
91
+ public static readonly StaticAssert = 77;
92
+ public static readonly ThreadLocal = 78;
93
+ public static readonly LeftParen = 79;
94
+ public static readonly RightParen = 80;
95
+ public static readonly LeftBracket = 81;
96
+ public static readonly RightBracket = 82;
97
+ public static readonly LeftBrace = 83;
98
+ public static readonly RightBrace = 84;
99
+ public static readonly Less = 85;
100
+ public static readonly LessEqual = 86;
101
+ public static readonly Greater = 87;
102
+ public static readonly GreaterEqual = 88;
103
+ public static readonly LeftShift = 89;
104
+ public static readonly RightShift = 90;
105
+ public static readonly Plus = 91;
106
+ public static readonly PlusPlus = 92;
107
+ public static readonly Minus = 93;
108
+ public static readonly MinusMinus = 94;
109
+ public static readonly Star = 95;
110
+ public static readonly Div = 96;
111
+ public static readonly Mod = 97;
112
+ public static readonly And = 98;
113
+ public static readonly Or = 99;
114
+ public static readonly AndAnd = 100;
115
+ public static readonly OrOr = 101;
116
+ public static readonly Caret = 102;
117
+ public static readonly Not = 103;
118
+ public static readonly Tilde = 104;
119
+ public static readonly Question = 105;
120
+ public static readonly Colon = 106;
121
+ public static readonly Semi = 107;
122
+ public static readonly Comma = 108;
123
+ public static readonly Assign = 109;
124
+ public static readonly StarAssign = 110;
125
+ public static readonly DivAssign = 111;
126
+ public static readonly ModAssign = 112;
127
+ public static readonly PlusAssign = 113;
128
+ public static readonly MinusAssign = 114;
129
+ public static readonly LeftShiftAssign = 115;
130
+ public static readonly RightShiftAssign = 116;
131
+ public static readonly AndAssign = 117;
132
+ public static readonly XorAssign = 118;
133
+ public static readonly OrAssign = 119;
134
+ public static readonly Equal = 120;
135
+ public static readonly NotEqual = 121;
136
+ public static readonly Arrow = 122;
137
+ public static readonly Dot = 123;
138
+ public static readonly Ellipsis = 124;
139
+ public static readonly Identifier = 125;
140
+ public static readonly Constant = 126;
141
+ public static readonly DigitSequence = 127;
142
+ public static readonly StringLiteral = 128;
143
+ public static readonly MultiLineMacro = 129;
144
+ public static readonly Directive = 130;
145
+ public static readonly AsmBlock = 131;
146
+ public static readonly Whitespace = 132;
147
+ public static readonly Newline = 133;
148
+ public static readonly BlockComment = 134;
149
+ public static readonly LineComment = 135;
141
150
  public static readonly RULE_primaryExpression = 0;
142
151
  public static readonly RULE_genericSelection = 1;
143
152
  public static readonly RULE_genericAssocList = 2;
@@ -228,10 +237,12 @@ export class CParser extends antlr.Parser {
228
237
 
229
238
  public static readonly literalNames = [
230
239
  null, "'__extension__'", "'__builtin_va_arg'", "'__builtin_offsetof'",
231
- "'__signed__'", "'__m128'", "'__m128d'", "'__m128i'", "'__typeof__'",
232
- "'__const'", "'__const__'", "'__restrict'", "'__restrict__'", "'__volatile'",
233
- "'__volatile__'", "'__inline__'", "'__stdcall'", "'__declspec'",
234
- "'__cdecl'", "'__clrcall'", "'__fastcall'", "'__thiscall'", "'__vectorcall'",
240
+ "'__alignof__'", "'__alignof'", "'__thread'", "'__signed'", "'__signed__'",
241
+ "'__m128'", "'__m128d'", "'__m128i'", "'__int128'", "'__int128_t'",
242
+ "'__uint128_t'", "'__typeof__'", "'__typeof'", "'__const'", "'__const__'",
243
+ "'__restrict'", "'__restrict__'", "'__volatile'", "'__volatile__'",
244
+ "'__inline'", "'__inline__'", "'__stdcall'", "'__declspec'", "'__cdecl'",
245
+ "'__clrcall'", "'__fastcall'", "'__thiscall'", "'__vectorcall'",
235
246
  "'__asm'", "'__asm__'", "'__attribute__'", "'auto'", "'break'",
236
247
  "'case'", "'char'", "'const'", "'continue'", "'default'", "'do'",
237
248
  "'double'", "'else'", "'enum'", "'extern'", "'float'", "'for'",
@@ -251,23 +262,24 @@ export class CParser extends antlr.Parser {
251
262
  public static readonly symbolicNames = [
252
263
  null, null, null, null, null, null, null, null, null, null, null,
253
264
  null, null, null, null, null, null, null, null, null, null, null,
254
- null, null, null, null, "Auto", "Break", "Case", "Char", "Const",
255
- "Continue", "Default", "Do", "Double", "Else", "Enum", "Extern",
256
- "Float", "For", "Goto", "If", "Inline", "Int", "Long", "Register",
257
- "Restrict", "Return", "Short", "Signed", "Sizeof", "Static", "Struct",
258
- "Switch", "Typedef", "Union", "Unsigned", "Void", "Volatile", "While",
259
- "Alignas", "Alignof", "Atomic", "Bool", "Complex", "Generic", "Imaginary",
260
- "Noreturn", "StaticAssert", "ThreadLocal", "LeftParen", "RightParen",
261
- "LeftBracket", "RightBracket", "LeftBrace", "RightBrace", "Less",
262
- "LessEqual", "Greater", "GreaterEqual", "LeftShift", "RightShift",
263
- "Plus", "PlusPlus", "Minus", "MinusMinus", "Star", "Div", "Mod",
264
- "And", "Or", "AndAnd", "OrOr", "Caret", "Not", "Tilde", "Question",
265
- "Colon", "Semi", "Comma", "Assign", "StarAssign", "DivAssign", "ModAssign",
266
- "PlusAssign", "MinusAssign", "LeftShiftAssign", "RightShiftAssign",
267
- "AndAssign", "XorAssign", "OrAssign", "Equal", "NotEqual", "Arrow",
268
- "Dot", "Ellipsis", "Identifier", "Constant", "DigitSequence", "StringLiteral",
269
- "MultiLineMacro", "Directive", "AsmBlock", "Whitespace", "Newline",
270
- "BlockComment", "LineComment"
265
+ null, null, null, null, null, null, null, null, null, null, null,
266
+ null, null, "Auto", "Break", "Case", "Char", "Const", "Continue",
267
+ "Default", "Do", "Double", "Else", "Enum", "Extern", "Float", "For",
268
+ "Goto", "If", "Inline", "Int", "Long", "Register", "Restrict", "Return",
269
+ "Short", "Signed", "Sizeof", "Static", "Struct", "Switch", "Typedef",
270
+ "Union", "Unsigned", "Void", "Volatile", "While", "Alignas", "Alignof",
271
+ "Atomic", "Bool", "Complex", "Generic", "Imaginary", "Noreturn",
272
+ "StaticAssert", "ThreadLocal", "LeftParen", "RightParen", "LeftBracket",
273
+ "RightBracket", "LeftBrace", "RightBrace", "Less", "LessEqual",
274
+ "Greater", "GreaterEqual", "LeftShift", "RightShift", "Plus", "PlusPlus",
275
+ "Minus", "MinusMinus", "Star", "Div", "Mod", "And", "Or", "AndAnd",
276
+ "OrOr", "Caret", "Not", "Tilde", "Question", "Colon", "Semi", "Comma",
277
+ "Assign", "StarAssign", "DivAssign", "ModAssign", "PlusAssign",
278
+ "MinusAssign", "LeftShiftAssign", "RightShiftAssign", "AndAssign",
279
+ "XorAssign", "OrAssign", "Equal", "NotEqual", "Arrow", "Dot", "Ellipsis",
280
+ "Identifier", "Constant", "DigitSequence", "StringLiteral", "MultiLineMacro",
281
+ "Directive", "AsmBlock", "Whitespace", "Newline", "BlockComment",
282
+ "LineComment"
271
283
  ];
272
284
  public static readonly ruleNames = [
273
285
  "primaryExpression", "genericSelection", "genericAssocList", "genericAssociation",
@@ -348,7 +360,7 @@ export class CParser extends antlr.Parser {
348
360
  this.state = 179;
349
361
  this.errorHandler.sync(this);
350
362
  _la = this.tokenStream.LA(1);
351
- } while (_la === 119);
363
+ } while (_la === 128);
352
364
  }
353
365
  break;
354
366
  case 4:
@@ -484,7 +496,7 @@ export class CParser extends antlr.Parser {
484
496
  this.state = 221;
485
497
  this.errorHandler.sync(this);
486
498
  _la = this.tokenStream.LA(1);
487
- while (_la === 99) {
499
+ while (_la === 108) {
488
500
  {
489
501
  {
490
502
  this.state = 217;
@@ -522,9 +534,6 @@ export class CParser extends antlr.Parser {
522
534
  this.errorHandler.sync(this);
523
535
  switch (this.tokenStream.LA(1)) {
524
536
  case CParser.T__0:
525
- case CParser.T__3:
526
- case CParser.T__4:
527
- case CParser.T__5:
528
537
  case CParser.T__6:
529
538
  case CParser.T__7:
530
539
  case CParser.T__8:
@@ -533,6 +542,14 @@ export class CParser extends antlr.Parser {
533
542
  case CParser.T__11:
534
543
  case CParser.T__12:
535
544
  case CParser.T__13:
545
+ case CParser.T__14:
546
+ case CParser.T__15:
547
+ case CParser.T__16:
548
+ case CParser.T__17:
549
+ case CParser.T__18:
550
+ case CParser.T__19:
551
+ case CParser.T__20:
552
+ case CParser.T__21:
536
553
  case CParser.Char:
537
554
  case CParser.Const:
538
555
  case CParser.Double:
@@ -626,7 +643,7 @@ export class CParser extends antlr.Parser {
626
643
  this.state = 241;
627
644
  this.errorHandler.sync(this);
628
645
  _la = this.tokenStream.LA(1);
629
- if (_la === 99) {
646
+ if (_la === 108) {
630
647
  {
631
648
  this.state = 240;
632
649
  this.match(CParser.Comma);
@@ -641,7 +658,7 @@ export class CParser extends antlr.Parser {
641
658
  this.state = 262;
642
659
  this.errorHandler.sync(this);
643
660
  _la = this.tokenStream.LA(1);
644
- while (((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 40965) !== 0) || _la === 113 || _la === 114) {
661
+ while (((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 40965) !== 0) || _la === 122 || _la === 123) {
645
662
  {
646
663
  this.state = 260;
647
664
  this.errorHandler.sync(this);
@@ -663,7 +680,7 @@ export class CParser extends antlr.Parser {
663
680
  this.state = 253;
664
681
  this.errorHandler.sync(this);
665
682
  _la = this.tokenStream.LA(1);
666
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
683
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
667
684
  {
668
685
  this.state = 252;
669
686
  this.argumentExpressionList();
@@ -679,7 +696,7 @@ export class CParser extends antlr.Parser {
679
696
  {
680
697
  this.state = 256;
681
698
  _la = this.tokenStream.LA(1);
682
- if(!(_la === 113 || _la === 114)) {
699
+ if(!(_la === 122 || _la === 123)) {
683
700
  this.errorHandler.recoverInline(this);
684
701
  }
685
702
  else {
@@ -737,7 +754,7 @@ export class CParser extends antlr.Parser {
737
754
  this.state = 270;
738
755
  this.errorHandler.sync(this);
739
756
  _la = this.tokenStream.LA(1);
740
- while (_la === 99) {
757
+ while (_la === 108) {
741
758
  {
742
759
  {
743
760
  this.state = 266;
@@ -782,7 +799,7 @@ export class CParser extends antlr.Parser {
782
799
  {
783
800
  this.state = 273;
784
801
  _la = this.tokenStream.LA(1);
785
- if(!(_la === 50 || _la === 83 || _la === 85)) {
802
+ if(!(_la === 59 || _la === 92 || _la === 94)) {
786
803
  this.errorHandler.recoverInline(this);
787
804
  }
788
805
  else {
@@ -825,12 +842,14 @@ export class CParser extends antlr.Parser {
825
842
  this.castExpression();
826
843
  }
827
844
  break;
845
+ case CParser.T__3:
846
+ case CParser.T__4:
828
847
  case CParser.Sizeof:
829
848
  case CParser.Alignof:
830
849
  {
831
850
  this.state = 283;
832
851
  _la = this.tokenStream.LA(1);
833
- if(!(_la === 50 || _la === 61)) {
852
+ if(!(_la === 4 || _la === 5 || _la === 59 || _la === 70)) {
834
853
  this.errorHandler.recoverInline(this);
835
854
  }
836
855
  else {
@@ -880,7 +899,7 @@ export class CParser extends antlr.Parser {
880
899
  {
881
900
  this.state = 292;
882
901
  _la = this.tokenStream.LA(1);
883
- if(!(((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12437) !== 0))) {
902
+ if(!(((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12437) !== 0))) {
884
903
  this.errorHandler.recoverInline(this);
885
904
  }
886
905
  else {
@@ -974,12 +993,12 @@ export class CParser extends antlr.Parser {
974
993
  this.state = 311;
975
994
  this.errorHandler.sync(this);
976
995
  _la = this.tokenStream.LA(1);
977
- while (((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 7) !== 0)) {
996
+ while (((((_la - 95)) & ~0x1F) === 0 && ((1 << (_la - 95)) & 7) !== 0)) {
978
997
  {
979
998
  {
980
999
  this.state = 307;
981
1000
  _la = this.tokenStream.LA(1);
982
- if(!(((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 7) !== 0))) {
1001
+ if(!(((((_la - 95)) & ~0x1F) === 0 && ((1 << (_la - 95)) & 7) !== 0))) {
983
1002
  this.errorHandler.recoverInline(this);
984
1003
  }
985
1004
  else {
@@ -1021,12 +1040,12 @@ export class CParser extends antlr.Parser {
1021
1040
  this.state = 319;
1022
1041
  this.errorHandler.sync(this);
1023
1042
  _la = this.tokenStream.LA(1);
1024
- while (_la === 82 || _la === 84) {
1043
+ while (_la === 91 || _la === 93) {
1025
1044
  {
1026
1045
  {
1027
1046
  this.state = 315;
1028
1047
  _la = this.tokenStream.LA(1);
1029
- if(!(_la === 82 || _la === 84)) {
1048
+ if(!(_la === 91 || _la === 93)) {
1030
1049
  this.errorHandler.recoverInline(this);
1031
1050
  }
1032
1051
  else {
@@ -1068,12 +1087,12 @@ export class CParser extends antlr.Parser {
1068
1087
  this.state = 327;
1069
1088
  this.errorHandler.sync(this);
1070
1089
  _la = this.tokenStream.LA(1);
1071
- while (_la === 80 || _la === 81) {
1090
+ while (_la === 89 || _la === 90) {
1072
1091
  {
1073
1092
  {
1074
1093
  this.state = 323;
1075
1094
  _la = this.tokenStream.LA(1);
1076
- if(!(_la === 80 || _la === 81)) {
1095
+ if(!(_la === 89 || _la === 90)) {
1077
1096
  this.errorHandler.recoverInline(this);
1078
1097
  }
1079
1098
  else {
@@ -1115,12 +1134,12 @@ export class CParser extends antlr.Parser {
1115
1134
  this.state = 335;
1116
1135
  this.errorHandler.sync(this);
1117
1136
  _la = this.tokenStream.LA(1);
1118
- while (((((_la - 76)) & ~0x1F) === 0 && ((1 << (_la - 76)) & 15) !== 0)) {
1137
+ while (((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 15) !== 0)) {
1119
1138
  {
1120
1139
  {
1121
1140
  this.state = 331;
1122
1141
  _la = this.tokenStream.LA(1);
1123
- if(!(((((_la - 76)) & ~0x1F) === 0 && ((1 << (_la - 76)) & 15) !== 0))) {
1142
+ if(!(((((_la - 85)) & ~0x1F) === 0 && ((1 << (_la - 85)) & 15) !== 0))) {
1124
1143
  this.errorHandler.recoverInline(this);
1125
1144
  }
1126
1145
  else {
@@ -1162,12 +1181,12 @@ export class CParser extends antlr.Parser {
1162
1181
  this.state = 343;
1163
1182
  this.errorHandler.sync(this);
1164
1183
  _la = this.tokenStream.LA(1);
1165
- while (_la === 111 || _la === 112) {
1184
+ while (_la === 120 || _la === 121) {
1166
1185
  {
1167
1186
  {
1168
1187
  this.state = 339;
1169
1188
  _la = this.tokenStream.LA(1);
1170
- if(!(_la === 111 || _la === 112)) {
1189
+ if(!(_la === 120 || _la === 121)) {
1171
1190
  this.errorHandler.recoverInline(this);
1172
1191
  }
1173
1192
  else {
@@ -1209,7 +1228,7 @@ export class CParser extends antlr.Parser {
1209
1228
  this.state = 351;
1210
1229
  this.errorHandler.sync(this);
1211
1230
  _la = this.tokenStream.LA(1);
1212
- while (_la === 89) {
1231
+ while (_la === 98) {
1213
1232
  {
1214
1233
  {
1215
1234
  this.state = 347;
@@ -1249,7 +1268,7 @@ export class CParser extends antlr.Parser {
1249
1268
  this.state = 359;
1250
1269
  this.errorHandler.sync(this);
1251
1270
  _la = this.tokenStream.LA(1);
1252
- while (_la === 93) {
1271
+ while (_la === 102) {
1253
1272
  {
1254
1273
  {
1255
1274
  this.state = 355;
@@ -1289,7 +1308,7 @@ export class CParser extends antlr.Parser {
1289
1308
  this.state = 367;
1290
1309
  this.errorHandler.sync(this);
1291
1310
  _la = this.tokenStream.LA(1);
1292
- while (_la === 90) {
1311
+ while (_la === 99) {
1293
1312
  {
1294
1313
  {
1295
1314
  this.state = 363;
@@ -1329,7 +1348,7 @@ export class CParser extends antlr.Parser {
1329
1348
  this.state = 375;
1330
1349
  this.errorHandler.sync(this);
1331
1350
  _la = this.tokenStream.LA(1);
1332
- while (_la === 91) {
1351
+ while (_la === 100) {
1333
1352
  {
1334
1353
  {
1335
1354
  this.state = 371;
@@ -1369,7 +1388,7 @@ export class CParser extends antlr.Parser {
1369
1388
  this.state = 383;
1370
1389
  this.errorHandler.sync(this);
1371
1390
  _la = this.tokenStream.LA(1);
1372
- while (_la === 92) {
1391
+ while (_la === 101) {
1373
1392
  {
1374
1393
  {
1375
1394
  this.state = 379;
@@ -1409,7 +1428,7 @@ export class CParser extends antlr.Parser {
1409
1428
  this.state = 392;
1410
1429
  this.errorHandler.sync(this);
1411
1430
  _la = this.tokenStream.LA(1);
1412
- if (_la === 96) {
1431
+ if (_la === 105) {
1413
1432
  {
1414
1433
  this.state = 387;
1415
1434
  this.match(CParser.Question);
@@ -1493,7 +1512,7 @@ export class CParser extends antlr.Parser {
1493
1512
  {
1494
1513
  this.state = 402;
1495
1514
  _la = this.tokenStream.LA(1);
1496
- if(!(((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & 2047) !== 0))) {
1515
+ if(!(((((_la - 109)) & ~0x1F) === 0 && ((1 << (_la - 109)) & 2047) !== 0))) {
1497
1516
  this.errorHandler.recoverInline(this);
1498
1517
  }
1499
1518
  else {
@@ -1527,7 +1546,7 @@ export class CParser extends antlr.Parser {
1527
1546
  this.state = 409;
1528
1547
  this.errorHandler.sync(this);
1529
1548
  _la = this.tokenStream.LA(1);
1530
- while (_la === 99) {
1549
+ while (_la === 108) {
1531
1550
  {
1532
1551
  {
1533
1552
  this.state = 405;
@@ -1587,8 +1606,6 @@ export class CParser extends antlr.Parser {
1587
1606
  this.errorHandler.sync(this);
1588
1607
  switch (this.tokenStream.LA(1)) {
1589
1608
  case CParser.T__0:
1590
- case CParser.T__3:
1591
- case CParser.T__4:
1592
1609
  case CParser.T__5:
1593
1610
  case CParser.T__6:
1594
1611
  case CParser.T__7:
@@ -1601,7 +1618,16 @@ export class CParser extends antlr.Parser {
1601
1618
  case CParser.T__14:
1602
1619
  case CParser.T__15:
1603
1620
  case CParser.T__16:
1621
+ case CParser.T__17:
1622
+ case CParser.T__18:
1623
+ case CParser.T__19:
1624
+ case CParser.T__20:
1625
+ case CParser.T__21:
1626
+ case CParser.T__22:
1627
+ case CParser.T__23:
1604
1628
  case CParser.T__24:
1629
+ case CParser.T__25:
1630
+ case CParser.T__33:
1605
1631
  case CParser.Auto:
1606
1632
  case CParser.Char:
1607
1633
  case CParser.Const:
@@ -1637,7 +1663,7 @@ export class CParser extends antlr.Parser {
1637
1663
  this.state = 416;
1638
1664
  this.errorHandler.sync(this);
1639
1665
  _la = this.tokenStream.LA(1);
1640
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 8192000) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 8454145) !== 0) || _la === 116) {
1666
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4194304000) !== 0) || ((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 8454145) !== 0) || _la === 125) {
1641
1667
  {
1642
1668
  this.state = 415;
1643
1669
  this.initDeclaratorList();
@@ -1734,7 +1760,7 @@ export class CParser extends antlr.Parser {
1734
1760
  this.state = 431;
1735
1761
  this.errorHandler.sync(this);
1736
1762
  _la = this.tokenStream.LA(1);
1737
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1711538162) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || _la === 67 || _la === 69 || _la === 116);
1763
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217666) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 5355) !== 0) || _la === 125);
1738
1764
  }
1739
1765
  }
1740
1766
  catch (re) {
@@ -1819,7 +1845,7 @@ export class CParser extends antlr.Parser {
1819
1845
  this.state = 445;
1820
1846
  this.errorHandler.sync(this);
1821
1847
  _la = this.tokenStream.LA(1);
1822
- while (_la === 99) {
1848
+ while (_la === 108) {
1823
1849
  {
1824
1850
  {
1825
1851
  this.state = 441;
@@ -1859,7 +1885,7 @@ export class CParser extends antlr.Parser {
1859
1885
  this.state = 451;
1860
1886
  this.errorHandler.sync(this);
1861
1887
  _la = this.tokenStream.LA(1);
1862
- if (_la === 100) {
1888
+ if (_la === 109) {
1863
1889
  {
1864
1890
  this.state = 449;
1865
1891
  this.match(CParser.Assign);
@@ -1892,7 +1918,7 @@ export class CParser extends antlr.Parser {
1892
1918
  {
1893
1919
  this.state = 453;
1894
1920
  _la = this.tokenStream.LA(1);
1895
- if(!(((((_la - 26)) & ~0x1F) === 0 && ((1 << (_la - 26)) & 302516225) !== 0) || _la === 69)) {
1921
+ if(!(_la === 6 || ((((_la - 35)) & ~0x1F) === 0 && ((1 << (_la - 35)) & 302516225) !== 0) || _la === 78)) {
1896
1922
  this.errorHandler.recoverInline(this);
1897
1923
  }
1898
1924
  else {
@@ -1919,7 +1945,7 @@ export class CParser extends antlr.Parser {
1919
1945
  this.enterRule(localContext, 62, CParser.RULE_typeSpecifier);
1920
1946
  let _la: number;
1921
1947
  try {
1922
- this.state = 483;
1948
+ this.state = 487;
1923
1949
  this.errorHandler.sync(this);
1924
1950
  switch (this.tokenStream.LA(1)) {
1925
1951
  case CParser.Void:
@@ -1978,114 +2004,150 @@ export class CParser extends antlr.Parser {
1978
2004
  this.match(CParser.Signed);
1979
2005
  }
1980
2006
  break;
1981
- case CParser.T__3:
2007
+ case CParser.T__6:
1982
2008
  this.enterOuterAlt(localContext, 9);
1983
2009
  {
1984
2010
  this.state = 463;
1985
- this.match(CParser.T__3);
2011
+ this.match(CParser.T__6);
1986
2012
  }
1987
2013
  break;
1988
- case CParser.Unsigned:
2014
+ case CParser.T__7:
1989
2015
  this.enterOuterAlt(localContext, 10);
1990
2016
  {
1991
2017
  this.state = 464;
1992
- this.match(CParser.Unsigned);
2018
+ this.match(CParser.T__7);
1993
2019
  }
1994
2020
  break;
1995
- case CParser.Bool:
2021
+ case CParser.Unsigned:
1996
2022
  this.enterOuterAlt(localContext, 11);
1997
2023
  {
1998
2024
  this.state = 465;
1999
- this.match(CParser.Bool);
2025
+ this.match(CParser.Unsigned);
2000
2026
  }
2001
2027
  break;
2002
- case CParser.Complex:
2028
+ case CParser.Bool:
2003
2029
  this.enterOuterAlt(localContext, 12);
2004
2030
  {
2005
2031
  this.state = 466;
2006
- this.match(CParser.Complex);
2032
+ this.match(CParser.Bool);
2007
2033
  }
2008
2034
  break;
2009
- case CParser.T__4:
2035
+ case CParser.Complex:
2010
2036
  this.enterOuterAlt(localContext, 13);
2011
2037
  {
2012
2038
  this.state = 467;
2013
- this.match(CParser.T__4);
2039
+ this.match(CParser.Complex);
2014
2040
  }
2015
2041
  break;
2016
- case CParser.T__5:
2042
+ case CParser.T__8:
2017
2043
  this.enterOuterAlt(localContext, 14);
2018
2044
  {
2019
2045
  this.state = 468;
2020
- this.match(CParser.T__5);
2046
+ this.match(CParser.T__8);
2021
2047
  }
2022
2048
  break;
2023
- case CParser.T__6:
2049
+ case CParser.T__9:
2024
2050
  this.enterOuterAlt(localContext, 15);
2025
2051
  {
2026
2052
  this.state = 469;
2027
- this.match(CParser.T__6);
2053
+ this.match(CParser.T__9);
2028
2054
  }
2029
2055
  break;
2030
- case CParser.T__0:
2056
+ case CParser.T__10:
2031
2057
  this.enterOuterAlt(localContext, 16);
2032
2058
  {
2033
2059
  this.state = 470;
2034
- this.match(CParser.T__0);
2060
+ this.match(CParser.T__10);
2061
+ }
2062
+ break;
2063
+ case CParser.T__11:
2064
+ this.enterOuterAlt(localContext, 17);
2065
+ {
2035
2066
  this.state = 471;
2036
- this.match(CParser.LeftParen);
2067
+ this.match(CParser.T__11);
2068
+ }
2069
+ break;
2070
+ case CParser.T__12:
2071
+ this.enterOuterAlt(localContext, 18);
2072
+ {
2037
2073
  this.state = 472;
2074
+ this.match(CParser.T__12);
2075
+ }
2076
+ break;
2077
+ case CParser.T__13:
2078
+ this.enterOuterAlt(localContext, 19);
2079
+ {
2080
+ this.state = 473;
2081
+ this.match(CParser.T__13);
2082
+ }
2083
+ break;
2084
+ case CParser.T__0:
2085
+ this.enterOuterAlt(localContext, 20);
2086
+ {
2087
+ this.state = 474;
2088
+ this.match(CParser.T__0);
2089
+ this.state = 475;
2090
+ this.match(CParser.LeftParen);
2091
+ this.state = 476;
2038
2092
  _la = this.tokenStream.LA(1);
2039
- if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 224) !== 0))) {
2093
+ if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 3584) !== 0))) {
2040
2094
  this.errorHandler.recoverInline(this);
2041
2095
  }
2042
2096
  else {
2043
2097
  this.errorHandler.reportMatch(this);
2044
2098
  this.consume();
2045
2099
  }
2046
- this.state = 473;
2100
+ this.state = 477;
2047
2101
  this.match(CParser.RightParen);
2048
2102
  }
2049
2103
  break;
2050
2104
  case CParser.Atomic:
2051
- this.enterOuterAlt(localContext, 17);
2105
+ this.enterOuterAlt(localContext, 21);
2052
2106
  {
2053
- this.state = 474;
2107
+ this.state = 478;
2054
2108
  this.atomicTypeSpecifier();
2055
2109
  }
2056
2110
  break;
2057
2111
  case CParser.Struct:
2058
2112
  case CParser.Union:
2059
- this.enterOuterAlt(localContext, 18);
2113
+ this.enterOuterAlt(localContext, 22);
2060
2114
  {
2061
- this.state = 475;
2115
+ this.state = 479;
2062
2116
  this.structOrUnionSpecifier();
2063
2117
  }
2064
2118
  break;
2065
2119
  case CParser.Enum:
2066
- this.enterOuterAlt(localContext, 19);
2120
+ this.enterOuterAlt(localContext, 23);
2067
2121
  {
2068
- this.state = 476;
2122
+ this.state = 480;
2069
2123
  this.enumSpecifier();
2070
2124
  }
2071
2125
  break;
2072
2126
  case CParser.Identifier:
2073
- this.enterOuterAlt(localContext, 20);
2127
+ this.enterOuterAlt(localContext, 24);
2074
2128
  {
2075
- this.state = 477;
2129
+ this.state = 481;
2076
2130
  this.typedefName();
2077
2131
  }
2078
2132
  break;
2079
- case CParser.T__7:
2080
- this.enterOuterAlt(localContext, 21);
2133
+ case CParser.T__14:
2134
+ case CParser.T__15:
2135
+ this.enterOuterAlt(localContext, 25);
2081
2136
  {
2082
- this.state = 478;
2083
- this.match(CParser.T__7);
2084
- this.state = 479;
2137
+ this.state = 482;
2138
+ _la = this.tokenStream.LA(1);
2139
+ if(!(_la === 15 || _la === 16)) {
2140
+ this.errorHandler.recoverInline(this);
2141
+ }
2142
+ else {
2143
+ this.errorHandler.reportMatch(this);
2144
+ this.consume();
2145
+ }
2146
+ this.state = 483;
2085
2147
  this.match(CParser.LeftParen);
2086
- this.state = 480;
2148
+ this.state = 484;
2087
2149
  this.constantExpression();
2088
- this.state = 481;
2150
+ this.state = 485;
2089
2151
  this.match(CParser.RightParen);
2090
2152
  }
2091
2153
  break;
@@ -2111,38 +2173,38 @@ export class CParser extends antlr.Parser {
2111
2173
  this.enterRule(localContext, 64, CParser.RULE_structOrUnionSpecifier);
2112
2174
  let _la: number;
2113
2175
  try {
2114
- this.state = 496;
2176
+ this.state = 500;
2115
2177
  this.errorHandler.sync(this);
2116
2178
  switch (this.interpreter.adaptivePredict(this.tokenStream, 38, this.context) ) {
2117
2179
  case 1:
2118
2180
  this.enterOuterAlt(localContext, 1);
2119
2181
  {
2120
- this.state = 485;
2182
+ this.state = 489;
2121
2183
  this.structOrUnion();
2122
- this.state = 487;
2184
+ this.state = 491;
2123
2185
  this.errorHandler.sync(this);
2124
2186
  _la = this.tokenStream.LA(1);
2125
- if (_la === 116) {
2187
+ if (_la === 125) {
2126
2188
  {
2127
- this.state = 486;
2189
+ this.state = 490;
2128
2190
  this.match(CParser.Identifier);
2129
2191
  }
2130
2192
  }
2131
2193
 
2132
- this.state = 489;
2194
+ this.state = 493;
2133
2195
  this.match(CParser.LeftBrace);
2134
- this.state = 490;
2196
+ this.state = 494;
2135
2197
  this.structDeclarationList();
2136
- this.state = 491;
2198
+ this.state = 495;
2137
2199
  this.match(CParser.RightBrace);
2138
2200
  }
2139
2201
  break;
2140
2202
  case 2:
2141
2203
  this.enterOuterAlt(localContext, 2);
2142
2204
  {
2143
- this.state = 493;
2205
+ this.state = 497;
2144
2206
  this.structOrUnion();
2145
- this.state = 494;
2207
+ this.state = 498;
2146
2208
  this.match(CParser.Identifier);
2147
2209
  }
2148
2210
  break;
@@ -2168,9 +2230,9 @@ export class CParser extends antlr.Parser {
2168
2230
  try {
2169
2231
  this.enterOuterAlt(localContext, 1);
2170
2232
  {
2171
- this.state = 498;
2233
+ this.state = 502;
2172
2234
  _la = this.tokenStream.LA(1);
2173
- if(!(_la === 52 || _la === 55)) {
2235
+ if(!(_la === 61 || _la === 64)) {
2174
2236
  this.errorHandler.recoverInline(this);
2175
2237
  }
2176
2238
  else {
@@ -2199,20 +2261,20 @@ export class CParser extends antlr.Parser {
2199
2261
  try {
2200
2262
  this.enterOuterAlt(localContext, 1);
2201
2263
  {
2202
- this.state = 501;
2264
+ this.state = 505;
2203
2265
  this.errorHandler.sync(this);
2204
2266
  _la = this.tokenStream.LA(1);
2205
2267
  do {
2206
2268
  {
2207
2269
  {
2208
- this.state = 500;
2270
+ this.state = 504;
2209
2271
  this.structDeclaration();
2210
2272
  }
2211
2273
  }
2212
- this.state = 503;
2274
+ this.state = 507;
2213
2275
  this.errorHandler.sync(this);
2214
2276
  _la = this.tokenStream.LA(1);
2215
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1610645490) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1910822421) !== 0) || _la === 68 || _la === 116);
2277
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 8388482) !== 0) || ((((_la - 38)) & ~0x1F) === 0 && ((1 << (_la - 38)) & 1016775331) !== 0) || ((((_la - 71)) & ~0x1F) === 0 && ((1 << (_la - 71)) & 71) !== 0) || _la === 125);
2216
2278
  }
2217
2279
  }
2218
2280
  catch (re) {
@@ -2232,33 +2294,33 @@ export class CParser extends antlr.Parser {
2232
2294
  let localContext = new StructDeclarationContext(this.context, this.state);
2233
2295
  this.enterRule(localContext, 70, CParser.RULE_structDeclaration);
2234
2296
  try {
2235
- this.state = 513;
2297
+ this.state = 517;
2236
2298
  this.errorHandler.sync(this);
2237
2299
  switch (this.interpreter.adaptivePredict(this.tokenStream, 40, this.context) ) {
2238
2300
  case 1:
2239
2301
  this.enterOuterAlt(localContext, 1);
2240
2302
  {
2241
- this.state = 505;
2303
+ this.state = 509;
2242
2304
  this.specifierQualifierList();
2243
- this.state = 506;
2305
+ this.state = 510;
2244
2306
  this.structDeclaratorList();
2245
- this.state = 507;
2307
+ this.state = 511;
2246
2308
  this.match(CParser.Semi);
2247
2309
  }
2248
2310
  break;
2249
2311
  case 2:
2250
2312
  this.enterOuterAlt(localContext, 2);
2251
2313
  {
2252
- this.state = 509;
2314
+ this.state = 513;
2253
2315
  this.specifierQualifierList();
2254
- this.state = 510;
2316
+ this.state = 514;
2255
2317
  this.match(CParser.Semi);
2256
2318
  }
2257
2319
  break;
2258
2320
  case 3:
2259
2321
  this.enterOuterAlt(localContext, 3);
2260
2322
  {
2261
- this.state = 512;
2323
+ this.state = 516;
2262
2324
  this.staticAssertDeclaration();
2263
2325
  }
2264
2326
  break;
@@ -2283,28 +2345,28 @@ export class CParser extends antlr.Parser {
2283
2345
  try {
2284
2346
  this.enterOuterAlt(localContext, 1);
2285
2347
  {
2286
- this.state = 517;
2348
+ this.state = 521;
2287
2349
  this.errorHandler.sync(this);
2288
2350
  switch (this.interpreter.adaptivePredict(this.tokenStream, 41, this.context) ) {
2289
2351
  case 1:
2290
2352
  {
2291
- this.state = 515;
2353
+ this.state = 519;
2292
2354
  this.typeSpecifier();
2293
2355
  }
2294
2356
  break;
2295
2357
  case 2:
2296
2358
  {
2297
- this.state = 516;
2359
+ this.state = 520;
2298
2360
  this.typeQualifier();
2299
2361
  }
2300
2362
  break;
2301
2363
  }
2302
- this.state = 520;
2364
+ this.state = 524;
2303
2365
  this.errorHandler.sync(this);
2304
2366
  switch (this.interpreter.adaptivePredict(this.tokenStream, 42, this.context) ) {
2305
2367
  case 1:
2306
2368
  {
2307
- this.state = 519;
2369
+ this.state = 523;
2308
2370
  this.specifierQualifierList();
2309
2371
  }
2310
2372
  break;
@@ -2331,21 +2393,21 @@ export class CParser extends antlr.Parser {
2331
2393
  try {
2332
2394
  this.enterOuterAlt(localContext, 1);
2333
2395
  {
2334
- this.state = 522;
2396
+ this.state = 526;
2335
2397
  this.structDeclarator();
2336
- this.state = 527;
2398
+ this.state = 531;
2337
2399
  this.errorHandler.sync(this);
2338
2400
  _la = this.tokenStream.LA(1);
2339
- while (_la === 99) {
2401
+ while (_la === 108) {
2340
2402
  {
2341
2403
  {
2342
- this.state = 523;
2404
+ this.state = 527;
2343
2405
  this.match(CParser.Comma);
2344
- this.state = 524;
2406
+ this.state = 528;
2345
2407
  this.structDeclarator();
2346
2408
  }
2347
2409
  }
2348
- this.state = 529;
2410
+ this.state = 533;
2349
2411
  this.errorHandler.sync(this);
2350
2412
  _la = this.tokenStream.LA(1);
2351
2413
  }
@@ -2369,32 +2431,32 @@ export class CParser extends antlr.Parser {
2369
2431
  this.enterRule(localContext, 76, CParser.RULE_structDeclarator);
2370
2432
  let _la: number;
2371
2433
  try {
2372
- this.state = 536;
2434
+ this.state = 540;
2373
2435
  this.errorHandler.sync(this);
2374
2436
  switch (this.interpreter.adaptivePredict(this.tokenStream, 45, this.context) ) {
2375
2437
  case 1:
2376
2438
  this.enterOuterAlt(localContext, 1);
2377
2439
  {
2378
- this.state = 530;
2440
+ this.state = 534;
2379
2441
  this.declarator();
2380
2442
  }
2381
2443
  break;
2382
2444
  case 2:
2383
2445
  this.enterOuterAlt(localContext, 2);
2384
2446
  {
2385
- this.state = 532;
2447
+ this.state = 536;
2386
2448
  this.errorHandler.sync(this);
2387
2449
  _la = this.tokenStream.LA(1);
2388
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 8192000) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 8454145) !== 0) || _la === 116) {
2450
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4194304000) !== 0) || ((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 8454145) !== 0) || _la === 125) {
2389
2451
  {
2390
- this.state = 531;
2452
+ this.state = 535;
2391
2453
  this.declarator();
2392
2454
  }
2393
2455
  }
2394
2456
 
2395
- this.state = 534;
2457
+ this.state = 538;
2396
2458
  this.match(CParser.Colon);
2397
- this.state = 535;
2459
+ this.state = 539;
2398
2460
  this.constantExpression();
2399
2461
  }
2400
2462
  break;
@@ -2418,48 +2480,48 @@ export class CParser extends antlr.Parser {
2418
2480
  this.enterRule(localContext, 78, CParser.RULE_enumSpecifier);
2419
2481
  let _la: number;
2420
2482
  try {
2421
- this.state = 551;
2483
+ this.state = 555;
2422
2484
  this.errorHandler.sync(this);
2423
2485
  switch (this.interpreter.adaptivePredict(this.tokenStream, 48, this.context) ) {
2424
2486
  case 1:
2425
2487
  this.enterOuterAlt(localContext, 1);
2426
2488
  {
2427
- this.state = 538;
2489
+ this.state = 542;
2428
2490
  this.match(CParser.Enum);
2429
- this.state = 540;
2491
+ this.state = 544;
2430
2492
  this.errorHandler.sync(this);
2431
2493
  _la = this.tokenStream.LA(1);
2432
- if (_la === 116) {
2494
+ if (_la === 125) {
2433
2495
  {
2434
- this.state = 539;
2496
+ this.state = 543;
2435
2497
  this.match(CParser.Identifier);
2436
2498
  }
2437
2499
  }
2438
2500
 
2439
- this.state = 542;
2501
+ this.state = 546;
2440
2502
  this.match(CParser.LeftBrace);
2441
- this.state = 543;
2503
+ this.state = 547;
2442
2504
  this.enumeratorList();
2443
- this.state = 545;
2505
+ this.state = 549;
2444
2506
  this.errorHandler.sync(this);
2445
2507
  _la = this.tokenStream.LA(1);
2446
- if (_la === 99) {
2508
+ if (_la === 108) {
2447
2509
  {
2448
- this.state = 544;
2510
+ this.state = 548;
2449
2511
  this.match(CParser.Comma);
2450
2512
  }
2451
2513
  }
2452
2514
 
2453
- this.state = 547;
2515
+ this.state = 551;
2454
2516
  this.match(CParser.RightBrace);
2455
2517
  }
2456
2518
  break;
2457
2519
  case 2:
2458
2520
  this.enterOuterAlt(localContext, 2);
2459
2521
  {
2460
- this.state = 549;
2522
+ this.state = 553;
2461
2523
  this.match(CParser.Enum);
2462
- this.state = 550;
2524
+ this.state = 554;
2463
2525
  this.match(CParser.Identifier);
2464
2526
  }
2465
2527
  break;
@@ -2485,23 +2547,23 @@ export class CParser extends antlr.Parser {
2485
2547
  let alternative: number;
2486
2548
  this.enterOuterAlt(localContext, 1);
2487
2549
  {
2488
- this.state = 553;
2550
+ this.state = 557;
2489
2551
  this.enumerator();
2490
- this.state = 558;
2552
+ this.state = 562;
2491
2553
  this.errorHandler.sync(this);
2492
2554
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2493
2555
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2494
2556
  if (alternative === 1) {
2495
2557
  {
2496
2558
  {
2497
- this.state = 554;
2559
+ this.state = 558;
2498
2560
  this.match(CParser.Comma);
2499
- this.state = 555;
2561
+ this.state = 559;
2500
2562
  this.enumerator();
2501
2563
  }
2502
2564
  }
2503
2565
  }
2504
- this.state = 560;
2566
+ this.state = 564;
2505
2567
  this.errorHandler.sync(this);
2506
2568
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 49, this.context);
2507
2569
  }
@@ -2527,16 +2589,16 @@ export class CParser extends antlr.Parser {
2527
2589
  try {
2528
2590
  this.enterOuterAlt(localContext, 1);
2529
2591
  {
2530
- this.state = 561;
2592
+ this.state = 565;
2531
2593
  this.enumerationConstant();
2532
- this.state = 564;
2594
+ this.state = 568;
2533
2595
  this.errorHandler.sync(this);
2534
2596
  _la = this.tokenStream.LA(1);
2535
- if (_la === 100) {
2597
+ if (_la === 109) {
2536
2598
  {
2537
- this.state = 562;
2599
+ this.state = 566;
2538
2600
  this.match(CParser.Assign);
2539
- this.state = 563;
2601
+ this.state = 567;
2540
2602
  this.constantExpression();
2541
2603
  }
2542
2604
  }
@@ -2562,7 +2624,7 @@ export class CParser extends antlr.Parser {
2562
2624
  try {
2563
2625
  this.enterOuterAlt(localContext, 1);
2564
2626
  {
2565
- this.state = 566;
2627
+ this.state = 570;
2566
2628
  this.match(CParser.Identifier);
2567
2629
  }
2568
2630
  }
@@ -2585,13 +2647,13 @@ export class CParser extends antlr.Parser {
2585
2647
  try {
2586
2648
  this.enterOuterAlt(localContext, 1);
2587
2649
  {
2588
- this.state = 568;
2650
+ this.state = 572;
2589
2651
  this.match(CParser.Atomic);
2590
- this.state = 569;
2652
+ this.state = 573;
2591
2653
  this.match(CParser.LeftParen);
2592
- this.state = 570;
2654
+ this.state = 574;
2593
2655
  this.typeName();
2594
- this.state = 571;
2656
+ this.state = 575;
2595
2657
  this.match(CParser.RightParen);
2596
2658
  }
2597
2659
  }
@@ -2615,9 +2677,9 @@ export class CParser extends antlr.Parser {
2615
2677
  try {
2616
2678
  this.enterOuterAlt(localContext, 1);
2617
2679
  {
2618
- this.state = 573;
2680
+ this.state = 577;
2619
2681
  _la = this.tokenStream.LA(1);
2620
- if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0))) {
2682
+ if(!(((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0))) {
2621
2683
  this.errorHandler.recoverInline(this);
2622
2684
  }
2623
2685
  else {
@@ -2643,54 +2705,61 @@ export class CParser extends antlr.Parser {
2643
2705
  let localContext = new FunctionSpecifierContext(this.context, this.state);
2644
2706
  this.enterRule(localContext, 90, CParser.RULE_functionSpecifier);
2645
2707
  try {
2646
- this.state = 584;
2708
+ this.state = 589;
2647
2709
  this.errorHandler.sync(this);
2648
2710
  switch (this.tokenStream.LA(1)) {
2649
2711
  case CParser.Inline:
2650
2712
  this.enterOuterAlt(localContext, 1);
2651
2713
  {
2652
- this.state = 575;
2714
+ this.state = 579;
2653
2715
  this.match(CParser.Inline);
2654
2716
  }
2655
2717
  break;
2656
2718
  case CParser.Noreturn:
2657
2719
  this.enterOuterAlt(localContext, 2);
2658
2720
  {
2659
- this.state = 576;
2721
+ this.state = 580;
2660
2722
  this.match(CParser.Noreturn);
2661
2723
  }
2662
2724
  break;
2663
- case CParser.T__14:
2725
+ case CParser.T__22:
2664
2726
  this.enterOuterAlt(localContext, 3);
2665
2727
  {
2666
- this.state = 577;
2667
- this.match(CParser.T__14);
2728
+ this.state = 581;
2729
+ this.match(CParser.T__22);
2668
2730
  }
2669
2731
  break;
2670
- case CParser.T__15:
2732
+ case CParser.T__23:
2671
2733
  this.enterOuterAlt(localContext, 4);
2672
2734
  {
2673
- this.state = 578;
2674
- this.match(CParser.T__15);
2735
+ this.state = 582;
2736
+ this.match(CParser.T__23);
2675
2737
  }
2676
2738
  break;
2677
2739
  case CParser.T__24:
2678
2740
  this.enterOuterAlt(localContext, 5);
2679
2741
  {
2680
- this.state = 579;
2681
- this.gccAttributeSpecifier();
2742
+ this.state = 583;
2743
+ this.match(CParser.T__24);
2682
2744
  }
2683
2745
  break;
2684
- case CParser.T__16:
2746
+ case CParser.T__33:
2685
2747
  this.enterOuterAlt(localContext, 6);
2686
2748
  {
2687
- this.state = 580;
2688
- this.match(CParser.T__16);
2689
- this.state = 581;
2749
+ this.state = 584;
2750
+ this.gccAttributeSpecifier();
2751
+ }
2752
+ break;
2753
+ case CParser.T__25:
2754
+ this.enterOuterAlt(localContext, 7);
2755
+ {
2756
+ this.state = 585;
2757
+ this.match(CParser.T__25);
2758
+ this.state = 586;
2690
2759
  this.match(CParser.LeftParen);
2691
- this.state = 582;
2760
+ this.state = 587;
2692
2761
  this.match(CParser.Identifier);
2693
- this.state = 583;
2762
+ this.state = 588;
2694
2763
  this.match(CParser.RightParen);
2695
2764
  }
2696
2765
  break;
@@ -2717,27 +2786,27 @@ export class CParser extends antlr.Parser {
2717
2786
  try {
2718
2787
  this.enterOuterAlt(localContext, 1);
2719
2788
  {
2720
- this.state = 586;
2789
+ this.state = 591;
2721
2790
  this.match(CParser.Alignas);
2722
- this.state = 587;
2791
+ this.state = 592;
2723
2792
  this.match(CParser.LeftParen);
2724
- this.state = 590;
2793
+ this.state = 595;
2725
2794
  this.errorHandler.sync(this);
2726
2795
  switch (this.interpreter.adaptivePredict(this.tokenStream, 52, this.context) ) {
2727
2796
  case 1:
2728
2797
  {
2729
- this.state = 588;
2798
+ this.state = 593;
2730
2799
  this.typeName();
2731
2800
  }
2732
2801
  break;
2733
2802
  case 2:
2734
2803
  {
2735
- this.state = 589;
2804
+ this.state = 594;
2736
2805
  this.constantExpression();
2737
2806
  }
2738
2807
  break;
2739
2808
  }
2740
- this.state = 592;
2809
+ this.state = 597;
2741
2810
  this.match(CParser.RightParen);
2742
2811
  }
2743
2812
  }
@@ -2762,31 +2831,31 @@ export class CParser extends antlr.Parser {
2762
2831
  let alternative: number;
2763
2832
  this.enterOuterAlt(localContext, 1);
2764
2833
  {
2765
- this.state = 595;
2834
+ this.state = 600;
2766
2835
  this.errorHandler.sync(this);
2767
2836
  _la = this.tokenStream.LA(1);
2768
- if (_la === 86 || _la === 93) {
2837
+ if (_la === 95 || _la === 102) {
2769
2838
  {
2770
- this.state = 594;
2839
+ this.state = 599;
2771
2840
  this.pointer();
2772
2841
  }
2773
2842
  }
2774
2843
 
2775
- this.state = 597;
2844
+ this.state = 602;
2776
2845
  this.directDeclarator(0);
2777
- this.state = 601;
2846
+ this.state = 606;
2778
2847
  this.errorHandler.sync(this);
2779
2848
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 54, this.context);
2780
2849
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
2781
2850
  if (alternative === 1) {
2782
2851
  {
2783
2852
  {
2784
- this.state = 598;
2853
+ this.state = 603;
2785
2854
  this.gccDeclaratorExtension();
2786
2855
  }
2787
2856
  }
2788
2857
  }
2789
- this.state = 603;
2858
+ this.state = 608;
2790
2859
  this.errorHandler.sync(this);
2791
2860
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 54, this.context);
2792
2861
  }
@@ -2824,58 +2893,58 @@ export class CParser extends antlr.Parser {
2824
2893
  let alternative: number;
2825
2894
  this.enterOuterAlt(localContext, 1);
2826
2895
  {
2827
- this.state = 621;
2896
+ this.state = 626;
2828
2897
  this.errorHandler.sync(this);
2829
2898
  switch (this.interpreter.adaptivePredict(this.tokenStream, 55, this.context) ) {
2830
2899
  case 1:
2831
2900
  {
2832
- this.state = 605;
2901
+ this.state = 610;
2833
2902
  this.match(CParser.Identifier);
2834
2903
  }
2835
2904
  break;
2836
2905
  case 2:
2837
2906
  {
2838
- this.state = 606;
2907
+ this.state = 611;
2839
2908
  this.match(CParser.LeftParen);
2840
- this.state = 607;
2909
+ this.state = 612;
2841
2910
  this.declarator();
2842
- this.state = 608;
2911
+ this.state = 613;
2843
2912
  this.match(CParser.RightParen);
2844
2913
  }
2845
2914
  break;
2846
2915
  case 3:
2847
2916
  {
2848
- this.state = 610;
2917
+ this.state = 615;
2849
2918
  this.match(CParser.Identifier);
2850
- this.state = 611;
2919
+ this.state = 616;
2851
2920
  this.match(CParser.Colon);
2852
- this.state = 612;
2921
+ this.state = 617;
2853
2922
  this.match(CParser.DigitSequence);
2854
2923
  }
2855
2924
  break;
2856
2925
  case 4:
2857
2926
  {
2858
- this.state = 613;
2927
+ this.state = 618;
2859
2928
  this.vcSpecificModifer();
2860
- this.state = 614;
2929
+ this.state = 619;
2861
2930
  this.match(CParser.Identifier);
2862
2931
  }
2863
2932
  break;
2864
2933
  case 5:
2865
2934
  {
2866
- this.state = 616;
2935
+ this.state = 621;
2867
2936
  this.match(CParser.LeftParen);
2868
- this.state = 617;
2937
+ this.state = 622;
2869
2938
  this.vcSpecificModifer();
2870
- this.state = 618;
2939
+ this.state = 623;
2871
2940
  this.declarator();
2872
- this.state = 619;
2941
+ this.state = 624;
2873
2942
  this.match(CParser.RightParen);
2874
2943
  }
2875
2944
  break;
2876
2945
  }
2877
2946
  this.context!.stop = this.tokenStream.LT(-1);
2878
- this.state = 668;
2947
+ this.state = 673;
2879
2948
  this.errorHandler.sync(this);
2880
2949
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 62, this.context);
2881
2950
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -2885,40 +2954,40 @@ export class CParser extends antlr.Parser {
2885
2954
  }
2886
2955
  previousContext = localContext;
2887
2956
  {
2888
- this.state = 666;
2957
+ this.state = 671;
2889
2958
  this.errorHandler.sync(this);
2890
2959
  switch (this.interpreter.adaptivePredict(this.tokenStream, 61, this.context) ) {
2891
2960
  case 1:
2892
2961
  {
2893
2962
  localContext = new DirectDeclaratorContext(parentContext, parentState);
2894
2963
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
2895
- this.state = 623;
2964
+ this.state = 628;
2896
2965
  if (!(this.precpred(this.context, 9))) {
2897
2966
  throw this.createFailedPredicateException("this.precpred(this.context, 9)");
2898
2967
  }
2899
- this.state = 624;
2968
+ this.state = 629;
2900
2969
  this.match(CParser.LeftBracket);
2901
- this.state = 626;
2970
+ this.state = 631;
2902
2971
  this.errorHandler.sync(this);
2903
2972
  _la = this.tokenStream.LA(1);
2904
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
2973
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
2905
2974
  {
2906
- this.state = 625;
2975
+ this.state = 630;
2907
2976
  this.typeQualifierList();
2908
2977
  }
2909
2978
  }
2910
2979
 
2911
- this.state = 629;
2980
+ this.state = 634;
2912
2981
  this.errorHandler.sync(this);
2913
2982
  _la = this.tokenStream.LA(1);
2914
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
2983
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
2915
2984
  {
2916
- this.state = 628;
2985
+ this.state = 633;
2917
2986
  this.assignmentExpression();
2918
2987
  }
2919
2988
  }
2920
2989
 
2921
- this.state = 631;
2990
+ this.state = 636;
2922
2991
  this.match(CParser.RightBracket);
2923
2992
  }
2924
2993
  break;
@@ -2926,27 +2995,27 @@ export class CParser extends antlr.Parser {
2926
2995
  {
2927
2996
  localContext = new DirectDeclaratorContext(parentContext, parentState);
2928
2997
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
2929
- this.state = 632;
2998
+ this.state = 637;
2930
2999
  if (!(this.precpred(this.context, 8))) {
2931
3000
  throw this.createFailedPredicateException("this.precpred(this.context, 8)");
2932
3001
  }
2933
- this.state = 633;
3002
+ this.state = 638;
2934
3003
  this.match(CParser.LeftBracket);
2935
- this.state = 634;
3004
+ this.state = 639;
2936
3005
  this.match(CParser.Static);
2937
- this.state = 636;
3006
+ this.state = 641;
2938
3007
  this.errorHandler.sync(this);
2939
3008
  _la = this.tokenStream.LA(1);
2940
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3009
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
2941
3010
  {
2942
- this.state = 635;
3011
+ this.state = 640;
2943
3012
  this.typeQualifierList();
2944
3013
  }
2945
3014
  }
2946
3015
 
2947
- this.state = 638;
3016
+ this.state = 643;
2948
3017
  this.assignmentExpression();
2949
- this.state = 639;
3018
+ this.state = 644;
2950
3019
  this.match(CParser.RightBracket);
2951
3020
  }
2952
3021
  break;
@@ -2954,19 +3023,19 @@ export class CParser extends antlr.Parser {
2954
3023
  {
2955
3024
  localContext = new DirectDeclaratorContext(parentContext, parentState);
2956
3025
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
2957
- this.state = 641;
3026
+ this.state = 646;
2958
3027
  if (!(this.precpred(this.context, 7))) {
2959
3028
  throw this.createFailedPredicateException("this.precpred(this.context, 7)");
2960
3029
  }
2961
- this.state = 642;
3030
+ this.state = 647;
2962
3031
  this.match(CParser.LeftBracket);
2963
- this.state = 643;
3032
+ this.state = 648;
2964
3033
  this.typeQualifierList();
2965
- this.state = 644;
3034
+ this.state = 649;
2966
3035
  this.match(CParser.Static);
2967
- this.state = 645;
3036
+ this.state = 650;
2968
3037
  this.assignmentExpression();
2969
- this.state = 646;
3038
+ this.state = 651;
2970
3039
  this.match(CParser.RightBracket);
2971
3040
  }
2972
3041
  break;
@@ -2974,25 +3043,25 @@ export class CParser extends antlr.Parser {
2974
3043
  {
2975
3044
  localContext = new DirectDeclaratorContext(parentContext, parentState);
2976
3045
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
2977
- this.state = 648;
3046
+ this.state = 653;
2978
3047
  if (!(this.precpred(this.context, 6))) {
2979
3048
  throw this.createFailedPredicateException("this.precpred(this.context, 6)");
2980
3049
  }
2981
- this.state = 649;
3050
+ this.state = 654;
2982
3051
  this.match(CParser.LeftBracket);
2983
- this.state = 651;
3052
+ this.state = 656;
2984
3053
  this.errorHandler.sync(this);
2985
3054
  _la = this.tokenStream.LA(1);
2986
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3055
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
2987
3056
  {
2988
- this.state = 650;
3057
+ this.state = 655;
2989
3058
  this.typeQualifierList();
2990
3059
  }
2991
3060
  }
2992
3061
 
2993
- this.state = 653;
3062
+ this.state = 658;
2994
3063
  this.match(CParser.Star);
2995
- this.state = 654;
3064
+ this.state = 659;
2996
3065
  this.match(CParser.RightBracket);
2997
3066
  }
2998
3067
  break;
@@ -3000,15 +3069,15 @@ export class CParser extends antlr.Parser {
3000
3069
  {
3001
3070
  localContext = new DirectDeclaratorContext(parentContext, parentState);
3002
3071
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
3003
- this.state = 655;
3072
+ this.state = 660;
3004
3073
  if (!(this.precpred(this.context, 5))) {
3005
3074
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
3006
3075
  }
3007
- this.state = 656;
3076
+ this.state = 661;
3008
3077
  this.match(CParser.LeftParen);
3009
- this.state = 657;
3078
+ this.state = 662;
3010
3079
  this.parameterTypeList();
3011
- this.state = 658;
3080
+ this.state = 663;
3012
3081
  this.match(CParser.RightParen);
3013
3082
  }
3014
3083
  break;
@@ -3016,30 +3085,30 @@ export class CParser extends antlr.Parser {
3016
3085
  {
3017
3086
  localContext = new DirectDeclaratorContext(parentContext, parentState);
3018
3087
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directDeclarator);
3019
- this.state = 660;
3088
+ this.state = 665;
3020
3089
  if (!(this.precpred(this.context, 4))) {
3021
3090
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
3022
3091
  }
3023
- this.state = 661;
3092
+ this.state = 666;
3024
3093
  this.match(CParser.LeftParen);
3025
- this.state = 663;
3094
+ this.state = 668;
3026
3095
  this.errorHandler.sync(this);
3027
3096
  _la = this.tokenStream.LA(1);
3028
- if (_la === 116) {
3097
+ if (_la === 125) {
3029
3098
  {
3030
- this.state = 662;
3099
+ this.state = 667;
3031
3100
  this.identifierList();
3032
3101
  }
3033
3102
  }
3034
3103
 
3035
- this.state = 665;
3104
+ this.state = 670;
3036
3105
  this.match(CParser.RightParen);
3037
3106
  }
3038
3107
  break;
3039
3108
  }
3040
3109
  }
3041
3110
  }
3042
- this.state = 670;
3111
+ this.state = 675;
3043
3112
  this.errorHandler.sync(this);
3044
3113
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 62, this.context);
3045
3114
  }
@@ -3065,9 +3134,9 @@ export class CParser extends antlr.Parser {
3065
3134
  try {
3066
3135
  this.enterOuterAlt(localContext, 1);
3067
3136
  {
3068
- this.state = 671;
3137
+ this.state = 676;
3069
3138
  _la = this.tokenStream.LA(1);
3070
- if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 8192000) !== 0))) {
3139
+ if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 4194304000) !== 0))) {
3071
3140
  this.errorHandler.recoverInline(this);
3072
3141
  }
3073
3142
  else {
@@ -3094,46 +3163,46 @@ export class CParser extends antlr.Parser {
3094
3163
  this.enterRule(localContext, 100, CParser.RULE_gccDeclaratorExtension);
3095
3164
  let _la: number;
3096
3165
  try {
3097
- this.state = 682;
3166
+ this.state = 687;
3098
3167
  this.errorHandler.sync(this);
3099
3168
  switch (this.tokenStream.LA(1)) {
3100
- case CParser.T__22:
3101
- case CParser.T__23:
3169
+ case CParser.T__31:
3170
+ case CParser.T__32:
3102
3171
  this.enterOuterAlt(localContext, 1);
3103
3172
  {
3104
- this.state = 673;
3173
+ this.state = 678;
3105
3174
  _la = this.tokenStream.LA(1);
3106
- if(!(_la === 23 || _la === 24)) {
3175
+ if(!(_la === 32 || _la === 33)) {
3107
3176
  this.errorHandler.recoverInline(this);
3108
3177
  }
3109
3178
  else {
3110
3179
  this.errorHandler.reportMatch(this);
3111
3180
  this.consume();
3112
3181
  }
3113
- this.state = 674;
3182
+ this.state = 679;
3114
3183
  this.match(CParser.LeftParen);
3115
- this.state = 676;
3184
+ this.state = 681;
3116
3185
  this.errorHandler.sync(this);
3117
3186
  _la = this.tokenStream.LA(1);
3118
3187
  do {
3119
3188
  {
3120
3189
  {
3121
- this.state = 675;
3190
+ this.state = 680;
3122
3191
  this.match(CParser.StringLiteral);
3123
3192
  }
3124
3193
  }
3125
- this.state = 678;
3194
+ this.state = 683;
3126
3195
  this.errorHandler.sync(this);
3127
3196
  _la = this.tokenStream.LA(1);
3128
- } while (_la === 119);
3129
- this.state = 680;
3197
+ } while (_la === 128);
3198
+ this.state = 685;
3130
3199
  this.match(CParser.RightParen);
3131
3200
  }
3132
3201
  break;
3133
- case CParser.T__24:
3202
+ case CParser.T__33:
3134
3203
  this.enterOuterAlt(localContext, 2);
3135
3204
  {
3136
- this.state = 681;
3205
+ this.state = 686;
3137
3206
  this.gccAttributeSpecifier();
3138
3207
  }
3139
3208
  break;
@@ -3160,17 +3229,17 @@ export class CParser extends antlr.Parser {
3160
3229
  try {
3161
3230
  this.enterOuterAlt(localContext, 1);
3162
3231
  {
3163
- this.state = 684;
3164
- this.match(CParser.T__24);
3165
- this.state = 685;
3232
+ this.state = 689;
3233
+ this.match(CParser.T__33);
3234
+ this.state = 690;
3166
3235
  this.match(CParser.LeftParen);
3167
- this.state = 686;
3236
+ this.state = 691;
3168
3237
  this.match(CParser.LeftParen);
3169
- this.state = 687;
3238
+ this.state = 692;
3170
3239
  this.gccAttributeList();
3171
- this.state = 688;
3240
+ this.state = 693;
3172
3241
  this.match(CParser.RightParen);
3173
- this.state = 689;
3242
+ this.state = 694;
3174
3243
  this.match(CParser.RightParen);
3175
3244
  }
3176
3245
  }
@@ -3194,37 +3263,37 @@ export class CParser extends antlr.Parser {
3194
3263
  try {
3195
3264
  this.enterOuterAlt(localContext, 1);
3196
3265
  {
3197
- this.state = 692;
3266
+ this.state = 697;
3198
3267
  this.errorHandler.sync(this);
3199
3268
  _la = this.tokenStream.LA(1);
3200
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294967103) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 2147483639) !== 0)) {
3269
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294868991) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294963199) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 255) !== 0)) {
3201
3270
  {
3202
- this.state = 691;
3271
+ this.state = 696;
3203
3272
  this.gccAttribute();
3204
3273
  }
3205
3274
  }
3206
3275
 
3207
- this.state = 700;
3276
+ this.state = 705;
3208
3277
  this.errorHandler.sync(this);
3209
3278
  _la = this.tokenStream.LA(1);
3210
- while (_la === 99) {
3279
+ while (_la === 108) {
3211
3280
  {
3212
3281
  {
3213
- this.state = 694;
3282
+ this.state = 699;
3214
3283
  this.match(CParser.Comma);
3215
- this.state = 696;
3284
+ this.state = 701;
3216
3285
  this.errorHandler.sync(this);
3217
3286
  _la = this.tokenStream.LA(1);
3218
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294967103) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 2147483639) !== 0)) {
3287
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294868991) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294963199) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 255) !== 0)) {
3219
3288
  {
3220
- this.state = 695;
3289
+ this.state = 700;
3221
3290
  this.gccAttribute();
3222
3291
  }
3223
3292
  }
3224
3293
 
3225
3294
  }
3226
3295
  }
3227
- this.state = 702;
3296
+ this.state = 707;
3228
3297
  this.errorHandler.sync(this);
3229
3298
  _la = this.tokenStream.LA(1);
3230
3299
  }
@@ -3250,33 +3319,33 @@ export class CParser extends antlr.Parser {
3250
3319
  try {
3251
3320
  this.enterOuterAlt(localContext, 1);
3252
3321
  {
3253
- this.state = 703;
3322
+ this.state = 708;
3254
3323
  _la = this.tokenStream.LA(1);
3255
- if(_la<=0 || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 536870915) !== 0)) {
3324
+ if(_la<=0 || ((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 536870915) !== 0)) {
3256
3325
  this.errorHandler.recoverInline(this);
3257
3326
  }
3258
3327
  else {
3259
3328
  this.errorHandler.reportMatch(this);
3260
3329
  this.consume();
3261
3330
  }
3262
- this.state = 709;
3331
+ this.state = 714;
3263
3332
  this.errorHandler.sync(this);
3264
3333
  _la = this.tokenStream.LA(1);
3265
- if (_la === 70) {
3334
+ if (_la === 79) {
3266
3335
  {
3267
- this.state = 704;
3336
+ this.state = 709;
3268
3337
  this.match(CParser.LeftParen);
3269
- this.state = 706;
3338
+ this.state = 711;
3270
3339
  this.errorHandler.sync(this);
3271
3340
  _la = this.tokenStream.LA(1);
3272
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
3341
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
3273
3342
  {
3274
- this.state = 705;
3343
+ this.state = 710;
3275
3344
  this.argumentExpressionList();
3276
3345
  }
3277
3346
  }
3278
3347
 
3279
- this.state = 708;
3348
+ this.state = 713;
3280
3349
  this.match(CParser.RightParen);
3281
3350
  }
3282
3351
  }
@@ -3303,37 +3372,37 @@ export class CParser extends antlr.Parser {
3303
3372
  try {
3304
3373
  this.enterOuterAlt(localContext, 1);
3305
3374
  {
3306
- this.state = 715;
3375
+ this.state = 720;
3307
3376
  this.errorHandler.sync(this);
3308
3377
  _la = this.tokenStream.LA(1);
3309
3378
  do {
3310
3379
  {
3311
3380
  {
3312
- this.state = 711;
3381
+ this.state = 716;
3313
3382
  _la = this.tokenStream.LA(1);
3314
- if(!(_la === 86 || _la === 93)) {
3383
+ if(!(_la === 95 || _la === 102)) {
3315
3384
  this.errorHandler.recoverInline(this);
3316
3385
  }
3317
3386
  else {
3318
3387
  this.errorHandler.reportMatch(this);
3319
3388
  this.consume();
3320
3389
  }
3321
- this.state = 713;
3390
+ this.state = 718;
3322
3391
  this.errorHandler.sync(this);
3323
3392
  _la = this.tokenStream.LA(1);
3324
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3393
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
3325
3394
  {
3326
- this.state = 712;
3395
+ this.state = 717;
3327
3396
  this.typeQualifierList();
3328
3397
  }
3329
3398
  }
3330
3399
 
3331
3400
  }
3332
3401
  }
3333
- this.state = 717;
3402
+ this.state = 722;
3334
3403
  this.errorHandler.sync(this);
3335
3404
  _la = this.tokenStream.LA(1);
3336
- } while (_la === 86 || _la === 93);
3405
+ } while (_la === 95 || _la === 102);
3337
3406
  }
3338
3407
  }
3339
3408
  catch (re) {
@@ -3356,20 +3425,20 @@ export class CParser extends antlr.Parser {
3356
3425
  try {
3357
3426
  this.enterOuterAlt(localContext, 1);
3358
3427
  {
3359
- this.state = 720;
3428
+ this.state = 725;
3360
3429
  this.errorHandler.sync(this);
3361
3430
  _la = this.tokenStream.LA(1);
3362
3431
  do {
3363
3432
  {
3364
3433
  {
3365
- this.state = 719;
3434
+ this.state = 724;
3366
3435
  this.typeQualifier();
3367
3436
  }
3368
3437
  }
3369
- this.state = 722;
3438
+ this.state = 727;
3370
3439
  this.errorHandler.sync(this);
3371
3440
  _la = this.tokenStream.LA(1);
3372
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0));
3441
+ } while (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0));
3373
3442
  }
3374
3443
  }
3375
3444
  catch (re) {
@@ -3392,16 +3461,16 @@ export class CParser extends antlr.Parser {
3392
3461
  try {
3393
3462
  this.enterOuterAlt(localContext, 1);
3394
3463
  {
3395
- this.state = 724;
3464
+ this.state = 729;
3396
3465
  this.parameterList();
3397
- this.state = 727;
3466
+ this.state = 732;
3398
3467
  this.errorHandler.sync(this);
3399
3468
  _la = this.tokenStream.LA(1);
3400
- if (_la === 99) {
3469
+ if (_la === 108) {
3401
3470
  {
3402
- this.state = 725;
3471
+ this.state = 730;
3403
3472
  this.match(CParser.Comma);
3404
- this.state = 726;
3473
+ this.state = 731;
3405
3474
  this.match(CParser.Ellipsis);
3406
3475
  }
3407
3476
  }
@@ -3428,23 +3497,23 @@ export class CParser extends antlr.Parser {
3428
3497
  let alternative: number;
3429
3498
  this.enterOuterAlt(localContext, 1);
3430
3499
  {
3431
- this.state = 729;
3432
- this.parameterDeclaration();
3433
3500
  this.state = 734;
3501
+ this.parameterDeclaration();
3502
+ this.state = 739;
3434
3503
  this.errorHandler.sync(this);
3435
3504
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3436
3505
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3437
3506
  if (alternative === 1) {
3438
3507
  {
3439
3508
  {
3440
- this.state = 730;
3509
+ this.state = 735;
3441
3510
  this.match(CParser.Comma);
3442
- this.state = 731;
3511
+ this.state = 736;
3443
3512
  this.parameterDeclaration();
3444
3513
  }
3445
3514
  }
3446
3515
  }
3447
- this.state = 736;
3516
+ this.state = 741;
3448
3517
  this.errorHandler.sync(this);
3449
3518
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 74, this.context);
3450
3519
  }
@@ -3468,29 +3537,29 @@ export class CParser extends antlr.Parser {
3468
3537
  this.enterRule(localContext, 116, CParser.RULE_parameterDeclaration);
3469
3538
  let _la: number;
3470
3539
  try {
3471
- this.state = 744;
3540
+ this.state = 749;
3472
3541
  this.errorHandler.sync(this);
3473
3542
  switch (this.interpreter.adaptivePredict(this.tokenStream, 76, this.context) ) {
3474
3543
  case 1:
3475
3544
  this.enterOuterAlt(localContext, 1);
3476
3545
  {
3477
- this.state = 737;
3546
+ this.state = 742;
3478
3547
  this.declarationSpecifiers();
3479
- this.state = 738;
3548
+ this.state = 743;
3480
3549
  this.declarator();
3481
3550
  }
3482
3551
  break;
3483
3552
  case 2:
3484
3553
  this.enterOuterAlt(localContext, 2);
3485
3554
  {
3486
- this.state = 740;
3555
+ this.state = 745;
3487
3556
  this.declarationSpecifiers2();
3488
- this.state = 742;
3557
+ this.state = 747;
3489
3558
  this.errorHandler.sync(this);
3490
3559
  _la = this.tokenStream.LA(1);
3491
- if (((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 8454149) !== 0)) {
3560
+ if (((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 8454149) !== 0)) {
3492
3561
  {
3493
- this.state = 741;
3562
+ this.state = 746;
3494
3563
  this.abstractDeclarator();
3495
3564
  }
3496
3565
  }
@@ -3519,21 +3588,21 @@ export class CParser extends antlr.Parser {
3519
3588
  try {
3520
3589
  this.enterOuterAlt(localContext, 1);
3521
3590
  {
3522
- this.state = 746;
3523
- this.match(CParser.Identifier);
3524
3591
  this.state = 751;
3592
+ this.match(CParser.Identifier);
3593
+ this.state = 756;
3525
3594
  this.errorHandler.sync(this);
3526
3595
  _la = this.tokenStream.LA(1);
3527
- while (_la === 99) {
3596
+ while (_la === 108) {
3528
3597
  {
3529
3598
  {
3530
- this.state = 747;
3599
+ this.state = 752;
3531
3600
  this.match(CParser.Comma);
3532
- this.state = 748;
3601
+ this.state = 753;
3533
3602
  this.match(CParser.Identifier);
3534
3603
  }
3535
3604
  }
3536
- this.state = 753;
3605
+ this.state = 758;
3537
3606
  this.errorHandler.sync(this);
3538
3607
  _la = this.tokenStream.LA(1);
3539
3608
  }
@@ -3559,14 +3628,14 @@ export class CParser extends antlr.Parser {
3559
3628
  try {
3560
3629
  this.enterOuterAlt(localContext, 1);
3561
3630
  {
3562
- this.state = 754;
3631
+ this.state = 759;
3563
3632
  this.specifierQualifierList();
3564
- this.state = 756;
3633
+ this.state = 761;
3565
3634
  this.errorHandler.sync(this);
3566
3635
  _la = this.tokenStream.LA(1);
3567
- if (((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 8454149) !== 0)) {
3636
+ if (((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 8454149) !== 0)) {
3568
3637
  {
3569
- this.state = 755;
3638
+ this.state = 760;
3570
3639
  this.abstractDeclarator();
3571
3640
  }
3572
3641
  }
@@ -3591,42 +3660,42 @@ export class CParser extends antlr.Parser {
3591
3660
  this.enterRule(localContext, 122, CParser.RULE_abstractDeclarator);
3592
3661
  let _la: number;
3593
3662
  try {
3594
- this.state = 769;
3663
+ this.state = 774;
3595
3664
  this.errorHandler.sync(this);
3596
3665
  switch (this.interpreter.adaptivePredict(this.tokenStream, 81, this.context) ) {
3597
3666
  case 1:
3598
3667
  this.enterOuterAlt(localContext, 1);
3599
3668
  {
3600
- this.state = 758;
3669
+ this.state = 763;
3601
3670
  this.pointer();
3602
3671
  }
3603
3672
  break;
3604
3673
  case 2:
3605
3674
  this.enterOuterAlt(localContext, 2);
3606
3675
  {
3607
- this.state = 760;
3676
+ this.state = 765;
3608
3677
  this.errorHandler.sync(this);
3609
3678
  _la = this.tokenStream.LA(1);
3610
- if (_la === 86 || _la === 93) {
3679
+ if (_la === 95 || _la === 102) {
3611
3680
  {
3612
- this.state = 759;
3681
+ this.state = 764;
3613
3682
  this.pointer();
3614
3683
  }
3615
3684
  }
3616
3685
 
3617
- this.state = 762;
3686
+ this.state = 767;
3618
3687
  this.directAbstractDeclarator(0);
3619
- this.state = 766;
3688
+ this.state = 771;
3620
3689
  this.errorHandler.sync(this);
3621
3690
  _la = this.tokenStream.LA(1);
3622
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 58720256) !== 0)) {
3691
+ while (((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 7) !== 0)) {
3623
3692
  {
3624
3693
  {
3625
- this.state = 763;
3694
+ this.state = 768;
3626
3695
  this.gccDeclaratorExtension();
3627
3696
  }
3628
3697
  }
3629
- this.state = 768;
3698
+ this.state = 773;
3630
3699
  this.errorHandler.sync(this);
3631
3700
  _la = this.tokenStream.LA(1);
3632
3701
  }
@@ -3666,30 +3735,30 @@ export class CParser extends antlr.Parser {
3666
3735
  let alternative: number;
3667
3736
  this.enterOuterAlt(localContext, 1);
3668
3737
  {
3669
- this.state = 817;
3738
+ this.state = 822;
3670
3739
  this.errorHandler.sync(this);
3671
3740
  switch (this.interpreter.adaptivePredict(this.tokenStream, 88, this.context) ) {
3672
3741
  case 1:
3673
3742
  {
3674
- this.state = 772;
3743
+ this.state = 777;
3675
3744
  this.match(CParser.LeftParen);
3676
- this.state = 773;
3745
+ this.state = 778;
3677
3746
  this.abstractDeclarator();
3678
- this.state = 774;
3747
+ this.state = 779;
3679
3748
  this.match(CParser.RightParen);
3680
- this.state = 778;
3749
+ this.state = 783;
3681
3750
  this.errorHandler.sync(this);
3682
3751
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3683
3752
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3684
3753
  if (alternative === 1) {
3685
3754
  {
3686
3755
  {
3687
- this.state = 775;
3756
+ this.state = 780;
3688
3757
  this.gccDeclaratorExtension();
3689
3758
  }
3690
3759
  }
3691
3760
  }
3692
- this.state = 780;
3761
+ this.state = 785;
3693
3762
  this.errorHandler.sync(this);
3694
3763
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 82, this.context);
3695
3764
  }
@@ -3697,107 +3766,107 @@ export class CParser extends antlr.Parser {
3697
3766
  break;
3698
3767
  case 2:
3699
3768
  {
3700
- this.state = 781;
3769
+ this.state = 786;
3701
3770
  this.match(CParser.LeftBracket);
3702
- this.state = 783;
3771
+ this.state = 788;
3703
3772
  this.errorHandler.sync(this);
3704
3773
  _la = this.tokenStream.LA(1);
3705
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3774
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
3706
3775
  {
3707
- this.state = 782;
3776
+ this.state = 787;
3708
3777
  this.typeQualifierList();
3709
3778
  }
3710
3779
  }
3711
3780
 
3712
- this.state = 786;
3781
+ this.state = 791;
3713
3782
  this.errorHandler.sync(this);
3714
3783
  _la = this.tokenStream.LA(1);
3715
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
3784
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
3716
3785
  {
3717
- this.state = 785;
3786
+ this.state = 790;
3718
3787
  this.assignmentExpression();
3719
3788
  }
3720
3789
  }
3721
3790
 
3722
- this.state = 788;
3791
+ this.state = 793;
3723
3792
  this.match(CParser.RightBracket);
3724
3793
  }
3725
3794
  break;
3726
3795
  case 3:
3727
3796
  {
3728
- this.state = 789;
3797
+ this.state = 794;
3729
3798
  this.match(CParser.LeftBracket);
3730
- this.state = 790;
3799
+ this.state = 795;
3731
3800
  this.match(CParser.Static);
3732
- this.state = 792;
3801
+ this.state = 797;
3733
3802
  this.errorHandler.sync(this);
3734
3803
  _la = this.tokenStream.LA(1);
3735
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3804
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
3736
3805
  {
3737
- this.state = 791;
3806
+ this.state = 796;
3738
3807
  this.typeQualifierList();
3739
3808
  }
3740
3809
  }
3741
3810
 
3742
- this.state = 794;
3811
+ this.state = 799;
3743
3812
  this.assignmentExpression();
3744
- this.state = 795;
3813
+ this.state = 800;
3745
3814
  this.match(CParser.RightBracket);
3746
3815
  }
3747
3816
  break;
3748
3817
  case 4:
3749
3818
  {
3750
- this.state = 797;
3819
+ this.state = 802;
3751
3820
  this.match(CParser.LeftBracket);
3752
- this.state = 798;
3821
+ this.state = 803;
3753
3822
  this.typeQualifierList();
3754
- this.state = 799;
3823
+ this.state = 804;
3755
3824
  this.match(CParser.Static);
3756
- this.state = 800;
3825
+ this.state = 805;
3757
3826
  this.assignmentExpression();
3758
- this.state = 801;
3827
+ this.state = 806;
3759
3828
  this.match(CParser.RightBracket);
3760
3829
  }
3761
3830
  break;
3762
3831
  case 5:
3763
3832
  {
3764
- this.state = 803;
3833
+ this.state = 808;
3765
3834
  this.match(CParser.LeftBracket);
3766
- this.state = 804;
3835
+ this.state = 809;
3767
3836
  this.match(CParser.Star);
3768
- this.state = 805;
3837
+ this.state = 810;
3769
3838
  this.match(CParser.RightBracket);
3770
3839
  }
3771
3840
  break;
3772
3841
  case 6:
3773
3842
  {
3774
- this.state = 806;
3843
+ this.state = 811;
3775
3844
  this.match(CParser.LeftParen);
3776
- this.state = 808;
3845
+ this.state = 813;
3777
3846
  this.errorHandler.sync(this);
3778
3847
  _la = this.tokenStream.LA(1);
3779
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1711538162) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || _la === 67 || _la === 69 || _la === 116) {
3848
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217666) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 5355) !== 0) || _la === 125) {
3780
3849
  {
3781
- this.state = 807;
3850
+ this.state = 812;
3782
3851
  this.parameterTypeList();
3783
3852
  }
3784
3853
  }
3785
3854
 
3786
- this.state = 810;
3855
+ this.state = 815;
3787
3856
  this.match(CParser.RightParen);
3788
- this.state = 814;
3857
+ this.state = 819;
3789
3858
  this.errorHandler.sync(this);
3790
3859
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 87, this.context);
3791
3860
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3792
3861
  if (alternative === 1) {
3793
3862
  {
3794
3863
  {
3795
- this.state = 811;
3864
+ this.state = 816;
3796
3865
  this.gccDeclaratorExtension();
3797
3866
  }
3798
3867
  }
3799
3868
  }
3800
- this.state = 816;
3869
+ this.state = 821;
3801
3870
  this.errorHandler.sync(this);
3802
3871
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 87, this.context);
3803
3872
  }
@@ -3805,7 +3874,7 @@ export class CParser extends antlr.Parser {
3805
3874
  break;
3806
3875
  }
3807
3876
  this.context!.stop = this.tokenStream.LT(-1);
3808
- this.state = 862;
3877
+ this.state = 867;
3809
3878
  this.errorHandler.sync(this);
3810
3879
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 95, this.context);
3811
3880
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
@@ -3815,40 +3884,40 @@ export class CParser extends antlr.Parser {
3815
3884
  }
3816
3885
  previousContext = localContext;
3817
3886
  {
3818
- this.state = 860;
3887
+ this.state = 865;
3819
3888
  this.errorHandler.sync(this);
3820
3889
  switch (this.interpreter.adaptivePredict(this.tokenStream, 94, this.context) ) {
3821
3890
  case 1:
3822
3891
  {
3823
3892
  localContext = new DirectAbstractDeclaratorContext(parentContext, parentState);
3824
3893
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directAbstractDeclarator);
3825
- this.state = 819;
3894
+ this.state = 824;
3826
3895
  if (!(this.precpred(this.context, 5))) {
3827
3896
  throw this.createFailedPredicateException("this.precpred(this.context, 5)");
3828
3897
  }
3829
- this.state = 820;
3898
+ this.state = 825;
3830
3899
  this.match(CParser.LeftBracket);
3831
- this.state = 822;
3900
+ this.state = 827;
3832
3901
  this.errorHandler.sync(this);
3833
3902
  _la = this.tokenStream.LA(1);
3834
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3903
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
3835
3904
  {
3836
- this.state = 821;
3905
+ this.state = 826;
3837
3906
  this.typeQualifierList();
3838
3907
  }
3839
3908
  }
3840
3909
 
3841
- this.state = 825;
3910
+ this.state = 830;
3842
3911
  this.errorHandler.sync(this);
3843
3912
  _la = this.tokenStream.LA(1);
3844
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
3913
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
3845
3914
  {
3846
- this.state = 824;
3915
+ this.state = 829;
3847
3916
  this.assignmentExpression();
3848
3917
  }
3849
3918
  }
3850
3919
 
3851
- this.state = 827;
3920
+ this.state = 832;
3852
3921
  this.match(CParser.RightBracket);
3853
3922
  }
3854
3923
  break;
@@ -3856,27 +3925,27 @@ export class CParser extends antlr.Parser {
3856
3925
  {
3857
3926
  localContext = new DirectAbstractDeclaratorContext(parentContext, parentState);
3858
3927
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directAbstractDeclarator);
3859
- this.state = 828;
3928
+ this.state = 833;
3860
3929
  if (!(this.precpred(this.context, 4))) {
3861
3930
  throw this.createFailedPredicateException("this.precpred(this.context, 4)");
3862
3931
  }
3863
- this.state = 829;
3932
+ this.state = 834;
3864
3933
  this.match(CParser.LeftBracket);
3865
- this.state = 830;
3934
+ this.state = 835;
3866
3935
  this.match(CParser.Static);
3867
- this.state = 832;
3936
+ this.state = 837;
3868
3937
  this.errorHandler.sync(this);
3869
3938
  _la = this.tokenStream.LA(1);
3870
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1073774080) !== 0) || ((((_la - 46)) & ~0x1F) === 0 && ((1 << (_la - 46)) & 69633) !== 0)) {
3939
+ if (((((_la - 17)) & ~0x1F) === 0 && ((1 << (_la - 17)) & 4194367) !== 0) || ((((_la - 55)) & ~0x1F) === 0 && ((1 << (_la - 55)) & 69633) !== 0)) {
3871
3940
  {
3872
- this.state = 831;
3941
+ this.state = 836;
3873
3942
  this.typeQualifierList();
3874
3943
  }
3875
3944
  }
3876
3945
 
3877
- this.state = 834;
3946
+ this.state = 839;
3878
3947
  this.assignmentExpression();
3879
- this.state = 835;
3948
+ this.state = 840;
3880
3949
  this.match(CParser.RightBracket);
3881
3950
  }
3882
3951
  break;
@@ -3884,19 +3953,19 @@ export class CParser extends antlr.Parser {
3884
3953
  {
3885
3954
  localContext = new DirectAbstractDeclaratorContext(parentContext, parentState);
3886
3955
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directAbstractDeclarator);
3887
- this.state = 837;
3956
+ this.state = 842;
3888
3957
  if (!(this.precpred(this.context, 3))) {
3889
3958
  throw this.createFailedPredicateException("this.precpred(this.context, 3)");
3890
3959
  }
3891
- this.state = 838;
3960
+ this.state = 843;
3892
3961
  this.match(CParser.LeftBracket);
3893
- this.state = 839;
3962
+ this.state = 844;
3894
3963
  this.typeQualifierList();
3895
- this.state = 840;
3964
+ this.state = 845;
3896
3965
  this.match(CParser.Static);
3897
- this.state = 841;
3966
+ this.state = 846;
3898
3967
  this.assignmentExpression();
3899
- this.state = 842;
3968
+ this.state = 847;
3900
3969
  this.match(CParser.RightBracket);
3901
3970
  }
3902
3971
  break;
@@ -3904,15 +3973,15 @@ export class CParser extends antlr.Parser {
3904
3973
  {
3905
3974
  localContext = new DirectAbstractDeclaratorContext(parentContext, parentState);
3906
3975
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directAbstractDeclarator);
3907
- this.state = 844;
3976
+ this.state = 849;
3908
3977
  if (!(this.precpred(this.context, 2))) {
3909
3978
  throw this.createFailedPredicateException("this.precpred(this.context, 2)");
3910
3979
  }
3911
- this.state = 845;
3980
+ this.state = 850;
3912
3981
  this.match(CParser.LeftBracket);
3913
- this.state = 846;
3982
+ this.state = 851;
3914
3983
  this.match(CParser.Star);
3915
- this.state = 847;
3984
+ this.state = 852;
3916
3985
  this.match(CParser.RightBracket);
3917
3986
  }
3918
3987
  break;
@@ -3920,37 +3989,37 @@ export class CParser extends antlr.Parser {
3920
3989
  {
3921
3990
  localContext = new DirectAbstractDeclaratorContext(parentContext, parentState);
3922
3991
  this.pushNewRecursionContext(localContext, _startState, CParser.RULE_directAbstractDeclarator);
3923
- this.state = 848;
3992
+ this.state = 853;
3924
3993
  if (!(this.precpred(this.context, 1))) {
3925
3994
  throw this.createFailedPredicateException("this.precpred(this.context, 1)");
3926
3995
  }
3927
- this.state = 849;
3996
+ this.state = 854;
3928
3997
  this.match(CParser.LeftParen);
3929
- this.state = 851;
3998
+ this.state = 856;
3930
3999
  this.errorHandler.sync(this);
3931
4000
  _la = this.tokenStream.LA(1);
3932
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1711538162) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || _la === 67 || _la === 69 || _la === 116) {
4001
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217666) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 5355) !== 0) || _la === 125) {
3933
4002
  {
3934
- this.state = 850;
4003
+ this.state = 855;
3935
4004
  this.parameterTypeList();
3936
4005
  }
3937
4006
  }
3938
4007
 
3939
- this.state = 853;
4008
+ this.state = 858;
3940
4009
  this.match(CParser.RightParen);
3941
- this.state = 857;
4010
+ this.state = 862;
3942
4011
  this.errorHandler.sync(this);
3943
4012
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 93, this.context);
3944
4013
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
3945
4014
  if (alternative === 1) {
3946
4015
  {
3947
4016
  {
3948
- this.state = 854;
4017
+ this.state = 859;
3949
4018
  this.gccDeclaratorExtension();
3950
4019
  }
3951
4020
  }
3952
4021
  }
3953
- this.state = 859;
4022
+ this.state = 864;
3954
4023
  this.errorHandler.sync(this);
3955
4024
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 93, this.context);
3956
4025
  }
@@ -3959,7 +4028,7 @@ export class CParser extends antlr.Parser {
3959
4028
  }
3960
4029
  }
3961
4030
  }
3962
- this.state = 864;
4031
+ this.state = 869;
3963
4032
  this.errorHandler.sync(this);
3964
4033
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 95, this.context);
3965
4034
  }
@@ -3984,7 +4053,7 @@ export class CParser extends antlr.Parser {
3984
4053
  try {
3985
4054
  this.enterOuterAlt(localContext, 1);
3986
4055
  {
3987
- this.state = 865;
4056
+ this.state = 870;
3988
4057
  this.match(CParser.Identifier);
3989
4058
  }
3990
4059
  }
@@ -4006,12 +4075,14 @@ export class CParser extends antlr.Parser {
4006
4075
  this.enterRule(localContext, 128, CParser.RULE_initializer);
4007
4076
  let _la: number;
4008
4077
  try {
4009
- this.state = 875;
4078
+ this.state = 880;
4010
4079
  this.errorHandler.sync(this);
4011
4080
  switch (this.tokenStream.LA(1)) {
4012
4081
  case CParser.T__0:
4013
4082
  case CParser.T__1:
4014
4083
  case CParser.T__2:
4084
+ case CParser.T__3:
4085
+ case CParser.T__4:
4015
4086
  case CParser.Sizeof:
4016
4087
  case CParser.Alignof:
4017
4088
  case CParser.Generic:
@@ -4031,28 +4102,28 @@ export class CParser extends antlr.Parser {
4031
4102
  case CParser.StringLiteral:
4032
4103
  this.enterOuterAlt(localContext, 1);
4033
4104
  {
4034
- this.state = 867;
4105
+ this.state = 872;
4035
4106
  this.assignmentExpression();
4036
4107
  }
4037
4108
  break;
4038
4109
  case CParser.LeftBrace:
4039
4110
  this.enterOuterAlt(localContext, 2);
4040
4111
  {
4041
- this.state = 868;
4112
+ this.state = 873;
4042
4113
  this.match(CParser.LeftBrace);
4043
- this.state = 869;
4114
+ this.state = 874;
4044
4115
  this.initializerList();
4045
- this.state = 871;
4116
+ this.state = 876;
4046
4117
  this.errorHandler.sync(this);
4047
4118
  _la = this.tokenStream.LA(1);
4048
- if (_la === 99) {
4119
+ if (_la === 108) {
4049
4120
  {
4050
- this.state = 870;
4121
+ this.state = 875;
4051
4122
  this.match(CParser.Comma);
4052
4123
  }
4053
4124
  }
4054
4125
 
4055
- this.state = 873;
4126
+ this.state = 878;
4056
4127
  this.match(CParser.RightBrace);
4057
4128
  }
4058
4129
  break;
@@ -4081,43 +4152,43 @@ export class CParser extends antlr.Parser {
4081
4152
  let alternative: number;
4082
4153
  this.enterOuterAlt(localContext, 1);
4083
4154
  {
4084
- this.state = 878;
4155
+ this.state = 883;
4085
4156
  this.errorHandler.sync(this);
4086
4157
  _la = this.tokenStream.LA(1);
4087
- if (_la === 72 || _la === 114) {
4158
+ if (_la === 81 || _la === 123) {
4088
4159
  {
4089
- this.state = 877;
4160
+ this.state = 882;
4090
4161
  this.designation();
4091
4162
  }
4092
4163
  }
4093
4164
 
4094
- this.state = 880;
4165
+ this.state = 885;
4095
4166
  this.initializer();
4096
- this.state = 888;
4167
+ this.state = 893;
4097
4168
  this.errorHandler.sync(this);
4098
4169
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 100, this.context);
4099
4170
  while (alternative !== 2 && alternative !== antlr.ATN.INVALID_ALT_NUMBER) {
4100
4171
  if (alternative === 1) {
4101
4172
  {
4102
4173
  {
4103
- this.state = 881;
4174
+ this.state = 886;
4104
4175
  this.match(CParser.Comma);
4105
- this.state = 883;
4176
+ this.state = 888;
4106
4177
  this.errorHandler.sync(this);
4107
4178
  _la = this.tokenStream.LA(1);
4108
- if (_la === 72 || _la === 114) {
4179
+ if (_la === 81 || _la === 123) {
4109
4180
  {
4110
- this.state = 882;
4181
+ this.state = 887;
4111
4182
  this.designation();
4112
4183
  }
4113
4184
  }
4114
4185
 
4115
- this.state = 885;
4186
+ this.state = 890;
4116
4187
  this.initializer();
4117
4188
  }
4118
4189
  }
4119
4190
  }
4120
- this.state = 890;
4191
+ this.state = 895;
4121
4192
  this.errorHandler.sync(this);
4122
4193
  alternative = this.interpreter.adaptivePredict(this.tokenStream, 100, this.context);
4123
4194
  }
@@ -4142,9 +4213,9 @@ export class CParser extends antlr.Parser {
4142
4213
  try {
4143
4214
  this.enterOuterAlt(localContext, 1);
4144
4215
  {
4145
- this.state = 891;
4216
+ this.state = 896;
4146
4217
  this.designatorList();
4147
- this.state = 892;
4218
+ this.state = 897;
4148
4219
  this.match(CParser.Assign);
4149
4220
  }
4150
4221
  }
@@ -4168,20 +4239,20 @@ export class CParser extends antlr.Parser {
4168
4239
  try {
4169
4240
  this.enterOuterAlt(localContext, 1);
4170
4241
  {
4171
- this.state = 895;
4242
+ this.state = 900;
4172
4243
  this.errorHandler.sync(this);
4173
4244
  _la = this.tokenStream.LA(1);
4174
4245
  do {
4175
4246
  {
4176
4247
  {
4177
- this.state = 894;
4248
+ this.state = 899;
4178
4249
  this.designator();
4179
4250
  }
4180
4251
  }
4181
- this.state = 897;
4252
+ this.state = 902;
4182
4253
  this.errorHandler.sync(this);
4183
4254
  _la = this.tokenStream.LA(1);
4184
- } while (_la === 72 || _la === 114);
4255
+ } while (_la === 81 || _la === 123);
4185
4256
  }
4186
4257
  }
4187
4258
  catch (re) {
@@ -4201,26 +4272,26 @@ export class CParser extends antlr.Parser {
4201
4272
  let localContext = new DesignatorContext(this.context, this.state);
4202
4273
  this.enterRule(localContext, 136, CParser.RULE_designator);
4203
4274
  try {
4204
- this.state = 905;
4275
+ this.state = 910;
4205
4276
  this.errorHandler.sync(this);
4206
4277
  switch (this.tokenStream.LA(1)) {
4207
4278
  case CParser.LeftBracket:
4208
4279
  this.enterOuterAlt(localContext, 1);
4209
4280
  {
4210
- this.state = 899;
4281
+ this.state = 904;
4211
4282
  this.match(CParser.LeftBracket);
4212
- this.state = 900;
4283
+ this.state = 905;
4213
4284
  this.constantExpression();
4214
- this.state = 901;
4285
+ this.state = 906;
4215
4286
  this.match(CParser.RightBracket);
4216
4287
  }
4217
4288
  break;
4218
4289
  case CParser.Dot:
4219
4290
  this.enterOuterAlt(localContext, 2);
4220
4291
  {
4221
- this.state = 903;
4292
+ this.state = 908;
4222
4293
  this.match(CParser.Dot);
4223
- this.state = 904;
4294
+ this.state = 909;
4224
4295
  this.match(CParser.Identifier);
4225
4296
  }
4226
4297
  break;
@@ -4248,31 +4319,31 @@ export class CParser extends antlr.Parser {
4248
4319
  try {
4249
4320
  this.enterOuterAlt(localContext, 1);
4250
4321
  {
4251
- this.state = 907;
4322
+ this.state = 912;
4252
4323
  this.match(CParser.StaticAssert);
4253
- this.state = 908;
4324
+ this.state = 913;
4254
4325
  this.match(CParser.LeftParen);
4255
- this.state = 909;
4326
+ this.state = 914;
4256
4327
  this.constantExpression();
4257
- this.state = 910;
4328
+ this.state = 915;
4258
4329
  this.match(CParser.Comma);
4259
- this.state = 912;
4330
+ this.state = 917;
4260
4331
  this.errorHandler.sync(this);
4261
4332
  _la = this.tokenStream.LA(1);
4262
4333
  do {
4263
4334
  {
4264
4335
  {
4265
- this.state = 911;
4336
+ this.state = 916;
4266
4337
  this.match(CParser.StringLiteral);
4267
4338
  }
4268
4339
  }
4269
- this.state = 914;
4340
+ this.state = 919;
4270
4341
  this.errorHandler.sync(this);
4271
4342
  _la = this.tokenStream.LA(1);
4272
- } while (_la === 119);
4273
- this.state = 916;
4343
+ } while (_la === 128);
4344
+ this.state = 921;
4274
4345
  this.match(CParser.RightParen);
4275
- this.state = 917;
4346
+ this.state = 922;
4276
4347
  this.match(CParser.Semi);
4277
4348
  }
4278
4349
  }
@@ -4294,128 +4365,128 @@ export class CParser extends antlr.Parser {
4294
4365
  this.enterRule(localContext, 140, CParser.RULE_statement);
4295
4366
  let _la: number;
4296
4367
  try {
4297
- this.state = 956;
4368
+ this.state = 961;
4298
4369
  this.errorHandler.sync(this);
4299
4370
  switch (this.interpreter.adaptivePredict(this.tokenStream, 109, this.context) ) {
4300
4371
  case 1:
4301
4372
  this.enterOuterAlt(localContext, 1);
4302
4373
  {
4303
- this.state = 919;
4374
+ this.state = 924;
4304
4375
  this.labeledStatement();
4305
4376
  }
4306
4377
  break;
4307
4378
  case 2:
4308
4379
  this.enterOuterAlt(localContext, 2);
4309
4380
  {
4310
- this.state = 920;
4381
+ this.state = 925;
4311
4382
  this.compoundStatement();
4312
4383
  }
4313
4384
  break;
4314
4385
  case 3:
4315
4386
  this.enterOuterAlt(localContext, 3);
4316
4387
  {
4317
- this.state = 921;
4388
+ this.state = 926;
4318
4389
  this.expressionStatement();
4319
4390
  }
4320
4391
  break;
4321
4392
  case 4:
4322
4393
  this.enterOuterAlt(localContext, 4);
4323
4394
  {
4324
- this.state = 922;
4395
+ this.state = 927;
4325
4396
  this.selectionStatement();
4326
4397
  }
4327
4398
  break;
4328
4399
  case 5:
4329
4400
  this.enterOuterAlt(localContext, 5);
4330
4401
  {
4331
- this.state = 923;
4402
+ this.state = 928;
4332
4403
  this.iterationStatement();
4333
4404
  }
4334
4405
  break;
4335
4406
  case 6:
4336
4407
  this.enterOuterAlt(localContext, 6);
4337
4408
  {
4338
- this.state = 924;
4409
+ this.state = 929;
4339
4410
  this.jumpStatement();
4340
4411
  }
4341
4412
  break;
4342
4413
  case 7:
4343
4414
  this.enterOuterAlt(localContext, 7);
4344
4415
  {
4345
- this.state = 925;
4416
+ this.state = 930;
4346
4417
  _la = this.tokenStream.LA(1);
4347
- if(!(_la === 23 || _la === 24)) {
4418
+ if(!(_la === 32 || _la === 33)) {
4348
4419
  this.errorHandler.recoverInline(this);
4349
4420
  }
4350
4421
  else {
4351
4422
  this.errorHandler.reportMatch(this);
4352
4423
  this.consume();
4353
4424
  }
4354
- this.state = 926;
4425
+ this.state = 931;
4355
4426
  _la = this.tokenStream.LA(1);
4356
- if(!(_la === 14 || _la === 58)) {
4427
+ if(!(_la === 21 || _la === 22 || _la === 67)) {
4357
4428
  this.errorHandler.recoverInline(this);
4358
4429
  }
4359
4430
  else {
4360
4431
  this.errorHandler.reportMatch(this);
4361
4432
  this.consume();
4362
4433
  }
4363
- this.state = 927;
4434
+ this.state = 932;
4364
4435
  this.match(CParser.LeftParen);
4365
- this.state = 936;
4436
+ this.state = 941;
4366
4437
  this.errorHandler.sync(this);
4367
4438
  _la = this.tokenStream.LA(1);
4368
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4439
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4369
4440
  {
4370
- this.state = 928;
4371
- this.logicalOrExpression();
4372
4441
  this.state = 933;
4442
+ this.logicalOrExpression();
4443
+ this.state = 938;
4373
4444
  this.errorHandler.sync(this);
4374
4445
  _la = this.tokenStream.LA(1);
4375
- while (_la === 99) {
4446
+ while (_la === 108) {
4376
4447
  {
4377
4448
  {
4378
- this.state = 929;
4449
+ this.state = 934;
4379
4450
  this.match(CParser.Comma);
4380
- this.state = 930;
4451
+ this.state = 935;
4381
4452
  this.logicalOrExpression();
4382
4453
  }
4383
4454
  }
4384
- this.state = 935;
4455
+ this.state = 940;
4385
4456
  this.errorHandler.sync(this);
4386
4457
  _la = this.tokenStream.LA(1);
4387
4458
  }
4388
4459
  }
4389
4460
  }
4390
4461
 
4391
- this.state = 951;
4462
+ this.state = 956;
4392
4463
  this.errorHandler.sync(this);
4393
4464
  _la = this.tokenStream.LA(1);
4394
- while (_la === 97) {
4465
+ while (_la === 106) {
4395
4466
  {
4396
4467
  {
4397
- this.state = 938;
4468
+ this.state = 943;
4398
4469
  this.match(CParser.Colon);
4399
- this.state = 947;
4470
+ this.state = 952;
4400
4471
  this.errorHandler.sync(this);
4401
4472
  _la = this.tokenStream.LA(1);
4402
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4473
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4403
4474
  {
4404
- this.state = 939;
4405
- this.logicalOrExpression();
4406
4475
  this.state = 944;
4476
+ this.logicalOrExpression();
4477
+ this.state = 949;
4407
4478
  this.errorHandler.sync(this);
4408
4479
  _la = this.tokenStream.LA(1);
4409
- while (_la === 99) {
4480
+ while (_la === 108) {
4410
4481
  {
4411
4482
  {
4412
- this.state = 940;
4483
+ this.state = 945;
4413
4484
  this.match(CParser.Comma);
4414
- this.state = 941;
4485
+ this.state = 946;
4415
4486
  this.logicalOrExpression();
4416
4487
  }
4417
4488
  }
4418
- this.state = 946;
4489
+ this.state = 951;
4419
4490
  this.errorHandler.sync(this);
4420
4491
  _la = this.tokenStream.LA(1);
4421
4492
  }
@@ -4424,13 +4495,13 @@ export class CParser extends antlr.Parser {
4424
4495
 
4425
4496
  }
4426
4497
  }
4427
- this.state = 953;
4498
+ this.state = 958;
4428
4499
  this.errorHandler.sync(this);
4429
4500
  _la = this.tokenStream.LA(1);
4430
4501
  }
4431
- this.state = 954;
4502
+ this.state = 959;
4432
4503
  this.match(CParser.RightParen);
4433
- this.state = 955;
4504
+ this.state = 960;
4434
4505
  this.match(CParser.Semi);
4435
4506
  }
4436
4507
  break;
@@ -4453,22 +4524,22 @@ export class CParser extends antlr.Parser {
4453
4524
  let localContext = new LabeledStatementContext(this.context, this.state);
4454
4525
  this.enterRule(localContext, 142, CParser.RULE_labeledStatement);
4455
4526
  try {
4456
- this.state = 971;
4527
+ this.state = 976;
4457
4528
  this.errorHandler.sync(this);
4458
4529
  switch (this.tokenStream.LA(1)) {
4459
4530
  case CParser.Identifier:
4460
4531
  this.enterOuterAlt(localContext, 1);
4461
4532
  {
4462
- this.state = 958;
4533
+ this.state = 963;
4463
4534
  this.match(CParser.Identifier);
4464
- this.state = 959;
4535
+ this.state = 964;
4465
4536
  this.match(CParser.Colon);
4466
- this.state = 961;
4537
+ this.state = 966;
4467
4538
  this.errorHandler.sync(this);
4468
4539
  switch (this.interpreter.adaptivePredict(this.tokenStream, 110, this.context) ) {
4469
4540
  case 1:
4470
4541
  {
4471
- this.state = 960;
4542
+ this.state = 965;
4472
4543
  this.statement();
4473
4544
  }
4474
4545
  break;
@@ -4478,24 +4549,24 @@ export class CParser extends antlr.Parser {
4478
4549
  case CParser.Case:
4479
4550
  this.enterOuterAlt(localContext, 2);
4480
4551
  {
4481
- this.state = 963;
4552
+ this.state = 968;
4482
4553
  this.match(CParser.Case);
4483
- this.state = 964;
4554
+ this.state = 969;
4484
4555
  this.constantExpression();
4485
- this.state = 965;
4556
+ this.state = 970;
4486
4557
  this.match(CParser.Colon);
4487
- this.state = 966;
4558
+ this.state = 971;
4488
4559
  this.statement();
4489
4560
  }
4490
4561
  break;
4491
4562
  case CParser.Default:
4492
4563
  this.enterOuterAlt(localContext, 3);
4493
4564
  {
4494
- this.state = 968;
4565
+ this.state = 973;
4495
4566
  this.match(CParser.Default);
4496
- this.state = 969;
4567
+ this.state = 974;
4497
4568
  this.match(CParser.Colon);
4498
- this.state = 970;
4569
+ this.state = 975;
4499
4570
  this.statement();
4500
4571
  }
4501
4572
  break;
@@ -4523,19 +4594,19 @@ export class CParser extends antlr.Parser {
4523
4594
  try {
4524
4595
  this.enterOuterAlt(localContext, 1);
4525
4596
  {
4526
- this.state = 973;
4597
+ this.state = 978;
4527
4598
  this.match(CParser.LeftBrace);
4528
- this.state = 975;
4599
+ this.state = 980;
4529
4600
  this.errorHandler.sync(this);
4530
4601
  _la = this.tokenStream.LA(1);
4531
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4286840830) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967287) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3397125243) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3932161) !== 0)) {
4602
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217726) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294963199) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4161337343) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 2013266533) !== 0)) {
4532
4603
  {
4533
- this.state = 974;
4604
+ this.state = 979;
4534
4605
  this.blockItemList();
4535
4606
  }
4536
4607
  }
4537
4608
 
4538
- this.state = 977;
4609
+ this.state = 982;
4539
4610
  this.match(CParser.RightBrace);
4540
4611
  }
4541
4612
  }
@@ -4559,20 +4630,20 @@ export class CParser extends antlr.Parser {
4559
4630
  try {
4560
4631
  this.enterOuterAlt(localContext, 1);
4561
4632
  {
4562
- this.state = 980;
4633
+ this.state = 985;
4563
4634
  this.errorHandler.sync(this);
4564
4635
  _la = this.tokenStream.LA(1);
4565
4636
  do {
4566
4637
  {
4567
4638
  {
4568
- this.state = 979;
4639
+ this.state = 984;
4569
4640
  this.blockItem();
4570
4641
  }
4571
4642
  }
4572
- this.state = 982;
4643
+ this.state = 987;
4573
4644
  this.errorHandler.sync(this);
4574
4645
  _la = this.tokenStream.LA(1);
4575
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4286840830) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967287) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3397125243) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 3932161) !== 0));
4646
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217726) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294963199) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4161337343) !== 0) || ((((_la - 98)) & ~0x1F) === 0 && ((1 << (_la - 98)) & 2013266533) !== 0));
4576
4647
  }
4577
4648
  }
4578
4649
  catch (re) {
@@ -4592,20 +4663,20 @@ export class CParser extends antlr.Parser {
4592
4663
  let localContext = new BlockItemContext(this.context, this.state);
4593
4664
  this.enterRule(localContext, 148, CParser.RULE_blockItem);
4594
4665
  try {
4595
- this.state = 986;
4666
+ this.state = 991;
4596
4667
  this.errorHandler.sync(this);
4597
4668
  switch (this.interpreter.adaptivePredict(this.tokenStream, 114, this.context) ) {
4598
4669
  case 1:
4599
4670
  this.enterOuterAlt(localContext, 1);
4600
4671
  {
4601
- this.state = 984;
4672
+ this.state = 989;
4602
4673
  this.statement();
4603
4674
  }
4604
4675
  break;
4605
4676
  case 2:
4606
4677
  this.enterOuterAlt(localContext, 2);
4607
4678
  {
4608
- this.state = 985;
4679
+ this.state = 990;
4609
4680
  this.declaration();
4610
4681
  }
4611
4682
  break;
@@ -4631,17 +4702,17 @@ export class CParser extends antlr.Parser {
4631
4702
  try {
4632
4703
  this.enterOuterAlt(localContext, 1);
4633
4704
  {
4634
- this.state = 989;
4705
+ this.state = 994;
4635
4706
  this.errorHandler.sync(this);
4636
4707
  _la = this.tokenStream.LA(1);
4637
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4708
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4638
4709
  {
4639
- this.state = 988;
4710
+ this.state = 993;
4640
4711
  this.expression();
4641
4712
  }
4642
4713
  }
4643
4714
 
4644
- this.state = 991;
4715
+ this.state = 996;
4645
4716
  this.match(CParser.Semi);
4646
4717
  }
4647
4718
  }
@@ -4662,30 +4733,30 @@ export class CParser extends antlr.Parser {
4662
4733
  let localContext = new SelectionStatementContext(this.context, this.state);
4663
4734
  this.enterRule(localContext, 152, CParser.RULE_selectionStatement);
4664
4735
  try {
4665
- this.state = 1008;
4736
+ this.state = 1013;
4666
4737
  this.errorHandler.sync(this);
4667
4738
  switch (this.tokenStream.LA(1)) {
4668
4739
  case CParser.If:
4669
4740
  this.enterOuterAlt(localContext, 1);
4670
4741
  {
4671
- this.state = 993;
4742
+ this.state = 998;
4672
4743
  this.match(CParser.If);
4673
- this.state = 994;
4744
+ this.state = 999;
4674
4745
  this.match(CParser.LeftParen);
4675
- this.state = 995;
4746
+ this.state = 1000;
4676
4747
  this.expression();
4677
- this.state = 996;
4748
+ this.state = 1001;
4678
4749
  this.match(CParser.RightParen);
4679
- this.state = 997;
4750
+ this.state = 1002;
4680
4751
  this.statement();
4681
- this.state = 1000;
4752
+ this.state = 1005;
4682
4753
  this.errorHandler.sync(this);
4683
4754
  switch (this.interpreter.adaptivePredict(this.tokenStream, 116, this.context) ) {
4684
4755
  case 1:
4685
4756
  {
4686
- this.state = 998;
4757
+ this.state = 1003;
4687
4758
  this.match(CParser.Else);
4688
- this.state = 999;
4759
+ this.state = 1004;
4689
4760
  this.statement();
4690
4761
  }
4691
4762
  break;
@@ -4695,15 +4766,15 @@ export class CParser extends antlr.Parser {
4695
4766
  case CParser.Switch:
4696
4767
  this.enterOuterAlt(localContext, 2);
4697
4768
  {
4698
- this.state = 1002;
4769
+ this.state = 1007;
4699
4770
  this.match(CParser.Switch);
4700
- this.state = 1003;
4771
+ this.state = 1008;
4701
4772
  this.match(CParser.LeftParen);
4702
- this.state = 1004;
4773
+ this.state = 1009;
4703
4774
  this.expression();
4704
- this.state = 1005;
4775
+ this.state = 1010;
4705
4776
  this.match(CParser.RightParen);
4706
- this.state = 1006;
4777
+ this.state = 1011;
4707
4778
  this.statement();
4708
4779
  }
4709
4780
  break;
@@ -4728,55 +4799,55 @@ export class CParser extends antlr.Parser {
4728
4799
  let localContext = new IterationStatementContext(this.context, this.state);
4729
4800
  this.enterRule(localContext, 154, CParser.RULE_iterationStatement);
4730
4801
  try {
4731
- this.state = 1030;
4802
+ this.state = 1035;
4732
4803
  this.errorHandler.sync(this);
4733
4804
  switch (this.tokenStream.LA(1)) {
4734
4805
  case CParser.While:
4735
4806
  this.enterOuterAlt(localContext, 1);
4736
4807
  {
4737
- this.state = 1010;
4808
+ this.state = 1015;
4738
4809
  this.match(CParser.While);
4739
- this.state = 1011;
4810
+ this.state = 1016;
4740
4811
  this.match(CParser.LeftParen);
4741
- this.state = 1012;
4812
+ this.state = 1017;
4742
4813
  this.expression();
4743
- this.state = 1013;
4814
+ this.state = 1018;
4744
4815
  this.match(CParser.RightParen);
4745
- this.state = 1014;
4816
+ this.state = 1019;
4746
4817
  this.statement();
4747
4818
  }
4748
4819
  break;
4749
4820
  case CParser.Do:
4750
4821
  this.enterOuterAlt(localContext, 2);
4751
4822
  {
4752
- this.state = 1016;
4823
+ this.state = 1021;
4753
4824
  this.match(CParser.Do);
4754
- this.state = 1017;
4825
+ this.state = 1022;
4755
4826
  this.statement();
4756
- this.state = 1018;
4827
+ this.state = 1023;
4757
4828
  this.match(CParser.While);
4758
- this.state = 1019;
4829
+ this.state = 1024;
4759
4830
  this.match(CParser.LeftParen);
4760
- this.state = 1020;
4831
+ this.state = 1025;
4761
4832
  this.expression();
4762
- this.state = 1021;
4833
+ this.state = 1026;
4763
4834
  this.match(CParser.RightParen);
4764
- this.state = 1022;
4835
+ this.state = 1027;
4765
4836
  this.match(CParser.Semi);
4766
4837
  }
4767
4838
  break;
4768
4839
  case CParser.For:
4769
4840
  this.enterOuterAlt(localContext, 3);
4770
4841
  {
4771
- this.state = 1024;
4842
+ this.state = 1029;
4772
4843
  this.match(CParser.For);
4773
- this.state = 1025;
4844
+ this.state = 1030;
4774
4845
  this.match(CParser.LeftParen);
4775
- this.state = 1026;
4846
+ this.state = 1031;
4776
4847
  this.forCondition();
4777
- this.state = 1027;
4848
+ this.state = 1032;
4778
4849
  this.match(CParser.RightParen);
4779
- this.state = 1028;
4850
+ this.state = 1033;
4780
4851
  this.statement();
4781
4852
  }
4782
4853
  break;
@@ -4804,23 +4875,23 @@ export class CParser extends antlr.Parser {
4804
4875
  try {
4805
4876
  this.enterOuterAlt(localContext, 1);
4806
4877
  {
4807
- this.state = 1036;
4878
+ this.state = 1041;
4808
4879
  this.errorHandler.sync(this);
4809
4880
  switch (this.interpreter.adaptivePredict(this.tokenStream, 120, this.context) ) {
4810
4881
  case 1:
4811
4882
  {
4812
- this.state = 1032;
4883
+ this.state = 1037;
4813
4884
  this.forDeclaration();
4814
4885
  }
4815
4886
  break;
4816
4887
  case 2:
4817
4888
  {
4818
- this.state = 1034;
4889
+ this.state = 1039;
4819
4890
  this.errorHandler.sync(this);
4820
4891
  _la = this.tokenStream.LA(1);
4821
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4892
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4822
4893
  {
4823
- this.state = 1033;
4894
+ this.state = 1038;
4824
4895
  this.expression();
4825
4896
  }
4826
4897
  }
@@ -4828,26 +4899,26 @@ export class CParser extends antlr.Parser {
4828
4899
  }
4829
4900
  break;
4830
4901
  }
4831
- this.state = 1038;
4902
+ this.state = 1043;
4832
4903
  this.match(CParser.Semi);
4833
- this.state = 1040;
4904
+ this.state = 1045;
4834
4905
  this.errorHandler.sync(this);
4835
4906
  _la = this.tokenStream.LA(1);
4836
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4907
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4837
4908
  {
4838
- this.state = 1039;
4909
+ this.state = 1044;
4839
4910
  this.forExpression();
4840
4911
  }
4841
4912
  }
4842
4913
 
4843
- this.state = 1042;
4914
+ this.state = 1047;
4844
4915
  this.match(CParser.Semi);
4845
- this.state = 1044;
4916
+ this.state = 1049;
4846
4917
  this.errorHandler.sync(this);
4847
4918
  _la = this.tokenStream.LA(1);
4848
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
4919
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4849
4920
  {
4850
- this.state = 1043;
4921
+ this.state = 1048;
4851
4922
  this.forExpression();
4852
4923
  }
4853
4924
  }
@@ -4874,14 +4945,14 @@ export class CParser extends antlr.Parser {
4874
4945
  try {
4875
4946
  this.enterOuterAlt(localContext, 1);
4876
4947
  {
4877
- this.state = 1046;
4948
+ this.state = 1051;
4878
4949
  this.declarationSpecifiers();
4879
- this.state = 1048;
4950
+ this.state = 1053;
4880
4951
  this.errorHandler.sync(this);
4881
4952
  _la = this.tokenStream.LA(1);
4882
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 8192000) !== 0) || ((((_la - 70)) & ~0x1F) === 0 && ((1 << (_la - 70)) & 8454145) !== 0) || _la === 116) {
4953
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4194304000) !== 0) || ((((_la - 79)) & ~0x1F) === 0 && ((1 << (_la - 79)) & 8454145) !== 0) || _la === 125) {
4883
4954
  {
4884
- this.state = 1047;
4955
+ this.state = 1052;
4885
4956
  this.initDeclaratorList();
4886
4957
  }
4887
4958
  }
@@ -4908,21 +4979,21 @@ export class CParser extends antlr.Parser {
4908
4979
  try {
4909
4980
  this.enterOuterAlt(localContext, 1);
4910
4981
  {
4911
- this.state = 1050;
4912
- this.assignmentExpression();
4913
4982
  this.state = 1055;
4983
+ this.assignmentExpression();
4984
+ this.state = 1060;
4914
4985
  this.errorHandler.sync(this);
4915
4986
  _la = this.tokenStream.LA(1);
4916
- while (_la === 99) {
4987
+ while (_la === 108) {
4917
4988
  {
4918
4989
  {
4919
- this.state = 1051;
4990
+ this.state = 1056;
4920
4991
  this.match(CParser.Comma);
4921
- this.state = 1052;
4992
+ this.state = 1057;
4922
4993
  this.assignmentExpression();
4923
4994
  }
4924
4995
  }
4925
- this.state = 1057;
4996
+ this.state = 1062;
4926
4997
  this.errorHandler.sync(this);
4927
4998
  _la = this.tokenStream.LA(1);
4928
4999
  }
@@ -4948,39 +5019,39 @@ export class CParser extends antlr.Parser {
4948
5019
  try {
4949
5020
  this.enterOuterAlt(localContext, 1);
4950
5021
  {
4951
- this.state = 1068;
5022
+ this.state = 1073;
4952
5023
  this.errorHandler.sync(this);
4953
5024
  switch (this.interpreter.adaptivePredict(this.tokenStream, 126, this.context) ) {
4954
5025
  case 1:
4955
5026
  {
4956
- this.state = 1058;
5027
+ this.state = 1063;
4957
5028
  this.match(CParser.Goto);
4958
- this.state = 1059;
5029
+ this.state = 1064;
4959
5030
  this.match(CParser.Identifier);
4960
5031
  }
4961
5032
  break;
4962
5033
  case 2:
4963
5034
  {
4964
- this.state = 1060;
5035
+ this.state = 1065;
4965
5036
  this.match(CParser.Continue);
4966
5037
  }
4967
5038
  break;
4968
5039
  case 3:
4969
5040
  {
4970
- this.state = 1061;
5041
+ this.state = 1066;
4971
5042
  this.match(CParser.Break);
4972
5043
  }
4973
5044
  break;
4974
5045
  case 4:
4975
5046
  {
4976
- this.state = 1062;
5047
+ this.state = 1067;
4977
5048
  this.match(CParser.Return);
4978
- this.state = 1064;
5049
+ this.state = 1069;
4979
5050
  this.errorHandler.sync(this);
4980
5051
  _la = this.tokenStream.LA(1);
4981
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 14) !== 0) || ((((_la - 50)) & ~0x1F) === 0 && ((1 << (_la - 50)) & 1083393) !== 0) || ((((_la - 82)) & ~0x1F) === 0 && ((1 << (_la - 82)) & 12959) !== 0) || ((((_la - 116)) & ~0x1F) === 0 && ((1 << (_la - 116)) & 15) !== 0)) {
5052
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 62) !== 0) || ((((_la - 59)) & ~0x1F) === 0 && ((1 << (_la - 59)) & 1083393) !== 0) || ((((_la - 91)) & ~0x1F) === 0 && ((1 << (_la - 91)) & 12959) !== 0) || ((((_la - 125)) & ~0x1F) === 0 && ((1 << (_la - 125)) & 15) !== 0)) {
4982
5053
  {
4983
- this.state = 1063;
5054
+ this.state = 1068;
4984
5055
  this.expression();
4985
5056
  }
4986
5057
  }
@@ -4989,14 +5060,14 @@ export class CParser extends antlr.Parser {
4989
5060
  break;
4990
5061
  case 5:
4991
5062
  {
4992
- this.state = 1066;
5063
+ this.state = 1071;
4993
5064
  this.match(CParser.Goto);
4994
- this.state = 1067;
5065
+ this.state = 1072;
4995
5066
  this.unaryExpression();
4996
5067
  }
4997
5068
  break;
4998
5069
  }
4999
- this.state = 1070;
5070
+ this.state = 1075;
5000
5071
  this.match(CParser.Semi);
5001
5072
  }
5002
5073
  }
@@ -5020,17 +5091,17 @@ export class CParser extends antlr.Parser {
5020
5091
  try {
5021
5092
  this.enterOuterAlt(localContext, 1);
5022
5093
  {
5023
- this.state = 1073;
5094
+ this.state = 1078;
5024
5095
  this.errorHandler.sync(this);
5025
5096
  _la = this.tokenStream.LA(1);
5026
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1719664626) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || ((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 2215116815) !== 0) || _la === 116) {
5097
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967234) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 536886507) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & 8388641) !== 0)) {
5027
5098
  {
5028
- this.state = 1072;
5099
+ this.state = 1077;
5029
5100
  this.translationUnit();
5030
5101
  }
5031
5102
  }
5032
5103
 
5033
- this.state = 1075;
5104
+ this.state = 1080;
5034
5105
  this.match(CParser.EOF);
5035
5106
  }
5036
5107
  }
@@ -5054,20 +5125,20 @@ export class CParser extends antlr.Parser {
5054
5125
  try {
5055
5126
  this.enterOuterAlt(localContext, 1);
5056
5127
  {
5057
- this.state = 1078;
5128
+ this.state = 1083;
5058
5129
  this.errorHandler.sync(this);
5059
5130
  _la = this.tokenStream.LA(1);
5060
5131
  do {
5061
5132
  {
5062
5133
  {
5063
- this.state = 1077;
5134
+ this.state = 1082;
5064
5135
  this.externalDeclaration();
5065
5136
  }
5066
5137
  }
5067
- this.state = 1080;
5138
+ this.state = 1085;
5068
5139
  this.errorHandler.sync(this);
5069
5140
  _la = this.tokenStream.LA(1);
5070
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1719664626) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || ((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 2215116815) !== 0) || _la === 116);
5141
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967234) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 536886507) !== 0) || ((((_la - 102)) & ~0x1F) === 0 && ((1 << (_la - 102)) & 8388641) !== 0));
5071
5142
  }
5072
5143
  }
5073
5144
  catch (re) {
@@ -5087,27 +5158,27 @@ export class CParser extends antlr.Parser {
5087
5158
  let localContext = new ExternalDeclarationContext(this.context, this.state);
5088
5159
  this.enterRule(localContext, 168, CParser.RULE_externalDeclaration);
5089
5160
  try {
5090
- this.state = 1085;
5161
+ this.state = 1090;
5091
5162
  this.errorHandler.sync(this);
5092
5163
  switch (this.interpreter.adaptivePredict(this.tokenStream, 129, this.context) ) {
5093
5164
  case 1:
5094
5165
  this.enterOuterAlt(localContext, 1);
5095
5166
  {
5096
- this.state = 1082;
5167
+ this.state = 1087;
5097
5168
  this.functionDefinition();
5098
5169
  }
5099
5170
  break;
5100
5171
  case 2:
5101
5172
  this.enterOuterAlt(localContext, 2);
5102
5173
  {
5103
- this.state = 1083;
5174
+ this.state = 1088;
5104
5175
  this.declaration();
5105
5176
  }
5106
5177
  break;
5107
5178
  case 3:
5108
5179
  this.enterOuterAlt(localContext, 3);
5109
5180
  {
5110
- this.state = 1084;
5181
+ this.state = 1089;
5111
5182
  this.match(CParser.Semi);
5112
5183
  }
5113
5184
  break;
@@ -5133,29 +5204,29 @@ export class CParser extends antlr.Parser {
5133
5204
  try {
5134
5205
  this.enterOuterAlt(localContext, 1);
5135
5206
  {
5136
- this.state = 1088;
5207
+ this.state = 1093;
5137
5208
  this.errorHandler.sync(this);
5138
5209
  switch (this.interpreter.adaptivePredict(this.tokenStream, 130, this.context) ) {
5139
5210
  case 1:
5140
5211
  {
5141
- this.state = 1087;
5212
+ this.state = 1092;
5142
5213
  this.declarationSpecifiers();
5143
5214
  }
5144
5215
  break;
5145
5216
  }
5146
- this.state = 1090;
5217
+ this.state = 1095;
5147
5218
  this.declarator();
5148
- this.state = 1092;
5219
+ this.state = 1097;
5149
5220
  this.errorHandler.sync(this);
5150
5221
  _la = this.tokenStream.LA(1);
5151
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1711538162) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || ((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 7) !== 0) || _la === 116) {
5222
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217666) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 7403) !== 0) || _la === 125) {
5152
5223
  {
5153
- this.state = 1091;
5224
+ this.state = 1096;
5154
5225
  this.declarationList();
5155
5226
  }
5156
5227
  }
5157
5228
 
5158
- this.state = 1094;
5229
+ this.state = 1099;
5159
5230
  this.compoundStatement();
5160
5231
  }
5161
5232
  }
@@ -5179,20 +5250,20 @@ export class CParser extends antlr.Parser {
5179
5250
  try {
5180
5251
  this.enterOuterAlt(localContext, 1);
5181
5252
  {
5182
- this.state = 1097;
5253
+ this.state = 1102;
5183
5254
  this.errorHandler.sync(this);
5184
5255
  _la = this.tokenStream.LA(1);
5185
5256
  do {
5186
5257
  {
5187
5258
  {
5188
- this.state = 1096;
5259
+ this.state = 1101;
5189
5260
  this.declaration();
5190
5261
  }
5191
5262
  }
5192
- this.state = 1099;
5263
+ this.state = 1104;
5193
5264
  this.errorHandler.sync(this);
5194
5265
  _la = this.tokenStream.LA(1);
5195
- } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 1711538162) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 1979113245) !== 0) || ((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 7) !== 0) || _la === 116);
5266
+ } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 134217666) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3988666931) !== 0) || ((((_la - 66)) & ~0x1F) === 0 && ((1 << (_la - 66)) & 7403) !== 0) || _la === 125);
5196
5267
  }
5197
5268
  }
5198
5269
  catch (re) {
@@ -5252,7 +5323,7 @@ export class CParser extends antlr.Parser {
5252
5323
  }
5253
5324
 
5254
5325
  public static readonly _serializedATN: number[] = [
5255
- 4,1,126,1102,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,
5326
+ 4,1,135,1107,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,
5256
5327
  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,
5257
5328
  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,
5258
5329
  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,
@@ -5291,393 +5362,398 @@ export class CParser extends antlr.Parser {
5291
5362
  12,28,447,9,28,1,29,1,29,1,29,3,29,452,8,29,1,30,1,30,1,31,1,31,
5292
5363
  1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
5293
5364
  1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
5294
- 3,31,484,8,31,1,32,1,32,3,32,488,8,32,1,32,1,32,1,32,1,32,1,32,1,
5295
- 32,1,32,3,32,497,8,32,1,33,1,33,1,34,4,34,502,8,34,11,34,12,34,503,
5296
- 1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,514,8,35,1,36,1,36,
5297
- 3,36,518,8,36,1,36,3,36,521,8,36,1,37,1,37,1,37,5,37,526,8,37,10,
5298
- 37,12,37,529,9,37,1,38,1,38,3,38,533,8,38,1,38,1,38,3,38,537,8,38,
5299
- 1,39,1,39,3,39,541,8,39,1,39,1,39,1,39,3,39,546,8,39,1,39,1,39,1,
5300
- 39,1,39,3,39,552,8,39,1,40,1,40,1,40,5,40,557,8,40,10,40,12,40,560,
5301
- 9,40,1,41,1,41,1,41,3,41,565,8,41,1,42,1,42,1,43,1,43,1,43,1,43,
5302
- 1,43,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,3,45,
5303
- 585,8,45,1,46,1,46,1,46,1,46,3,46,591,8,46,1,46,1,46,1,47,3,47,596,
5304
- 8,47,1,47,1,47,5,47,600,8,47,10,47,12,47,603,9,47,1,48,1,48,1,48,
5305
- 1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,
5306
- 1,48,3,48,622,8,48,1,48,1,48,1,48,3,48,627,8,48,1,48,3,48,630,8,
5307
- 48,1,48,1,48,1,48,1,48,1,48,3,48,637,8,48,1,48,1,48,1,48,1,48,1,
5308
- 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,652,8,48,1,48,1,
5309
- 48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,664,8,48,1,48,5,
5310
- 48,667,8,48,10,48,12,48,670,9,48,1,49,1,49,1,50,1,50,1,50,4,50,677,
5311
- 8,50,11,50,12,50,678,1,50,1,50,3,50,683,8,50,1,51,1,51,1,51,1,51,
5312
- 1,51,1,51,1,51,1,52,3,52,693,8,52,1,52,1,52,3,52,697,8,52,5,52,699,
5313
- 8,52,10,52,12,52,702,9,52,1,53,1,53,1,53,3,53,707,8,53,1,53,3,53,
5314
- 710,8,53,1,54,1,54,3,54,714,8,54,4,54,716,8,54,11,54,12,54,717,1,
5315
- 55,4,55,721,8,55,11,55,12,55,722,1,56,1,56,1,56,3,56,728,8,56,1,
5316
- 57,1,57,1,57,5,57,733,8,57,10,57,12,57,736,9,57,1,58,1,58,1,58,1,
5317
- 58,1,58,3,58,743,8,58,3,58,745,8,58,1,59,1,59,1,59,5,59,750,8,59,
5318
- 10,59,12,59,753,9,59,1,60,1,60,3,60,757,8,60,1,61,1,61,3,61,761,
5319
- 8,61,1,61,1,61,5,61,765,8,61,10,61,12,61,768,9,61,3,61,770,8,61,
5320
- 1,62,1,62,1,62,1,62,1,62,5,62,777,8,62,10,62,12,62,780,9,62,1,62,
5321
- 1,62,3,62,784,8,62,1,62,3,62,787,8,62,1,62,1,62,1,62,1,62,3,62,793,
5322
- 8,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,
5323
- 1,62,1,62,3,62,809,8,62,1,62,1,62,5,62,813,8,62,10,62,12,62,816,
5324
- 9,62,3,62,818,8,62,1,62,1,62,1,62,3,62,823,8,62,1,62,3,62,826,8,
5325
- 62,1,62,1,62,1,62,1,62,1,62,3,62,833,8,62,1,62,1,62,1,62,1,62,1,
5326
- 62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,3,
5327
- 62,852,8,62,1,62,1,62,5,62,856,8,62,10,62,12,62,859,9,62,5,62,861,
5328
- 8,62,10,62,12,62,864,9,62,1,63,1,63,1,64,1,64,1,64,1,64,3,64,872,
5329
- 8,64,1,64,1,64,3,64,876,8,64,1,65,3,65,879,8,65,1,65,1,65,1,65,3,
5330
- 65,884,8,65,1,65,5,65,887,8,65,10,65,12,65,890,9,65,1,66,1,66,1,
5331
- 66,1,67,4,67,896,8,67,11,67,12,67,897,1,68,1,68,1,68,1,68,1,68,1,
5332
- 68,3,68,906,8,68,1,69,1,69,1,69,1,69,1,69,4,69,913,8,69,11,69,12,
5333
- 69,914,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,
5334
- 70,1,70,1,70,1,70,5,70,932,8,70,10,70,12,70,935,9,70,3,70,937,8,
5335
- 70,1,70,1,70,1,70,1,70,5,70,943,8,70,10,70,12,70,946,9,70,3,70,948,
5336
- 8,70,5,70,950,8,70,10,70,12,70,953,9,70,1,70,1,70,3,70,957,8,70,
5337
- 1,71,1,71,1,71,3,71,962,8,71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,
5338
- 1,71,3,71,972,8,71,1,72,1,72,3,72,976,8,72,1,72,1,72,1,73,4,73,981,
5339
- 8,73,11,73,12,73,982,1,74,1,74,3,74,987,8,74,1,75,3,75,990,8,75,
5340
- 1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76,1001,8,76,1,76,
5341
- 1,76,1,76,1,76,1,76,1,76,3,76,1009,8,76,1,77,1,77,1,77,1,77,1,77,
5342
- 1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,
5343
- 1,77,1,77,3,77,1031,8,77,1,78,1,78,3,78,1035,8,78,3,78,1037,8,78,
5344
- 1,78,1,78,3,78,1041,8,78,1,78,1,78,3,78,1045,8,78,1,79,1,79,3,79,
5345
- 1049,8,79,1,80,1,80,1,80,5,80,1054,8,80,10,80,12,80,1057,9,80,1,
5346
- 81,1,81,1,81,1,81,1,81,1,81,3,81,1065,8,81,1,81,1,81,3,81,1069,8,
5347
- 81,1,81,1,81,1,82,3,82,1074,8,82,1,82,1,82,1,83,4,83,1079,8,83,11,
5348
- 83,12,83,1080,1,84,1,84,1,84,3,84,1086,8,84,1,85,3,85,1089,8,85,
5349
- 1,85,1,85,3,85,1093,8,85,1,85,1,85,1,86,4,86,1098,8,86,11,86,12,
5350
- 86,1099,1,86,0,2,96,124,87,0,2,4,6,8,10,12,14,16,18,20,22,24,26,
5351
- 28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,
5352
- 72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,
5353
- 112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,
5354
- 144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,0,19,
5355
- 1,0,113,114,3,0,50,50,83,83,85,85,2,0,50,50,61,61,5,0,82,82,84,84,
5356
- 86,86,89,89,94,95,1,0,86,88,2,0,82,82,84,84,1,0,80,81,1,0,76,79,
5357
- 1,0,111,112,1,0,100,110,6,0,26,26,37,37,45,45,51,51,54,54,69,69,
5358
- 1,0,5,7,2,0,52,52,55,55,5,0,9,14,30,30,46,46,58,58,62,62,2,0,16,
5359
- 16,18,22,1,0,23,24,2,0,70,71,99,99,2,0,86,86,93,93,2,0,14,14,58,
5360
- 58,1212,0,207,1,0,0,0,2,209,1,0,0,0,4,216,1,0,0,0,6,226,1,0,0,0,
5361
- 8,245,1,0,0,0,10,265,1,0,0,0,12,276,1,0,0,0,14,292,1,0,0,0,16,304,
5362
- 1,0,0,0,18,306,1,0,0,0,20,314,1,0,0,0,22,322,1,0,0,0,24,330,1,0,
5363
- 0,0,26,338,1,0,0,0,28,346,1,0,0,0,30,354,1,0,0,0,32,362,1,0,0,0,
5364
- 34,370,1,0,0,0,36,378,1,0,0,0,38,386,1,0,0,0,40,400,1,0,0,0,42,402,
5365
- 1,0,0,0,44,404,1,0,0,0,46,412,1,0,0,0,48,421,1,0,0,0,50,424,1,0,
5366
- 0,0,52,429,1,0,0,0,54,438,1,0,0,0,56,440,1,0,0,0,58,448,1,0,0,0,
5367
- 60,453,1,0,0,0,62,483,1,0,0,0,64,496,1,0,0,0,66,498,1,0,0,0,68,501,
5368
- 1,0,0,0,70,513,1,0,0,0,72,517,1,0,0,0,74,522,1,0,0,0,76,536,1,0,
5369
- 0,0,78,551,1,0,0,0,80,553,1,0,0,0,82,561,1,0,0,0,84,566,1,0,0,0,
5370
- 86,568,1,0,0,0,88,573,1,0,0,0,90,584,1,0,0,0,92,586,1,0,0,0,94,595,
5371
- 1,0,0,0,96,621,1,0,0,0,98,671,1,0,0,0,100,682,1,0,0,0,102,684,1,
5372
- 0,0,0,104,692,1,0,0,0,106,703,1,0,0,0,108,715,1,0,0,0,110,720,1,
5373
- 0,0,0,112,724,1,0,0,0,114,729,1,0,0,0,116,744,1,0,0,0,118,746,1,
5374
- 0,0,0,120,754,1,0,0,0,122,769,1,0,0,0,124,817,1,0,0,0,126,865,1,
5375
- 0,0,0,128,875,1,0,0,0,130,878,1,0,0,0,132,891,1,0,0,0,134,895,1,
5376
- 0,0,0,136,905,1,0,0,0,138,907,1,0,0,0,140,956,1,0,0,0,142,971,1,
5377
- 0,0,0,144,973,1,0,0,0,146,980,1,0,0,0,148,986,1,0,0,0,150,989,1,
5378
- 0,0,0,152,1008,1,0,0,0,154,1030,1,0,0,0,156,1036,1,0,0,0,158,1046,
5379
- 1,0,0,0,160,1050,1,0,0,0,162,1068,1,0,0,0,164,1073,1,0,0,0,166,1078,
5380
- 1,0,0,0,168,1085,1,0,0,0,170,1088,1,0,0,0,172,1097,1,0,0,0,174,208,
5381
- 5,116,0,0,175,208,5,117,0,0,176,178,5,119,0,0,177,176,1,0,0,0,178,
5365
+ 1,31,1,31,1,31,1,31,3,31,488,8,31,1,32,1,32,3,32,492,8,32,1,32,1,
5366
+ 32,1,32,1,32,1,32,1,32,1,32,3,32,501,8,32,1,33,1,33,1,34,4,34,506,
5367
+ 8,34,11,34,12,34,507,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,3,35,
5368
+ 518,8,35,1,36,1,36,3,36,522,8,36,1,36,3,36,525,8,36,1,37,1,37,1,
5369
+ 37,5,37,530,8,37,10,37,12,37,533,9,37,1,38,1,38,3,38,537,8,38,1,
5370
+ 38,1,38,3,38,541,8,38,1,39,1,39,3,39,545,8,39,1,39,1,39,1,39,3,39,
5371
+ 550,8,39,1,39,1,39,1,39,1,39,3,39,556,8,39,1,40,1,40,1,40,5,40,561,
5372
+ 8,40,10,40,12,40,564,9,40,1,41,1,41,1,41,3,41,569,8,41,1,42,1,42,
5373
+ 1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,
5374
+ 1,45,1,45,1,45,1,45,3,45,590,8,45,1,46,1,46,1,46,1,46,3,46,596,8,
5375
+ 46,1,46,1,46,1,47,3,47,601,8,47,1,47,1,47,5,47,605,8,47,10,47,12,
5376
+ 47,608,9,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,
5377
+ 48,1,48,1,48,1,48,1,48,1,48,1,48,3,48,627,8,48,1,48,1,48,1,48,3,
5378
+ 48,632,8,48,1,48,3,48,635,8,48,1,48,1,48,1,48,1,48,1,48,3,48,642,
5379
+ 8,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,
5380
+ 1,48,3,48,657,8,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,
5381
+ 1,48,3,48,669,8,48,1,48,5,48,672,8,48,10,48,12,48,675,9,48,1,49,
5382
+ 1,49,1,50,1,50,1,50,4,50,682,8,50,11,50,12,50,683,1,50,1,50,3,50,
5383
+ 688,8,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,3,52,698,8,52,1,
5384
+ 52,1,52,3,52,702,8,52,5,52,704,8,52,10,52,12,52,707,9,52,1,53,1,
5385
+ 53,1,53,3,53,712,8,53,1,53,3,53,715,8,53,1,54,1,54,3,54,719,8,54,
5386
+ 4,54,721,8,54,11,54,12,54,722,1,55,4,55,726,8,55,11,55,12,55,727,
5387
+ 1,56,1,56,1,56,3,56,733,8,56,1,57,1,57,1,57,5,57,738,8,57,10,57,
5388
+ 12,57,741,9,57,1,58,1,58,1,58,1,58,1,58,3,58,748,8,58,3,58,750,8,
5389
+ 58,1,59,1,59,1,59,5,59,755,8,59,10,59,12,59,758,9,59,1,60,1,60,3,
5390
+ 60,762,8,60,1,61,1,61,3,61,766,8,61,1,61,1,61,5,61,770,8,61,10,61,
5391
+ 12,61,773,9,61,3,61,775,8,61,1,62,1,62,1,62,1,62,1,62,5,62,782,8,
5392
+ 62,10,62,12,62,785,9,62,1,62,1,62,3,62,789,8,62,1,62,3,62,792,8,
5393
+ 62,1,62,1,62,1,62,1,62,3,62,798,8,62,1,62,1,62,1,62,1,62,1,62,1,
5394
+ 62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,3,62,814,8,62,1,62,1,
5395
+ 62,5,62,818,8,62,10,62,12,62,821,9,62,3,62,823,8,62,1,62,1,62,1,
5396
+ 62,3,62,828,8,62,1,62,3,62,831,8,62,1,62,1,62,1,62,1,62,1,62,3,62,
5397
+ 838,8,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,1,62,
5398
+ 1,62,1,62,1,62,1,62,1,62,1,62,3,62,857,8,62,1,62,1,62,5,62,861,8,
5399
+ 62,10,62,12,62,864,9,62,5,62,866,8,62,10,62,12,62,869,9,62,1,63,
5400
+ 1,63,1,64,1,64,1,64,1,64,3,64,877,8,64,1,64,1,64,3,64,881,8,64,1,
5401
+ 65,3,65,884,8,65,1,65,1,65,1,65,3,65,889,8,65,1,65,5,65,892,8,65,
5402
+ 10,65,12,65,895,9,65,1,66,1,66,1,66,1,67,4,67,901,8,67,11,67,12,
5403
+ 67,902,1,68,1,68,1,68,1,68,1,68,1,68,3,68,911,8,68,1,69,1,69,1,69,
5404
+ 1,69,1,69,4,69,918,8,69,11,69,12,69,919,1,69,1,69,1,69,1,70,1,70,
5405
+ 1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,5,70,937,8,70,
5406
+ 10,70,12,70,940,9,70,3,70,942,8,70,1,70,1,70,1,70,1,70,5,70,948,
5407
+ 8,70,10,70,12,70,951,9,70,3,70,953,8,70,5,70,955,8,70,10,70,12,70,
5408
+ 958,9,70,1,70,1,70,3,70,962,8,70,1,71,1,71,1,71,3,71,967,8,71,1,
5409
+ 71,1,71,1,71,1,71,1,71,1,71,1,71,1,71,3,71,977,8,71,1,72,1,72,3,
5410
+ 72,981,8,72,1,72,1,72,1,73,4,73,986,8,73,11,73,12,73,987,1,74,1,
5411
+ 74,3,74,992,8,74,1,75,3,75,995,8,75,1,75,1,75,1,76,1,76,1,76,1,76,
5412
+ 1,76,1,76,1,76,3,76,1006,8,76,1,76,1,76,1,76,1,76,1,76,1,76,3,76,
5413
+ 1014,8,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,
5414
+ 1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,3,77,1036,8,77,1,78,
5415
+ 1,78,3,78,1040,8,78,3,78,1042,8,78,1,78,1,78,3,78,1046,8,78,1,78,
5416
+ 1,78,3,78,1050,8,78,1,79,1,79,3,79,1054,8,79,1,80,1,80,1,80,5,80,
5417
+ 1059,8,80,10,80,12,80,1062,9,80,1,81,1,81,1,81,1,81,1,81,1,81,3,
5418
+ 81,1070,8,81,1,81,1,81,3,81,1074,8,81,1,81,1,81,1,82,3,82,1079,8,
5419
+ 82,1,82,1,82,1,83,4,83,1084,8,83,11,83,12,83,1085,1,84,1,84,1,84,
5420
+ 3,84,1091,8,84,1,85,3,85,1094,8,85,1,85,1,85,3,85,1098,8,85,1,85,
5421
+ 1,85,1,86,4,86,1103,8,86,11,86,12,86,1104,1,86,0,2,96,124,87,0,2,
5422
+ 4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,
5423
+ 50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,
5424
+ 94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,
5425
+ 128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,
5426
+ 160,162,164,166,168,170,172,0,20,1,0,122,123,3,0,59,59,92,92,94,
5427
+ 94,3,0,4,5,59,59,70,70,5,0,91,91,93,93,95,95,98,98,103,104,1,0,95,
5428
+ 97,2,0,91,91,93,93,1,0,89,90,1,0,85,88,1,0,120,121,1,0,109,119,7,
5429
+ 0,6,6,35,35,46,46,54,54,60,60,63,63,78,78,1,0,9,11,1,0,15,16,2,0,
5430
+ 61,61,64,64,5,0,17,22,39,39,55,55,67,67,71,71,2,0,25,25,27,31,1,
5431
+ 0,32,33,2,0,79,80,108,108,2,0,95,95,102,102,2,0,21,22,67,67,1222,
5432
+ 0,207,1,0,0,0,2,209,1,0,0,0,4,216,1,0,0,0,6,226,1,0,0,0,8,245,1,
5433
+ 0,0,0,10,265,1,0,0,0,12,276,1,0,0,0,14,292,1,0,0,0,16,304,1,0,0,
5434
+ 0,18,306,1,0,0,0,20,314,1,0,0,0,22,322,1,0,0,0,24,330,1,0,0,0,26,
5435
+ 338,1,0,0,0,28,346,1,0,0,0,30,354,1,0,0,0,32,362,1,0,0,0,34,370,
5436
+ 1,0,0,0,36,378,1,0,0,0,38,386,1,0,0,0,40,400,1,0,0,0,42,402,1,0,
5437
+ 0,0,44,404,1,0,0,0,46,412,1,0,0,0,48,421,1,0,0,0,50,424,1,0,0,0,
5438
+ 52,429,1,0,0,0,54,438,1,0,0,0,56,440,1,0,0,0,58,448,1,0,0,0,60,453,
5439
+ 1,0,0,0,62,487,1,0,0,0,64,500,1,0,0,0,66,502,1,0,0,0,68,505,1,0,
5440
+ 0,0,70,517,1,0,0,0,72,521,1,0,0,0,74,526,1,0,0,0,76,540,1,0,0,0,
5441
+ 78,555,1,0,0,0,80,557,1,0,0,0,82,565,1,0,0,0,84,570,1,0,0,0,86,572,
5442
+ 1,0,0,0,88,577,1,0,0,0,90,589,1,0,0,0,92,591,1,0,0,0,94,600,1,0,
5443
+ 0,0,96,626,1,0,0,0,98,676,1,0,0,0,100,687,1,0,0,0,102,689,1,0,0,
5444
+ 0,104,697,1,0,0,0,106,708,1,0,0,0,108,720,1,0,0,0,110,725,1,0,0,
5445
+ 0,112,729,1,0,0,0,114,734,1,0,0,0,116,749,1,0,0,0,118,751,1,0,0,
5446
+ 0,120,759,1,0,0,0,122,774,1,0,0,0,124,822,1,0,0,0,126,870,1,0,0,
5447
+ 0,128,880,1,0,0,0,130,883,1,0,0,0,132,896,1,0,0,0,134,900,1,0,0,
5448
+ 0,136,910,1,0,0,0,138,912,1,0,0,0,140,961,1,0,0,0,142,976,1,0,0,
5449
+ 0,144,978,1,0,0,0,146,985,1,0,0,0,148,991,1,0,0,0,150,994,1,0,0,
5450
+ 0,152,1013,1,0,0,0,154,1035,1,0,0,0,156,1041,1,0,0,0,158,1051,1,
5451
+ 0,0,0,160,1055,1,0,0,0,162,1073,1,0,0,0,164,1078,1,0,0,0,166,1083,
5452
+ 1,0,0,0,168,1090,1,0,0,0,170,1093,1,0,0,0,172,1102,1,0,0,0,174,208,
5453
+ 5,125,0,0,175,208,5,126,0,0,176,178,5,128,0,0,177,176,1,0,0,0,178,
5382
5454
  179,1,0,0,0,179,177,1,0,0,0,179,180,1,0,0,0,180,208,1,0,0,0,181,
5383
- 182,5,70,0,0,182,183,3,44,22,0,183,184,5,71,0,0,184,208,1,0,0,0,
5455
+ 182,5,79,0,0,182,183,3,44,22,0,183,184,5,80,0,0,184,208,1,0,0,0,
5384
5456
  185,208,3,2,1,0,186,188,5,1,0,0,187,186,1,0,0,0,187,188,1,0,0,0,
5385
- 188,189,1,0,0,0,189,190,5,70,0,0,190,191,3,144,72,0,191,192,5,71,
5386
- 0,0,192,208,1,0,0,0,193,194,5,2,0,0,194,195,5,70,0,0,195,196,3,12,
5387
- 6,0,196,197,5,99,0,0,197,198,3,120,60,0,198,199,5,71,0,0,199,208,
5388
- 1,0,0,0,200,201,5,3,0,0,201,202,5,70,0,0,202,203,3,120,60,0,203,
5389
- 204,5,99,0,0,204,205,3,12,6,0,205,206,5,71,0,0,206,208,1,0,0,0,207,
5390
- 174,1,0,0,0,207,175,1,0,0,0,207,177,1,0,0,0,207,181,1,0,0,0,207,
5391
- 185,1,0,0,0,207,187,1,0,0,0,207,193,1,0,0,0,207,200,1,0,0,0,208,
5392
- 1,1,0,0,0,209,210,5,65,0,0,210,211,5,70,0,0,211,212,3,40,20,0,212,
5393
- 213,5,99,0,0,213,214,3,4,2,0,214,215,5,71,0,0,215,3,1,0,0,0,216,
5394
- 221,3,6,3,0,217,218,5,99,0,0,218,220,3,6,3,0,219,217,1,0,0,0,220,
5395
- 223,1,0,0,0,221,219,1,0,0,0,221,222,1,0,0,0,222,5,1,0,0,0,223,221,
5396
- 1,0,0,0,224,227,3,120,60,0,225,227,5,32,0,0,226,224,1,0,0,0,226,
5397
- 225,1,0,0,0,227,228,1,0,0,0,228,229,5,97,0,0,229,230,3,40,20,0,230,
5398
- 7,1,0,0,0,231,246,3,0,0,0,232,234,5,1,0,0,233,232,1,0,0,0,233,234,
5399
- 1,0,0,0,234,235,1,0,0,0,235,236,5,70,0,0,236,237,3,120,60,0,237,
5400
- 238,5,71,0,0,238,239,5,74,0,0,239,241,3,130,65,0,240,242,5,99,0,
5401
- 0,241,240,1,0,0,0,241,242,1,0,0,0,242,243,1,0,0,0,243,244,5,75,0,
5402
- 0,244,246,1,0,0,0,245,231,1,0,0,0,245,233,1,0,0,0,246,262,1,0,0,
5403
- 0,247,248,5,72,0,0,248,249,3,44,22,0,249,250,5,73,0,0,250,261,1,
5404
- 0,0,0,251,253,5,70,0,0,252,254,3,10,5,0,253,252,1,0,0,0,253,254,
5405
- 1,0,0,0,254,255,1,0,0,0,255,261,5,71,0,0,256,257,7,0,0,0,257,261,
5406
- 5,116,0,0,258,261,5,83,0,0,259,261,5,85,0,0,260,247,1,0,0,0,260,
5407
- 251,1,0,0,0,260,256,1,0,0,0,260,258,1,0,0,0,260,259,1,0,0,0,261,
5408
- 264,1,0,0,0,262,260,1,0,0,0,262,263,1,0,0,0,263,9,1,0,0,0,264,262,
5409
- 1,0,0,0,265,270,3,40,20,0,266,267,5,99,0,0,267,269,3,40,20,0,268,
5410
- 266,1,0,0,0,269,272,1,0,0,0,270,268,1,0,0,0,270,271,1,0,0,0,271,
5411
- 11,1,0,0,0,272,270,1,0,0,0,273,275,7,1,0,0,274,273,1,0,0,0,275,278,
5412
- 1,0,0,0,276,274,1,0,0,0,276,277,1,0,0,0,277,290,1,0,0,0,278,276,
5413
- 1,0,0,0,279,291,3,8,4,0,280,281,3,14,7,0,281,282,3,16,8,0,282,291,
5414
- 1,0,0,0,283,284,7,2,0,0,284,285,5,70,0,0,285,286,3,120,60,0,286,
5415
- 287,5,71,0,0,287,291,1,0,0,0,288,289,5,91,0,0,289,291,5,116,0,0,
5416
- 290,279,1,0,0,0,290,280,1,0,0,0,290,283,1,0,0,0,290,288,1,0,0,0,
5417
- 291,13,1,0,0,0,292,293,7,3,0,0,293,15,1,0,0,0,294,296,5,1,0,0,295,
5418
- 294,1,0,0,0,295,296,1,0,0,0,296,297,1,0,0,0,297,298,5,70,0,0,298,
5419
- 299,3,120,60,0,299,300,5,71,0,0,300,301,3,16,8,0,301,305,1,0,0,0,
5420
- 302,305,3,12,6,0,303,305,5,118,0,0,304,295,1,0,0,0,304,302,1,0,0,
5421
- 0,304,303,1,0,0,0,305,17,1,0,0,0,306,311,3,16,8,0,307,308,7,4,0,
5422
- 0,308,310,3,16,8,0,309,307,1,0,0,0,310,313,1,0,0,0,311,309,1,0,0,
5423
- 0,311,312,1,0,0,0,312,19,1,0,0,0,313,311,1,0,0,0,314,319,3,18,9,
5424
- 0,315,316,7,5,0,0,316,318,3,18,9,0,317,315,1,0,0,0,318,321,1,0,0,
5425
- 0,319,317,1,0,0,0,319,320,1,0,0,0,320,21,1,0,0,0,321,319,1,0,0,0,
5426
- 322,327,3,20,10,0,323,324,7,6,0,0,324,326,3,20,10,0,325,323,1,0,
5427
- 0,0,326,329,1,0,0,0,327,325,1,0,0,0,327,328,1,0,0,0,328,23,1,0,0,
5428
- 0,329,327,1,0,0,0,330,335,3,22,11,0,331,332,7,7,0,0,332,334,3,22,
5429
- 11,0,333,331,1,0,0,0,334,337,1,0,0,0,335,333,1,0,0,0,335,336,1,0,
5430
- 0,0,336,25,1,0,0,0,337,335,1,0,0,0,338,343,3,24,12,0,339,340,7,8,
5431
- 0,0,340,342,3,24,12,0,341,339,1,0,0,0,342,345,1,0,0,0,343,341,1,
5432
- 0,0,0,343,344,1,0,0,0,344,27,1,0,0,0,345,343,1,0,0,0,346,351,3,26,
5433
- 13,0,347,348,5,89,0,0,348,350,3,26,13,0,349,347,1,0,0,0,350,353,
5457
+ 188,189,1,0,0,0,189,190,5,79,0,0,190,191,3,144,72,0,191,192,5,80,
5458
+ 0,0,192,208,1,0,0,0,193,194,5,2,0,0,194,195,5,79,0,0,195,196,3,12,
5459
+ 6,0,196,197,5,108,0,0,197,198,3,120,60,0,198,199,5,80,0,0,199,208,
5460
+ 1,0,0,0,200,201,5,3,0,0,201,202,5,79,0,0,202,203,3,120,60,0,203,
5461
+ 204,5,108,0,0,204,205,3,12,6,0,205,206,5,80,0,0,206,208,1,0,0,0,
5462
+ 207,174,1,0,0,0,207,175,1,0,0,0,207,177,1,0,0,0,207,181,1,0,0,0,
5463
+ 207,185,1,0,0,0,207,187,1,0,0,0,207,193,1,0,0,0,207,200,1,0,0,0,
5464
+ 208,1,1,0,0,0,209,210,5,74,0,0,210,211,5,79,0,0,211,212,3,40,20,
5465
+ 0,212,213,5,108,0,0,213,214,3,4,2,0,214,215,5,80,0,0,215,3,1,0,0,
5466
+ 0,216,221,3,6,3,0,217,218,5,108,0,0,218,220,3,6,3,0,219,217,1,0,
5467
+ 0,0,220,223,1,0,0,0,221,219,1,0,0,0,221,222,1,0,0,0,222,5,1,0,0,
5468
+ 0,223,221,1,0,0,0,224,227,3,120,60,0,225,227,5,41,0,0,226,224,1,
5469
+ 0,0,0,226,225,1,0,0,0,227,228,1,0,0,0,228,229,5,106,0,0,229,230,
5470
+ 3,40,20,0,230,7,1,0,0,0,231,246,3,0,0,0,232,234,5,1,0,0,233,232,
5471
+ 1,0,0,0,233,234,1,0,0,0,234,235,1,0,0,0,235,236,5,79,0,0,236,237,
5472
+ 3,120,60,0,237,238,5,80,0,0,238,239,5,83,0,0,239,241,3,130,65,0,
5473
+ 240,242,5,108,0,0,241,240,1,0,0,0,241,242,1,0,0,0,242,243,1,0,0,
5474
+ 0,243,244,5,84,0,0,244,246,1,0,0,0,245,231,1,0,0,0,245,233,1,0,0,
5475
+ 0,246,262,1,0,0,0,247,248,5,81,0,0,248,249,3,44,22,0,249,250,5,82,
5476
+ 0,0,250,261,1,0,0,0,251,253,5,79,0,0,252,254,3,10,5,0,253,252,1,
5477
+ 0,0,0,253,254,1,0,0,0,254,255,1,0,0,0,255,261,5,80,0,0,256,257,7,
5478
+ 0,0,0,257,261,5,125,0,0,258,261,5,92,0,0,259,261,5,94,0,0,260,247,
5479
+ 1,0,0,0,260,251,1,0,0,0,260,256,1,0,0,0,260,258,1,0,0,0,260,259,
5480
+ 1,0,0,0,261,264,1,0,0,0,262,260,1,0,0,0,262,263,1,0,0,0,263,9,1,
5481
+ 0,0,0,264,262,1,0,0,0,265,270,3,40,20,0,266,267,5,108,0,0,267,269,
5482
+ 3,40,20,0,268,266,1,0,0,0,269,272,1,0,0,0,270,268,1,0,0,0,270,271,
5483
+ 1,0,0,0,271,11,1,0,0,0,272,270,1,0,0,0,273,275,7,1,0,0,274,273,1,
5484
+ 0,0,0,275,278,1,0,0,0,276,274,1,0,0,0,276,277,1,0,0,0,277,290,1,
5485
+ 0,0,0,278,276,1,0,0,0,279,291,3,8,4,0,280,281,3,14,7,0,281,282,3,
5486
+ 16,8,0,282,291,1,0,0,0,283,284,7,2,0,0,284,285,5,79,0,0,285,286,
5487
+ 3,120,60,0,286,287,5,80,0,0,287,291,1,0,0,0,288,289,5,100,0,0,289,
5488
+ 291,5,125,0,0,290,279,1,0,0,0,290,280,1,0,0,0,290,283,1,0,0,0,290,
5489
+ 288,1,0,0,0,291,13,1,0,0,0,292,293,7,3,0,0,293,15,1,0,0,0,294,296,
5490
+ 5,1,0,0,295,294,1,0,0,0,295,296,1,0,0,0,296,297,1,0,0,0,297,298,
5491
+ 5,79,0,0,298,299,3,120,60,0,299,300,5,80,0,0,300,301,3,16,8,0,301,
5492
+ 305,1,0,0,0,302,305,3,12,6,0,303,305,5,127,0,0,304,295,1,0,0,0,304,
5493
+ 302,1,0,0,0,304,303,1,0,0,0,305,17,1,0,0,0,306,311,3,16,8,0,307,
5494
+ 308,7,4,0,0,308,310,3,16,8,0,309,307,1,0,0,0,310,313,1,0,0,0,311,
5495
+ 309,1,0,0,0,311,312,1,0,0,0,312,19,1,0,0,0,313,311,1,0,0,0,314,319,
5496
+ 3,18,9,0,315,316,7,5,0,0,316,318,3,18,9,0,317,315,1,0,0,0,318,321,
5497
+ 1,0,0,0,319,317,1,0,0,0,319,320,1,0,0,0,320,21,1,0,0,0,321,319,1,
5498
+ 0,0,0,322,327,3,20,10,0,323,324,7,6,0,0,324,326,3,20,10,0,325,323,
5499
+ 1,0,0,0,326,329,1,0,0,0,327,325,1,0,0,0,327,328,1,0,0,0,328,23,1,
5500
+ 0,0,0,329,327,1,0,0,0,330,335,3,22,11,0,331,332,7,7,0,0,332,334,
5501
+ 3,22,11,0,333,331,1,0,0,0,334,337,1,0,0,0,335,333,1,0,0,0,335,336,
5502
+ 1,0,0,0,336,25,1,0,0,0,337,335,1,0,0,0,338,343,3,24,12,0,339,340,
5503
+ 7,8,0,0,340,342,3,24,12,0,341,339,1,0,0,0,342,345,1,0,0,0,343,341,
5504
+ 1,0,0,0,343,344,1,0,0,0,344,27,1,0,0,0,345,343,1,0,0,0,346,351,3,
5505
+ 26,13,0,347,348,5,98,0,0,348,350,3,26,13,0,349,347,1,0,0,0,350,353,
5434
5506
  1,0,0,0,351,349,1,0,0,0,351,352,1,0,0,0,352,29,1,0,0,0,353,351,1,
5435
- 0,0,0,354,359,3,28,14,0,355,356,5,93,0,0,356,358,3,28,14,0,357,355,
5436
- 1,0,0,0,358,361,1,0,0,0,359,357,1,0,0,0,359,360,1,0,0,0,360,31,1,
5437
- 0,0,0,361,359,1,0,0,0,362,367,3,30,15,0,363,364,5,90,0,0,364,366,
5438
- 3,30,15,0,365,363,1,0,0,0,366,369,1,0,0,0,367,365,1,0,0,0,367,368,
5439
- 1,0,0,0,368,33,1,0,0,0,369,367,1,0,0,0,370,375,3,32,16,0,371,372,
5440
- 5,91,0,0,372,374,3,32,16,0,373,371,1,0,0,0,374,377,1,0,0,0,375,373,
5441
- 1,0,0,0,375,376,1,0,0,0,376,35,1,0,0,0,377,375,1,0,0,0,378,383,3,
5442
- 34,17,0,379,380,5,92,0,0,380,382,3,34,17,0,381,379,1,0,0,0,382,385,
5443
- 1,0,0,0,383,381,1,0,0,0,383,384,1,0,0,0,384,37,1,0,0,0,385,383,1,
5444
- 0,0,0,386,392,3,36,18,0,387,388,5,96,0,0,388,389,3,44,22,0,389,390,
5445
- 5,97,0,0,390,391,3,38,19,0,391,393,1,0,0,0,392,387,1,0,0,0,392,393,
5446
- 1,0,0,0,393,39,1,0,0,0,394,401,3,38,19,0,395,396,3,12,6,0,396,397,
5447
- 3,42,21,0,397,398,3,40,20,0,398,401,1,0,0,0,399,401,5,118,0,0,400,
5448
- 394,1,0,0,0,400,395,1,0,0,0,400,399,1,0,0,0,401,41,1,0,0,0,402,403,
5449
- 7,9,0,0,403,43,1,0,0,0,404,409,3,40,20,0,405,406,5,99,0,0,406,408,
5450
- 3,40,20,0,407,405,1,0,0,0,408,411,1,0,0,0,409,407,1,0,0,0,409,410,
5451
- 1,0,0,0,410,45,1,0,0,0,411,409,1,0,0,0,412,413,3,38,19,0,413,47,
5452
- 1,0,0,0,414,416,3,50,25,0,415,417,3,56,28,0,416,415,1,0,0,0,416,
5453
- 417,1,0,0,0,417,418,1,0,0,0,418,419,5,98,0,0,419,422,1,0,0,0,420,
5454
- 422,3,138,69,0,421,414,1,0,0,0,421,420,1,0,0,0,422,49,1,0,0,0,423,
5455
- 425,3,54,27,0,424,423,1,0,0,0,425,426,1,0,0,0,426,424,1,0,0,0,426,
5456
- 427,1,0,0,0,427,51,1,0,0,0,428,430,3,54,27,0,429,428,1,0,0,0,430,
5457
- 431,1,0,0,0,431,429,1,0,0,0,431,432,1,0,0,0,432,53,1,0,0,0,433,439,
5458
- 3,60,30,0,434,439,3,62,31,0,435,439,3,88,44,0,436,439,3,90,45,0,
5459
- 437,439,3,92,46,0,438,433,1,0,0,0,438,434,1,0,0,0,438,435,1,0,0,
5460
- 0,438,436,1,0,0,0,438,437,1,0,0,0,439,55,1,0,0,0,440,445,3,58,29,
5461
- 0,441,442,5,99,0,0,442,444,3,58,29,0,443,441,1,0,0,0,444,447,1,0,
5462
- 0,0,445,443,1,0,0,0,445,446,1,0,0,0,446,57,1,0,0,0,447,445,1,0,0,
5463
- 0,448,451,3,94,47,0,449,450,5,100,0,0,450,452,3,128,64,0,451,449,
5464
- 1,0,0,0,451,452,1,0,0,0,452,59,1,0,0,0,453,454,7,10,0,0,454,61,1,
5465
- 0,0,0,455,484,5,57,0,0,456,484,5,29,0,0,457,484,5,48,0,0,458,484,
5466
- 5,43,0,0,459,484,5,44,0,0,460,484,5,38,0,0,461,484,5,34,0,0,462,
5467
- 484,5,49,0,0,463,484,5,4,0,0,464,484,5,56,0,0,465,484,5,63,0,0,466,
5468
- 484,5,64,0,0,467,484,5,5,0,0,468,484,5,6,0,0,469,484,5,7,0,0,470,
5469
- 471,5,1,0,0,471,472,5,70,0,0,472,473,7,11,0,0,473,484,5,71,0,0,474,
5470
- 484,3,86,43,0,475,484,3,64,32,0,476,484,3,78,39,0,477,484,3,126,
5471
- 63,0,478,479,5,8,0,0,479,480,5,70,0,0,480,481,3,46,23,0,481,482,
5472
- 5,71,0,0,482,484,1,0,0,0,483,455,1,0,0,0,483,456,1,0,0,0,483,457,
5473
- 1,0,0,0,483,458,1,0,0,0,483,459,1,0,0,0,483,460,1,0,0,0,483,461,
5474
- 1,0,0,0,483,462,1,0,0,0,483,463,1,0,0,0,483,464,1,0,0,0,483,465,
5475
- 1,0,0,0,483,466,1,0,0,0,483,467,1,0,0,0,483,468,1,0,0,0,483,469,
5476
- 1,0,0,0,483,470,1,0,0,0,483,474,1,0,0,0,483,475,1,0,0,0,483,476,
5477
- 1,0,0,0,483,477,1,0,0,0,483,478,1,0,0,0,484,63,1,0,0,0,485,487,3,
5478
- 66,33,0,486,488,5,116,0,0,487,486,1,0,0,0,487,488,1,0,0,0,488,489,
5479
- 1,0,0,0,489,490,5,74,0,0,490,491,3,68,34,0,491,492,5,75,0,0,492,
5480
- 497,1,0,0,0,493,494,3,66,33,0,494,495,5,116,0,0,495,497,1,0,0,0,
5481
- 496,485,1,0,0,0,496,493,1,0,0,0,497,65,1,0,0,0,498,499,7,12,0,0,
5482
- 499,67,1,0,0,0,500,502,3,70,35,0,501,500,1,0,0,0,502,503,1,0,0,0,
5483
- 503,501,1,0,0,0,503,504,1,0,0,0,504,69,1,0,0,0,505,506,3,72,36,0,
5484
- 506,507,3,74,37,0,507,508,5,98,0,0,508,514,1,0,0,0,509,510,3,72,
5485
- 36,0,510,511,5,98,0,0,511,514,1,0,0,0,512,514,3,138,69,0,513,505,
5486
- 1,0,0,0,513,509,1,0,0,0,513,512,1,0,0,0,514,71,1,0,0,0,515,518,3,
5487
- 62,31,0,516,518,3,88,44,0,517,515,1,0,0,0,517,516,1,0,0,0,518,520,
5488
- 1,0,0,0,519,521,3,72,36,0,520,519,1,0,0,0,520,521,1,0,0,0,521,73,
5489
- 1,0,0,0,522,527,3,76,38,0,523,524,5,99,0,0,524,526,3,76,38,0,525,
5490
- 523,1,0,0,0,526,529,1,0,0,0,527,525,1,0,0,0,527,528,1,0,0,0,528,
5491
- 75,1,0,0,0,529,527,1,0,0,0,530,537,3,94,47,0,531,533,3,94,47,0,532,
5492
- 531,1,0,0,0,532,533,1,0,0,0,533,534,1,0,0,0,534,535,5,97,0,0,535,
5493
- 537,3,46,23,0,536,530,1,0,0,0,536,532,1,0,0,0,537,77,1,0,0,0,538,
5494
- 540,5,36,0,0,539,541,5,116,0,0,540,539,1,0,0,0,540,541,1,0,0,0,541,
5495
- 542,1,0,0,0,542,543,5,74,0,0,543,545,3,80,40,0,544,546,5,99,0,0,
5496
- 545,544,1,0,0,0,545,546,1,0,0,0,546,547,1,0,0,0,547,548,5,75,0,0,
5497
- 548,552,1,0,0,0,549,550,5,36,0,0,550,552,5,116,0,0,551,538,1,0,0,
5498
- 0,551,549,1,0,0,0,552,79,1,0,0,0,553,558,3,82,41,0,554,555,5,99,
5499
- 0,0,555,557,3,82,41,0,556,554,1,0,0,0,557,560,1,0,0,0,558,556,1,
5500
- 0,0,0,558,559,1,0,0,0,559,81,1,0,0,0,560,558,1,0,0,0,561,564,3,84,
5501
- 42,0,562,563,5,100,0,0,563,565,3,46,23,0,564,562,1,0,0,0,564,565,
5502
- 1,0,0,0,565,83,1,0,0,0,566,567,5,116,0,0,567,85,1,0,0,0,568,569,
5503
- 5,62,0,0,569,570,5,70,0,0,570,571,3,120,60,0,571,572,5,71,0,0,572,
5504
- 87,1,0,0,0,573,574,7,13,0,0,574,89,1,0,0,0,575,585,5,42,0,0,576,
5505
- 585,5,67,0,0,577,585,5,15,0,0,578,585,5,16,0,0,579,585,3,102,51,
5506
- 0,580,581,5,17,0,0,581,582,5,70,0,0,582,583,5,116,0,0,583,585,5,
5507
- 71,0,0,584,575,1,0,0,0,584,576,1,0,0,0,584,577,1,0,0,0,584,578,1,
5508
- 0,0,0,584,579,1,0,0,0,584,580,1,0,0,0,585,91,1,0,0,0,586,587,5,60,
5509
- 0,0,587,590,5,70,0,0,588,591,3,120,60,0,589,591,3,46,23,0,590,588,
5510
- 1,0,0,0,590,589,1,0,0,0,591,592,1,0,0,0,592,593,5,71,0,0,593,93,
5511
- 1,0,0,0,594,596,3,108,54,0,595,594,1,0,0,0,595,596,1,0,0,0,596,597,
5512
- 1,0,0,0,597,601,3,96,48,0,598,600,3,100,50,0,599,598,1,0,0,0,600,
5513
- 603,1,0,0,0,601,599,1,0,0,0,601,602,1,0,0,0,602,95,1,0,0,0,603,601,
5514
- 1,0,0,0,604,605,6,48,-1,0,605,622,5,116,0,0,606,607,5,70,0,0,607,
5515
- 608,3,94,47,0,608,609,5,71,0,0,609,622,1,0,0,0,610,611,5,116,0,0,
5516
- 611,612,5,97,0,0,612,622,5,118,0,0,613,614,3,98,49,0,614,615,5,116,
5517
- 0,0,615,622,1,0,0,0,616,617,5,70,0,0,617,618,3,98,49,0,618,619,3,
5518
- 94,47,0,619,620,5,71,0,0,620,622,1,0,0,0,621,604,1,0,0,0,621,606,
5519
- 1,0,0,0,621,610,1,0,0,0,621,613,1,0,0,0,621,616,1,0,0,0,622,668,
5520
- 1,0,0,0,623,624,10,9,0,0,624,626,5,72,0,0,625,627,3,110,55,0,626,
5521
- 625,1,0,0,0,626,627,1,0,0,0,627,629,1,0,0,0,628,630,3,40,20,0,629,
5522
- 628,1,0,0,0,629,630,1,0,0,0,630,631,1,0,0,0,631,667,5,73,0,0,632,
5523
- 633,10,8,0,0,633,634,5,72,0,0,634,636,5,51,0,0,635,637,3,110,55,
5524
- 0,636,635,1,0,0,0,636,637,1,0,0,0,637,638,1,0,0,0,638,639,3,40,20,
5525
- 0,639,640,5,73,0,0,640,667,1,0,0,0,641,642,10,7,0,0,642,643,5,72,
5526
- 0,0,643,644,3,110,55,0,644,645,5,51,0,0,645,646,3,40,20,0,646,647,
5527
- 5,73,0,0,647,667,1,0,0,0,648,649,10,6,0,0,649,651,5,72,0,0,650,652,
5528
- 3,110,55,0,651,650,1,0,0,0,651,652,1,0,0,0,652,653,1,0,0,0,653,654,
5529
- 5,86,0,0,654,667,5,73,0,0,655,656,10,5,0,0,656,657,5,70,0,0,657,
5530
- 658,3,112,56,0,658,659,5,71,0,0,659,667,1,0,0,0,660,661,10,4,0,0,
5531
- 661,663,5,70,0,0,662,664,3,118,59,0,663,662,1,0,0,0,663,664,1,0,
5532
- 0,0,664,665,1,0,0,0,665,667,5,71,0,0,666,623,1,0,0,0,666,632,1,0,
5533
- 0,0,666,641,1,0,0,0,666,648,1,0,0,0,666,655,1,0,0,0,666,660,1,0,
5534
- 0,0,667,670,1,0,0,0,668,666,1,0,0,0,668,669,1,0,0,0,669,97,1,0,0,
5535
- 0,670,668,1,0,0,0,671,672,7,14,0,0,672,99,1,0,0,0,673,674,7,15,0,
5536
- 0,674,676,5,70,0,0,675,677,5,119,0,0,676,675,1,0,0,0,677,678,1,0,
5537
- 0,0,678,676,1,0,0,0,678,679,1,0,0,0,679,680,1,0,0,0,680,683,5,71,
5538
- 0,0,681,683,3,102,51,0,682,673,1,0,0,0,682,681,1,0,0,0,683,101,1,
5539
- 0,0,0,684,685,5,25,0,0,685,686,5,70,0,0,686,687,5,70,0,0,687,688,
5540
- 3,104,52,0,688,689,5,71,0,0,689,690,5,71,0,0,690,103,1,0,0,0,691,
5541
- 693,3,106,53,0,692,691,1,0,0,0,692,693,1,0,0,0,693,700,1,0,0,0,694,
5542
- 696,5,99,0,0,695,697,3,106,53,0,696,695,1,0,0,0,696,697,1,0,0,0,
5543
- 697,699,1,0,0,0,698,694,1,0,0,0,699,702,1,0,0,0,700,698,1,0,0,0,
5544
- 700,701,1,0,0,0,701,105,1,0,0,0,702,700,1,0,0,0,703,709,8,16,0,0,
5545
- 704,706,5,70,0,0,705,707,3,10,5,0,706,705,1,0,0,0,706,707,1,0,0,
5546
- 0,707,708,1,0,0,0,708,710,5,71,0,0,709,704,1,0,0,0,709,710,1,0,0,
5547
- 0,710,107,1,0,0,0,711,713,7,17,0,0,712,714,3,110,55,0,713,712,1,
5548
- 0,0,0,713,714,1,0,0,0,714,716,1,0,0,0,715,711,1,0,0,0,716,717,1,
5549
- 0,0,0,717,715,1,0,0,0,717,718,1,0,0,0,718,109,1,0,0,0,719,721,3,
5550
- 88,44,0,720,719,1,0,0,0,721,722,1,0,0,0,722,720,1,0,0,0,722,723,
5551
- 1,0,0,0,723,111,1,0,0,0,724,727,3,114,57,0,725,726,5,99,0,0,726,
5552
- 728,5,115,0,0,727,725,1,0,0,0,727,728,1,0,0,0,728,113,1,0,0,0,729,
5553
- 734,3,116,58,0,730,731,5,99,0,0,731,733,3,116,58,0,732,730,1,0,0,
5554
- 0,733,736,1,0,0,0,734,732,1,0,0,0,734,735,1,0,0,0,735,115,1,0,0,
5555
- 0,736,734,1,0,0,0,737,738,3,50,25,0,738,739,3,94,47,0,739,745,1,
5556
- 0,0,0,740,742,3,52,26,0,741,743,3,122,61,0,742,741,1,0,0,0,742,743,
5557
- 1,0,0,0,743,745,1,0,0,0,744,737,1,0,0,0,744,740,1,0,0,0,745,117,
5558
- 1,0,0,0,746,751,5,116,0,0,747,748,5,99,0,0,748,750,5,116,0,0,749,
5559
- 747,1,0,0,0,750,753,1,0,0,0,751,749,1,0,0,0,751,752,1,0,0,0,752,
5560
- 119,1,0,0,0,753,751,1,0,0,0,754,756,3,72,36,0,755,757,3,122,61,0,
5561
- 756,755,1,0,0,0,756,757,1,0,0,0,757,121,1,0,0,0,758,770,3,108,54,
5562
- 0,759,761,3,108,54,0,760,759,1,0,0,0,760,761,1,0,0,0,761,762,1,0,
5563
- 0,0,762,766,3,124,62,0,763,765,3,100,50,0,764,763,1,0,0,0,765,768,
5564
- 1,0,0,0,766,764,1,0,0,0,766,767,1,0,0,0,767,770,1,0,0,0,768,766,
5565
- 1,0,0,0,769,758,1,0,0,0,769,760,1,0,0,0,770,123,1,0,0,0,771,772,
5566
- 6,62,-1,0,772,773,5,70,0,0,773,774,3,122,61,0,774,778,5,71,0,0,775,
5567
- 777,3,100,50,0,776,775,1,0,0,0,777,780,1,0,0,0,778,776,1,0,0,0,778,
5568
- 779,1,0,0,0,779,818,1,0,0,0,780,778,1,0,0,0,781,783,5,72,0,0,782,
5569
- 784,3,110,55,0,783,782,1,0,0,0,783,784,1,0,0,0,784,786,1,0,0,0,785,
5570
- 787,3,40,20,0,786,785,1,0,0,0,786,787,1,0,0,0,787,788,1,0,0,0,788,
5571
- 818,5,73,0,0,789,790,5,72,0,0,790,792,5,51,0,0,791,793,3,110,55,
5572
- 0,792,791,1,0,0,0,792,793,1,0,0,0,793,794,1,0,0,0,794,795,3,40,20,
5573
- 0,795,796,5,73,0,0,796,818,1,0,0,0,797,798,5,72,0,0,798,799,3,110,
5574
- 55,0,799,800,5,51,0,0,800,801,3,40,20,0,801,802,5,73,0,0,802,818,
5575
- 1,0,0,0,803,804,5,72,0,0,804,805,5,86,0,0,805,818,5,73,0,0,806,808,
5576
- 5,70,0,0,807,809,3,112,56,0,808,807,1,0,0,0,808,809,1,0,0,0,809,
5577
- 810,1,0,0,0,810,814,5,71,0,0,811,813,3,100,50,0,812,811,1,0,0,0,
5578
- 813,816,1,0,0,0,814,812,1,0,0,0,814,815,1,0,0,0,815,818,1,0,0,0,
5579
- 816,814,1,0,0,0,817,771,1,0,0,0,817,781,1,0,0,0,817,789,1,0,0,0,
5580
- 817,797,1,0,0,0,817,803,1,0,0,0,817,806,1,0,0,0,818,862,1,0,0,0,
5581
- 819,820,10,5,0,0,820,822,5,72,0,0,821,823,3,110,55,0,822,821,1,0,
5582
- 0,0,822,823,1,0,0,0,823,825,1,0,0,0,824,826,3,40,20,0,825,824,1,
5583
- 0,0,0,825,826,1,0,0,0,826,827,1,0,0,0,827,861,5,73,0,0,828,829,10,
5584
- 4,0,0,829,830,5,72,0,0,830,832,5,51,0,0,831,833,3,110,55,0,832,831,
5585
- 1,0,0,0,832,833,1,0,0,0,833,834,1,0,0,0,834,835,3,40,20,0,835,836,
5586
- 5,73,0,0,836,861,1,0,0,0,837,838,10,3,0,0,838,839,5,72,0,0,839,840,
5587
- 3,110,55,0,840,841,5,51,0,0,841,842,3,40,20,0,842,843,5,73,0,0,843,
5588
- 861,1,0,0,0,844,845,10,2,0,0,845,846,5,72,0,0,846,847,5,86,0,0,847,
5589
- 861,5,73,0,0,848,849,10,1,0,0,849,851,5,70,0,0,850,852,3,112,56,
5590
- 0,851,850,1,0,0,0,851,852,1,0,0,0,852,853,1,0,0,0,853,857,5,71,0,
5591
- 0,854,856,3,100,50,0,855,854,1,0,0,0,856,859,1,0,0,0,857,855,1,0,
5592
- 0,0,857,858,1,0,0,0,858,861,1,0,0,0,859,857,1,0,0,0,860,819,1,0,
5593
- 0,0,860,828,1,0,0,0,860,837,1,0,0,0,860,844,1,0,0,0,860,848,1,0,
5594
- 0,0,861,864,1,0,0,0,862,860,1,0,0,0,862,863,1,0,0,0,863,125,1,0,
5595
- 0,0,864,862,1,0,0,0,865,866,5,116,0,0,866,127,1,0,0,0,867,876,3,
5596
- 40,20,0,868,869,5,74,0,0,869,871,3,130,65,0,870,872,5,99,0,0,871,
5597
- 870,1,0,0,0,871,872,1,0,0,0,872,873,1,0,0,0,873,874,5,75,0,0,874,
5598
- 876,1,0,0,0,875,867,1,0,0,0,875,868,1,0,0,0,876,129,1,0,0,0,877,
5599
- 879,3,132,66,0,878,877,1,0,0,0,878,879,1,0,0,0,879,880,1,0,0,0,880,
5600
- 888,3,128,64,0,881,883,5,99,0,0,882,884,3,132,66,0,883,882,1,0,0,
5601
- 0,883,884,1,0,0,0,884,885,1,0,0,0,885,887,3,128,64,0,886,881,1,0,
5602
- 0,0,887,890,1,0,0,0,888,886,1,0,0,0,888,889,1,0,0,0,889,131,1,0,
5603
- 0,0,890,888,1,0,0,0,891,892,3,134,67,0,892,893,5,100,0,0,893,133,
5604
- 1,0,0,0,894,896,3,136,68,0,895,894,1,0,0,0,896,897,1,0,0,0,897,895,
5605
- 1,0,0,0,897,898,1,0,0,0,898,135,1,0,0,0,899,900,5,72,0,0,900,901,
5606
- 3,46,23,0,901,902,5,73,0,0,902,906,1,0,0,0,903,904,5,114,0,0,904,
5607
- 906,5,116,0,0,905,899,1,0,0,0,905,903,1,0,0,0,906,137,1,0,0,0,907,
5608
- 908,5,68,0,0,908,909,5,70,0,0,909,910,3,46,23,0,910,912,5,99,0,0,
5609
- 911,913,5,119,0,0,912,911,1,0,0,0,913,914,1,0,0,0,914,912,1,0,0,
5610
- 0,914,915,1,0,0,0,915,916,1,0,0,0,916,917,5,71,0,0,917,918,5,98,
5611
- 0,0,918,139,1,0,0,0,919,957,3,142,71,0,920,957,3,144,72,0,921,957,
5612
- 3,150,75,0,922,957,3,152,76,0,923,957,3,154,77,0,924,957,3,162,81,
5613
- 0,925,926,7,15,0,0,926,927,7,18,0,0,927,936,5,70,0,0,928,933,3,36,
5614
- 18,0,929,930,5,99,0,0,930,932,3,36,18,0,931,929,1,0,0,0,932,935,
5615
- 1,0,0,0,933,931,1,0,0,0,933,934,1,0,0,0,934,937,1,0,0,0,935,933,
5616
- 1,0,0,0,936,928,1,0,0,0,936,937,1,0,0,0,937,951,1,0,0,0,938,947,
5617
- 5,97,0,0,939,944,3,36,18,0,940,941,5,99,0,0,941,943,3,36,18,0,942,
5618
- 940,1,0,0,0,943,946,1,0,0,0,944,942,1,0,0,0,944,945,1,0,0,0,945,
5619
- 948,1,0,0,0,946,944,1,0,0,0,947,939,1,0,0,0,947,948,1,0,0,0,948,
5620
- 950,1,0,0,0,949,938,1,0,0,0,950,953,1,0,0,0,951,949,1,0,0,0,951,
5621
- 952,1,0,0,0,952,954,1,0,0,0,953,951,1,0,0,0,954,955,5,71,0,0,955,
5622
- 957,5,98,0,0,956,919,1,0,0,0,956,920,1,0,0,0,956,921,1,0,0,0,956,
5623
- 922,1,0,0,0,956,923,1,0,0,0,956,924,1,0,0,0,956,925,1,0,0,0,957,
5624
- 141,1,0,0,0,958,959,5,116,0,0,959,961,5,97,0,0,960,962,3,140,70,
5625
- 0,961,960,1,0,0,0,961,962,1,0,0,0,962,972,1,0,0,0,963,964,5,28,0,
5626
- 0,964,965,3,46,23,0,965,966,5,97,0,0,966,967,3,140,70,0,967,972,
5627
- 1,0,0,0,968,969,5,32,0,0,969,970,5,97,0,0,970,972,3,140,70,0,971,
5628
- 958,1,0,0,0,971,963,1,0,0,0,971,968,1,0,0,0,972,143,1,0,0,0,973,
5629
- 975,5,74,0,0,974,976,3,146,73,0,975,974,1,0,0,0,975,976,1,0,0,0,
5630
- 976,977,1,0,0,0,977,978,5,75,0,0,978,145,1,0,0,0,979,981,3,148,74,
5631
- 0,980,979,1,0,0,0,981,982,1,0,0,0,982,980,1,0,0,0,982,983,1,0,0,
5632
- 0,983,147,1,0,0,0,984,987,3,140,70,0,985,987,3,48,24,0,986,984,1,
5633
- 0,0,0,986,985,1,0,0,0,987,149,1,0,0,0,988,990,3,44,22,0,989,988,
5634
- 1,0,0,0,989,990,1,0,0,0,990,991,1,0,0,0,991,992,5,98,0,0,992,151,
5635
- 1,0,0,0,993,994,5,41,0,0,994,995,5,70,0,0,995,996,3,44,22,0,996,
5636
- 997,5,71,0,0,997,1000,3,140,70,0,998,999,5,35,0,0,999,1001,3,140,
5637
- 70,0,1000,998,1,0,0,0,1000,1001,1,0,0,0,1001,1009,1,0,0,0,1002,1003,
5638
- 5,53,0,0,1003,1004,5,70,0,0,1004,1005,3,44,22,0,1005,1006,5,71,0,
5639
- 0,1006,1007,3,140,70,0,1007,1009,1,0,0,0,1008,993,1,0,0,0,1008,1002,
5640
- 1,0,0,0,1009,153,1,0,0,0,1010,1011,5,59,0,0,1011,1012,5,70,0,0,1012,
5641
- 1013,3,44,22,0,1013,1014,5,71,0,0,1014,1015,3,140,70,0,1015,1031,
5642
- 1,0,0,0,1016,1017,5,33,0,0,1017,1018,3,140,70,0,1018,1019,5,59,0,
5643
- 0,1019,1020,5,70,0,0,1020,1021,3,44,22,0,1021,1022,5,71,0,0,1022,
5644
- 1023,5,98,0,0,1023,1031,1,0,0,0,1024,1025,5,39,0,0,1025,1026,5,70,
5645
- 0,0,1026,1027,3,156,78,0,1027,1028,5,71,0,0,1028,1029,3,140,70,0,
5646
- 1029,1031,1,0,0,0,1030,1010,1,0,0,0,1030,1016,1,0,0,0,1030,1024,
5647
- 1,0,0,0,1031,155,1,0,0,0,1032,1037,3,158,79,0,1033,1035,3,44,22,
5648
- 0,1034,1033,1,0,0,0,1034,1035,1,0,0,0,1035,1037,1,0,0,0,1036,1032,
5649
- 1,0,0,0,1036,1034,1,0,0,0,1037,1038,1,0,0,0,1038,1040,5,98,0,0,1039,
5650
- 1041,3,160,80,0,1040,1039,1,0,0,0,1040,1041,1,0,0,0,1041,1042,1,
5651
- 0,0,0,1042,1044,5,98,0,0,1043,1045,3,160,80,0,1044,1043,1,0,0,0,
5652
- 1044,1045,1,0,0,0,1045,157,1,0,0,0,1046,1048,3,50,25,0,1047,1049,
5653
- 3,56,28,0,1048,1047,1,0,0,0,1048,1049,1,0,0,0,1049,159,1,0,0,0,1050,
5654
- 1055,3,40,20,0,1051,1052,5,99,0,0,1052,1054,3,40,20,0,1053,1051,
5655
- 1,0,0,0,1054,1057,1,0,0,0,1055,1053,1,0,0,0,1055,1056,1,0,0,0,1056,
5656
- 161,1,0,0,0,1057,1055,1,0,0,0,1058,1059,5,40,0,0,1059,1069,5,116,
5657
- 0,0,1060,1069,5,31,0,0,1061,1069,5,27,0,0,1062,1064,5,47,0,0,1063,
5658
- 1065,3,44,22,0,1064,1063,1,0,0,0,1064,1065,1,0,0,0,1065,1069,1,0,
5659
- 0,0,1066,1067,5,40,0,0,1067,1069,3,12,6,0,1068,1058,1,0,0,0,1068,
5660
- 1060,1,0,0,0,1068,1061,1,0,0,0,1068,1062,1,0,0,0,1068,1066,1,0,0,
5661
- 0,1069,1070,1,0,0,0,1070,1071,5,98,0,0,1071,163,1,0,0,0,1072,1074,
5662
- 3,166,83,0,1073,1072,1,0,0,0,1073,1074,1,0,0,0,1074,1075,1,0,0,0,
5663
- 1075,1076,5,0,0,1,1076,165,1,0,0,0,1077,1079,3,168,84,0,1078,1077,
5664
- 1,0,0,0,1079,1080,1,0,0,0,1080,1078,1,0,0,0,1080,1081,1,0,0,0,1081,
5665
- 167,1,0,0,0,1082,1086,3,170,85,0,1083,1086,3,48,24,0,1084,1086,5,
5666
- 98,0,0,1085,1082,1,0,0,0,1085,1083,1,0,0,0,1085,1084,1,0,0,0,1086,
5667
- 169,1,0,0,0,1087,1089,3,50,25,0,1088,1087,1,0,0,0,1088,1089,1,0,
5668
- 0,0,1089,1090,1,0,0,0,1090,1092,3,94,47,0,1091,1093,3,172,86,0,1092,
5669
- 1091,1,0,0,0,1092,1093,1,0,0,0,1093,1094,1,0,0,0,1094,1095,3,144,
5670
- 72,0,1095,171,1,0,0,0,1096,1098,3,48,24,0,1097,1096,1,0,0,0,1098,
5671
- 1099,1,0,0,0,1099,1097,1,0,0,0,1099,1100,1,0,0,0,1100,173,1,0,0,
5672
- 0,133,179,187,207,221,226,233,241,245,253,260,262,270,276,290,295,
5673
- 304,311,319,327,335,343,351,359,367,375,383,392,400,409,416,421,
5674
- 426,431,438,445,451,483,487,496,503,513,517,520,527,532,536,540,
5675
- 545,551,558,564,584,590,595,601,621,626,629,636,651,663,666,668,
5676
- 678,682,692,696,700,706,709,713,717,722,727,734,742,744,751,756,
5677
- 760,766,769,778,783,786,792,808,814,817,822,825,832,851,857,860,
5678
- 862,871,875,878,883,888,897,905,914,933,936,944,947,951,956,961,
5679
- 971,975,982,986,989,1000,1008,1030,1034,1036,1040,1044,1048,1055,
5680
- 1064,1068,1073,1080,1085,1088,1092,1099
5507
+ 0,0,0,354,359,3,28,14,0,355,356,5,102,0,0,356,358,3,28,14,0,357,
5508
+ 355,1,0,0,0,358,361,1,0,0,0,359,357,1,0,0,0,359,360,1,0,0,0,360,
5509
+ 31,1,0,0,0,361,359,1,0,0,0,362,367,3,30,15,0,363,364,5,99,0,0,364,
5510
+ 366,3,30,15,0,365,363,1,0,0,0,366,369,1,0,0,0,367,365,1,0,0,0,367,
5511
+ 368,1,0,0,0,368,33,1,0,0,0,369,367,1,0,0,0,370,375,3,32,16,0,371,
5512
+ 372,5,100,0,0,372,374,3,32,16,0,373,371,1,0,0,0,374,377,1,0,0,0,
5513
+ 375,373,1,0,0,0,375,376,1,0,0,0,376,35,1,0,0,0,377,375,1,0,0,0,378,
5514
+ 383,3,34,17,0,379,380,5,101,0,0,380,382,3,34,17,0,381,379,1,0,0,
5515
+ 0,382,385,1,0,0,0,383,381,1,0,0,0,383,384,1,0,0,0,384,37,1,0,0,0,
5516
+ 385,383,1,0,0,0,386,392,3,36,18,0,387,388,5,105,0,0,388,389,3,44,
5517
+ 22,0,389,390,5,106,0,0,390,391,3,38,19,0,391,393,1,0,0,0,392,387,
5518
+ 1,0,0,0,392,393,1,0,0,0,393,39,1,0,0,0,394,401,3,38,19,0,395,396,
5519
+ 3,12,6,0,396,397,3,42,21,0,397,398,3,40,20,0,398,401,1,0,0,0,399,
5520
+ 401,5,127,0,0,400,394,1,0,0,0,400,395,1,0,0,0,400,399,1,0,0,0,401,
5521
+ 41,1,0,0,0,402,403,7,9,0,0,403,43,1,0,0,0,404,409,3,40,20,0,405,
5522
+ 406,5,108,0,0,406,408,3,40,20,0,407,405,1,0,0,0,408,411,1,0,0,0,
5523
+ 409,407,1,0,0,0,409,410,1,0,0,0,410,45,1,0,0,0,411,409,1,0,0,0,412,
5524
+ 413,3,38,19,0,413,47,1,0,0,0,414,416,3,50,25,0,415,417,3,56,28,0,
5525
+ 416,415,1,0,0,0,416,417,1,0,0,0,417,418,1,0,0,0,418,419,5,107,0,
5526
+ 0,419,422,1,0,0,0,420,422,3,138,69,0,421,414,1,0,0,0,421,420,1,0,
5527
+ 0,0,422,49,1,0,0,0,423,425,3,54,27,0,424,423,1,0,0,0,425,426,1,0,
5528
+ 0,0,426,424,1,0,0,0,426,427,1,0,0,0,427,51,1,0,0,0,428,430,3,54,
5529
+ 27,0,429,428,1,0,0,0,430,431,1,0,0,0,431,429,1,0,0,0,431,432,1,0,
5530
+ 0,0,432,53,1,0,0,0,433,439,3,60,30,0,434,439,3,62,31,0,435,439,3,
5531
+ 88,44,0,436,439,3,90,45,0,437,439,3,92,46,0,438,433,1,0,0,0,438,
5532
+ 434,1,0,0,0,438,435,1,0,0,0,438,436,1,0,0,0,438,437,1,0,0,0,439,
5533
+ 55,1,0,0,0,440,445,3,58,29,0,441,442,5,108,0,0,442,444,3,58,29,0,
5534
+ 443,441,1,0,0,0,444,447,1,0,0,0,445,443,1,0,0,0,445,446,1,0,0,0,
5535
+ 446,57,1,0,0,0,447,445,1,0,0,0,448,451,3,94,47,0,449,450,5,109,0,
5536
+ 0,450,452,3,128,64,0,451,449,1,0,0,0,451,452,1,0,0,0,452,59,1,0,
5537
+ 0,0,453,454,7,10,0,0,454,61,1,0,0,0,455,488,5,66,0,0,456,488,5,38,
5538
+ 0,0,457,488,5,57,0,0,458,488,5,52,0,0,459,488,5,53,0,0,460,488,5,
5539
+ 47,0,0,461,488,5,43,0,0,462,488,5,58,0,0,463,488,5,7,0,0,464,488,
5540
+ 5,8,0,0,465,488,5,65,0,0,466,488,5,72,0,0,467,488,5,73,0,0,468,488,
5541
+ 5,9,0,0,469,488,5,10,0,0,470,488,5,11,0,0,471,488,5,12,0,0,472,488,
5542
+ 5,13,0,0,473,488,5,14,0,0,474,475,5,1,0,0,475,476,5,79,0,0,476,477,
5543
+ 7,11,0,0,477,488,5,80,0,0,478,488,3,86,43,0,479,488,3,64,32,0,480,
5544
+ 488,3,78,39,0,481,488,3,126,63,0,482,483,7,12,0,0,483,484,5,79,0,
5545
+ 0,484,485,3,46,23,0,485,486,5,80,0,0,486,488,1,0,0,0,487,455,1,0,
5546
+ 0,0,487,456,1,0,0,0,487,457,1,0,0,0,487,458,1,0,0,0,487,459,1,0,
5547
+ 0,0,487,460,1,0,0,0,487,461,1,0,0,0,487,462,1,0,0,0,487,463,1,0,
5548
+ 0,0,487,464,1,0,0,0,487,465,1,0,0,0,487,466,1,0,0,0,487,467,1,0,
5549
+ 0,0,487,468,1,0,0,0,487,469,1,0,0,0,487,470,1,0,0,0,487,471,1,0,
5550
+ 0,0,487,472,1,0,0,0,487,473,1,0,0,0,487,474,1,0,0,0,487,478,1,0,
5551
+ 0,0,487,479,1,0,0,0,487,480,1,0,0,0,487,481,1,0,0,0,487,482,1,0,
5552
+ 0,0,488,63,1,0,0,0,489,491,3,66,33,0,490,492,5,125,0,0,491,490,1,
5553
+ 0,0,0,491,492,1,0,0,0,492,493,1,0,0,0,493,494,5,83,0,0,494,495,3,
5554
+ 68,34,0,495,496,5,84,0,0,496,501,1,0,0,0,497,498,3,66,33,0,498,499,
5555
+ 5,125,0,0,499,501,1,0,0,0,500,489,1,0,0,0,500,497,1,0,0,0,501,65,
5556
+ 1,0,0,0,502,503,7,13,0,0,503,67,1,0,0,0,504,506,3,70,35,0,505,504,
5557
+ 1,0,0,0,506,507,1,0,0,0,507,505,1,0,0,0,507,508,1,0,0,0,508,69,1,
5558
+ 0,0,0,509,510,3,72,36,0,510,511,3,74,37,0,511,512,5,107,0,0,512,
5559
+ 518,1,0,0,0,513,514,3,72,36,0,514,515,5,107,0,0,515,518,1,0,0,0,
5560
+ 516,518,3,138,69,0,517,509,1,0,0,0,517,513,1,0,0,0,517,516,1,0,0,
5561
+ 0,518,71,1,0,0,0,519,522,3,62,31,0,520,522,3,88,44,0,521,519,1,0,
5562
+ 0,0,521,520,1,0,0,0,522,524,1,0,0,0,523,525,3,72,36,0,524,523,1,
5563
+ 0,0,0,524,525,1,0,0,0,525,73,1,0,0,0,526,531,3,76,38,0,527,528,5,
5564
+ 108,0,0,528,530,3,76,38,0,529,527,1,0,0,0,530,533,1,0,0,0,531,529,
5565
+ 1,0,0,0,531,532,1,0,0,0,532,75,1,0,0,0,533,531,1,0,0,0,534,541,3,
5566
+ 94,47,0,535,537,3,94,47,0,536,535,1,0,0,0,536,537,1,0,0,0,537,538,
5567
+ 1,0,0,0,538,539,5,106,0,0,539,541,3,46,23,0,540,534,1,0,0,0,540,
5568
+ 536,1,0,0,0,541,77,1,0,0,0,542,544,5,45,0,0,543,545,5,125,0,0,544,
5569
+ 543,1,0,0,0,544,545,1,0,0,0,545,546,1,0,0,0,546,547,5,83,0,0,547,
5570
+ 549,3,80,40,0,548,550,5,108,0,0,549,548,1,0,0,0,549,550,1,0,0,0,
5571
+ 550,551,1,0,0,0,551,552,5,84,0,0,552,556,1,0,0,0,553,554,5,45,0,
5572
+ 0,554,556,5,125,0,0,555,542,1,0,0,0,555,553,1,0,0,0,556,79,1,0,0,
5573
+ 0,557,562,3,82,41,0,558,559,5,108,0,0,559,561,3,82,41,0,560,558,
5574
+ 1,0,0,0,561,564,1,0,0,0,562,560,1,0,0,0,562,563,1,0,0,0,563,81,1,
5575
+ 0,0,0,564,562,1,0,0,0,565,568,3,84,42,0,566,567,5,109,0,0,567,569,
5576
+ 3,46,23,0,568,566,1,0,0,0,568,569,1,0,0,0,569,83,1,0,0,0,570,571,
5577
+ 5,125,0,0,571,85,1,0,0,0,572,573,5,71,0,0,573,574,5,79,0,0,574,575,
5578
+ 3,120,60,0,575,576,5,80,0,0,576,87,1,0,0,0,577,578,7,14,0,0,578,
5579
+ 89,1,0,0,0,579,590,5,51,0,0,580,590,5,76,0,0,581,590,5,23,0,0,582,
5580
+ 590,5,24,0,0,583,590,5,25,0,0,584,590,3,102,51,0,585,586,5,26,0,
5581
+ 0,586,587,5,79,0,0,587,588,5,125,0,0,588,590,5,80,0,0,589,579,1,
5582
+ 0,0,0,589,580,1,0,0,0,589,581,1,0,0,0,589,582,1,0,0,0,589,583,1,
5583
+ 0,0,0,589,584,1,0,0,0,589,585,1,0,0,0,590,91,1,0,0,0,591,592,5,69,
5584
+ 0,0,592,595,5,79,0,0,593,596,3,120,60,0,594,596,3,46,23,0,595,593,
5585
+ 1,0,0,0,595,594,1,0,0,0,596,597,1,0,0,0,597,598,5,80,0,0,598,93,
5586
+ 1,0,0,0,599,601,3,108,54,0,600,599,1,0,0,0,600,601,1,0,0,0,601,602,
5587
+ 1,0,0,0,602,606,3,96,48,0,603,605,3,100,50,0,604,603,1,0,0,0,605,
5588
+ 608,1,0,0,0,606,604,1,0,0,0,606,607,1,0,0,0,607,95,1,0,0,0,608,606,
5589
+ 1,0,0,0,609,610,6,48,-1,0,610,627,5,125,0,0,611,612,5,79,0,0,612,
5590
+ 613,3,94,47,0,613,614,5,80,0,0,614,627,1,0,0,0,615,616,5,125,0,0,
5591
+ 616,617,5,106,0,0,617,627,5,127,0,0,618,619,3,98,49,0,619,620,5,
5592
+ 125,0,0,620,627,1,0,0,0,621,622,5,79,0,0,622,623,3,98,49,0,623,624,
5593
+ 3,94,47,0,624,625,5,80,0,0,625,627,1,0,0,0,626,609,1,0,0,0,626,611,
5594
+ 1,0,0,0,626,615,1,0,0,0,626,618,1,0,0,0,626,621,1,0,0,0,627,673,
5595
+ 1,0,0,0,628,629,10,9,0,0,629,631,5,81,0,0,630,632,3,110,55,0,631,
5596
+ 630,1,0,0,0,631,632,1,0,0,0,632,634,1,0,0,0,633,635,3,40,20,0,634,
5597
+ 633,1,0,0,0,634,635,1,0,0,0,635,636,1,0,0,0,636,672,5,82,0,0,637,
5598
+ 638,10,8,0,0,638,639,5,81,0,0,639,641,5,60,0,0,640,642,3,110,55,
5599
+ 0,641,640,1,0,0,0,641,642,1,0,0,0,642,643,1,0,0,0,643,644,3,40,20,
5600
+ 0,644,645,5,82,0,0,645,672,1,0,0,0,646,647,10,7,0,0,647,648,5,81,
5601
+ 0,0,648,649,3,110,55,0,649,650,5,60,0,0,650,651,3,40,20,0,651,652,
5602
+ 5,82,0,0,652,672,1,0,0,0,653,654,10,6,0,0,654,656,5,81,0,0,655,657,
5603
+ 3,110,55,0,656,655,1,0,0,0,656,657,1,0,0,0,657,658,1,0,0,0,658,659,
5604
+ 5,95,0,0,659,672,5,82,0,0,660,661,10,5,0,0,661,662,5,79,0,0,662,
5605
+ 663,3,112,56,0,663,664,5,80,0,0,664,672,1,0,0,0,665,666,10,4,0,0,
5606
+ 666,668,5,79,0,0,667,669,3,118,59,0,668,667,1,0,0,0,668,669,1,0,
5607
+ 0,0,669,670,1,0,0,0,670,672,5,80,0,0,671,628,1,0,0,0,671,637,1,0,
5608
+ 0,0,671,646,1,0,0,0,671,653,1,0,0,0,671,660,1,0,0,0,671,665,1,0,
5609
+ 0,0,672,675,1,0,0,0,673,671,1,0,0,0,673,674,1,0,0,0,674,97,1,0,0,
5610
+ 0,675,673,1,0,0,0,676,677,7,15,0,0,677,99,1,0,0,0,678,679,7,16,0,
5611
+ 0,679,681,5,79,0,0,680,682,5,128,0,0,681,680,1,0,0,0,682,683,1,0,
5612
+ 0,0,683,681,1,0,0,0,683,684,1,0,0,0,684,685,1,0,0,0,685,688,5,80,
5613
+ 0,0,686,688,3,102,51,0,687,678,1,0,0,0,687,686,1,0,0,0,688,101,1,
5614
+ 0,0,0,689,690,5,34,0,0,690,691,5,79,0,0,691,692,5,79,0,0,692,693,
5615
+ 3,104,52,0,693,694,5,80,0,0,694,695,5,80,0,0,695,103,1,0,0,0,696,
5616
+ 698,3,106,53,0,697,696,1,0,0,0,697,698,1,0,0,0,698,705,1,0,0,0,699,
5617
+ 701,5,108,0,0,700,702,3,106,53,0,701,700,1,0,0,0,701,702,1,0,0,0,
5618
+ 702,704,1,0,0,0,703,699,1,0,0,0,704,707,1,0,0,0,705,703,1,0,0,0,
5619
+ 705,706,1,0,0,0,706,105,1,0,0,0,707,705,1,0,0,0,708,714,8,17,0,0,
5620
+ 709,711,5,79,0,0,710,712,3,10,5,0,711,710,1,0,0,0,711,712,1,0,0,
5621
+ 0,712,713,1,0,0,0,713,715,5,80,0,0,714,709,1,0,0,0,714,715,1,0,0,
5622
+ 0,715,107,1,0,0,0,716,718,7,18,0,0,717,719,3,110,55,0,718,717,1,
5623
+ 0,0,0,718,719,1,0,0,0,719,721,1,0,0,0,720,716,1,0,0,0,721,722,1,
5624
+ 0,0,0,722,720,1,0,0,0,722,723,1,0,0,0,723,109,1,0,0,0,724,726,3,
5625
+ 88,44,0,725,724,1,0,0,0,726,727,1,0,0,0,727,725,1,0,0,0,727,728,
5626
+ 1,0,0,0,728,111,1,0,0,0,729,732,3,114,57,0,730,731,5,108,0,0,731,
5627
+ 733,5,124,0,0,732,730,1,0,0,0,732,733,1,0,0,0,733,113,1,0,0,0,734,
5628
+ 739,3,116,58,0,735,736,5,108,0,0,736,738,3,116,58,0,737,735,1,0,
5629
+ 0,0,738,741,1,0,0,0,739,737,1,0,0,0,739,740,1,0,0,0,740,115,1,0,
5630
+ 0,0,741,739,1,0,0,0,742,743,3,50,25,0,743,744,3,94,47,0,744,750,
5631
+ 1,0,0,0,745,747,3,52,26,0,746,748,3,122,61,0,747,746,1,0,0,0,747,
5632
+ 748,1,0,0,0,748,750,1,0,0,0,749,742,1,0,0,0,749,745,1,0,0,0,750,
5633
+ 117,1,0,0,0,751,756,5,125,0,0,752,753,5,108,0,0,753,755,5,125,0,
5634
+ 0,754,752,1,0,0,0,755,758,1,0,0,0,756,754,1,0,0,0,756,757,1,0,0,
5635
+ 0,757,119,1,0,0,0,758,756,1,0,0,0,759,761,3,72,36,0,760,762,3,122,
5636
+ 61,0,761,760,1,0,0,0,761,762,1,0,0,0,762,121,1,0,0,0,763,775,3,108,
5637
+ 54,0,764,766,3,108,54,0,765,764,1,0,0,0,765,766,1,0,0,0,766,767,
5638
+ 1,0,0,0,767,771,3,124,62,0,768,770,3,100,50,0,769,768,1,0,0,0,770,
5639
+ 773,1,0,0,0,771,769,1,0,0,0,771,772,1,0,0,0,772,775,1,0,0,0,773,
5640
+ 771,1,0,0,0,774,763,1,0,0,0,774,765,1,0,0,0,775,123,1,0,0,0,776,
5641
+ 777,6,62,-1,0,777,778,5,79,0,0,778,779,3,122,61,0,779,783,5,80,0,
5642
+ 0,780,782,3,100,50,0,781,780,1,0,0,0,782,785,1,0,0,0,783,781,1,0,
5643
+ 0,0,783,784,1,0,0,0,784,823,1,0,0,0,785,783,1,0,0,0,786,788,5,81,
5644
+ 0,0,787,789,3,110,55,0,788,787,1,0,0,0,788,789,1,0,0,0,789,791,1,
5645
+ 0,0,0,790,792,3,40,20,0,791,790,1,0,0,0,791,792,1,0,0,0,792,793,
5646
+ 1,0,0,0,793,823,5,82,0,0,794,795,5,81,0,0,795,797,5,60,0,0,796,798,
5647
+ 3,110,55,0,797,796,1,0,0,0,797,798,1,0,0,0,798,799,1,0,0,0,799,800,
5648
+ 3,40,20,0,800,801,5,82,0,0,801,823,1,0,0,0,802,803,5,81,0,0,803,
5649
+ 804,3,110,55,0,804,805,5,60,0,0,805,806,3,40,20,0,806,807,5,82,0,
5650
+ 0,807,823,1,0,0,0,808,809,5,81,0,0,809,810,5,95,0,0,810,823,5,82,
5651
+ 0,0,811,813,5,79,0,0,812,814,3,112,56,0,813,812,1,0,0,0,813,814,
5652
+ 1,0,0,0,814,815,1,0,0,0,815,819,5,80,0,0,816,818,3,100,50,0,817,
5653
+ 816,1,0,0,0,818,821,1,0,0,0,819,817,1,0,0,0,819,820,1,0,0,0,820,
5654
+ 823,1,0,0,0,821,819,1,0,0,0,822,776,1,0,0,0,822,786,1,0,0,0,822,
5655
+ 794,1,0,0,0,822,802,1,0,0,0,822,808,1,0,0,0,822,811,1,0,0,0,823,
5656
+ 867,1,0,0,0,824,825,10,5,0,0,825,827,5,81,0,0,826,828,3,110,55,0,
5657
+ 827,826,1,0,0,0,827,828,1,0,0,0,828,830,1,0,0,0,829,831,3,40,20,
5658
+ 0,830,829,1,0,0,0,830,831,1,0,0,0,831,832,1,0,0,0,832,866,5,82,0,
5659
+ 0,833,834,10,4,0,0,834,835,5,81,0,0,835,837,5,60,0,0,836,838,3,110,
5660
+ 55,0,837,836,1,0,0,0,837,838,1,0,0,0,838,839,1,0,0,0,839,840,3,40,
5661
+ 20,0,840,841,5,82,0,0,841,866,1,0,0,0,842,843,10,3,0,0,843,844,5,
5662
+ 81,0,0,844,845,3,110,55,0,845,846,5,60,0,0,846,847,3,40,20,0,847,
5663
+ 848,5,82,0,0,848,866,1,0,0,0,849,850,10,2,0,0,850,851,5,81,0,0,851,
5664
+ 852,5,95,0,0,852,866,5,82,0,0,853,854,10,1,0,0,854,856,5,79,0,0,
5665
+ 855,857,3,112,56,0,856,855,1,0,0,0,856,857,1,0,0,0,857,858,1,0,0,
5666
+ 0,858,862,5,80,0,0,859,861,3,100,50,0,860,859,1,0,0,0,861,864,1,
5667
+ 0,0,0,862,860,1,0,0,0,862,863,1,0,0,0,863,866,1,0,0,0,864,862,1,
5668
+ 0,0,0,865,824,1,0,0,0,865,833,1,0,0,0,865,842,1,0,0,0,865,849,1,
5669
+ 0,0,0,865,853,1,0,0,0,866,869,1,0,0,0,867,865,1,0,0,0,867,868,1,
5670
+ 0,0,0,868,125,1,0,0,0,869,867,1,0,0,0,870,871,5,125,0,0,871,127,
5671
+ 1,0,0,0,872,881,3,40,20,0,873,874,5,83,0,0,874,876,3,130,65,0,875,
5672
+ 877,5,108,0,0,876,875,1,0,0,0,876,877,1,0,0,0,877,878,1,0,0,0,878,
5673
+ 879,5,84,0,0,879,881,1,0,0,0,880,872,1,0,0,0,880,873,1,0,0,0,881,
5674
+ 129,1,0,0,0,882,884,3,132,66,0,883,882,1,0,0,0,883,884,1,0,0,0,884,
5675
+ 885,1,0,0,0,885,893,3,128,64,0,886,888,5,108,0,0,887,889,3,132,66,
5676
+ 0,888,887,1,0,0,0,888,889,1,0,0,0,889,890,1,0,0,0,890,892,3,128,
5677
+ 64,0,891,886,1,0,0,0,892,895,1,0,0,0,893,891,1,0,0,0,893,894,1,0,
5678
+ 0,0,894,131,1,0,0,0,895,893,1,0,0,0,896,897,3,134,67,0,897,898,5,
5679
+ 109,0,0,898,133,1,0,0,0,899,901,3,136,68,0,900,899,1,0,0,0,901,902,
5680
+ 1,0,0,0,902,900,1,0,0,0,902,903,1,0,0,0,903,135,1,0,0,0,904,905,
5681
+ 5,81,0,0,905,906,3,46,23,0,906,907,5,82,0,0,907,911,1,0,0,0,908,
5682
+ 909,5,123,0,0,909,911,5,125,0,0,910,904,1,0,0,0,910,908,1,0,0,0,
5683
+ 911,137,1,0,0,0,912,913,5,77,0,0,913,914,5,79,0,0,914,915,3,46,23,
5684
+ 0,915,917,5,108,0,0,916,918,5,128,0,0,917,916,1,0,0,0,918,919,1,
5685
+ 0,0,0,919,917,1,0,0,0,919,920,1,0,0,0,920,921,1,0,0,0,921,922,5,
5686
+ 80,0,0,922,923,5,107,0,0,923,139,1,0,0,0,924,962,3,142,71,0,925,
5687
+ 962,3,144,72,0,926,962,3,150,75,0,927,962,3,152,76,0,928,962,3,154,
5688
+ 77,0,929,962,3,162,81,0,930,931,7,16,0,0,931,932,7,19,0,0,932,941,
5689
+ 5,79,0,0,933,938,3,36,18,0,934,935,5,108,0,0,935,937,3,36,18,0,936,
5690
+ 934,1,0,0,0,937,940,1,0,0,0,938,936,1,0,0,0,938,939,1,0,0,0,939,
5691
+ 942,1,0,0,0,940,938,1,0,0,0,941,933,1,0,0,0,941,942,1,0,0,0,942,
5692
+ 956,1,0,0,0,943,952,5,106,0,0,944,949,3,36,18,0,945,946,5,108,0,
5693
+ 0,946,948,3,36,18,0,947,945,1,0,0,0,948,951,1,0,0,0,949,947,1,0,
5694
+ 0,0,949,950,1,0,0,0,950,953,1,0,0,0,951,949,1,0,0,0,952,944,1,0,
5695
+ 0,0,952,953,1,0,0,0,953,955,1,0,0,0,954,943,1,0,0,0,955,958,1,0,
5696
+ 0,0,956,954,1,0,0,0,956,957,1,0,0,0,957,959,1,0,0,0,958,956,1,0,
5697
+ 0,0,959,960,5,80,0,0,960,962,5,107,0,0,961,924,1,0,0,0,961,925,1,
5698
+ 0,0,0,961,926,1,0,0,0,961,927,1,0,0,0,961,928,1,0,0,0,961,929,1,
5699
+ 0,0,0,961,930,1,0,0,0,962,141,1,0,0,0,963,964,5,125,0,0,964,966,
5700
+ 5,106,0,0,965,967,3,140,70,0,966,965,1,0,0,0,966,967,1,0,0,0,967,
5701
+ 977,1,0,0,0,968,969,5,37,0,0,969,970,3,46,23,0,970,971,5,106,0,0,
5702
+ 971,972,3,140,70,0,972,977,1,0,0,0,973,974,5,41,0,0,974,975,5,106,
5703
+ 0,0,975,977,3,140,70,0,976,963,1,0,0,0,976,968,1,0,0,0,976,973,1,
5704
+ 0,0,0,977,143,1,0,0,0,978,980,5,83,0,0,979,981,3,146,73,0,980,979,
5705
+ 1,0,0,0,980,981,1,0,0,0,981,982,1,0,0,0,982,983,5,84,0,0,983,145,
5706
+ 1,0,0,0,984,986,3,148,74,0,985,984,1,0,0,0,986,987,1,0,0,0,987,985,
5707
+ 1,0,0,0,987,988,1,0,0,0,988,147,1,0,0,0,989,992,3,140,70,0,990,992,
5708
+ 3,48,24,0,991,989,1,0,0,0,991,990,1,0,0,0,992,149,1,0,0,0,993,995,
5709
+ 3,44,22,0,994,993,1,0,0,0,994,995,1,0,0,0,995,996,1,0,0,0,996,997,
5710
+ 5,107,0,0,997,151,1,0,0,0,998,999,5,50,0,0,999,1000,5,79,0,0,1000,
5711
+ 1001,3,44,22,0,1001,1002,5,80,0,0,1002,1005,3,140,70,0,1003,1004,
5712
+ 5,44,0,0,1004,1006,3,140,70,0,1005,1003,1,0,0,0,1005,1006,1,0,0,
5713
+ 0,1006,1014,1,0,0,0,1007,1008,5,62,0,0,1008,1009,5,79,0,0,1009,1010,
5714
+ 3,44,22,0,1010,1011,5,80,0,0,1011,1012,3,140,70,0,1012,1014,1,0,
5715
+ 0,0,1013,998,1,0,0,0,1013,1007,1,0,0,0,1014,153,1,0,0,0,1015,1016,
5716
+ 5,68,0,0,1016,1017,5,79,0,0,1017,1018,3,44,22,0,1018,1019,5,80,0,
5717
+ 0,1019,1020,3,140,70,0,1020,1036,1,0,0,0,1021,1022,5,42,0,0,1022,
5718
+ 1023,3,140,70,0,1023,1024,5,68,0,0,1024,1025,5,79,0,0,1025,1026,
5719
+ 3,44,22,0,1026,1027,5,80,0,0,1027,1028,5,107,0,0,1028,1036,1,0,0,
5720
+ 0,1029,1030,5,48,0,0,1030,1031,5,79,0,0,1031,1032,3,156,78,0,1032,
5721
+ 1033,5,80,0,0,1033,1034,3,140,70,0,1034,1036,1,0,0,0,1035,1015,1,
5722
+ 0,0,0,1035,1021,1,0,0,0,1035,1029,1,0,0,0,1036,155,1,0,0,0,1037,
5723
+ 1042,3,158,79,0,1038,1040,3,44,22,0,1039,1038,1,0,0,0,1039,1040,
5724
+ 1,0,0,0,1040,1042,1,0,0,0,1041,1037,1,0,0,0,1041,1039,1,0,0,0,1042,
5725
+ 1043,1,0,0,0,1043,1045,5,107,0,0,1044,1046,3,160,80,0,1045,1044,
5726
+ 1,0,0,0,1045,1046,1,0,0,0,1046,1047,1,0,0,0,1047,1049,5,107,0,0,
5727
+ 1048,1050,3,160,80,0,1049,1048,1,0,0,0,1049,1050,1,0,0,0,1050,157,
5728
+ 1,0,0,0,1051,1053,3,50,25,0,1052,1054,3,56,28,0,1053,1052,1,0,0,
5729
+ 0,1053,1054,1,0,0,0,1054,159,1,0,0,0,1055,1060,3,40,20,0,1056,1057,
5730
+ 5,108,0,0,1057,1059,3,40,20,0,1058,1056,1,0,0,0,1059,1062,1,0,0,
5731
+ 0,1060,1058,1,0,0,0,1060,1061,1,0,0,0,1061,161,1,0,0,0,1062,1060,
5732
+ 1,0,0,0,1063,1064,5,49,0,0,1064,1074,5,125,0,0,1065,1074,5,40,0,
5733
+ 0,1066,1074,5,36,0,0,1067,1069,5,56,0,0,1068,1070,3,44,22,0,1069,
5734
+ 1068,1,0,0,0,1069,1070,1,0,0,0,1070,1074,1,0,0,0,1071,1072,5,49,
5735
+ 0,0,1072,1074,3,12,6,0,1073,1063,1,0,0,0,1073,1065,1,0,0,0,1073,
5736
+ 1066,1,0,0,0,1073,1067,1,0,0,0,1073,1071,1,0,0,0,1074,1075,1,0,0,
5737
+ 0,1075,1076,5,107,0,0,1076,163,1,0,0,0,1077,1079,3,166,83,0,1078,
5738
+ 1077,1,0,0,0,1078,1079,1,0,0,0,1079,1080,1,0,0,0,1080,1081,5,0,0,
5739
+ 1,1081,165,1,0,0,0,1082,1084,3,168,84,0,1083,1082,1,0,0,0,1084,1085,
5740
+ 1,0,0,0,1085,1083,1,0,0,0,1085,1086,1,0,0,0,1086,167,1,0,0,0,1087,
5741
+ 1091,3,170,85,0,1088,1091,3,48,24,0,1089,1091,5,107,0,0,1090,1087,
5742
+ 1,0,0,0,1090,1088,1,0,0,0,1090,1089,1,0,0,0,1091,169,1,0,0,0,1092,
5743
+ 1094,3,50,25,0,1093,1092,1,0,0,0,1093,1094,1,0,0,0,1094,1095,1,0,
5744
+ 0,0,1095,1097,3,94,47,0,1096,1098,3,172,86,0,1097,1096,1,0,0,0,1097,
5745
+ 1098,1,0,0,0,1098,1099,1,0,0,0,1099,1100,3,144,72,0,1100,171,1,0,
5746
+ 0,0,1101,1103,3,48,24,0,1102,1101,1,0,0,0,1103,1104,1,0,0,0,1104,
5747
+ 1102,1,0,0,0,1104,1105,1,0,0,0,1105,173,1,0,0,0,133,179,187,207,
5748
+ 221,226,233,241,245,253,260,262,270,276,290,295,304,311,319,327,
5749
+ 335,343,351,359,367,375,383,392,400,409,416,421,426,431,438,445,
5750
+ 451,487,491,500,507,517,521,524,531,536,540,544,549,555,562,568,
5751
+ 589,595,600,606,626,631,634,641,656,668,671,673,683,687,697,701,
5752
+ 705,711,714,718,722,727,732,739,747,749,756,761,765,771,774,783,
5753
+ 788,791,797,813,819,822,827,830,837,856,862,865,867,876,880,883,
5754
+ 888,893,902,910,919,938,941,949,952,956,961,966,976,980,987,991,
5755
+ 994,1005,1013,1035,1039,1041,1045,1049,1053,1060,1069,1073,1078,
5756
+ 1085,1090,1093,1097,1104
5681
5757
  ];
5682
5758
 
5683
5759
  private static __ATN: antlr.ATN;