yini-parser 1.4.3 → 1.6.0

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 (90) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +187 -35
  3. package/dist/YINI.d.ts +29 -18
  4. package/dist/YINI.js +104 -3
  5. package/dist/core/astBuilder.d.ts +94 -18
  6. package/dist/core/astBuilder.js +439 -376
  7. package/dist/core/errorDataHandler.d.ts +6 -1
  8. package/dist/core/errorDataHandler.js +30 -43
  9. package/dist/core/internalTypes.d.ts +10 -1
  10. package/dist/core/objectBuilder.d.ts +8 -4
  11. package/dist/core/objectBuilder.js +47 -62
  12. package/dist/core/options/defaultParserOptions.d.ts +3 -2
  13. package/dist/core/options/defaultParserOptions.js +11 -2
  14. package/dist/core/options/optionsFunctions.js +6 -4
  15. package/dist/core/parsingRules/modeFromRulesMatcher.d.ts +1 -1
  16. package/dist/core/parsingRules/modeFromRulesMatcher.js +22 -13
  17. package/dist/core/pipeline/pipeline.js +35 -10
  18. package/dist/core/runtime.js +28 -19
  19. package/dist/grammar/generated/YiniLexer.d.ts +40 -53
  20. package/dist/grammar/generated/YiniLexer.js +357 -356
  21. package/dist/grammar/generated/YiniParser.d.ts +174 -118
  22. package/dist/grammar/generated/YiniParser.js +1185 -929
  23. package/dist/grammar/generated/YiniParserVisitor.d.ts +82 -19
  24. package/dist/grammar/generated/YiniParserVisitor.js +1 -1
  25. package/dist/index.d.ts +2 -1
  26. package/dist/index.js +4 -3
  27. package/dist/parsers/extractHeaderParts.d.ts +12 -19
  28. package/dist/parsers/extractHeaderParts.js +57 -46
  29. package/dist/parsers/parseNumber.d.ts +24 -6
  30. package/dist/parsers/parseNumber.js +114 -49
  31. package/dist/parsers/parseSectionHeader.d.ts +11 -3
  32. package/dist/parsers/parseSectionHeader.js +55 -43
  33. package/dist/parsers/parseString.js +39 -20
  34. package/dist/parsers/validateShebangPlacement.d.ts +3 -0
  35. package/dist/parsers/validateShebangPlacement.js +52 -0
  36. package/dist/types/index.d.ts +20 -3
  37. package/dist/utils/print.d.ts +1 -0
  38. package/dist/utils/print.js +5 -1
  39. package/dist/utils/string.d.ts +1 -0
  40. package/dist/utils/string.js +17 -1
  41. package/dist/utils/system.d.ts +1 -0
  42. package/dist/utils/system.js +6 -1
  43. package/dist/utils/yiniHelpers.d.ts +44 -2
  44. package/dist/utils/yiniHelpers.js +134 -46
  45. package/examples/compare-formats.md +1 -1
  46. package/examples/nested.yini +1 -1
  47. package/package.json +11 -3
  48. package/dist/YINI.js.map +0 -1
  49. package/dist/config/env.js.map +0 -1
  50. package/dist/core/astBuilder.js.map +0 -1
  51. package/dist/core/errorDataHandler.js.map +0 -1
  52. package/dist/core/internalTypes.js.map +0 -1
  53. package/dist/core/objectBuilder.js.map +0 -1
  54. package/dist/core/options/defaultParserOptions.js.map +0 -1
  55. package/dist/core/options/failLevel.js.map +0 -1
  56. package/dist/core/options/optionsFunctions.js.map +0 -1
  57. package/dist/core/parsingRules/modeFromRulesMatcher.js.map +0 -1
  58. package/dist/core/parsingRules/rulesConstAndGuards.js.map +0 -1
  59. package/dist/core/pipeline/errorListeners.js.map +0 -1
  60. package/dist/core/pipeline/pipeline.js.map +0 -1
  61. package/dist/core/resultMetadataBuilder.js.map +0 -1
  62. package/dist/core/runtime.js.map +0 -1
  63. package/dist/dev/main.d.ts +0 -1
  64. package/dist/dev/main.js +0 -168
  65. package/dist/dev/main.js.map +0 -1
  66. package/dist/dev/quick-test-samples/defect-inputs.d.ts +0 -37
  67. package/dist/dev/quick-test-samples/defect-inputs.js +0 -106
  68. package/dist/dev/quick-test-samples/defect-inputs.js.map +0 -1
  69. package/dist/dev/quick-test-samples/valid-inputs.d.ts +0 -21
  70. package/dist/dev/quick-test-samples/valid-inputs.js +0 -422
  71. package/dist/dev/quick-test-samples/valid-inputs.js.map +0 -1
  72. package/dist/grammar/generated/YiniLexer.js.map +0 -1
  73. package/dist/grammar/generated/YiniParser.js.map +0 -1
  74. package/dist/grammar/generated/YiniParserVisitor.js.map +0 -1
  75. package/dist/index.js.map +0 -1
  76. package/dist/parsers/extractHeaderParts.js.map +0 -1
  77. package/dist/parsers/extractSignificantYiniLine.js.map +0 -1
  78. package/dist/parsers/parseBoolean.js.map +0 -1
  79. package/dist/parsers/parseNull.js.map +0 -1
  80. package/dist/parsers/parseNumber.js.map +0 -1
  81. package/dist/parsers/parseSectionHeader.js.map +0 -1
  82. package/dist/parsers/parseString.js.map +0 -1
  83. package/dist/types/index.js.map +0 -1
  84. package/dist/utils/number.js.map +0 -1
  85. package/dist/utils/object.js.map +0 -1
  86. package/dist/utils/pathAndFileName.js.map +0 -1
  87. package/dist/utils/print.js.map +0 -1
  88. package/dist/utils/string.js.map +0 -1
  89. package/dist/utils/system.js.map +0 -1
  90. package/dist/utils/yiniHelpers.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- // Generated from ./grammar/v1.0.0-rc.3/YiniParser.g4 by ANTLR 4.13.2
2
+ // Generated from ./grammar/v1.0.0-rc.6/YiniParser.g4 by ANTLR 4.13.2
3
3
  // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.Bad_memberContext = exports.Bad_meta_textContext = exports.Boolean_literalContext = exports.String_concatContext = exports.String_literalContext = exports.Null_literalContext = exports.Number_literalContext = exports.ElementsContext = exports.List_literalContext = exports.Object_memberContext = exports.Object_membersContext = exports.Object_literalContext = exports.ValueContext = exports.Colon_list_declContext = exports.MemberContext = exports.AssignmentContext = exports.EolContext = exports.AnnotationContext = exports.DirectiveContext = exports.Meta_stmtContext = exports.StmtContext = exports.Terminal_stmtContext = exports.PrologContext = exports.YiniContext = void 0;
5
+ exports.Bad_memberContext = exports.Bad_meta_textContext = exports.Boolean_literalContext = exports.Null_literalContext = exports.Number_literalContext = exports.ElementsContext = exports.List_literalContext = exports.Object_member_separatorContext = exports.Object_memberContext = exports.Object_membersContext = exports.Object_literalContext = exports.String_literalContext = exports.Concat_operandContext = exports.Concat_tailContext = exports.Concat_expressionContext = exports.Scalar_valueContext = exports.ValueContext = exports.MemberContext = exports.AssignmentContext = exports.EolContext = exports.AnnotationContext = exports.Yini_mode_declarationContext = exports.Yini_directiveContext = exports.DirectiveContext = exports.Meta_stmtContext = exports.Invalid_section_stmtContext = exports.Disabled_line_stmtContext = exports.Full_line_comment_stmtContext = exports.StmtContext = exports.Terminal_triviaContext = exports.Terminal_stmtContext = exports.PrologContext = exports.YiniContext = void 0;
6
6
  const antlr4_1 = require("antlr4");
7
7
  class YiniParser extends antlr4_1.Parser {
8
8
  get grammarFileName() { return "YiniParser.g4"; }
@@ -25,40 +25,40 @@ class YiniParser extends antlr4_1.Parser {
25
25
  try {
26
26
  this.enterOuterAlt(localctx, 1);
27
27
  {
28
- this.state = 49;
28
+ this.state = 67;
29
29
  this._errHandler.sync(this);
30
30
  switch (this._interp.adaptivePredict(this._input, 0, this._ctx)) {
31
31
  case 1:
32
32
  {
33
- this.state = 48;
33
+ this.state = 66;
34
34
  this.prolog();
35
35
  }
36
36
  break;
37
37
  }
38
- this.state = 54;
38
+ this.state = 72;
39
39
  this._errHandler.sync(this);
40
40
  _la = this._input.LA(1);
41
- while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 3741485086) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 107137) !== 0)) {
41
+ while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 2169012188) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 107) !== 0)) {
42
42
  {
43
43
  {
44
- this.state = 51;
44
+ this.state = 69;
45
45
  this.stmt();
46
46
  }
47
47
  }
48
- this.state = 56;
48
+ this.state = 74;
49
49
  this._errHandler.sync(this);
50
50
  _la = this._input.LA(1);
51
51
  }
52
- this.state = 58;
52
+ this.state = 76;
53
53
  this._errHandler.sync(this);
54
54
  _la = this._input.LA(1);
55
55
  if (_la === 5) {
56
56
  {
57
- this.state = 57;
57
+ this.state = 75;
58
58
  this.terminal_stmt();
59
59
  }
60
60
  }
61
- this.state = 60;
61
+ this.state = 78;
62
62
  this.match(YiniParser.EOF);
63
63
  }
64
64
  }
