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