@@ -83,37 +83,36 @@ class YiniParser extends antlr4_1.Parser {
83
83
  this.enterRule(localctx, 2, YiniParser.RULE_prolog);
84
84
  try {
85
85
  let _alt;
86
- this.state = 74;
86
+ this.state = 92;
87
87
  this._errHandler.sync(this);
88
88
  switch (this._input.LA(1)) {
89
- case 29:
89
+ case 1:
90
90
  this.enterOuterAlt(localctx, 1);
91
91
  {
92
- this.state = 62;
92
+ this.state = 80;
93
93
  this.match(YiniParser.SHEBANG);
94
- this.state = 66;
94
+ this.state = 84;
95
95
  this._errHandler.sync(this);
96
96
  _alt = this._interp.adaptivePredict(this._input, 3, this._ctx);
97
97
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
98
98
  if (_alt === 1) {
99
99
  {
100
100
  {
101
- this.state = 63;
101
+ this.state = 81;
102
102
  this.eol();
103
103
  }
104
104
  }
105
105
  }
106
- this.state = 68;
106
+ this.state = 86;
107
107
  this._errHandler.sync(this);
108
108
  _alt = this._interp.adaptivePredict(this._input, 3, this._ctx);
109
109
  }
110
110
  }
111
111
  break;
112
- case 41:
113
- case 47:
112
+ case 31:
114
113
  this.enterOuterAlt(localctx, 2);
115
114
  {
116
- this.state = 70;
115
+ this.state = 88;
117
116
  this._errHandler.sync(this);
118
117
  _alt = 1;
119
118
  do {
@@ -121,7 +120,7 @@ class YiniParser extends antlr4_1.Parser {
121
120
  case 1:
122
121
  {
123
122
  {
124
- this.state = 69;
123
+ this.state = 87;
125
124
  this.eol();
126
125
  }
127
126
  }
@@ -129,7 +128,7 @@ class YiniParser extends antlr4_1.Parser {
129
128
  default:
130
129
  throw new antlr4_1.NoViableAltException(this);
131
130
  }
132
- this.state = 72;
131
+ this.state = 90;
133
132
  this._errHandler.sync(this);
134
133
  _alt = this._interp.adaptivePredict(this._input, 4, this._ctx);
135
134
  } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
@@ -162,35 +161,19 @@ class YiniParser extends antlr4_1.Parser {
162
161
  try {
163
162
  this.enterOuterAlt(localctx, 1);
164
163
  {
165
- this.state = 76;
164
+ this.state = 94;
166
165
  this.match(YiniParser.TERMINAL_TOKEN);
167
- this.state = 79;
168
- this._errHandler.sync(this);
169
- switch (this._interp.adaptivePredict(this._input, 6, this._ctx)) {
170
- case 1:
171
- {
172
- this.state = 77;
173
- this.eol();
174
- }
175
- break;
176
- case 2:
177
- {
178
- this.state = 78;
179
- this.match(YiniParser.INLINE_COMMENT);
180
- }
181
- break;
182
- }
183
- this.state = 84;
166
+ this.state = 98;
184
167
  this._errHandler.sync(this);
185
168
  _la = this._input.LA(1);
186
- while (_la === 41) {
169
+ while (_la === 31 || _la === 35) {
187
170
  {
188
171
  {
189
- this.state = 81;
190
- this.match(YiniParser.NL);
172
+ this.state = 95;
173
+ this.terminal_trivia();
191
174
  }
192
175
  }
193
- this.state = 86;
176
+ this.state = 100;
194
177
  this._errHandler.sync(this);
195
178
  _la = this._input.LA(1);
196
179
  }
@@ -212,55 +195,213 @@ class YiniParser extends antlr4_1.Parser {
212
195
  return localctx;
213
196
  }
214
197
  // @RuleVersion(0)
198
+ terminal_trivia() {
199
+ let localctx = new Terminal_triviaContext(this, this._ctx, this.state);
200
+ this.enterRule(localctx, 6, YiniParser.RULE_terminal_trivia);
201
+ try {
202
+ this.state = 103;
203
+ this._errHandler.sync(this);
204
+ switch (this._input.LA(1)) {
205
+ case 31:
206
+ this.enterOuterAlt(localctx, 1);
207
+ {
208
+ this.state = 101;
209
+ this.eol();
210
+ }
211
+ break;
212
+ case 35:
213
+ this.enterOuterAlt(localctx, 2);
214
+ {
215
+ this.state = 102;
216
+ this.full_line_comment_stmt();
217
+ }
218
+ break;
219
+ default:
220
+ throw new antlr4_1.NoViableAltException(this);
221
+ }
222
+ }
223
+ catch (re) {
224
+ if (re instanceof antlr4_1.RecognitionException) {
225
+ localctx.exception = re;
226
+ this._errHandler.reportError(this, re);
227
+ this._errHandler.recover(this, re);
228
+ }
229
+ else {
230
+ throw re;
231
+ }
232
+ }
233
+ finally {
234
+ this.exitRule();
235
+ }
236
+ return localctx;
237
+ }
238
+ // @RuleVersion(0)
215
239
  stmt() {
216
240
  let localctx = new StmtContext(this, this._ctx, this.state);
217
- this.enterRule(localctx, 6, YiniParser.RULE_stmt);
241
+ this.enterRule(localctx, 8, YiniParser.RULE_stmt);
218
242
  try {
219
- this.state = 93;
243
+ this.state = 113;
220
244
  this._errHandler.sync(this);
221
- switch (this._interp.adaptivePredict(this._input, 8, this._ctx)) {
222
- case 1:
245
+ switch (this._input.LA(1)) {
246
+ case 31:
223
247
  this.enterOuterAlt(localctx, 1);
224
248
  {
225
- this.state = 87;
249
+ this.state = 105;
226
250
  this.eol();
227
251
  }
228
252
  break;
229
- case 2:
253
+ case 35:
230
254
  this.enterOuterAlt(localctx, 2);
231
255
  {
232
- this.state = 88;
233
- this.match(YiniParser.SECTION_HEAD);
256
+ this.state = 106;
257
+ this.full_line_comment_stmt();
234
258
  }
235
259
  break;
236
- case 3:
260
+ case 34:
237
261
  this.enterOuterAlt(localctx, 3);
238
262
  {
239
- this.state = 89;
240
- this.assignment();
263
+ this.state = 107;
264
+ this.disabled_line_stmt();
241
265
  }
242
266
  break;
243
- case 4:
267
+ case 6:
244
268
  this.enterOuterAlt(localctx, 4);
245
269
  {
246
- this.state = 90;
247
- this.colon_list_decl();
270
+ this.state = 108;
271
+ this.match(YiniParser.SECTION_HEAD);
248
272
  }
249
273
  break;
250
- case 5:
274
+ case 7:
251
275
  this.enterOuterAlt(localctx, 5);
252
276
  {
253
- this.state = 91;
254
- this.meta_stmt();
277
+ this.state = 109;
278
+ this.invalid_section_stmt();
255
279
  }
256
280
  break;
257
- case 6:
281
+ case 37:
258
282
  this.enterOuterAlt(localctx, 6);
259
283
  {
260
- this.state = 92;
284
+ this.state = 110;
285
+ this.assignment();
286
+ }
287
+ break;
288
+ case 2:
289
+ case 3:
290
+ case 4:
291
+ case 40:
292
+ this.enterOuterAlt(localctx, 7);
293
+ {
294
+ this.state = 111;
295
+ this.meta_stmt();
296
+ }
297
+ break;
298
+ case 8:
299
+ case 9:
300
+ case 10:
301
+ case 11:
302
+ case 12:
303
+ case 13:
304
+ case 14:
305
+ case 19:
306
+ case 22:
307
+ case 24:
308
+ case 39:
309
+ this.enterOuterAlt(localctx, 8);
310
+ {
311
+ this.state = 112;
261
312
  this.bad_member();
262
313
  }
263
314
  break;
315
+ default:
316
+ throw new antlr4_1.NoViableAltException(this);
317
+ }
318
+ }
319
+ catch (re) {
320
+ if (re instanceof antlr4_1.RecognitionException) {
321
+ localctx.exception = re;
322
+ this._errHandler.reportError(this, re);
323
+ this._errHandler.recover(this, re);
324
+ }
325
+ else {
326
+ throw re;
327
+ }
328
+ }
329
+ finally {
330
+ this.exitRule();
331
+ }
332
+ return localctx;
333
+ }
334
+ // @RuleVersion(0)
335
+ full_line_comment_stmt() {
336
+ let localctx = new Full_line_comment_stmtContext(this, this._ctx, this.state);
337
+ this.enterRule(localctx, 10, YiniParser.RULE_full_line_comment_stmt);
338
+ try {
339
+ this.enterOuterAlt(localctx, 1);
340
+ {
341
+ this.state = 115;
342
+ this.match(YiniParser.FULL_LINE_COMMENT);
343
+ this.state = 117;
344
+ this._errHandler.sync(this);
345
+ switch (this._interp.adaptivePredict(this._input, 9, this._ctx)) {
346
+ case 1:
347
+ {
348
+ this.state = 116;
349
+ this.eol();
350
+ }
351
+ break;
352
+ }
353
+ }
354
+ }
355
+ catch (re) {
356
+ if (re instanceof antlr4_1.RecognitionException) {
357
+ localctx.exception = re;
358
+ this._errHandler.reportError(this, re);
359
+ this._errHandler.recover(this, re);
360
+ }
361
+ else {
362
+ throw re;
363
+ }
364
+ }
365
+ finally {
366
+ this.exitRule();
367
+ }
368
+ return localctx;
369
+ }
370
+ // @RuleVersion(0)
371
+ disabled_line_stmt() {
372
+ let localctx = new Disabled_line_stmtContext(this, this._ctx, this.state);
373
+ this.enterRule(localctx, 12, YiniParser.RULE_disabled_line_stmt);
374
+ try {
375
+ this.enterOuterAlt(localctx, 1);
376
+ {
377
+ this.state = 119;
378
+ this.match(YiniParser.DISABLED_LINE);
379
+ }
380
+ }
381
+ catch (re) {
382
+ if (re instanceof antlr4_1.RecognitionException) {
383
+ localctx.exception = re;
384
+ this._errHandler.reportError(this, re);
385
+ this._errHandler.recover(this, re);
386
+ }
387
+ else {
388
+ throw re;
389
+ }
390
+ }
391
+ finally {
392
+ this.exitRule();
393
+ }
394
+ return localctx;
395
+ }
396
+ // @RuleVersion(0)
397
+ invalid_section_stmt() {
398
+ let localctx = new Invalid_section_stmtContext(this, this._ctx, this.state);
399
+ this.enterRule(localctx, 14, YiniParser.RULE_invalid_section_stmt);
400
+ try {
401
+ this.enterOuterAlt(localctx, 1);
402
+ {
403
+ this.state = 121;
404
+ this.match(YiniParser.INVALID_SECTION_HEAD);
264
405
  }
265
406
  }
266
407
  catch (re) {
@@ -281,32 +422,32 @@ class YiniParser extends antlr4_1.Parser {
281
422
  // @RuleVersion(0)
282
423
  meta_stmt() {
283
424
  let localctx = new Meta_stmtContext(this, this._ctx, this.state);
284
- this.enterRule(localctx, 8, YiniParser.RULE_meta_stmt);
425
+ this.enterRule(localctx, 16, YiniParser.RULE_meta_stmt);
285
426
  try {
286
- this.state = 100;
427
+ this.state = 128;
287
428
  this._errHandler.sync(this);
288
429
  switch (this._input.LA(1)) {
289
- case 1:
290
430
  case 2:
431
+ case 3:
291
432
  this.enterOuterAlt(localctx, 1);
292
433
  {
293
- this.state = 95;
434
+ this.state = 123;
294
435
  this.directive();
295
436
  }
296
437
  break;
297
- case 3:
438
+ case 4:
298
439
  this.enterOuterAlt(localctx, 2);
299
440
  {
300
- this.state = 96;
441
+ this.state = 124;
301
442
  this.annotation();
302
443
  }
303
444
  break;
304
- case 50:
445
+ case 40:
305
446
  this.enterOuterAlt(localctx, 3);
306
447
  {
307
- this.state = 97;
448
+ this.state = 125;
308
449
  this.bad_meta_text();
309
- this.state = 98;
450
+ this.state = 126;
310
451
  this.eol();
311
452
  }
312
453
  break;
@@ -332,50 +473,34 @@ class YiniParser extends antlr4_1.Parser {
332
473
  // @RuleVersion(0)
333
474
  directive() {
334
475
  let localctx = new DirectiveContext(this, this._ctx, this.state);
335
- this.enterRule(localctx, 10, YiniParser.RULE_directive);
476
+ this.enterRule(localctx, 18, YiniParser.RULE_directive);
336
477
  let _la;
337
478
  try {
338
- this.state = 115;
479
+ this.state = 136;
339
480
  this._errHandler.sync(this);
340
481
  switch (this._input.LA(1)) {
341
- case 1:
482
+ case 2:
342
483
  this.enterOuterAlt(localctx, 1);
343
484
  {
344
- this.state = 102;
345
- this.match(YiniParser.YINI_TOKEN);
346
- this.state = 103;
347
- this.eol();
485
+ this.state = 130;
486
+ this.yini_directive();
348
487
  }
349
488
  break;
350
- case 2:
489
+ case 3:
351
490
  this.enterOuterAlt(localctx, 2);
352
491
  {
353
- this.state = 104;
492
+ this.state = 131;
354
493
  this.match(YiniParser.INCLUDE_TOKEN);
355
- this.state = 108;
494
+ this.state = 133;
356
495
  this._errHandler.sync(this);
357
496
  _la = this._input.LA(1);
358
- while (_la === 43) {
497
+ if (_la === 13) {
359
498
  {
360
- {
361
- this.state = 105;
362
- this.match(YiniParser.WS);
363
- }
364
- }
365
- this.state = 110;
366
- this._errHandler.sync(this);
367
- _la = this._input.LA(1);
368
- }
369
- this.state = 112;
370
- this._errHandler.sync(this);
371
- _la = this._input.LA(1);
372
- if (_la === 34) {
373
- {
374
- this.state = 111;
499
+ this.state = 132;
375
500
  this.string_literal();
376
501
  }
377
502
  }
378
- this.state = 114;
503
+ this.state = 135;
379
504
  this.eol();
380
505
  }
381
506
  break;
@@ -399,15 +524,79 @@ class YiniParser extends antlr4_1.Parser {
399
524
  return localctx;
400
525
  }
401
526
  // @RuleVersion(0)
527
+ yini_directive() {
528
+ let localctx = new Yini_directiveContext(this, this._ctx, this.state);
529
+ this.enterRule(localctx, 20, YiniParser.RULE_yini_directive);
530
+ let _la;
531
+ try {
532
+ this.enterOuterAlt(localctx, 1);
533
+ {
534
+ this.state = 138;
535
+ this.match(YiniParser.YINI_TOKEN);
536
+ this.state = 140;
537
+ this._errHandler.sync(this);
538
+ _la = this._input.LA(1);
539
+ if (_la === 37) {
540
+ {
541
+ this.state = 139;
542
+ this.yini_mode_declaration();
543
+ }
544
+ }
545
+ this.state = 142;
546
+ this.eol();
547
+ }
548
+ }
549
+ catch (re) {
550
+ if (re instanceof antlr4_1.RecognitionException) {
551
+ localctx.exception = re;
552
+ this._errHandler.reportError(this, re);
553
+ this._errHandler.recover(this, re);
554
+ }
555
+ else {
556
+ throw re;
557
+ }
558
+ }
559
+ finally {
560
+ this.exitRule();
561
+ }
562
+ return localctx;
563
+ }
564
+ // @RuleVersion(0)
565
+ yini_mode_declaration() {
566
+ let localctx = new Yini_mode_declarationContext(this, this._ctx, this.state);
567
+ this.enterRule(localctx, 22, YiniParser.RULE_yini_mode_declaration);
568
+ try {
569
+ this.enterOuterAlt(localctx, 1);
570
+ {
571
+ this.state = 144;
572
+ this.match(YiniParser.KEY);
573
+ }
574
+ }
575
+ catch (re) {
576
+ if (re instanceof antlr4_1.RecognitionException) {
577
+ localctx.exception = re;
578
+ this._errHandler.reportError(this, re);
579
+ this._errHandler.recover(this, re);
580
+ }
581
+ else {
582
+ throw re;
583
+ }
584
+ }
585
+ finally {
586
+ this.exitRule();
587
+ }
588
+ return localctx;
589
+ }
590
+ // @RuleVersion(0)
402
591
  annotation() {
403
592
  let localctx = new AnnotationContext(this, this._ctx, this.state);
404
- this.enterRule(localctx, 12, YiniParser.RULE_annotation);
593
+ this.enterRule(localctx, 24, YiniParser.RULE_annotation);
405
594
  try {
406
595
  this.enterOuterAlt(localctx, 1);
407
596
  {
408
- this.state = 117;
597
+ this.state = 146;
409
598
  this.match(YiniParser.DEPRECATED_TOKEN);
410
- this.state = 118;
599
+ this.state = 147;
411
600
  this.eol();
412
601
  }
413
602
  }
@@ -429,22 +618,12 @@ class YiniParser extends antlr4_1.Parser {
429
618
  // @RuleVersion(0)
430
619
  eol() {
431
620
  let localctx = new EolContext(this, this._ctx, this.state);
432
- this.enterRule(localctx, 14, YiniParser.RULE_eol);
433
- let _la;
621
+ this.enterRule(localctx, 26, YiniParser.RULE_eol);
434
622
  try {
435
623
  let _alt;
436
624
  this.enterOuterAlt(localctx, 1);
437
625
  {
438
- this.state = 121;
439
- this._errHandler.sync(this);
440
- _la = this._input.LA(1);
441
- if (_la === 47) {
442
- {
443
- this.state = 120;
444
- this.match(YiniParser.INLINE_COMMENT);
445
- }
446
- }
447
- this.state = 124;
626
+ this.state = 150;
448
627
  this._errHandler.sync(this);
449
628
  _alt = 1;
450
629
  do {
@@ -452,7 +631,7 @@ class YiniParser extends antlr4_1.Parser {
452
631
  case 1:
453
632
  {
454
633
  {
455
- this.state = 123;
634
+ this.state = 149;
456
635
  this.match(YiniParser.NL);
457
636
  }
458
637
  }
@@ -460,7 +639,7 @@ class YiniParser extends antlr4_1.Parser {
460
639
  default:
461
640
  throw new antlr4_1.NoViableAltException(this);
462
641
  }
463
- this.state = 126;
642
+ this.state = 152;
464
643
  this._errHandler.sync(this);
465
644
  _alt = this._interp.adaptivePredict(this._input, 14, this._ctx);
466
645
  } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
@@ -484,13 +663,13 @@ class YiniParser extends antlr4_1.Parser {
484
663
  // @RuleVersion(0)
485
664
  assignment() {
486
665
  let localctx = new AssignmentContext(this, this._ctx, this.state);
487
- this.enterRule(localctx, 16, YiniParser.RULE_assignment);
666
+ this.enterRule(localctx, 28, YiniParser.RULE_assignment);
488
667
  try {
489
668
  this.enterOuterAlt(localctx, 1);
490
669
  {
491
- this.state = 128;
670
+ this.state = 154;
492
671
  this.member();
493
- this.state = 129;
672
+ this.state = 155;
494
673
  this.eol();
495
674
  }
496
675
  }
@@ -512,39 +691,21 @@ class YiniParser extends antlr4_1.Parser {
512
691
  // @RuleVersion(0)
513
692
  member() {
514
693
  let localctx = new MemberContext(this, this._ctx, this.state);
515
- this.enterRule(localctx, 18, YiniParser.RULE_member);
694
+ this.enterRule(localctx, 30, YiniParser.RULE_member);
516
695
  let _la;
517
696
  try {
518
697
  this.enterOuterAlt(localctx, 1);
519
698
  {
520
- this.state = 131;
699
+ this.state = 157;
521
700
  this.match(YiniParser.KEY);
522
- this.state = 133;
523
- this._errHandler.sync(this);
524
- _la = this._input.LA(1);
525
- if (_la === 43) {
526
- {
527
- this.state = 132;
528
- this.match(YiniParser.WS);
529
- }
530
- }
531
- this.state = 135;
701
+ this.state = 158;
532
702
  this.match(YiniParser.EQ);
533
- this.state = 137;
703
+ this.state = 160;
534
704
  this._errHandler.sync(this);
535
705
  _la = this._input.LA(1);
536
- if (_la === 43) {
706
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 21004032) !== 0)) {
537
707
  {
538
- this.state = 136;
539
- this.match(YiniParser.WS);
540
- }
541
- }
542
- this.state = 140;
543
- this._errHandler.sync(this);
544
- _la = this._input.LA(1);
545
- if (((((_la - 15)) & ~0x1F) === 0 && ((1 << (_la - 15)) & 572933) !== 0)) {
546
- {
547
- this.state = 139;
708
+ this.state = 159;
548
709
  this.value();
549
710
  }
550
711
  }
@@ -566,127 +727,41 @@ class YiniParser extends antlr4_1.Parser {
566
727
  return localctx;
567
728
  }
568
729
  // @RuleVersion(0)
569
- colon_list_decl() {
570
- let localctx = new Colon_list_declContext(this, this._ctx, this.state);
571
- this.enterRule(localctx, 20, YiniParser.RULE_colon_list_decl);
572
- let _la;
730
+ value() {
731
+ let localctx = new ValueContext(this, this._ctx, this.state);
732
+ this.enterRule(localctx, 32, YiniParser.RULE_value);
573
733
  try {
574
- let _alt;
575
- this.enterOuterAlt(localctx, 1);
576
- {
577
- this.state = 142;
578
- this.match(YiniParser.KEY);
579
- this.state = 144;
580
- this._errHandler.sync(this);
581
- _la = this._input.LA(1);
582
- if (_la === 43) {
734
+ this.state = 166;
735
+ this._errHandler.sync(this);
736
+ switch (this._interp.adaptivePredict(this._input, 16, this._ctx)) {
737
+ case 1:
738
+ this.enterOuterAlt(localctx, 1);
583
739
  {
584
- this.state = 143;
585
- this.match(YiniParser.WS);
740
+ this.state = 162;
741
+ this.concat_expression();
586
742
  }
587
- }
588
- this.state = 146;
589
- this.match(YiniParser.COLON);
590
- this.state = 155;
591
- this._errHandler.sync(this);
592
- _la = this._input.LA(1);
593
- while (((((_la - 41)) & ~0x1F) === 0 && ((1 << (_la - 41)) & 69) !== 0)) {
743
+ break;
744
+ case 2:
745
+ this.enterOuterAlt(localctx, 2);
594
746
  {
595
- this.state = 153;
596
- this._errHandler.sync(this);
597
- switch (this._input.LA(1)) {
598
- case 41:
599
- case 47:
600
- {
601
- this.state = 147;
602
- this.eol();
603
- }
604
- break;
605
- case 43:
606
- {
607
- this.state = 149;
608
- this._errHandler.sync(this);
609
- _alt = 1;
610
- do {
611
- switch (_alt) {
612
- case 1:
613
- {
614
- {
615
- this.state = 148;
616
- this.match(YiniParser.WS);
617
- }
618
- }
619
- break;
620
- default:
621
- throw new antlr4_1.NoViableAltException(this);
622
- }
623
- this.state = 151;
624
- this._errHandler.sync(this);
625
- _alt = this._interp.adaptivePredict(this._input, 19, this._ctx);
626
- } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
627
- }
628
- break;
629
- default:
630
- throw new antlr4_1.NoViableAltException(this);
631
- }
747
+ this.state = 163;
748
+ this.scalar_value();
632
749
  }
633
- this.state = 157;
634
- this._errHandler.sync(this);
635
- _la = this._input.LA(1);
636
- }
637
- this.state = 158;
638
- this.elements();
639
- this.state = 167;
640
- this._errHandler.sync(this);
641
- _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
642
- while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
643
- if (_alt === 1) {
644
- {
645
- this.state = 165;
646
- this._errHandler.sync(this);
647
- switch (this._input.LA(1)) {
648
- case 41:
649
- case 47:
650
- {
651
- this.state = 159;
652
- this.eol();
653
- }
654
- break;
655
- case 43:
656
- {
657
- this.state = 161;
658
- this._errHandler.sync(this);
659
- _alt = 1;
660
- do {
661
- switch (_alt) {
662
- case 1:
663
- {
664
- {
665
- this.state = 160;
666
- this.match(YiniParser.WS);
667
- }
668
- }
669
- break;
670
- default:
671
- throw new antlr4_1.NoViableAltException(this);
672
- }
673
- this.state = 163;
674
- this._errHandler.sync(this);
675
- _alt = this._interp.adaptivePredict(this._input, 22, this._ctx);
676
- } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
677
- }
678
- break;
679
- default:
680
- throw new antlr4_1.NoViableAltException(this);
681
- }
682
- }
750
+ break;
751
+ case 3:
752
+ this.enterOuterAlt(localctx, 3);
753
+ {
754
+ this.state = 164;
755
+ this.list_literal();
683
756
  }
684
- this.state = 169;
685
- this._errHandler.sync(this);
686
- _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
687
- }
688
- this.state = 170;
689
- this.eol();
757
+ break;
758
+ case 4:
759
+ this.enterOuterAlt(localctx, 4);
760
+ {
761
+ this.state = 165;
762
+ this.object_literal();
763
+ }
764
+ break;
690
765
  }
691
766
  }
692
767
  catch (re) {
@@ -705,60 +780,188 @@ class YiniParser extends antlr4_1.Parser {
705
780
  return localctx;
706
781
  }
707
782
  // @RuleVersion(0)
708
- value() {
709
- let localctx = new ValueContext(this, this._ctx, this.state);
710
- this.enterRule(localctx, 22, YiniParser.RULE_value);
783
+ scalar_value() {
784
+ let localctx = new Scalar_valueContext(this, this._ctx, this.state);
785
+ this.enterRule(localctx, 34, YiniParser.RULE_scalar_value);
711
786
  try {
712
- this.state = 178;
787
+ this.state = 172;
713
788
  this._errHandler.sync(this);
714
789
  switch (this._input.LA(1)) {
715
- case 26:
790
+ case 10:
716
791
  this.enterOuterAlt(localctx, 1);
717
792
  {
718
- this.state = 172;
793
+ this.state = 168;
719
794
  this.null_literal();
720
795
  }
721
796
  break;
722
- case 34:
797
+ case 13:
723
798
  this.enterOuterAlt(localctx, 2);
724
799
  {
725
- this.state = 173;
800
+ this.state = 169;
726
801
  this.string_literal();
727
802
  }
728
803
  break;
729
- case 30:
804
+ case 14:
730
805
  this.enterOuterAlt(localctx, 3);
731
806
  {
732
- this.state = 174;
807
+ this.state = 170;
733
808
  this.number_literal();
734
809
  }
735
810
  break;
736
- case 24:
737
- case 25:
811
+ case 8:
812
+ case 9:
738
813
  this.enterOuterAlt(localctx, 4);
739
814
  {
740
- this.state = 175;
815
+ this.state = 171;
741
816
  this.boolean_literal();
742
817
  }
743
818
  break;
744
- case 15:
745
- case 28:
746
- this.enterOuterAlt(localctx, 5);
819
+ default:
820
+ throw new antlr4_1.NoViableAltException(this);
821
+ }
822
+ }
823
+ catch (re) {
824
+ if (re instanceof antlr4_1.RecognitionException) {
825
+ localctx.exception = re;
826
+ this._errHandler.reportError(this, re);
827
+ this._errHandler.recover(this, re);
828
+ }
829
+ else {
830
+ throw re;
831
+ }
832
+ }
833
+ finally {
834
+ this.exitRule();
835
+ }
836
+ return localctx;
837
+ }
838
+ // @RuleVersion(0)
839
+ concat_expression() {
840
+ let localctx = new Concat_expressionContext(this, this._ctx, this.state);
841
+ this.enterRule(localctx, 36, YiniParser.RULE_concat_expression);
842
+ let _la;
843
+ try {
844
+ this.enterOuterAlt(localctx, 1);
845
+ {
846
+ this.state = 174;
847
+ this.match(YiniParser.STRING);
848
+ this.state = 176;
849
+ this._errHandler.sync(this);
850
+ _la = this._input.LA(1);
851
+ do {
747
852
  {
748
- this.state = 176;
749
- this.list_literal();
853
+ {
854
+ this.state = 175;
855
+ this.concat_tail();
856
+ }
750
857
  }
751
- break;
752
- case 17:
753
- case 27:
754
- this.enterOuterAlt(localctx, 6);
858
+ this.state = 178;
859
+ this._errHandler.sync(this);
860
+ _la = this._input.LA(1);
861
+ } while (_la === 26);
862
+ }
863
+ }
864
+ catch (re) {
865
+ if (re instanceof antlr4_1.RecognitionException) {
866
+ localctx.exception = re;
867
+ this._errHandler.reportError(this, re);
868
+ this._errHandler.recover(this, re);
869
+ }
870
+ else {
871
+ throw re;
872
+ }
873
+ }
874
+ finally {
875
+ this.exitRule();
876
+ }
877
+ return localctx;
878
+ }
879
+ // @RuleVersion(0)
880
+ concat_tail() {
881
+ let localctx = new Concat_tailContext(this, this._ctx, this.state);
882
+ this.enterRule(localctx, 38, YiniParser.RULE_concat_tail);
883
+ let _la;
884
+ try {
885
+ this.enterOuterAlt(localctx, 1);
886
+ {
887
+ this.state = 180;
888
+ this.match(YiniParser.PLUS);
889
+ this.state = 184;
890
+ this._errHandler.sync(this);
891
+ _la = this._input.LA(1);
892
+ while (_la === 31) {
755
893
  {
756
- this.state = 177;
757
- this.object_literal();
894
+ {
895
+ this.state = 181;
896
+ this.match(YiniParser.NL);
897
+ }
758
898
  }
759
- break;
760
- default:
761
- throw new antlr4_1.NoViableAltException(this);
899
+ this.state = 186;
900
+ this._errHandler.sync(this);
901
+ _la = this._input.LA(1);
902
+ }
903
+ this.state = 187;
904
+ this.concat_operand();
905
+ }
906
+ }
907
+ catch (re) {
908
+ if (re instanceof antlr4_1.RecognitionException) {
909
+ localctx.exception = re;
910
+ this._errHandler.reportError(this, re);
911
+ this._errHandler.recover(this, re);
912
+ }
913
+ else {
914
+ throw re;
915
+ }
916
+ }
917
+ finally {
918
+ this.exitRule();
919
+ }
920
+ return localctx;
921
+ }
922
+ // @RuleVersion(0)
923
+ concat_operand() {
924
+ let localctx = new Concat_operandContext(this, this._ctx, this.state);
925
+ this.enterRule(localctx, 40, YiniParser.RULE_concat_operand);
926
+ let _la;
927
+ try {
928
+ this.enterOuterAlt(localctx, 1);
929
+ {
930
+ this.state = 189;
931
+ _la = this._input.LA(1);
932
+ if (!((((_la) & ~0x1F) === 0 && ((1 << _la) & 26368) !== 0))) {
933
+ this._errHandler.recoverInline(this);
934
+ }
935
+ else {
936
+ this._errHandler.reportMatch(this);
937
+ this.consume();
938
+ }
939
+ }
940
+ }
941
+ catch (re) {
942
+ if (re instanceof antlr4_1.RecognitionException) {
943
+ localctx.exception = re;
944
+ this._errHandler.reportError(this, re);
945
+ this._errHandler.recover(this, re);
946
+ }
947
+ else {
948
+ throw re;
949
+ }
950
+ }
951
+ finally {
952
+ this.exitRule();
953
+ }
954
+ return localctx;
955
+ }
956
+ // @RuleVersion(0)
957
+ string_literal() {
958
+ let localctx = new String_literalContext(this, this._ctx, this.state);
959
+ this.enterRule(localctx, 42, YiniParser.RULE_string_literal);
960
+ try {
961
+ this.enterOuterAlt(localctx, 1);
962
+ {
963
+ this.state = 191;
964
+ this.match(YiniParser.STRING);
762
965
  }
763
966
  }
764
967
  catch (re) {
@@ -779,97 +982,97 @@ class YiniParser extends antlr4_1.Parser {
779
982
  // @RuleVersion(0)
780
983
  object_literal() {
781
984
  let localctx = new Object_literalContext(this, this._ctx, this.state);
782
- this.enterRule(localctx, 24, YiniParser.RULE_object_literal);
985
+ this.enterRule(localctx, 44, YiniParser.RULE_object_literal);
783
986
  let _la;
784
987
  try {
785
988
  let _alt;
786
- this.state = 210;
989
+ this.state = 223;
787
990
  this._errHandler.sync(this);
788
991
  switch (this._input.LA(1)) {
789
- case 17:
992
+ case 24:
790
993
  this.enterOuterAlt(localctx, 1);
791
994
  {
792
- this.state = 180;
995
+ this.state = 193;
793
996
  this.match(YiniParser.OC);
794
- this.state = 184;
997
+ this.state = 197;
795
998
  this._errHandler.sync(this);
796
- _alt = this._interp.adaptivePredict(this._input, 26, this._ctx);
999
+ _alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
797
1000
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
798
1001
  if (_alt === 1) {
799
1002
  {
800
1003
  {
801
- this.state = 181;
1004
+ this.state = 194;
802
1005
  this.match(YiniParser.NL);
803
1006
  }
804
1007
  }
805
1008
  }
806
- this.state = 186;
1009
+ this.state = 199;
807
1010
  this._errHandler.sync(this);
808
- _alt = this._interp.adaptivePredict(this._input, 26, this._ctx);
1011
+ _alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
809
1012
  }
810
- this.state = 188;
1013
+ this.state = 201;
811
1014
  this._errHandler.sync(this);
812
1015
  _la = this._input.LA(1);
813
- if (_la === 31) {
1016
+ if (_la === 37) {
814
1017
  {
815
- this.state = 187;
1018
+ this.state = 200;
816
1019
  this.object_members();
817
1020
  }
818
1021
  }
819
- this.state = 193;
1022
+ this.state = 206;
820
1023
  this._errHandler.sync(this);
821
1024
  _la = this._input.LA(1);
822
- while (_la === 41) {
1025
+ while (_la === 31) {
823
1026
  {
824
1027
  {
825
- this.state = 190;
1028
+ this.state = 203;
826
1029
  this.match(YiniParser.NL);
827
1030
  }
828
1031
  }
829
- this.state = 195;
1032
+ this.state = 208;
830
1033
  this._errHandler.sync(this);
831
1034
  _la = this._input.LA(1);
832
1035
  }
833
- this.state = 196;
1036
+ this.state = 209;
834
1037
  this.match(YiniParser.CC);
835
- this.state = 200;
1038
+ this.state = 213;
836
1039
  this._errHandler.sync(this);
837
- _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
1040
+ _alt = this._interp.adaptivePredict(this._input, 23, this._ctx);
838
1041
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
839
1042
  if (_alt === 1) {
840
1043
  {
841
1044
  {
842
- this.state = 197;
1045
+ this.state = 210;
843
1046
  this.match(YiniParser.NL);
844
1047
  }
845
1048
  }
846
1049
  }
847
- this.state = 202;
1050
+ this.state = 215;
848
1051
  this._errHandler.sync(this);
849
- _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
1052
+ _alt = this._interp.adaptivePredict(this._input, 23, this._ctx);
850
1053
  }
851
1054
  }
852
1055
  break;
853
- case 27:
1056
+ case 11:
854
1057
  this.enterOuterAlt(localctx, 2);
855
1058
  {
856
- this.state = 203;
1059
+ this.state = 216;
857
1060
  this.match(YiniParser.EMPTY_OBJECT);
858
- this.state = 207;
1061
+ this.state = 220;
859
1062
  this._errHandler.sync(this);
860
- _alt = this._interp.adaptivePredict(this._input, 30, this._ctx);
1063
+ _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
861
1064
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
862
1065
  if (_alt === 1) {
863
1066
  {
864
1067
  {
865
- this.state = 204;
1068
+ this.state = 217;
866
1069
  this.match(YiniParser.NL);
867
1070
  }
868
1071
  }
869
1072
  }
870
- this.state = 209;
1073
+ this.state = 222;
871
1074
  this._errHandler.sync(this);
872
- _alt = this._interp.adaptivePredict(this._input, 30, this._ctx);
1075
+ _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
873
1076
  }
874
1077
  }
875
1078
  break;
@@ -895,52 +1098,52 @@ class YiniParser extends antlr4_1.Parser {
895
1098
  // @RuleVersion(0)
896
1099
  object_members() {
897
1100
  let localctx = new Object_membersContext(this, this._ctx, this.state);
898
- this.enterRule(localctx, 26, YiniParser.RULE_object_members);
1101
+ this.enterRule(localctx, 46, YiniParser.RULE_object_members);
899
1102
  let _la;
900
1103
  try {
901
1104
  let _alt;
902
1105
  this.enterOuterAlt(localctx, 1);
903
1106
  {
904
- this.state = 212;
1107
+ this.state = 225;
905
1108
  this.object_member();
906
- this.state = 223;
1109
+ this.state = 236;
907
1110
  this._errHandler.sync(this);
908
- _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
1111
+ _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
909
1112
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
910
1113
  if (_alt === 1) {
911
1114
  {
912
1115
  {
913
- this.state = 213;
1116
+ this.state = 226;
914
1117
  this.match(YiniParser.COMMA);
915
- this.state = 217;
1118
+ this.state = 230;
916
1119
  this._errHandler.sync(this);
917
1120
  _la = this._input.LA(1);
918
- while (_la === 41) {
1121
+ while (_la === 31) {
919
1122
  {
920
1123
  {
921
- this.state = 214;
1124
+ this.state = 227;
922
1125
  this.match(YiniParser.NL);
923
1126
  }
924
1127
  }
925
- this.state = 219;
1128
+ this.state = 232;
926
1129
  this._errHandler.sync(this);
927
1130
  _la = this._input.LA(1);
928
1131
  }
929
- this.state = 220;
1132
+ this.state = 233;
930
1133
  this.object_member();
931
1134
  }
932
1135
  }
933
1136
  }
934
- this.state = 225;
1137
+ this.state = 238;
935
1138
  this._errHandler.sync(this);
936
- _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
1139
+ _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
937
1140
  }
938
- this.state = 227;
1141
+ this.state = 240;
939
1142
  this._errHandler.sync(this);
940
1143
  _la = this._input.LA(1);
941
- if (_la === 13) {
1144
+ if (_la === 20) {
942
1145
  {
943
- this.state = 226;
1146
+ this.state = 239;
944
1147
  this.match(YiniParser.COMMA);
945
1148
  }
946
1149
  }
@@ -964,40 +1167,50 @@ class YiniParser extends antlr4_1.Parser {
964
1167
  // @RuleVersion(0)
965
1168
  object_member() {
966
1169
  let localctx = new Object_memberContext(this, this._ctx, this.state);
967
- this.enterRule(localctx, 28, YiniParser.RULE_object_member);
968
- let _la;
1170
+ this.enterRule(localctx, 48, YiniParser.RULE_object_member);
969
1171
  try {
970
1172
  this.enterOuterAlt(localctx, 1);
971
1173
  {
972
- this.state = 229;
1174
+ this.state = 242;
973
1175
  this.match(YiniParser.KEY);
974
- this.state = 231;
975
- this._errHandler.sync(this);
1176
+ this.state = 243;
1177
+ this.object_member_separator();
1178
+ this.state = 244;
1179
+ this.value();
1180
+ }
1181
+ }
1182
+ catch (re) {
1183
+ if (re instanceof antlr4_1.RecognitionException) {
1184
+ localctx.exception = re;
1185
+ this._errHandler.reportError(this, re);
1186
+ this._errHandler.recover(this, re);
1187
+ }
1188
+ else {
1189
+ throw re;
1190
+ }
1191
+ }
1192
+ finally {
1193
+ this.exitRule();
1194
+ }
1195
+ return localctx;
1196
+ }
1197
+ // @RuleVersion(0)
1198
+ object_member_separator() {
1199
+ let localctx = new Object_member_separatorContext(this, this._ctx, this.state);
1200
+ this.enterRule(localctx, 50, YiniParser.RULE_object_member_separator);
1201
+ let _la;
1202
+ try {
1203
+ this.enterOuterAlt(localctx, 1);
1204
+ {
1205
+ this.state = 246;
976
1206
  _la = this._input.LA(1);
977
- if (_la === 43) {
978
- {
979
- this.state = 230;
980
- this.match(YiniParser.WS);
981
- }
1207
+ if (!(_la === 19 || _la === 21)) {
1208
+ this._errHandler.recoverInline(this);
982
1209
  }
983
- this.state = 233;
984
- this.match(YiniParser.COLON);
985
- this.state = 237;
986
- this._errHandler.sync(this);
987
- _la = this._input.LA(1);
988
- while (_la === 41) {
989
- {
990
- {
991
- this.state = 234;
992
- this.match(YiniParser.NL);
993
- }
994
- }
995
- this.state = 239;
996
- this._errHandler.sync(this);
997
- _la = this._input.LA(1);
1210
+ else {
1211
+ this._errHandler.reportMatch(this);
1212
+ this.consume();
998
1213
  }
999
- this.state = 240;
1000
- this.value();
1001
1214
  }
1002
1215
  }
1003
1216
  catch (re) {
@@ -1018,97 +1231,97 @@ class YiniParser extends antlr4_1.Parser {
1018
1231
  // @RuleVersion(0)
1019
1232
  list_literal() {
1020
1233
  let localctx = new List_literalContext(this, this._ctx, this.state);
1021
- this.enterRule(localctx, 30, YiniParser.RULE_list_literal);
1234
+ this.enterRule(localctx, 52, YiniParser.RULE_list_literal);
1022
1235
  let _la;
1023
1236
  try {
1024
1237
  let _alt;
1025
- this.state = 272;
1238
+ this.state = 278;
1026
1239
  this._errHandler.sync(this);
1027
1240
  switch (this._input.LA(1)) {
1028
- case 15:
1241
+ case 22:
1029
1242
  this.enterOuterAlt(localctx, 1);
1030
1243
  {
1031
- this.state = 242;
1244
+ this.state = 248;
1032
1245
  this.match(YiniParser.OB);
1033
- this.state = 246;
1246
+ this.state = 252;
1034
1247
  this._errHandler.sync(this);
1035
- _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
1248
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
1036
1249
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1037
1250
  if (_alt === 1) {
1038
1251
  {
1039
1252
  {
1040
- this.state = 243;
1253
+ this.state = 249;
1041
1254
  this.match(YiniParser.NL);
1042
1255
  }
1043
1256
  }
1044
1257
  }
1045
- this.state = 248;
1258
+ this.state = 254;
1046
1259
  this._errHandler.sync(this);
1047
- _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
1260
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
1048
1261
  }
1049
- this.state = 250;
1262
+ this.state = 256;
1050
1263
  this._errHandler.sync(this);
1051
1264
  _la = this._input.LA(1);
1052
- if (((((_la - 15)) & ~0x1F) === 0 && ((1 << (_la - 15)) & 572933) !== 0)) {
1265
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 21004032) !== 0)) {
1053
1266
  {
1054
- this.state = 249;
1267
+ this.state = 255;
1055
1268
  this.elements();
1056
1269
  }
1057
1270
  }
1058
- this.state = 255;
1271
+ this.state = 261;
1059
1272
  this._errHandler.sync(this);
1060
1273
  _la = this._input.LA(1);
1061
- while (_la === 41) {
1274
+ while (_la === 31) {
1062
1275
  {
1063
1276
  {
1064
- this.state = 252;
1277
+ this.state = 258;
1065
1278
  this.match(YiniParser.NL);
1066
1279
  }
1067
1280
  }
1068
- this.state = 257;
1281
+ this.state = 263;
1069
1282
  this._errHandler.sync(this);
1070
1283
  _la = this._input.LA(1);
1071
1284
  }
1072
- this.state = 258;
1285
+ this.state = 264;
1073
1286
  this.match(YiniParser.CB);
1074
- this.state = 262;
1287
+ this.state = 268;
1075
1288
  this._errHandler.sync(this);
1076
- _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
1289
+ _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
1077
1290
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1078
1291
  if (_alt === 1) {
1079
1292
  {
1080
1293
  {
1081
- this.state = 259;
1294
+ this.state = 265;
1082
1295
  this.match(YiniParser.NL);
1083
1296
  }
1084
1297
  }
1085
1298
  }
1086
- this.state = 264;
1299
+ this.state = 270;
1087
1300
  this._errHandler.sync(this);
1088
- _alt = this._interp.adaptivePredict(this._input, 40, this._ctx);
1301
+ _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
1089
1302
  }
1090
1303
  }
1091
1304
  break;
1092
- case 28:
1305
+ case 12:
1093
1306
  this.enterOuterAlt(localctx, 2);
1094
1307
  {
1095
- this.state = 265;
1308
+ this.state = 271;
1096
1309
  this.match(YiniParser.EMPTY_LIST);
1097
- this.state = 269;
1310
+ this.state = 275;
1098
1311
  this._errHandler.sync(this);
1099
- _alt = this._interp.adaptivePredict(this._input, 41, this._ctx);
1312
+ _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
1100
1313
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1101
1314
  if (_alt === 1) {
1102
1315
  {
1103
1316
  {
1104
- this.state = 266;
1317
+ this.state = 272;
1105
1318
  this.match(YiniParser.NL);
1106
1319
  }
1107
1320
  }
1108
1321
  }
1109
- this.state = 271;
1322
+ this.state = 277;
1110
1323
  this._errHandler.sync(this);
1111
- _alt = this._interp.adaptivePredict(this._input, 41, this._ctx);
1324
+ _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
1112
1325
  }
1113
1326
  }
1114
1327
  break;
@@ -1134,66 +1347,66 @@ class YiniParser extends antlr4_1.Parser {
1134
1347
  // @RuleVersion(0)
1135
1348
  elements() {
1136
1349
  let localctx = new ElementsContext(this, this._ctx, this.state);
1137
- this.enterRule(localctx, 32, YiniParser.RULE_elements);
1350
+ this.enterRule(localctx, 54, YiniParser.RULE_elements);
1138
1351
  let _la;
1139
1352
  try {
1140
1353
  let _alt;
1141
1354
  this.enterOuterAlt(localctx, 1);
1142
1355
  {
1143
- this.state = 274;
1356
+ this.state = 280;
1144
1357
  this.value();
1145
- this.state = 291;
1358
+ this.state = 297;
1146
1359
  this._errHandler.sync(this);
1147
- _alt = this._interp.adaptivePredict(this._input, 45, this._ctx);
1360
+ _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
1148
1361
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1149
1362
  if (_alt === 1) {
1150
1363
  {
1151
1364
  {
1152
- this.state = 278;
1365
+ this.state = 284;
1153
1366
  this._errHandler.sync(this);
1154
1367
  _la = this._input.LA(1);
1155
- while (_la === 41) {
1368
+ while (_la === 31) {
1156
1369
  {
1157
1370
  {
1158
- this.state = 275;
1371
+ this.state = 281;
1159
1372
  this.match(YiniParser.NL);
1160
1373
  }
1161
1374
  }
1162
- this.state = 280;
1375
+ this.state = 286;
1163
1376
  this._errHandler.sync(this);
1164
1377
  _la = this._input.LA(1);
1165
1378
  }
1166
- this.state = 281;
1379
+ this.state = 287;
1167
1380
  this.match(YiniParser.COMMA);
1168
- this.state = 285;
1381
+ this.state = 291;
1169
1382
  this._errHandler.sync(this);
1170
1383
  _la = this._input.LA(1);
1171
- while (_la === 41) {
1384
+ while (_la === 31) {
1172
1385
  {
1173
1386
  {
1174
- this.state = 282;
1387
+ this.state = 288;
1175
1388
  this.match(YiniParser.NL);
1176
1389
  }
1177
1390
  }
1178
- this.state = 287;
1391
+ this.state = 293;
1179
1392
  this._errHandler.sync(this);
1180
1393
  _la = this._input.LA(1);
1181
1394
  }
1182
- this.state = 288;
1395
+ this.state = 294;
1183
1396
  this.value();
1184
1397
  }
1185
1398
  }
1186
1399
  }
1187
- this.state = 293;
1400
+ this.state = 299;
1188
1401
  this._errHandler.sync(this);
1189
- _alt = this._interp.adaptivePredict(this._input, 45, this._ctx);
1402
+ _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
1190
1403
  }
1191
- this.state = 295;
1404
+ this.state = 301;
1192
1405
  this._errHandler.sync(this);
1193
1406
  _la = this._input.LA(1);
1194
- if (_la === 13) {
1407
+ if (_la === 20) {
1195
1408
  {
1196
- this.state = 294;
1409
+ this.state = 300;
1197
1410
  this.match(YiniParser.COMMA);
1198
1411
  }
1199
1412
  }
@@ -1217,11 +1430,11 @@ class YiniParser extends antlr4_1.Parser {
1217
1430
  // @RuleVersion(0)
1218
1431
  number_literal() {
1219
1432
  let localctx = new Number_literalContext(this, this._ctx, this.state);
1220
- this.enterRule(localctx, 34, YiniParser.RULE_number_literal);
1433
+ this.enterRule(localctx, 56, YiniParser.RULE_number_literal);
1221
1434
  try {
1222
1435
  this.enterOuterAlt(localctx, 1);
1223
1436
  {
1224
- this.state = 297;
1437
+ this.state = 303;
1225
1438
  this.match(YiniParser.NUMBER);
1226
1439
  }
1227
1440
  }
@@ -1243,112 +1456,12 @@ class YiniParser extends antlr4_1.Parser {
1243
1456
  // @RuleVersion(0)
1244
1457
  null_literal() {
1245
1458
  let localctx = new Null_literalContext(this, this._ctx, this.state);
1246
- this.enterRule(localctx, 36, YiniParser.RULE_null_literal);
1247
- try {
1248
- this.enterOuterAlt(localctx, 1);
1249
- {
1250
- this.state = 299;
1251
- this.match(YiniParser.NULL);
1252
- }
1253
- }
1254
- catch (re) {
1255
- if (re instanceof antlr4_1.RecognitionException) {
1256
- localctx.exception = re;
1257
- this._errHandler.reportError(this, re);
1258
- this._errHandler.recover(this, re);
1259
- }
1260
- else {
1261
- throw re;
1262
- }
1263
- }
1264
- finally {
1265
- this.exitRule();
1266
- }
1267
- return localctx;
1268
- }
1269
- // @RuleVersion(0)
1270
- string_literal() {
1271
- let localctx = new String_literalContext(this, this._ctx, this.state);
1272
- this.enterRule(localctx, 38, YiniParser.RULE_string_literal);
1459
+ this.enterRule(localctx, 58, YiniParser.RULE_null_literal);
1273
1460
  try {
1274
- let _alt;
1275
1461
  this.enterOuterAlt(localctx, 1);
1276
1462
  {
1277
- this.state = 301;
1278
- this.match(YiniParser.STRING);
1279
1463
  this.state = 305;
1280
- this._errHandler.sync(this);
1281
- _alt = this._interp.adaptivePredict(this._input, 47, this._ctx);
1282
- while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1283
- if (_alt === 1) {
1284
- {
1285
- {
1286
- this.state = 302;
1287
- this.string_concat();
1288
- }
1289
- }
1290
- }
1291
- this.state = 307;
1292
- this._errHandler.sync(this);
1293
- _alt = this._interp.adaptivePredict(this._input, 47, this._ctx);
1294
- }
1295
- }
1296
- }
1297
- catch (re) {
1298
- if (re instanceof antlr4_1.RecognitionException) {
1299
- localctx.exception = re;
1300
- this._errHandler.reportError(this, re);
1301
- this._errHandler.recover(this, re);
1302
- }
1303
- else {
1304
- throw re;
1305
- }
1306
- }
1307
- finally {
1308
- this.exitRule();
1309
- }
1310
- return localctx;
1311
- }
1312
- // @RuleVersion(0)
1313
- string_concat() {
1314
- let localctx = new String_concatContext(this, this._ctx, this.state);
1315
- this.enterRule(localctx, 40, YiniParser.RULE_string_concat);
1316
- let _la;
1317
- try {
1318
- this.enterOuterAlt(localctx, 1);
1319
- {
1320
- this.state = 311;
1321
- this._errHandler.sync(this);
1322
- _la = this._input.LA(1);
1323
- while (_la === 41) {
1324
- {
1325
- {
1326
- this.state = 308;
1327
- this.match(YiniParser.NL);
1328
- }
1329
- }
1330
- this.state = 313;
1331
- this._errHandler.sync(this);
1332
- _la = this._input.LA(1);
1333
- }
1334
- this.state = 314;
1335
- this.match(YiniParser.PLUS);
1336
- this.state = 318;
1337
- this._errHandler.sync(this);
1338
- _la = this._input.LA(1);
1339
- while (_la === 41) {
1340
- {
1341
- {
1342
- this.state = 315;
1343
- this.match(YiniParser.NL);
1344
- }
1345
- }
1346
- this.state = 320;
1347
- this._errHandler.sync(this);
1348
- _la = this._input.LA(1);
1349
- }
1350
- this.state = 321;
1351
- this.match(YiniParser.STRING);
1464
+ this.match(YiniParser.NULL);
1352
1465
  }
1353
1466
  }
1354
1467
  catch (re) {
@@ -1369,14 +1482,14 @@ class YiniParser extends antlr4_1.Parser {
1369
1482
  // @RuleVersion(0)
1370
1483
  boolean_literal() {
1371
1484
  let localctx = new Boolean_literalContext(this, this._ctx, this.state);
1372
- this.enterRule(localctx, 42, YiniParser.RULE_boolean_literal);
1485
+ this.enterRule(localctx, 60, YiniParser.RULE_boolean_literal);
1373
1486
  let _la;
1374
1487
  try {
1375
1488
  this.enterOuterAlt(localctx, 1);
1376
1489
  {
1377
- this.state = 323;
1490
+ this.state = 307;
1378
1491
  _la = this._input.LA(1);
1379
- if (!(_la === 24 || _la === 25)) {
1492
+ if (!(_la === 8 || _la === 9)) {
1380
1493
  this._errHandler.recoverInline(this);
1381
1494
  }
1382
1495
  else {
@@ -1403,11 +1516,11 @@ class YiniParser extends antlr4_1.Parser {
1403
1516
  // @RuleVersion(0)
1404
1517
  bad_meta_text() {
1405
1518
  let localctx = new Bad_meta_textContext(this, this._ctx, this.state);
1406
- this.enterRule(localctx, 44, YiniParser.RULE_bad_meta_text);
1519
+ this.enterRule(localctx, 62, YiniParser.RULE_bad_meta_text);
1407
1520
  try {
1408
1521
  this.enterOuterAlt(localctx, 1);
1409
1522
  {
1410
- this.state = 325;
1523
+ this.state = 309;
1411
1524
  this.match(YiniParser.META_INVALID);
1412
1525
  }
1413
1526
  }
@@ -1429,93 +1542,72 @@ class YiniParser extends antlr4_1.Parser {
1429
1542
  // @RuleVersion(0)
1430
1543
  bad_member() {
1431
1544
  let localctx = new Bad_memberContext(this, this._ctx, this.state);
1432
- this.enterRule(localctx, 46, YiniParser.RULE_bad_member);
1433
- let _la;
1545
+ this.enterRule(localctx, 64, YiniParser.RULE_bad_member);
1434
1546
  try {
1435
1547
  this.enterOuterAlt(localctx, 1);
1436
1548
  {
1437
- this.state = 328;
1438
- this._errHandler.sync(this);
1439
- switch (this._interp.adaptivePredict(this._input, 50, this._ctx)) {
1440
- case 1:
1441
- {
1442
- this.state = 327;
1443
- this.match(YiniParser.WS);
1444
- }
1445
- break;
1446
- }
1447
- this.state = 332;
1549
+ this.state = 313;
1448
1550
  this._errHandler.sync(this);
1449
1551
  switch (this._input.LA(1)) {
1450
- case 49:
1552
+ case 39:
1451
1553
  {
1452
- this.state = 330;
1554
+ this.state = 311;
1453
1555
  this.match(YiniParser.REST);
1454
1556
  }
1455
1557
  break;
1456
- case 15:
1457
- case 17:
1558
+ case 8:
1559
+ case 9:
1560
+ case 10:
1561
+ case 11:
1562
+ case 12:
1563
+ case 13:
1564
+ case 14:
1565
+ case 22:
1458
1566
  case 24:
1459
- case 25:
1460
- case 26:
1461
- case 27:
1462
- case 28:
1463
- case 30:
1464
- case 34:
1465
1567
  {
1466
- this.state = 331;
1568
+ this.state = 312;
1467
1569
  this.value();
1468
1570
  }
1469
1571
  break;
1470
- case 11:
1471
- case 43:
1572
+ case 19:
1472
1573
  break;
1473
1574
  default:
1474
1575
  break;
1475
1576
  }
1476
- this.state = 335;
1477
- this._errHandler.sync(this);
1478
- _la = this._input.LA(1);
1479
- if (_la === 43) {
1480
- {
1481
- this.state = 334;
1482
- this.match(YiniParser.WS);
1483
- }
1484
- }
1485
- this.state = 337;
1577
+ this.state = 315;
1486
1578
  this.match(YiniParser.EQ);
1487
- this.state = 340;
1579
+ this.state = 318;
1488
1580
  this._errHandler.sync(this);
1489
1581
  switch (this._input.LA(1)) {
1490
- case 15:
1491
- case 17:
1582
+ case 8:
1583
+ case 9:
1584
+ case 10:
1585
+ case 11:
1586
+ case 12:
1587
+ case 13:
1588
+ case 14:
1589
+ case 22:
1492
1590
  case 24:
1493
- case 25:
1494
- case 26:
1495
- case 27:
1496
- case 28:
1497
- case 30:
1498
- case 34:
1499
1591
  {
1500
- this.state = 338;
1592
+ this.state = 316;
1501
1593
  this.value();
1502
1594
  }
1503
1595
  break;
1504
- case 49:
1596
+ case 39:
1505
1597
  {
1506
- this.state = 339;
1598
+ this.state = 317;
1507
1599
  this.match(YiniParser.REST);
1508
1600
  }
1509
1601
  break;
1510
1602
  default:
1511
1603
  throw new antlr4_1.NoViableAltException(this);
1512
1604
  }
1513
- this.state = 343;
1605
+ this.state = 321;
1514
1606
  this._errHandler.sync(this);
1515
- switch (this._interp.adaptivePredict(this._input, 54, this._ctx)) {
1607
+ switch (this._interp.adaptivePredict(this._input, 41, this._ctx)) {
1516
1608
  case 1:
1517
1609
  {
1518
- this.state = 342;
1610
+ this.state = 320;
1519
1611
  this.eol();
1520
1612
  }
1521
1613
  break;
@@ -1544,257 +1636,241 @@ class YiniParser extends antlr4_1.Parser {
1544
1636
  return YiniParser.__ATN;
1545
1637
  }
1546
1638
  }
1547
- YiniParser.YINI_TOKEN = 1;
1548
- YiniParser.INCLUDE_TOKEN = 2;
1549
- YiniParser.DEPRECATED_TOKEN = 3;
1550
- YiniParser.SECTION_HEAD = 4;
1639
+ YiniParser.SHEBANG = 1;
1640
+ YiniParser.YINI_TOKEN = 2;
1641
+ YiniParser.INCLUDE_TOKEN = 3;
1642
+ YiniParser.DEPRECATED_TOKEN = 4;
1551
1643
  YiniParser.TERMINAL_TOKEN = 5;
1552
- YiniParser.SS = 6;
1553
- YiniParser.EUR = 7;
1554
- YiniParser.CARET = 8;
1555
- YiniParser.GT = 9;
1556
- YiniParser.LT = 10;
1557
- YiniParser.EQ = 11;
1558
- YiniParser.HASH = 12;
1559
- YiniParser.COMMA = 13;
1560
- YiniParser.COLON = 14;
1561
- YiniParser.OB = 15;
1562
- YiniParser.CB = 16;
1563
- YiniParser.OC = 17;
1564
- YiniParser.CC = 18;
1565
- YiniParser.PLUS = 19;
1566
- YiniParser.DOLLAR = 20;
1567
- YiniParser.PC = 21;
1568
- YiniParser.AT = 22;
1569
- YiniParser.SEMICOLON = 23;
1570
- YiniParser.BOOLEAN_FALSE = 24;
1571
- YiniParser.BOOLEAN_TRUE = 25;
1572
- YiniParser.NULL = 26;
1573
- YiniParser.EMPTY_OBJECT = 27;
1574
- YiniParser.EMPTY_LIST = 28;
1575
- YiniParser.SHEBANG = 29;
1576
- YiniParser.NUMBER = 30;
1577
- YiniParser.KEY = 31;
1578
- YiniParser.IDENT = 32;
1579
- YiniParser.IDENT_BACKTICKED = 33;
1580
- YiniParser.STRING = 34;
1581
- YiniParser.TRIPLE_QUOTED_STRING = 35;
1582
- YiniParser.SINGLE_OR_DOUBLE = 36;
1583
- YiniParser.R_AND_C_STRING = 37;
1584
- YiniParser.HYPER_STRING = 38;
1585
- YiniParser.ESC_SEQ = 39;
1586
- YiniParser.ESC_SEQ_BASE = 40;
1587
- YiniParser.NL = 41;
1588
- YiniParser.SINGLE_NL = 42;
1589
- YiniParser.WS = 43;
1590
- YiniParser.BLOCK_COMMENT = 44;
1591
- YiniParser.COMMENT = 45;
1592
- YiniParser.LINE_COMMENT = 46;
1593
- YiniParser.INLINE_COMMENT = 47;
1594
- YiniParser.IDENT_INVALID = 48;
1595
- YiniParser.REST = 49;
1596
- YiniParser.META_INVALID = 50;
1644
+ YiniParser.SECTION_HEAD = 6;
1645
+ YiniParser.INVALID_SECTION_HEAD = 7;
1646
+ YiniParser.BOOLEAN_FALSE = 8;
1647
+ YiniParser.BOOLEAN_TRUE = 9;
1648
+ YiniParser.NULL = 10;
1649
+ YiniParser.EMPTY_OBJECT = 11;
1650
+ YiniParser.EMPTY_LIST = 12;
1651
+ YiniParser.STRING = 13;
1652
+ YiniParser.NUMBER = 14;
1653
+ YiniParser.CARET = 15;
1654
+ YiniParser.SS = 16;
1655
+ YiniParser.GT = 17;
1656
+ YiniParser.LT = 18;
1657
+ YiniParser.EQ = 19;
1658
+ YiniParser.COMMA = 20;
1659
+ YiniParser.COLON = 21;
1660
+ YiniParser.OB = 22;
1661
+ YiniParser.CB = 23;
1662
+ YiniParser.OC = 24;
1663
+ YiniParser.CC = 25;
1664
+ YiniParser.PLUS = 26;
1665
+ YiniParser.DOLLAR = 27;
1666
+ YiniParser.PC = 28;
1667
+ YiniParser.AT = 29;
1668
+ YiniParser.SEMICOLON = 30;
1669
+ YiniParser.NL = 31;
1670
+ YiniParser.WS = 32;
1671
+ YiniParser.BLOCK_COMMENT = 33;
1672
+ YiniParser.DISABLED_LINE = 34;
1673
+ YiniParser.FULL_LINE_COMMENT = 35;
1674
+ YiniParser.INLINE_COMMENT = 36;
1675
+ YiniParser.KEY = 37;
1676
+ YiniParser.IDENT_INVALID = 38;
1677
+ YiniParser.REST = 39;
1678
+ YiniParser.META_INVALID = 40;
1597
1679
  YiniParser.EOF = antlr4_1.Token.EOF;
1598
1680
  YiniParser.RULE_yini = 0;
1599
1681
  YiniParser.RULE_prolog = 1;
1600
1682
  YiniParser.RULE_terminal_stmt = 2;
1601
- YiniParser.RULE_stmt = 3;
1602
- YiniParser.RULE_meta_stmt = 4;
1603
- YiniParser.RULE_directive = 5;
1604
- YiniParser.RULE_annotation = 6;
1605
- YiniParser.RULE_eol = 7;
1606
- YiniParser.RULE_assignment = 8;
1607
- YiniParser.RULE_member = 9;
1608
- YiniParser.RULE_colon_list_decl = 10;
1609
- YiniParser.RULE_value = 11;
1610
- YiniParser.RULE_object_literal = 12;
1611
- YiniParser.RULE_object_members = 13;
1612
- YiniParser.RULE_object_member = 14;
1613
- YiniParser.RULE_list_literal = 15;
1614
- YiniParser.RULE_elements = 16;
1615
- YiniParser.RULE_number_literal = 17;
1616
- YiniParser.RULE_null_literal = 18;
1617
- YiniParser.RULE_string_literal = 19;
1618
- YiniParser.RULE_string_concat = 20;
1619
- YiniParser.RULE_boolean_literal = 21;
1620
- YiniParser.RULE_bad_meta_text = 22;
1621
- YiniParser.RULE_bad_member = 23;
1683
+ YiniParser.RULE_terminal_trivia = 3;
1684
+ YiniParser.RULE_stmt = 4;
1685
+ YiniParser.RULE_full_line_comment_stmt = 5;
1686
+ YiniParser.RULE_disabled_line_stmt = 6;
1687
+ YiniParser.RULE_invalid_section_stmt = 7;
1688
+ YiniParser.RULE_meta_stmt = 8;
1689
+ YiniParser.RULE_directive = 9;
1690
+ YiniParser.RULE_yini_directive = 10;
1691
+ YiniParser.RULE_yini_mode_declaration = 11;
1692
+ YiniParser.RULE_annotation = 12;
1693
+ YiniParser.RULE_eol = 13;
1694
+ YiniParser.RULE_assignment = 14;
1695
+ YiniParser.RULE_member = 15;
1696
+ YiniParser.RULE_value = 16;
1697
+ YiniParser.RULE_scalar_value = 17;
1698
+ YiniParser.RULE_concat_expression = 18;
1699
+ YiniParser.RULE_concat_tail = 19;
1700
+ YiniParser.RULE_concat_operand = 20;
1701
+ YiniParser.RULE_string_literal = 21;
1702
+ YiniParser.RULE_object_literal = 22;
1703
+ YiniParser.RULE_object_members = 23;
1704
+ YiniParser.RULE_object_member = 24;
1705
+ YiniParser.RULE_object_member_separator = 25;
1706
+ YiniParser.RULE_list_literal = 26;
1707
+ YiniParser.RULE_elements = 27;
1708
+ YiniParser.RULE_number_literal = 28;
1709
+ YiniParser.RULE_null_literal = 29;
1710
+ YiniParser.RULE_boolean_literal = 30;
1711
+ YiniParser.RULE_bad_meta_text = 31;
1712
+ YiniParser.RULE_bad_member = 32;
1622
1713
  YiniParser.literalNames = [null, null,
1623
1714
  null, null,
1624
1715
  null, null,
1716
+ null, null,
1717
+ null, null,
1718
+ null, "'{}'",
1719
+ "'[]'", null,
1720
+ null, "'^'",
1625
1721
  "'\\u00A7'",
1626
- "'\\u20AC'",
1627
- "'^'", "'>'",
1628
- "'<'", "'='",
1629
- "'#'", "','",
1722
+ "'>'", "'<'",
1723
+ "'='", "','",
1630
1724
  "':'", "'['",
1631
1725
  "']'", "'{'",
1632
1726
  "'}'", "'+'",
1633
1727
  "'$'", "'%'",
1634
- "'@'", "';'",
1635
- null, null,
1636
- null, "'{}'",
1637
- "'[]'"];
1638
- YiniParser.symbolicNames = [null, "YINI_TOKEN",
1728
+ "'@'", "';'"];
1729
+ YiniParser.symbolicNames = [null, "SHEBANG",
1730
+ "YINI_TOKEN",
1639
1731
  "INCLUDE_TOKEN",
1640
1732
  "DEPRECATED_TOKEN",
1641
- "SECTION_HEAD",
1642
1733
  "TERMINAL_TOKEN",
1643
- "SS", "EUR",
1644
- "CARET", "GT",
1645
- "LT", "EQ",
1646
- "HASH", "COMMA",
1734
+ "SECTION_HEAD",
1735
+ "INVALID_SECTION_HEAD",
1736
+ "BOOLEAN_FALSE",
1737
+ "BOOLEAN_TRUE",
1738
+ "NULL", "EMPTY_OBJECT",
1739
+ "EMPTY_LIST",
1740
+ "STRING", "NUMBER",
1741
+ "CARET", "SS",
1742
+ "GT", "LT",
1743
+ "EQ", "COMMA",
1647
1744
  "COLON", "OB",
1648
1745
  "CB", "OC",
1649
1746
  "CC", "PLUS",
1650
1747
  "DOLLAR", "PC",
1651
1748
  "AT", "SEMICOLON",
1652
- "BOOLEAN_FALSE",
1653
- "BOOLEAN_TRUE",
1654
- "NULL", "EMPTY_OBJECT",
1655
- "EMPTY_LIST",
1656
- "SHEBANG",
1657
- "NUMBER", "KEY",
1658
- "IDENT", "IDENT_BACKTICKED",
1659
- "STRING", "TRIPLE_QUOTED_STRING",
1660
- "SINGLE_OR_DOUBLE",
1661
- "R_AND_C_STRING",
1662
- "HYPER_STRING",
1663
- "ESC_SEQ",
1664
- "ESC_SEQ_BASE",
1665
- "NL", "SINGLE_NL",
1666
- "WS", "BLOCK_COMMENT",
1667
- "COMMENT",
1668
- "LINE_COMMENT",
1749
+ "NL", "WS",
1750
+ "BLOCK_COMMENT",
1751
+ "DISABLED_LINE",
1752
+ "FULL_LINE_COMMENT",
1669
1753
  "INLINE_COMMENT",
1670
- "IDENT_INVALID",
1754
+ "KEY", "IDENT_INVALID",
1671
1755
  "REST", "META_INVALID"];
1672
1756
  // tslint:disable:no-trailing-whitespace
1673
1757
  YiniParser.ruleNames = [
1674
- "yini", "prolog", "terminal_stmt", "stmt", "meta_stmt", "directive", "annotation",
1675
- "eol", "assignment", "member", "colon_list_decl", "value", "object_literal",
1676
- "object_members", "object_member", "list_literal", "elements", "number_literal",
1677
- "null_literal", "string_literal", "string_concat", "boolean_literal",
1678
- "bad_meta_text", "bad_member",
1758
+ "yini", "prolog", "terminal_stmt", "terminal_trivia", "stmt", "full_line_comment_stmt",
1759
+ "disabled_line_stmt", "invalid_section_stmt", "meta_stmt", "directive",
1760
+ "yini_directive", "yini_mode_declaration", "annotation", "eol", "assignment",
1761
+ "member", "value", "scalar_value", "concat_expression", "concat_tail",
1762
+ "concat_operand", "string_literal", "object_literal", "object_members",
1763
+ "object_member", "object_member_separator", "list_literal", "elements",
1764
+ "number_literal", "null_literal", "boolean_literal", "bad_meta_text",
1765
+ "bad_member",
1679
1766
  ];
1680
- YiniParser._serializedATN = [4, 1, 50, 346, 2, 0, 7, 0, 2,
1767
+ YiniParser._serializedATN = [4, 1, 40, 324, 2, 0, 7, 0, 2,
1681
1768
  1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
1682
1769
  10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17,
1683
- 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 1, 0, 3,
1684
- 0, 50, 8, 0, 1, 0, 5, 0, 53, 8, 0, 10, 0, 12, 0, 56, 9, 0, 1, 0, 3, 0, 59, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1,
1685
- 5, 1, 65, 8, 1, 10, 1, 12, 1, 68, 9, 1, 1, 1, 4, 1, 71, 8, 1, 11, 1, 12, 1, 72, 3, 1, 75, 8, 1, 1, 2,
1686
- 1, 2, 1, 2, 3, 2, 80, 8, 2, 1, 2, 5, 2, 83, 8, 2, 10, 2, 12, 2, 86, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
1687
- 1, 3, 3, 3, 94, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 101, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 107,
1688
- 8, 5, 10, 5, 12, 5, 110, 9, 5, 1, 5, 3, 5, 113, 8, 5, 1, 5, 3, 5, 116, 8, 5, 1, 6, 1, 6, 1, 6, 1, 7, 3,
1689
- 7, 122, 8, 7, 1, 7, 4, 7, 125, 8, 7, 11, 7, 12, 7, 126, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 134, 8, 9,
1690
- 1, 9, 1, 9, 3, 9, 138, 8, 9, 1, 9, 3, 9, 141, 8, 9, 1, 10, 1, 10, 3, 10, 145, 8, 10, 1, 10, 1, 10, 1,
1691
- 10, 4, 10, 150, 8, 10, 11, 10, 12, 10, 151, 5, 10, 154, 8, 10, 10, 10, 12, 10, 157, 9, 10, 1, 10,
1692
- 1, 10, 1, 10, 4, 10, 162, 8, 10, 11, 10, 12, 10, 163, 5, 10, 166, 8, 10, 10, 10, 12, 10, 169, 9,
1693
- 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 179, 8, 11, 1, 12, 1, 12, 5, 12,
1694
- 183, 8, 12, 10, 12, 12, 12, 186, 9, 12, 1, 12, 3, 12, 189, 8, 12, 1, 12, 5, 12, 192, 8, 12, 10,
1695
- 12, 12, 12, 195, 9, 12, 1, 12, 1, 12, 5, 12, 199, 8, 12, 10, 12, 12, 12, 202, 9, 12, 1, 12, 1, 12,
1696
- 5, 12, 206, 8, 12, 10, 12, 12, 12, 209, 9, 12, 3, 12, 211, 8, 12, 1, 13, 1, 13, 1, 13, 5, 13, 216,
1697
- 8, 13, 10, 13, 12, 13, 219, 9, 13, 1, 13, 5, 13, 222, 8, 13, 10, 13, 12, 13, 225, 9, 13, 1, 13,
1698
- 3, 13, 228, 8, 13, 1, 14, 1, 14, 3, 14, 232, 8, 14, 1, 14, 1, 14, 5, 14, 236, 8, 14, 10, 14, 12,
1699
- 14, 239, 9, 14, 1, 14, 1, 14, 1, 15, 1, 15, 5, 15, 245, 8, 15, 10, 15, 12, 15, 248, 9, 15, 1, 15,
1700
- 3, 15, 251, 8, 15, 1, 15, 5, 15, 254, 8, 15, 10, 15, 12, 15, 257, 9, 15, 1, 15, 1, 15, 5, 15, 261,
1701
- 8, 15, 10, 15, 12, 15, 264, 9, 15, 1, 15, 1, 15, 5, 15, 268, 8, 15, 10, 15, 12, 15, 271, 9, 15,
1702
- 3, 15, 273, 8, 15, 1, 16, 1, 16, 5, 16, 277, 8, 16, 10, 16, 12, 16, 280, 9, 16, 1, 16, 1, 16, 5,
1703
- 16, 284, 8, 16, 10, 16, 12, 16, 287, 9, 16, 1, 16, 5, 16, 290, 8, 16, 10, 16, 12, 16, 293, 9, 16,
1704
- 1, 16, 3, 16, 296, 8, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 5, 19, 304, 8, 19, 10, 19, 12,
1705
- 19, 307, 9, 19, 1, 20, 5, 20, 310, 8, 20, 10, 20, 12, 20, 313, 9, 20, 1, 20, 1, 20, 5, 20, 317,
1706
- 8, 20, 10, 20, 12, 20, 320, 9, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 3, 23, 329, 8,
1707
- 23, 1, 23, 1, 23, 3, 23, 333, 8, 23, 1, 23, 3, 23, 336, 8, 23, 1, 23, 1, 23, 1, 23, 3, 23, 341, 8,
1708
- 23, 1, 23, 3, 23, 344, 8, 23, 1, 23, 0, 0, 24, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26,
1709
- 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 0, 1, 1, 0, 24, 25, 387, 0, 49, 1, 0, 0, 0, 2, 74, 1, 0, 0,
1710
- 0, 4, 76, 1, 0, 0, 0, 6, 93, 1, 0, 0, 0, 8, 100, 1, 0, 0, 0, 10, 115, 1, 0, 0, 0, 12, 117, 1, 0, 0, 0,
1711
- 14, 121, 1, 0, 0, 0, 16, 128, 1, 0, 0, 0, 18, 131, 1, 0, 0, 0, 20, 142, 1, 0, 0, 0, 22, 178, 1, 0,
1712
- 0, 0, 24, 210, 1, 0, 0, 0, 26, 212, 1, 0, 0, 0, 28, 229, 1, 0, 0, 0, 30, 272, 1, 0, 0, 0, 32, 274,
1713
- 1, 0, 0, 0, 34, 297, 1, 0, 0, 0, 36, 299, 1, 0, 0, 0, 38, 301, 1, 0, 0, 0, 40, 311, 1, 0, 0, 0, 42,
1714
- 323, 1, 0, 0, 0, 44, 325, 1, 0, 0, 0, 46, 328, 1, 0, 0, 0, 48, 50, 3, 2, 1, 0, 49, 48, 1, 0, 0, 0, 49,
1715
- 50, 1, 0, 0, 0, 50, 54, 1, 0, 0, 0, 51, 53, 3, 6, 3, 0, 52, 51, 1, 0, 0, 0, 53, 56, 1, 0, 0, 0, 54, 52,
1716
- 1, 0, 0, 0, 54, 55, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 57, 59, 3, 4, 2, 0, 58, 57, 1,
1717
- 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 60, 1, 0, 0, 0, 60, 61, 5, 0, 0, 1, 61, 1, 1, 0, 0, 0, 62, 66, 5, 29,
1718
- 0, 0, 63, 65, 3, 14, 7, 0, 64, 63, 1, 0, 0, 0, 65, 68, 1, 0, 0, 0, 66, 64, 1, 0, 0, 0, 66, 67, 1, 0,
1719
- 0, 0, 67, 75, 1, 0, 0, 0, 68, 66, 1, 0, 0, 0, 69, 71, 3, 14, 7, 0, 70, 69, 1, 0, 0, 0, 71, 72, 1, 0,
1720
- 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 75, 1, 0, 0, 0, 74, 62, 1, 0, 0, 0, 74, 70, 1, 0, 0,
1721
- 0, 75, 3, 1, 0, 0, 0, 76, 79, 5, 5, 0, 0, 77, 80, 3, 14, 7, 0, 78, 80, 5, 47, 0, 0, 79, 77, 1, 0, 0,
1722
- 0, 79, 78, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 84, 1, 0, 0, 0, 81, 83, 5, 41, 0, 0, 82, 81, 1, 0, 0,
1723
- 0, 83, 86, 1, 0, 0, 0, 84, 82, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 5, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0,
1724
- 87, 94, 3, 14, 7, 0, 88, 94, 5, 4, 0, 0, 89, 94, 3, 16, 8, 0, 90, 94, 3, 20, 10, 0, 91, 94, 3, 8, 4,
1725
- 0, 92, 94, 3, 46, 23, 0, 93, 87, 1, 0, 0, 0, 93, 88, 1, 0, 0, 0, 93, 89, 1, 0, 0, 0, 93, 90, 1, 0, 0,
1726
- 0, 93, 91, 1, 0, 0, 0, 93, 92, 1, 0, 0, 0, 94, 7, 1, 0, 0, 0, 95, 101, 3, 10, 5, 0, 96, 101, 3, 12,
1727
- 6, 0, 97, 98, 3, 44, 22, 0, 98, 99, 3, 14, 7, 0, 99, 101, 1, 0, 0, 0, 100, 95, 1, 0, 0, 0, 100, 96,
1728
- 1, 0, 0, 0, 100, 97, 1, 0, 0, 0, 101, 9, 1, 0, 0, 0, 102, 103, 5, 1, 0, 0, 103, 116, 3, 14, 7, 0, 104,
1729
- 108, 5, 2, 0, 0, 105, 107, 5, 43, 0, 0, 106, 105, 1, 0, 0, 0, 107, 110, 1, 0, 0, 0, 108, 106, 1,
1730
- 0, 0, 0, 108, 109, 1, 0, 0, 0, 109, 112, 1, 0, 0, 0, 110, 108, 1, 0, 0, 0, 111, 113, 3, 38, 19, 0,
1731
- 112, 111, 1, 0, 0, 0, 112, 113, 1, 0, 0, 0, 113, 114, 1, 0, 0, 0, 114, 116, 3, 14, 7, 0, 115, 102,
1732
- 1, 0, 0, 0, 115, 104, 1, 0, 0, 0, 116, 11, 1, 0, 0, 0, 117, 118, 5, 3, 0, 0, 118, 119, 3, 14, 7, 0,
1733
- 119, 13, 1, 0, 0, 0, 120, 122, 5, 47, 0, 0, 121, 120, 1, 0, 0, 0, 121, 122, 1, 0, 0, 0, 122, 124,
1734
- 1, 0, 0, 0, 123, 125, 5, 41, 0, 0, 124, 123, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 124, 1, 0, 0,
1735
- 0, 126, 127, 1, 0, 0, 0, 127, 15, 1, 0, 0, 0, 128, 129, 3, 18, 9, 0, 129, 130, 3, 14, 7, 0, 130,
1736
- 17, 1, 0, 0, 0, 131, 133, 5, 31, 0, 0, 132, 134, 5, 43, 0, 0, 133, 132, 1, 0, 0, 0, 133, 134, 1,
1737
- 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 137, 5, 11, 0, 0, 136, 138, 5, 43, 0, 0, 137, 136, 1, 0, 0, 0,
1738
- 137, 138, 1, 0, 0, 0, 138, 140, 1, 0, 0, 0, 139, 141, 3, 22, 11, 0, 140, 139, 1, 0, 0, 0, 140, 141,
1739
- 1, 0, 0, 0, 141, 19, 1, 0, 0, 0, 142, 144, 5, 31, 0, 0, 143, 145, 5, 43, 0, 0, 144, 143, 1, 0, 0,
1740
- 0, 144, 145, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 155, 5, 14, 0, 0, 147, 154, 3, 14, 7, 0, 148,
1741
- 150, 5, 43, 0, 0, 149, 148, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 149, 1, 0, 0, 0, 151, 152, 1,
1742
- 0, 0, 0, 152, 154, 1, 0, 0, 0, 153, 147, 1, 0, 0, 0, 153, 149, 1, 0, 0, 0, 154, 157, 1, 0, 0, 0, 155,
1743
- 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 158, 1, 0, 0, 0, 157, 155, 1, 0, 0, 0, 158, 167, 3, 32,
1744
- 16, 0, 159, 166, 3, 14, 7, 0, 160, 162, 5, 43, 0, 0, 161, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0,
1745
- 163, 161, 1, 0, 0, 0, 163, 164, 1, 0, 0, 0, 164, 166, 1, 0, 0, 0, 165, 159, 1, 0, 0, 0, 165, 161,
1746
- 1, 0, 0, 0, 166, 169, 1, 0, 0, 0, 167, 165, 1, 0, 0, 0, 167, 168, 1, 0, 0, 0, 168, 170, 1, 0, 0, 0,
1747
- 169, 167, 1, 0, 0, 0, 170, 171, 3, 14, 7, 0, 171, 21, 1, 0, 0, 0, 172, 179, 3, 36, 18, 0, 173, 179,
1748
- 3, 38, 19, 0, 174, 179, 3, 34, 17, 0, 175, 179, 3, 42, 21, 0, 176, 179, 3, 30, 15, 0, 177, 179,
1749
- 3, 24, 12, 0, 178, 172, 1, 0, 0, 0, 178, 173, 1, 0, 0, 0, 178, 174, 1, 0, 0, 0, 178, 175, 1, 0, 0,
1750
- 0, 178, 176, 1, 0, 0, 0, 178, 177, 1, 0, 0, 0, 179, 23, 1, 0, 0, 0, 180, 184, 5, 17, 0, 0, 181, 183,
1751
- 5, 41, 0, 0, 182, 181, 1, 0, 0, 0, 183, 186, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0,
1752
- 0, 185, 188, 1, 0, 0, 0, 186, 184, 1, 0, 0, 0, 187, 189, 3, 26, 13, 0, 188, 187, 1, 0, 0, 0, 188,
1753
- 189, 1, 0, 0, 0, 189, 193, 1, 0, 0, 0, 190, 192, 5, 41, 0, 0, 191, 190, 1, 0, 0, 0, 192, 195, 1,
1754
- 0, 0, 0, 193, 191, 1, 0, 0, 0, 193, 194, 1, 0, 0, 0, 194, 196, 1, 0, 0, 0, 195, 193, 1, 0, 0, 0, 196,
1755
- 200, 5, 18, 0, 0, 197, 199, 5, 41, 0, 0, 198, 197, 1, 0, 0, 0, 199, 202, 1, 0, 0, 0, 200, 198, 1,
1756
- 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 211, 1, 0, 0, 0, 202, 200, 1, 0, 0, 0, 203, 207, 5, 27, 0, 0,
1757
- 204, 206, 5, 41, 0, 0, 205, 204, 1, 0, 0, 0, 206, 209, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 207, 208,
1758
- 1, 0, 0, 0, 208, 211, 1, 0, 0, 0, 209, 207, 1, 0, 0, 0, 210, 180, 1, 0, 0, 0, 210, 203, 1, 0, 0, 0,
1759
- 211, 25, 1, 0, 0, 0, 212, 223, 3, 28, 14, 0, 213, 217, 5, 13, 0, 0, 214, 216, 5, 41, 0, 0, 215,
1760
- 214, 1, 0, 0, 0, 216, 219, 1, 0, 0, 0, 217, 215, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, 220, 1, 0,
1761
- 0, 0, 219, 217, 1, 0, 0, 0, 220, 222, 3, 28, 14, 0, 221, 213, 1, 0, 0, 0, 222, 225, 1, 0, 0, 0, 223,
1762
- 221, 1, 0, 0, 0, 223, 224, 1, 0, 0, 0, 224, 227, 1, 0, 0, 0, 225, 223, 1, 0, 0, 0, 226, 228, 5, 13,
1763
- 0, 0, 227, 226, 1, 0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 27, 1, 0, 0, 0, 229, 231, 5, 31, 0, 0, 230,
1764
- 232, 5, 43, 0, 0, 231, 230, 1, 0, 0, 0, 231, 232, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 237, 5,
1765
- 14, 0, 0, 234, 236, 5, 41, 0, 0, 235, 234, 1, 0, 0, 0, 236, 239, 1, 0, 0, 0, 237, 235, 1, 0, 0, 0,
1766
- 237, 238, 1, 0, 0, 0, 238, 240, 1, 0, 0, 0, 239, 237, 1, 0, 0, 0, 240, 241, 3, 22, 11, 0, 241, 29,
1767
- 1, 0, 0, 0, 242, 246, 5, 15, 0, 0, 243, 245, 5, 41, 0, 0, 244, 243, 1, 0, 0, 0, 245, 248, 1, 0, 0,
1768
- 0, 246, 244, 1, 0, 0, 0, 246, 247, 1, 0, 0, 0, 247, 250, 1, 0, 0, 0, 248, 246, 1, 0, 0, 0, 249, 251,
1769
- 3, 32, 16, 0, 250, 249, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251, 255, 1, 0, 0, 0, 252, 254, 5, 41,
1770
- 0, 0, 253, 252, 1, 0, 0, 0, 254, 257, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 255, 256, 1, 0, 0, 0, 256,
1771
- 258, 1, 0, 0, 0, 257, 255, 1, 0, 0, 0, 258, 262, 5, 16, 0, 0, 259, 261, 5, 41, 0, 0, 260, 259, 1,
1772
- 0, 0, 0, 261, 264, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 263, 1, 0, 0, 0, 263, 273, 1, 0, 0, 0, 264,
1773
- 262, 1, 0, 0, 0, 265, 269, 5, 28, 0, 0, 266, 268, 5, 41, 0, 0, 267, 266, 1, 0, 0, 0, 268, 271, 1,
1774
- 0, 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, 273, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272,
1775
- 242, 1, 0, 0, 0, 272, 265, 1, 0, 0, 0, 273, 31, 1, 0, 0, 0, 274, 291, 3, 22, 11, 0, 275, 277, 5,
1776
- 41, 0, 0, 276, 275, 1, 0, 0, 0, 277, 280, 1, 0, 0, 0, 278, 276, 1, 0, 0, 0, 278, 279, 1, 0, 0, 0,
1777
- 279, 281, 1, 0, 0, 0, 280, 278, 1, 0, 0, 0, 281, 285, 5, 13, 0, 0, 282, 284, 5, 41, 0, 0, 283, 282,
1778
- 1, 0, 0, 0, 284, 287, 1, 0, 0, 0, 285, 283, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 288, 1, 0, 0, 0,
1779
- 287, 285, 1, 0, 0, 0, 288, 290, 3, 22, 11, 0, 289, 278, 1, 0, 0, 0, 290, 293, 1, 0, 0, 0, 291, 289,
1780
- 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 295, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294, 296, 5, 13, 0,
1781
- 0, 295, 294, 1, 0, 0, 0, 295, 296, 1, 0, 0, 0, 296, 33, 1, 0, 0, 0, 297, 298, 5, 30, 0, 0, 298, 35,
1782
- 1, 0, 0, 0, 299, 300, 5, 26, 0, 0, 300, 37, 1, 0, 0, 0, 301, 305, 5, 34, 0, 0, 302, 304, 3, 40, 20,
1783
- 0, 303, 302, 1, 0, 0, 0, 304, 307, 1, 0, 0, 0, 305, 303, 1, 0, 0, 0, 305, 306, 1, 0, 0, 0, 306, 39,
1784
- 1, 0, 0, 0, 307, 305, 1, 0, 0, 0, 308, 310, 5, 41, 0, 0, 309, 308, 1, 0, 0, 0, 310, 313, 1, 0, 0,
1785
- 0, 311, 309, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 314, 1, 0, 0, 0, 313, 311, 1, 0, 0, 0, 314, 318,
1786
- 5, 19, 0, 0, 315, 317, 5, 41, 0, 0, 316, 315, 1, 0, 0, 0, 317, 320, 1, 0, 0, 0, 318, 316, 1, 0, 0,
1787
- 0, 318, 319, 1, 0, 0, 0, 319, 321, 1, 0, 0, 0, 320, 318, 1, 0, 0, 0, 321, 322, 5, 34, 0, 0, 322,
1788
- 41, 1, 0, 0, 0, 323, 324, 7, 0, 0, 0, 324, 43, 1, 0, 0, 0, 325, 326, 5, 50, 0, 0, 326, 45, 1, 0, 0,
1789
- 0, 327, 329, 5, 43, 0, 0, 328, 327, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 332, 1, 0, 0, 0, 330,
1790
- 333, 5, 49, 0, 0, 331, 333, 3, 22, 11, 0, 332, 330, 1, 0, 0, 0, 332, 331, 1, 0, 0, 0, 332, 333,
1791
- 1, 0, 0, 0, 333, 335, 1, 0, 0, 0, 334, 336, 5, 43, 0, 0, 335, 334, 1, 0, 0, 0, 335, 336, 1, 0, 0,
1792
- 0, 336, 337, 1, 0, 0, 0, 337, 340, 5, 11, 0, 0, 338, 341, 3, 22, 11, 0, 339, 341, 5, 49, 0, 0, 340,
1793
- 338, 1, 0, 0, 0, 340, 339, 1, 0, 0, 0, 341, 343, 1, 0, 0, 0, 342, 344, 3, 14, 7, 0, 343, 342, 1,
1794
- 0, 0, 0, 343, 344, 1, 0, 0, 0, 344, 47, 1, 0, 0, 0, 55, 49, 54, 58, 66, 72, 74, 79, 84, 93, 100,
1795
- 108, 112, 115, 121, 126, 133, 137, 140, 144, 151, 153, 155, 163, 165, 167, 178, 184, 188,
1796
- 193, 200, 207, 210, 217, 223, 227, 231, 237, 246, 250, 255, 262, 269, 272, 278, 285, 291,
1797
- 295, 305, 311, 318, 328, 332, 335, 340, 343];
1770
+ 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7,
1771
+ 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31,
1772
+ 2, 32, 7, 32, 1, 0, 3, 0, 68, 8, 0, 1, 0, 5, 0, 71, 8, 0, 10, 0, 12, 0, 74, 9, 0, 1, 0, 3, 0, 77, 8, 0,
1773
+ 1, 0, 1, 0, 1, 1, 1, 1, 5, 1, 83, 8, 1, 10, 1, 12, 1, 86, 9, 1, 1, 1, 4, 1, 89, 8, 1, 11, 1, 12, 1, 90,
1774
+ 3, 1, 93, 8, 1, 1, 2, 1, 2, 5, 2, 97, 8, 2, 10, 2, 12, 2, 100, 9, 2, 1, 3, 1, 3, 3, 3, 104, 8, 3, 1, 4,
1775
+ 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 114, 8, 4, 1, 5, 1, 5, 3, 5, 118, 8, 5, 1, 6, 1, 6, 1, 7,
1776
+ 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 129, 8, 8, 1, 9, 1, 9, 1, 9, 3, 9, 134, 8, 9, 1, 9, 3, 9, 137,
1777
+ 8, 9, 1, 10, 1, 10, 3, 10, 141, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 4, 13,
1778
+ 151, 8, 13, 11, 13, 12, 13, 152, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 161, 8, 15, 1,
1779
+ 16, 1, 16, 1, 16, 1, 16, 3, 16, 167, 8, 16, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 173, 8, 17, 1, 18,
1780
+ 1, 18, 4, 18, 177, 8, 18, 11, 18, 12, 18, 178, 1, 19, 1, 19, 5, 19, 183, 8, 19, 10, 19, 12, 19,
1781
+ 186, 9, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 5, 22, 196, 8, 22, 10, 22, 12,
1782
+ 22, 199, 9, 22, 1, 22, 3, 22, 202, 8, 22, 1, 22, 5, 22, 205, 8, 22, 10, 22, 12, 22, 208, 9, 22,
1783
+ 1, 22, 1, 22, 5, 22, 212, 8, 22, 10, 22, 12, 22, 215, 9, 22, 1, 22, 1, 22, 5, 22, 219, 8, 22, 10,
1784
+ 22, 12, 22, 222, 9, 22, 3, 22, 224, 8, 22, 1, 23, 1, 23, 1, 23, 5, 23, 229, 8, 23, 10, 23, 12, 23,
1785
+ 232, 9, 23, 1, 23, 5, 23, 235, 8, 23, 10, 23, 12, 23, 238, 9, 23, 1, 23, 3, 23, 241, 8, 23, 1, 24,
1786
+ 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 26, 1, 26, 5, 26, 251, 8, 26, 10, 26, 12, 26, 254, 9, 26, 1,
1787
+ 26, 3, 26, 257, 8, 26, 1, 26, 5, 26, 260, 8, 26, 10, 26, 12, 26, 263, 9, 26, 1, 26, 1, 26, 5, 26,
1788
+ 267, 8, 26, 10, 26, 12, 26, 270, 9, 26, 1, 26, 1, 26, 5, 26, 274, 8, 26, 10, 26, 12, 26, 277, 9,
1789
+ 26, 3, 26, 279, 8, 26, 1, 27, 1, 27, 5, 27, 283, 8, 27, 10, 27, 12, 27, 286, 9, 27, 1, 27, 1, 27,
1790
+ 5, 27, 290, 8, 27, 10, 27, 12, 27, 293, 9, 27, 1, 27, 5, 27, 296, 8, 27, 10, 27, 12, 27, 299, 9,
1791
+ 27, 1, 27, 3, 27, 302, 8, 27, 1, 28, 1, 28, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, 1, 31, 1, 32, 1, 32,
1792
+ 3, 32, 314, 8, 32, 1, 32, 1, 32, 1, 32, 3, 32, 319, 8, 32, 1, 32, 3, 32, 322, 8, 32, 1, 32, 0, 0,
1793
+ 33, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48,
1794
+ 50, 52, 54, 56, 58, 60, 62, 64, 0, 3, 2, 0, 8, 10, 13, 14, 2, 0, 19, 19, 21, 21, 1, 0, 8, 9, 344,
1795
+ 0, 67, 1, 0, 0, 0, 2, 92, 1, 0, 0, 0, 4, 94, 1, 0, 0, 0, 6, 103, 1, 0, 0, 0, 8, 113, 1, 0, 0, 0, 10, 115,
1796
+ 1, 0, 0, 0, 12, 119, 1, 0, 0, 0, 14, 121, 1, 0, 0, 0, 16, 128, 1, 0, 0, 0, 18, 136, 1, 0, 0, 0, 20,
1797
+ 138, 1, 0, 0, 0, 22, 144, 1, 0, 0, 0, 24, 146, 1, 0, 0, 0, 26, 150, 1, 0, 0, 0, 28, 154, 1, 0, 0, 0,
1798
+ 30, 157, 1, 0, 0, 0, 32, 166, 1, 0, 0, 0, 34, 172, 1, 0, 0, 0, 36, 174, 1, 0, 0, 0, 38, 180, 1, 0,
1799
+ 0, 0, 40, 189, 1, 0, 0, 0, 42, 191, 1, 0, 0, 0, 44, 223, 1, 0, 0, 0, 46, 225, 1, 0, 0, 0, 48, 242,
1800
+ 1, 0, 0, 0, 50, 246, 1, 0, 0, 0, 52, 278, 1, 0, 0, 0, 54, 280, 1, 0, 0, 0, 56, 303, 1, 0, 0, 0, 58,
1801
+ 305, 1, 0, 0, 0, 60, 307, 1, 0, 0, 0, 62, 309, 1, 0, 0, 0, 64, 313, 1, 0, 0, 0, 66, 68, 3, 2, 1, 0,
1802
+ 67, 66, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 72, 1, 0, 0, 0, 69, 71, 3, 8, 4, 0, 70, 69, 1, 0, 0, 0, 71,
1803
+ 74, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 76, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 75, 77,
1804
+ 3, 4, 2, 0, 76, 75, 1, 0, 0, 0, 76, 77, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 79, 5, 0, 0, 1, 79, 1, 1,
1805
+ 0, 0, 0, 80, 84, 5, 1, 0, 0, 81, 83, 3, 26, 13, 0, 82, 81, 1, 0, 0, 0, 83, 86, 1, 0, 0, 0, 84, 82, 1,
1806
+ 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 93, 1, 0, 0, 0, 86, 84, 1, 0, 0, 0, 87, 89, 3, 26, 13, 0, 88, 87, 1,
1807
+ 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 88, 1, 0, 0, 0, 90, 91, 1, 0, 0, 0, 91, 93, 1, 0, 0, 0, 92, 80, 1, 0,
1808
+ 0, 0, 92, 88, 1, 0, 0, 0, 93, 3, 1, 0, 0, 0, 94, 98, 5, 5, 0, 0, 95, 97, 3, 6, 3, 0, 96, 95, 1, 0, 0,
1809
+ 0, 97, 100, 1, 0, 0, 0, 98, 96, 1, 0, 0, 0, 98, 99, 1, 0, 0, 0, 99, 5, 1, 0, 0, 0, 100, 98, 1, 0, 0,
1810
+ 0, 101, 104, 3, 26, 13, 0, 102, 104, 3, 10, 5, 0, 103, 101, 1, 0, 0, 0, 103, 102, 1, 0, 0, 0, 104,
1811
+ 7, 1, 0, 0, 0, 105, 114, 3, 26, 13, 0, 106, 114, 3, 10, 5, 0, 107, 114, 3, 12, 6, 0, 108, 114, 5,
1812
+ 6, 0, 0, 109, 114, 3, 14, 7, 0, 110, 114, 3, 28, 14, 0, 111, 114, 3, 16, 8, 0, 112, 114, 3, 64,
1813
+ 32, 0, 113, 105, 1, 0, 0, 0, 113, 106, 1, 0, 0, 0, 113, 107, 1, 0, 0, 0, 113, 108, 1, 0, 0, 0, 113,
1814
+ 109, 1, 0, 0, 0, 113, 110, 1, 0, 0, 0, 113, 111, 1, 0, 0, 0, 113, 112, 1, 0, 0, 0, 114, 9, 1, 0, 0,
1815
+ 0, 115, 117, 5, 35, 0, 0, 116, 118, 3, 26, 13, 0, 117, 116, 1, 0, 0, 0, 117, 118, 1, 0, 0, 0, 118,
1816
+ 11, 1, 0, 0, 0, 119, 120, 5, 34, 0, 0, 120, 13, 1, 0, 0, 0, 121, 122, 5, 7, 0, 0, 122, 15, 1, 0, 0,
1817
+ 0, 123, 129, 3, 18, 9, 0, 124, 129, 3, 24, 12, 0, 125, 126, 3, 62, 31, 0, 126, 127, 3, 26, 13,
1818
+ 0, 127, 129, 1, 0, 0, 0, 128, 123, 1, 0, 0, 0, 128, 124, 1, 0, 0, 0, 128, 125, 1, 0, 0, 0, 129, 17,
1819
+ 1, 0, 0, 0, 130, 137, 3, 20, 10, 0, 131, 133, 5, 3, 0, 0, 132, 134, 3, 42, 21, 0, 133, 132, 1, 0,
1820
+ 0, 0, 133, 134, 1, 0, 0, 0, 134, 135, 1, 0, 0, 0, 135, 137, 3, 26, 13, 0, 136, 130, 1, 0, 0, 0, 136,
1821
+ 131, 1, 0, 0, 0, 137, 19, 1, 0, 0, 0, 138, 140, 5, 2, 0, 0, 139, 141, 3, 22, 11, 0, 140, 139, 1,
1822
+ 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 143, 3, 26, 13, 0, 143, 21, 1, 0, 0, 0,
1823
+ 144, 145, 5, 37, 0, 0, 145, 23, 1, 0, 0, 0, 146, 147, 5, 4, 0, 0, 147, 148, 3, 26, 13, 0, 148, 25,
1824
+ 1, 0, 0, 0, 149, 151, 5, 31, 0, 0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0,
1825
+ 0, 152, 153, 1, 0, 0, 0, 153, 27, 1, 0, 0, 0, 154, 155, 3, 30, 15, 0, 155, 156, 3, 26, 13, 0, 156,
1826
+ 29, 1, 0, 0, 0, 157, 158, 5, 37, 0, 0, 158, 160, 5, 19, 0, 0, 159, 161, 3, 32, 16, 0, 160, 159,
1827
+ 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 31, 1, 0, 0, 0, 162, 167, 3, 36, 18, 0, 163, 167, 3, 34, 17,
1828
+ 0, 164, 167, 3, 52, 26, 0, 165, 167, 3, 44, 22, 0, 166, 162, 1, 0, 0, 0, 166, 163, 1, 0, 0, 0, 166,
1829
+ 164, 1, 0, 0, 0, 166, 165, 1, 0, 0, 0, 167, 33, 1, 0, 0, 0, 168, 173, 3, 58, 29, 0, 169, 173, 3,
1830
+ 42, 21, 0, 170, 173, 3, 56, 28, 0, 171, 173, 3, 60, 30, 0, 172, 168, 1, 0, 0, 0, 172, 169, 1, 0,
1831
+ 0, 0, 172, 170, 1, 0, 0, 0, 172, 171, 1, 0, 0, 0, 173, 35, 1, 0, 0, 0, 174, 176, 5, 13, 0, 0, 175,
1832
+ 177, 3, 38, 19, 0, 176, 175, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179, 1,
1833
+ 0, 0, 0, 179, 37, 1, 0, 0, 0, 180, 184, 5, 26, 0, 0, 181, 183, 5, 31, 0, 0, 182, 181, 1, 0, 0, 0,
1834
+ 183, 186, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 184, 185, 1, 0, 0, 0, 185, 187, 1, 0, 0, 0, 186, 184,
1835
+ 1, 0, 0, 0, 187, 188, 3, 40, 20, 0, 188, 39, 1, 0, 0, 0, 189, 190, 7, 0, 0, 0, 190, 41, 1, 0, 0, 0,
1836
+ 191, 192, 5, 13, 0, 0, 192, 43, 1, 0, 0, 0, 193, 197, 5, 24, 0, 0, 194, 196, 5, 31, 0, 0, 195, 194,
1837
+ 1, 0, 0, 0, 196, 199, 1, 0, 0, 0, 197, 195, 1, 0, 0, 0, 197, 198, 1, 0, 0, 0, 198, 201, 1, 0, 0, 0,
1838
+ 199, 197, 1, 0, 0, 0, 200, 202, 3, 46, 23, 0, 201, 200, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 206,
1839
+ 1, 0, 0, 0, 203, 205, 5, 31, 0, 0, 204, 203, 1, 0, 0, 0, 205, 208, 1, 0, 0, 0, 206, 204, 1, 0, 0,
1840
+ 0, 206, 207, 1, 0, 0, 0, 207, 209, 1, 0, 0, 0, 208, 206, 1, 0, 0, 0, 209, 213, 5, 25, 0, 0, 210,
1841
+ 212, 5, 31, 0, 0, 211, 210, 1, 0, 0, 0, 212, 215, 1, 0, 0, 0, 213, 211, 1, 0, 0, 0, 213, 214, 1,
1842
+ 0, 0, 0, 214, 224, 1, 0, 0, 0, 215, 213, 1, 0, 0, 0, 216, 220, 5, 11, 0, 0, 217, 219, 5, 31, 0, 0,
1843
+ 218, 217, 1, 0, 0, 0, 219, 222, 1, 0, 0, 0, 220, 218, 1, 0, 0, 0, 220, 221, 1, 0, 0, 0, 221, 224,
1844
+ 1, 0, 0, 0, 222, 220, 1, 0, 0, 0, 223, 193, 1, 0, 0, 0, 223, 216, 1, 0, 0, 0, 224, 45, 1, 0, 0, 0,
1845
+ 225, 236, 3, 48, 24, 0, 226, 230, 5, 20, 0, 0, 227, 229, 5, 31, 0, 0, 228, 227, 1, 0, 0, 0, 229,
1846
+ 232, 1, 0, 0, 0, 230, 228, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 233, 1, 0, 0, 0, 232, 230, 1, 0,
1847
+ 0, 0, 233, 235, 3, 48, 24, 0, 234, 226, 1, 0, 0, 0, 235, 238, 1, 0, 0, 0, 236, 234, 1, 0, 0, 0, 236,
1848
+ 237, 1, 0, 0, 0, 237, 240, 1, 0, 0, 0, 238, 236, 1, 0, 0, 0, 239, 241, 5, 20, 0, 0, 240, 239, 1,
1849
+ 0, 0, 0, 240, 241, 1, 0, 0, 0, 241, 47, 1, 0, 0, 0, 242, 243, 5, 37, 0, 0, 243, 244, 3, 50, 25, 0,
1850
+ 244, 245, 3, 32, 16, 0, 245, 49, 1, 0, 0, 0, 246, 247, 7, 1, 0, 0, 247, 51, 1, 0, 0, 0, 248, 252,
1851
+ 5, 22, 0, 0, 249, 251, 5, 31, 0, 0, 250, 249, 1, 0, 0, 0, 251, 254, 1, 0, 0, 0, 252, 250, 1, 0, 0,
1852
+ 0, 252, 253, 1, 0, 0, 0, 253, 256, 1, 0, 0, 0, 254, 252, 1, 0, 0, 0, 255, 257, 3, 54, 27, 0, 256,
1853
+ 255, 1, 0, 0, 0, 256, 257, 1, 0, 0, 0, 257, 261, 1, 0, 0, 0, 258, 260, 5, 31, 0, 0, 259, 258, 1,
1854
+ 0, 0, 0, 260, 263, 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 264, 1, 0, 0, 0, 263,
1855
+ 261, 1, 0, 0, 0, 264, 268, 5, 23, 0, 0, 265, 267, 5, 31, 0, 0, 266, 265, 1, 0, 0, 0, 267, 270, 1,
1856
+ 0, 0, 0, 268, 266, 1, 0, 0, 0, 268, 269, 1, 0, 0, 0, 269, 279, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271,
1857
+ 275, 5, 12, 0, 0, 272, 274, 5, 31, 0, 0, 273, 272, 1, 0, 0, 0, 274, 277, 1, 0, 0, 0, 275, 273, 1,
1858
+ 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 279, 1, 0, 0, 0, 277, 275, 1, 0, 0, 0, 278, 248, 1, 0, 0, 0, 278,
1859
+ 271, 1, 0, 0, 0, 279, 53, 1, 0, 0, 0, 280, 297, 3, 32, 16, 0, 281, 283, 5, 31, 0, 0, 282, 281, 1,
1860
+ 0, 0, 0, 283, 286, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 287, 1, 0, 0, 0, 286,
1861
+ 284, 1, 0, 0, 0, 287, 291, 5, 20, 0, 0, 288, 290, 5, 31, 0, 0, 289, 288, 1, 0, 0, 0, 290, 293, 1,
1862
+ 0, 0, 0, 291, 289, 1, 0, 0, 0, 291, 292, 1, 0, 0, 0, 292, 294, 1, 0, 0, 0, 293, 291, 1, 0, 0, 0, 294,
1863
+ 296, 3, 32, 16, 0, 295, 284, 1, 0, 0, 0, 296, 299, 1, 0, 0, 0, 297, 295, 1, 0, 0, 0, 297, 298, 1,
1864
+ 0, 0, 0, 298, 301, 1, 0, 0, 0, 299, 297, 1, 0, 0, 0, 300, 302, 5, 20, 0, 0, 301, 300, 1, 0, 0, 0,
1865
+ 301, 302, 1, 0, 0, 0, 302, 55, 1, 0, 0, 0, 303, 304, 5, 14, 0, 0, 304, 57, 1, 0, 0, 0, 305, 306,
1866
+ 5, 10, 0, 0, 306, 59, 1, 0, 0, 0, 307, 308, 7, 2, 0, 0, 308, 61, 1, 0, 0, 0, 309, 310, 5, 40, 0, 0,
1867
+ 310, 63, 1, 0, 0, 0, 311, 314, 5, 39, 0, 0, 312, 314, 3, 32, 16, 0, 313, 311, 1, 0, 0, 0, 313, 312,
1868
+ 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 318, 5, 19, 0, 0, 316, 319, 3, 32, 16,
1869
+ 0, 317, 319, 5, 39, 0, 0, 318, 316, 1, 0, 0, 0, 318, 317, 1, 0, 0, 0, 319, 321, 1, 0, 0, 0, 320,
1870
+ 322, 3, 26, 13, 0, 321, 320, 1, 0, 0, 0, 321, 322, 1, 0, 0, 0, 322, 65, 1, 0, 0, 0, 42, 67, 72, 76,
1871
+ 84, 90, 92, 98, 103, 113, 117, 128, 133, 136, 140, 152, 160, 166, 172, 178, 184, 197, 201,
1872
+ 206, 213, 220, 223, 230, 236, 240, 252, 256, 261, 268, 275, 278, 284, 291, 297, 301, 313,
1873
+ 318, 321];
1798
1874
  YiniParser.DecisionsToDFA = YiniParser._ATN.decisionToState.map((ds, index) => new antlr4_1.DFA(ds, index));
1799
1875
  exports.default = YiniParser;
1800
1876
  class YiniContext extends antlr4_1.ParserRuleContext {
@@ -1867,17 +1943,11 @@ class Terminal_stmtContext extends antlr4_1.ParserRuleContext {
1867
1943
  TERMINAL_TOKEN() {
1868
1944
  return this.getToken(YiniParser.TERMINAL_TOKEN, 0);
1869
1945
  }
1870
- eol() {
1871
- return this.getTypedRuleContext(EolContext, 0);
1872
- }
1873
- INLINE_COMMENT() {
1874
- return this.getToken(YiniParser.INLINE_COMMENT, 0);
1875
- }
1876
- NL_list() {
1877
- return this.getTokens(YiniParser.NL);
1946
+ terminal_trivia_list() {
1947
+ return this.getTypedRuleContexts(Terminal_triviaContext);
1878
1948
  }
1879
- NL(i) {
1880
- return this.getToken(YiniParser.NL, i);
1949
+ terminal_trivia(i) {
1950
+ return this.getTypedRuleContext(Terminal_triviaContext, i);
1881
1951
  }
1882
1952
  get ruleIndex() {
1883
1953
  return YiniParser.RULE_terminal_stmt;
@@ -1893,6 +1963,31 @@ class Terminal_stmtContext extends antlr4_1.ParserRuleContext {
1893
1963
  }
1894
1964
  }
1895
1965
  exports.Terminal_stmtContext = Terminal_stmtContext;
1966
+ class Terminal_triviaContext extends antlr4_1.ParserRuleContext {
1967
+ constructor(parser, parent, invokingState) {
1968
+ super(parent, invokingState);
1969
+ this.parser = parser;
1970
+ }
1971
+ eol() {
1972
+ return this.getTypedRuleContext(EolContext, 0);
1973
+ }
1974
+ full_line_comment_stmt() {
1975
+ return this.getTypedRuleContext(Full_line_comment_stmtContext, 0);
1976
+ }
1977
+ get ruleIndex() {
1978
+ return YiniParser.RULE_terminal_trivia;
1979
+ }
1980
+ // @Override
1981
+ accept(visitor) {
1982
+ if (visitor.visitTerminal_trivia) {
1983
+ return visitor.visitTerminal_trivia(this);
1984
+ }
1985
+ else {
1986
+ return visitor.visitChildren(this);
1987
+ }
1988
+ }
1989
+ }
1990
+ exports.Terminal_triviaContext = Terminal_triviaContext;
1896
1991
  class StmtContext extends antlr4_1.ParserRuleContext {
1897
1992
  constructor(parser, parent, invokingState) {
1898
1993
  super(parent, invokingState);
@@ -1901,15 +1996,21 @@ class StmtContext extends antlr4_1.ParserRuleContext {
1901
1996
  eol() {
1902
1997
  return this.getTypedRuleContext(EolContext, 0);
1903
1998
  }
1999
+ full_line_comment_stmt() {
2000
+ return this.getTypedRuleContext(Full_line_comment_stmtContext, 0);
2001
+ }
2002
+ disabled_line_stmt() {
2003
+ return this.getTypedRuleContext(Disabled_line_stmtContext, 0);
2004
+ }
1904
2005
  SECTION_HEAD() {
1905
2006
  return this.getToken(YiniParser.SECTION_HEAD, 0);
1906
2007
  }
2008
+ invalid_section_stmt() {
2009
+ return this.getTypedRuleContext(Invalid_section_stmtContext, 0);
2010
+ }
1907
2011
  assignment() {
1908
2012
  return this.getTypedRuleContext(AssignmentContext, 0);
1909
2013
  }
1910
- colon_list_decl() {
1911
- return this.getTypedRuleContext(Colon_list_declContext, 0);
1912
- }
1913
2014
  meta_stmt() {
1914
2015
  return this.getTypedRuleContext(Meta_stmtContext, 0);
1915
2016
  }
@@ -1921,15 +2022,84 @@ class StmtContext extends antlr4_1.ParserRuleContext {
1921
2022
  }
1922
2023
  // @Override
1923
2024
  accept(visitor) {
1924
- if (visitor.visitStmt) {
1925
- return visitor.visitStmt(this);
2025
+ if (visitor.visitStmt) {
2026
+ return visitor.visitStmt(this);
2027
+ }
2028
+ else {
2029
+ return visitor.visitChildren(this);
2030
+ }
2031
+ }
2032
+ }
2033
+ exports.StmtContext = StmtContext;
2034
+ class Full_line_comment_stmtContext extends antlr4_1.ParserRuleContext {
2035
+ constructor(parser, parent, invokingState) {
2036
+ super(parent, invokingState);
2037
+ this.parser = parser;
2038
+ }
2039
+ FULL_LINE_COMMENT() {
2040
+ return this.getToken(YiniParser.FULL_LINE_COMMENT, 0);
2041
+ }
2042
+ eol() {
2043
+ return this.getTypedRuleContext(EolContext, 0);
2044
+ }
2045
+ get ruleIndex() {
2046
+ return YiniParser.RULE_full_line_comment_stmt;
2047
+ }
2048
+ // @Override
2049
+ accept(visitor) {
2050
+ if (visitor.visitFull_line_comment_stmt) {
2051
+ return visitor.visitFull_line_comment_stmt(this);
2052
+ }
2053
+ else {
2054
+ return visitor.visitChildren(this);
2055
+ }
2056
+ }
2057
+ }
2058
+ exports.Full_line_comment_stmtContext = Full_line_comment_stmtContext;
2059
+ class Disabled_line_stmtContext extends antlr4_1.ParserRuleContext {
2060
+ constructor(parser, parent, invokingState) {
2061
+ super(parent, invokingState);
2062
+ this.parser = parser;
2063
+ }
2064
+ DISABLED_LINE() {
2065
+ return this.getToken(YiniParser.DISABLED_LINE, 0);
2066
+ }
2067
+ get ruleIndex() {
2068
+ return YiniParser.RULE_disabled_line_stmt;
2069
+ }
2070
+ // @Override
2071
+ accept(visitor) {
2072
+ if (visitor.visitDisabled_line_stmt) {
2073
+ return visitor.visitDisabled_line_stmt(this);
2074
+ }
2075
+ else {
2076
+ return visitor.visitChildren(this);
2077
+ }
2078
+ }
2079
+ }
2080
+ exports.Disabled_line_stmtContext = Disabled_line_stmtContext;
2081
+ class Invalid_section_stmtContext extends antlr4_1.ParserRuleContext {
2082
+ constructor(parser, parent, invokingState) {
2083
+ super(parent, invokingState);
2084
+ this.parser = parser;
2085
+ }
2086
+ INVALID_SECTION_HEAD() {
2087
+ return this.getToken(YiniParser.INVALID_SECTION_HEAD, 0);
2088
+ }
2089
+ get ruleIndex() {
2090
+ return YiniParser.RULE_invalid_section_stmt;
2091
+ }
2092
+ // @Override
2093
+ accept(visitor) {
2094
+ if (visitor.visitInvalid_section_stmt) {
2095
+ return visitor.visitInvalid_section_stmt(this);
1926
2096
  }
1927
2097
  else {
1928
2098
  return visitor.visitChildren(this);
1929
2099
  }
1930
2100
  }
1931
2101
  }
1932
- exports.StmtContext = StmtContext;
2102
+ exports.Invalid_section_stmtContext = Invalid_section_stmtContext;
1933
2103
  class Meta_stmtContext extends antlr4_1.ParserRuleContext {
1934
2104
  constructor(parser, parent, invokingState) {
1935
2105
  super(parent, invokingState);
@@ -1966,20 +2136,14 @@ class DirectiveContext extends antlr4_1.ParserRuleContext {
1966
2136
  super(parent, invokingState);
1967
2137
  this.parser = parser;
1968
2138
  }
1969
- YINI_TOKEN() {
1970
- return this.getToken(YiniParser.YINI_TOKEN, 0);
1971
- }
1972
- eol() {
1973
- return this.getTypedRuleContext(EolContext, 0);
2139
+ yini_directive() {
2140
+ return this.getTypedRuleContext(Yini_directiveContext, 0);
1974
2141
  }
1975
2142
  INCLUDE_TOKEN() {
1976
2143
  return this.getToken(YiniParser.INCLUDE_TOKEN, 0);
1977
2144
  }
1978
- WS_list() {
1979
- return this.getTokens(YiniParser.WS);
1980
- }
1981
- WS(i) {
1982
- return this.getToken(YiniParser.WS, i);
2145
+ eol() {
2146
+ return this.getTypedRuleContext(EolContext, 0);
1983
2147
  }
1984
2148
  string_literal() {
1985
2149
  return this.getTypedRuleContext(String_literalContext, 0);
@@ -1998,6 +2162,56 @@ class DirectiveContext extends antlr4_1.ParserRuleContext {
1998
2162
  }
1999
2163
  }
2000
2164
  exports.DirectiveContext = DirectiveContext;
2165
+ class Yini_directiveContext extends antlr4_1.ParserRuleContext {
2166
+ constructor(parser, parent, invokingState) {
2167
+ super(parent, invokingState);
2168
+ this.parser = parser;
2169
+ }
2170
+ YINI_TOKEN() {
2171
+ return this.getToken(YiniParser.YINI_TOKEN, 0);
2172
+ }
2173
+ eol() {
2174
+ return this.getTypedRuleContext(EolContext, 0);
2175
+ }
2176
+ yini_mode_declaration() {
2177
+ return this.getTypedRuleContext(Yini_mode_declarationContext, 0);
2178
+ }
2179
+ get ruleIndex() {
2180
+ return YiniParser.RULE_yini_directive;
2181
+ }
2182
+ // @Override
2183
+ accept(visitor) {
2184
+ if (visitor.visitYini_directive) {
2185
+ return visitor.visitYini_directive(this);
2186
+ }
2187
+ else {
2188
+ return visitor.visitChildren(this);
2189
+ }
2190
+ }
2191
+ }
2192
+ exports.Yini_directiveContext = Yini_directiveContext;
2193
+ class Yini_mode_declarationContext extends antlr4_1.ParserRuleContext {
2194
+ constructor(parser, parent, invokingState) {
2195
+ super(parent, invokingState);
2196
+ this.parser = parser;
2197
+ }
2198
+ KEY() {
2199
+ return this.getToken(YiniParser.KEY, 0);
2200
+ }
2201
+ get ruleIndex() {
2202
+ return YiniParser.RULE_yini_mode_declaration;
2203
+ }
2204
+ // @Override
2205
+ accept(visitor) {
2206
+ if (visitor.visitYini_mode_declaration) {
2207
+ return visitor.visitYini_mode_declaration(this);
2208
+ }
2209
+ else {
2210
+ return visitor.visitChildren(this);
2211
+ }
2212
+ }
2213
+ }
2214
+ exports.Yini_mode_declarationContext = Yini_mode_declarationContext;
2001
2215
  class AnnotationContext extends antlr4_1.ParserRuleContext {
2002
2216
  constructor(parser, parent, invokingState) {
2003
2217
  super(parent, invokingState);
@@ -2028,9 +2242,6 @@ class EolContext extends antlr4_1.ParserRuleContext {
2028
2242
  super(parent, invokingState);
2029
2243
  this.parser = parser;
2030
2244
  }
2031
- INLINE_COMMENT() {
2032
- return this.getToken(YiniParser.INLINE_COMMENT, 0);
2033
- }
2034
2245
  NL_list() {
2035
2246
  return this.getTokens(YiniParser.NL);
2036
2247
  }
@@ -2087,12 +2298,6 @@ class MemberContext extends antlr4_1.ParserRuleContext {
2087
2298
  EQ() {
2088
2299
  return this.getToken(YiniParser.EQ, 0);
2089
2300
  }
2090
- WS_list() {
2091
- return this.getTokens(YiniParser.WS);
2092
- }
2093
- WS(i) {
2094
- return this.getToken(YiniParser.WS, i);
2095
- }
2096
2301
  value() {
2097
2302
  return this.getTypedRuleContext(ValueContext, 0);
2098
2303
  }
@@ -2110,47 +2315,38 @@ class MemberContext extends antlr4_1.ParserRuleContext {
2110
2315
  }
2111
2316
  }
2112
2317
  exports.MemberContext = MemberContext;
2113
- class Colon_list_declContext extends antlr4_1.ParserRuleContext {
2318
+ class ValueContext extends antlr4_1.ParserRuleContext {
2114
2319
  constructor(parser, parent, invokingState) {
2115
2320
  super(parent, invokingState);
2116
2321
  this.parser = parser;
2117
2322
  }
2118
- KEY() {
2119
- return this.getToken(YiniParser.KEY, 0);
2120
- }
2121
- COLON() {
2122
- return this.getToken(YiniParser.COLON, 0);
2123
- }
2124
- elements() {
2125
- return this.getTypedRuleContext(ElementsContext, 0);
2126
- }
2127
- eol_list() {
2128
- return this.getTypedRuleContexts(EolContext);
2323
+ concat_expression() {
2324
+ return this.getTypedRuleContext(Concat_expressionContext, 0);
2129
2325
  }
2130
- eol(i) {
2131
- return this.getTypedRuleContext(EolContext, i);
2326
+ scalar_value() {
2327
+ return this.getTypedRuleContext(Scalar_valueContext, 0);
2132
2328
  }
2133
- WS_list() {
2134
- return this.getTokens(YiniParser.WS);
2329
+ list_literal() {
2330
+ return this.getTypedRuleContext(List_literalContext, 0);
2135
2331
  }
2136
- WS(i) {
2137
- return this.getToken(YiniParser.WS, i);
2332
+ object_literal() {
2333
+ return this.getTypedRuleContext(Object_literalContext, 0);
2138
2334
  }
2139
2335
  get ruleIndex() {
2140
- return YiniParser.RULE_colon_list_decl;
2336
+ return YiniParser.RULE_value;
2141
2337
  }
2142
2338
  // @Override
2143
2339
  accept(visitor) {
2144
- if (visitor.visitColon_list_decl) {
2145
- return visitor.visitColon_list_decl(this);
2340
+ if (visitor.visitValue) {
2341
+ return visitor.visitValue(this);
2146
2342
  }
2147
2343
  else {
2148
2344
  return visitor.visitChildren(this);
2149
2345
  }
2150
2346
  }
2151
2347
  }
2152
- exports.Colon_list_declContext = Colon_list_declContext;
2153
- class ValueContext extends antlr4_1.ParserRuleContext {
2348
+ exports.ValueContext = ValueContext;
2349
+ class Scalar_valueContext extends antlr4_1.ParserRuleContext {
2154
2350
  constructor(parser, parent, invokingState) {
2155
2351
  super(parent, invokingState);
2156
2352
  this.parser = parser;
@@ -2167,26 +2363,135 @@ class ValueContext extends antlr4_1.ParserRuleContext {
2167
2363
  boolean_literal() {
2168
2364
  return this.getTypedRuleContext(Boolean_literalContext, 0);
2169
2365
  }
2170
- list_literal() {
2171
- return this.getTypedRuleContext(List_literalContext, 0);
2366
+ get ruleIndex() {
2367
+ return YiniParser.RULE_scalar_value;
2172
2368
  }
2173
- object_literal() {
2174
- return this.getTypedRuleContext(Object_literalContext, 0);
2369
+ // @Override
2370
+ accept(visitor) {
2371
+ if (visitor.visitScalar_value) {
2372
+ return visitor.visitScalar_value(this);
2373
+ }
2374
+ else {
2375
+ return visitor.visitChildren(this);
2376
+ }
2377
+ }
2378
+ }
2379
+ exports.Scalar_valueContext = Scalar_valueContext;
2380
+ class Concat_expressionContext extends antlr4_1.ParserRuleContext {
2381
+ constructor(parser, parent, invokingState) {
2382
+ super(parent, invokingState);
2383
+ this.parser = parser;
2384
+ }
2385
+ STRING() {
2386
+ return this.getToken(YiniParser.STRING, 0);
2387
+ }
2388
+ concat_tail_list() {
2389
+ return this.getTypedRuleContexts(Concat_tailContext);
2390
+ }
2391
+ concat_tail(i) {
2392
+ return this.getTypedRuleContext(Concat_tailContext, i);
2175
2393
  }
2176
2394
  get ruleIndex() {
2177
- return YiniParser.RULE_value;
2395
+ return YiniParser.RULE_concat_expression;
2178
2396
  }
2179
2397
  // @Override
2180
2398
  accept(visitor) {
2181
- if (visitor.visitValue) {
2182
- return visitor.visitValue(this);
2399
+ if (visitor.visitConcat_expression) {
2400
+ return visitor.visitConcat_expression(this);
2183
2401
  }
2184
2402
  else {
2185
2403
  return visitor.visitChildren(this);
2186
2404
  }
2187
2405
  }
2188
2406
  }
2189
- exports.ValueContext = ValueContext;
2407
+ exports.Concat_expressionContext = Concat_expressionContext;
2408
+ class Concat_tailContext extends antlr4_1.ParserRuleContext {
2409
+ constructor(parser, parent, invokingState) {
2410
+ super(parent, invokingState);
2411
+ this.parser = parser;
2412
+ }
2413
+ PLUS() {
2414
+ return this.getToken(YiniParser.PLUS, 0);
2415
+ }
2416
+ concat_operand() {
2417
+ return this.getTypedRuleContext(Concat_operandContext, 0);
2418
+ }
2419
+ NL_list() {
2420
+ return this.getTokens(YiniParser.NL);
2421
+ }
2422
+ NL(i) {
2423
+ return this.getToken(YiniParser.NL, i);
2424
+ }
2425
+ get ruleIndex() {
2426
+ return YiniParser.RULE_concat_tail;
2427
+ }
2428
+ // @Override
2429
+ accept(visitor) {
2430
+ if (visitor.visitConcat_tail) {
2431
+ return visitor.visitConcat_tail(this);
2432
+ }
2433
+ else {
2434
+ return visitor.visitChildren(this);
2435
+ }
2436
+ }
2437
+ }
2438
+ exports.Concat_tailContext = Concat_tailContext;
2439
+ class Concat_operandContext extends antlr4_1.ParserRuleContext {
2440
+ constructor(parser, parent, invokingState) {
2441
+ super(parent, invokingState);
2442
+ this.parser = parser;
2443
+ }
2444
+ STRING() {
2445
+ return this.getToken(YiniParser.STRING, 0);
2446
+ }
2447
+ NUMBER() {
2448
+ return this.getToken(YiniParser.NUMBER, 0);
2449
+ }
2450
+ BOOLEAN_TRUE() {
2451
+ return this.getToken(YiniParser.BOOLEAN_TRUE, 0);
2452
+ }
2453
+ BOOLEAN_FALSE() {
2454
+ return this.getToken(YiniParser.BOOLEAN_FALSE, 0);
2455
+ }
2456
+ NULL() {
2457
+ return this.getToken(YiniParser.NULL, 0);
2458
+ }
2459
+ get ruleIndex() {
2460
+ return YiniParser.RULE_concat_operand;
2461
+ }
2462
+ // @Override
2463
+ accept(visitor) {
2464
+ if (visitor.visitConcat_operand) {
2465
+ return visitor.visitConcat_operand(this);
2466
+ }
2467
+ else {
2468
+ return visitor.visitChildren(this);
2469
+ }
2470
+ }
2471
+ }
2472
+ exports.Concat_operandContext = Concat_operandContext;
2473
+ class String_literalContext extends antlr4_1.ParserRuleContext {
2474
+ constructor(parser, parent, invokingState) {
2475
+ super(parent, invokingState);
2476
+ this.parser = parser;
2477
+ }
2478
+ STRING() {
2479
+ return this.getToken(YiniParser.STRING, 0);
2480
+ }
2481
+ get ruleIndex() {
2482
+ return YiniParser.RULE_string_literal;
2483
+ }
2484
+ // @Override
2485
+ accept(visitor) {
2486
+ if (visitor.visitString_literal) {
2487
+ return visitor.visitString_literal(this);
2488
+ }
2489
+ else {
2490
+ return visitor.visitChildren(this);
2491
+ }
2492
+ }
2493
+ }
2494
+ exports.String_literalContext = String_literalContext;
2190
2495
  class Object_literalContext extends antlr4_1.ParserRuleContext {
2191
2496
  constructor(parser, parent, invokingState) {
2192
2497
  super(parent, invokingState);
@@ -2269,21 +2574,12 @@ class Object_memberContext extends antlr4_1.ParserRuleContext {
2269
2574
  KEY() {
2270
2575
  return this.getToken(YiniParser.KEY, 0);
2271
2576
  }
2272
- COLON() {
2273
- return this.getToken(YiniParser.COLON, 0);
2577
+ object_member_separator() {
2578
+ return this.getTypedRuleContext(Object_member_separatorContext, 0);
2274
2579
  }
2275
2580
  value() {
2276
2581
  return this.getTypedRuleContext(ValueContext, 0);
2277
2582
  }
2278
- WS() {
2279
- return this.getToken(YiniParser.WS, 0);
2280
- }
2281
- NL_list() {
2282
- return this.getTokens(YiniParser.NL);
2283
- }
2284
- NL(i) {
2285
- return this.getToken(YiniParser.NL, i);
2286
- }
2287
2583
  get ruleIndex() {
2288
2584
  return YiniParser.RULE_object_member;
2289
2585
  }
@@ -2298,6 +2594,31 @@ class Object_memberContext extends antlr4_1.ParserRuleContext {
2298
2594
  }
2299
2595
  }
2300
2596
  exports.Object_memberContext = Object_memberContext;
2597
+ class Object_member_separatorContext extends antlr4_1.ParserRuleContext {
2598
+ constructor(parser, parent, invokingState) {
2599
+ super(parent, invokingState);
2600
+ this.parser = parser;
2601
+ }
2602
+ COLON() {
2603
+ return this.getToken(YiniParser.COLON, 0);
2604
+ }
2605
+ EQ() {
2606
+ return this.getToken(YiniParser.EQ, 0);
2607
+ }
2608
+ get ruleIndex() {
2609
+ return YiniParser.RULE_object_member_separator;
2610
+ }
2611
+ // @Override
2612
+ accept(visitor) {
2613
+ if (visitor.visitObject_member_separator) {
2614
+ return visitor.visitObject_member_separator(this);
2615
+ }
2616
+ else {
2617
+ return visitor.visitChildren(this);
2618
+ }
2619
+ }
2620
+ }
2621
+ exports.Object_member_separatorContext = Object_member_separatorContext;
2301
2622
  class List_literalContext extends antlr4_1.ParserRuleContext {
2302
2623
  constructor(parser, parent, invokingState) {
2303
2624
  super(parent, invokingState);
@@ -2416,65 +2737,6 @@ class Null_literalContext extends antlr4_1.ParserRuleContext {
2416
2737
  }
2417
2738
  }
2418
2739
  exports.Null_literalContext = Null_literalContext;
2419
- class String_literalContext extends antlr4_1.ParserRuleContext {
2420
- constructor(parser, parent, invokingState) {
2421
- super(parent, invokingState);
2422
- this.parser = parser;
2423
- }
2424
- STRING() {
2425
- return this.getToken(YiniParser.STRING, 0);
2426
- }
2427
- string_concat_list() {
2428
- return this.getTypedRuleContexts(String_concatContext);
2429
- }
2430
- string_concat(i) {
2431
- return this.getTypedRuleContext(String_concatContext, i);
2432
- }
2433
- get ruleIndex() {
2434
- return YiniParser.RULE_string_literal;
2435
- }
2436
- // @Override
2437
- accept(visitor) {
2438
- if (visitor.visitString_literal) {
2439
- return visitor.visitString_literal(this);
2440
- }
2441
- else {
2442
- return visitor.visitChildren(this);
2443
- }
2444
- }
2445
- }
2446
- exports.String_literalContext = String_literalContext;
2447
- class String_concatContext extends antlr4_1.ParserRuleContext {
2448
- constructor(parser, parent, invokingState) {
2449
- super(parent, invokingState);
2450
- this.parser = parser;
2451
- }
2452
- PLUS() {
2453
- return this.getToken(YiniParser.PLUS, 0);
2454
- }
2455
- STRING() {
2456
- return this.getToken(YiniParser.STRING, 0);
2457
- }
2458
- NL_list() {
2459
- return this.getTokens(YiniParser.NL);
2460
- }
2461
- NL(i) {
2462
- return this.getToken(YiniParser.NL, i);
2463
- }
2464
- get ruleIndex() {
2465
- return YiniParser.RULE_string_concat;
2466
- }
2467
- // @Override
2468
- accept(visitor) {
2469
- if (visitor.visitString_concat) {
2470
- return visitor.visitString_concat(this);
2471
- }
2472
- else {
2473
- return visitor.visitChildren(this);
2474
- }
2475
- }
2476
- }
2477
- exports.String_concatContext = String_concatContext;
2478
2740
  class Boolean_literalContext extends antlr4_1.ParserRuleContext {
2479
2741
  constructor(parser, parent, invokingState) {
2480
2742
  super(parent, invokingState);
@@ -2542,12 +2804,6 @@ class Bad_memberContext extends antlr4_1.ParserRuleContext {
2542
2804
  REST(i) {
2543
2805
  return this.getToken(YiniParser.REST, i);
2544
2806
  }
2545
- WS_list() {
2546
- return this.getTokens(YiniParser.WS);
2547
- }
2548
- WS(i) {
2549
- return this.getToken(YiniParser.WS, i);
2550
- }
2551
2807
  eol() {
2552
2808
  return this.getTypedRuleContext(EolContext, 0);
2553
2809
  }