yini-parser 1.5.0 → 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 (87) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +183 -37
  3. package/dist/YINI.d.ts +22 -7
  4. package/dist/YINI.js +101 -0
  5. package/dist/core/astBuilder.d.ts +94 -15
  6. package/dist/core/astBuilder.js +394 -362
  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.js +21 -6
  11. package/dist/core/options/defaultParserOptions.d.ts +3 -2
  12. package/dist/core/options/defaultParserOptions.js +2 -1
  13. package/dist/core/options/optionsFunctions.js +5 -1
  14. package/dist/core/pipeline/pipeline.js +31 -10
  15. package/dist/core/runtime.js +28 -19
  16. package/dist/grammar/generated/YiniLexer.d.ts +28 -35
  17. package/dist/grammar/generated/YiniLexer.js +323 -310
  18. package/dist/grammar/generated/YiniParser.d.ts +158 -80
  19. package/dist/grammar/generated/YiniParser.js +1141 -620
  20. package/dist/grammar/generated/YiniParserVisitor.d.ts +77 -14
  21. package/dist/grammar/generated/YiniParserVisitor.js +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.js +4 -3
  24. package/dist/parsers/extractHeaderParts.d.ts +12 -19
  25. package/dist/parsers/extractHeaderParts.js +57 -46
  26. package/dist/parsers/parseNumber.d.ts +24 -6
  27. package/dist/parsers/parseNumber.js +114 -49
  28. package/dist/parsers/parseSectionHeader.d.ts +11 -3
  29. package/dist/parsers/parseSectionHeader.js +55 -43
  30. package/dist/parsers/parseString.js +39 -20
  31. package/dist/parsers/validateShebangPlacement.d.ts +3 -0
  32. package/dist/parsers/validateShebangPlacement.js +52 -0
  33. package/dist/types/index.d.ts +19 -2
  34. package/dist/utils/print.d.ts +1 -0
  35. package/dist/utils/print.js +5 -1
  36. package/dist/utils/string.d.ts +1 -0
  37. package/dist/utils/string.js +17 -1
  38. package/dist/utils/system.d.ts +1 -0
  39. package/dist/utils/system.js +6 -1
  40. package/dist/utils/yiniHelpers.d.ts +44 -2
  41. package/dist/utils/yiniHelpers.js +134 -46
  42. package/examples/compare-formats.md +1 -1
  43. package/examples/nested.yini +1 -1
  44. package/package.json +11 -3
  45. package/dist/YINI.js.map +0 -1
  46. package/dist/config/env.js.map +0 -1
  47. package/dist/core/astBuilder.js.map +0 -1
  48. package/dist/core/errorDataHandler.js.map +0 -1
  49. package/dist/core/internalTypes.js.map +0 -1
  50. package/dist/core/objectBuilder.js.map +0 -1
  51. package/dist/core/options/defaultParserOptions.js.map +0 -1
  52. package/dist/core/options/failLevel.js.map +0 -1
  53. package/dist/core/options/optionsFunctions.js.map +0 -1
  54. package/dist/core/parsingRules/modeFromRulesMatcher.js.map +0 -1
  55. package/dist/core/parsingRules/rulesConstAndGuards.js.map +0 -1
  56. package/dist/core/pipeline/errorListeners.js.map +0 -1
  57. package/dist/core/pipeline/pipeline.js.map +0 -1
  58. package/dist/core/resultMetadataBuilder.js.map +0 -1
  59. package/dist/core/runtime.js.map +0 -1
  60. package/dist/dev/main.d.ts +0 -1
  61. package/dist/dev/main.js +0 -139
  62. package/dist/dev/main.js.map +0 -1
  63. package/dist/dev/quick-test-samples/defect-inputs.d.ts +0 -37
  64. package/dist/dev/quick-test-samples/defect-inputs.js +0 -106
  65. package/dist/dev/quick-test-samples/defect-inputs.js.map +0 -1
  66. package/dist/dev/quick-test-samples/valid-inputs.d.ts +0 -21
  67. package/dist/dev/quick-test-samples/valid-inputs.js +0 -422
  68. package/dist/dev/quick-test-samples/valid-inputs.js.map +0 -1
  69. package/dist/grammar/generated/YiniLexer.js.map +0 -1
  70. package/dist/grammar/generated/YiniParser.js.map +0 -1
  71. package/dist/grammar/generated/YiniParserVisitor.js.map +0 -1
  72. package/dist/index.js.map +0 -1
  73. package/dist/parsers/extractHeaderParts.js.map +0 -1
  74. package/dist/parsers/extractSignificantYiniLine.js.map +0 -1
  75. package/dist/parsers/parseBoolean.js.map +0 -1
  76. package/dist/parsers/parseNull.js.map +0 -1
  77. package/dist/parsers/parseNumber.js.map +0 -1
  78. package/dist/parsers/parseSectionHeader.js.map +0 -1
  79. package/dist/parsers/parseString.js.map +0 -1
  80. package/dist/types/index.js.map +0 -1
  81. package/dist/utils/number.js.map +0 -1
  82. package/dist/utils/object.js.map +0 -1
  83. package/dist/utils/pathAndFileName.js.map +0 -1
  84. package/dist/utils/print.js.map +0 -1
  85. package/dist/utils/string.js.map +0 -1
  86. package/dist/utils/system.js.map +0 -1
  87. package/dist/utils/yiniHelpers.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
- // Generated from ./grammar/v1.0.0-rc.5/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.MemberContext = exports.AssignmentContext = exports.EolContext = exports.AnnotationContext = exports.DirectiveContext = exports.Meta_stmtContext = exports.Invalid_section_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) & 679755740) !== 0) || ((((_la - 36)) & ~0x1F) === 0 && ((1 << (_la - 36)) & 417) !== 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,36 +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
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 36:
112
+ case 31:
113
113
  this.enterOuterAlt(localctx, 2);
114
114
  {
115
- this.state = 70;
115
+ this.state = 88;
116
116
  this._errHandler.sync(this);
117
117
  _alt = 1;
118
118
  do {
@@ -120,7 +120,7 @@ class YiniParser extends antlr4_1.Parser {
120
120
  case 1:
121
121
  {
122
122
  {
123
- this.state = 69;
123
+ this.state = 87;
124
124
  this.eol();
125
125
  }
126
126
  }
@@ -128,7 +128,7 @@ class YiniParser extends antlr4_1.Parser {
128
128
  default:
129
129
  throw new antlr4_1.NoViableAltException(this);
130
130
  }
131
- this.state = 72;
131
+ this.state = 90;
132
132
  this._errHandler.sync(this);
133
133
  _alt = this._interp.adaptivePredict(this._input, 4, this._ctx);
134
134
  } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
@@ -161,19 +161,19 @@ class YiniParser extends antlr4_1.Parser {
161
161
  try {
162
162
  this.enterOuterAlt(localctx, 1);
163
163
  {
164
- this.state = 76;
164
+ this.state = 94;
165
165
  this.match(YiniParser.TERMINAL_TOKEN);
166
- this.state = 80;
166
+ this.state = 98;
167
167
  this._errHandler.sync(this);
168
168
  _la = this._input.LA(1);
169
- while (_la === 36) {
169
+ while (_la === 31 || _la === 35) {
170
170
  {
171
171
  {
172
- this.state = 77;
173
- this.eol();
172
+ this.state = 95;
173
+ this.terminal_trivia();
174
174
  }
175
175
  }
176
- this.state = 82;
176
+ this.state = 100;
177
177
  this._errHandler.sync(this);
178
178
  _la = this._input.LA(1);
179
179
  }
@@ -195,48 +195,103 @@ class YiniParser extends antlr4_1.Parser {
195
195
  return localctx;
196
196
  }
197
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)
198
239
  stmt() {
199
240
  let localctx = new StmtContext(this, this._ctx, this.state);
200
- this.enterRule(localctx, 6, YiniParser.RULE_stmt);
241
+ this.enterRule(localctx, 8, YiniParser.RULE_stmt);
201
242
  try {
202
- this.state = 89;
243
+ this.state = 113;
203
244
  this._errHandler.sync(this);
204
245
  switch (this._input.LA(1)) {
205
- case 36:
246
+ case 31:
206
247
  this.enterOuterAlt(localctx, 1);
207
248
  {
208
- this.state = 83;
249
+ this.state = 105;
209
250
  this.eol();
210
251
  }
211
252
  break;
212
- case 6:
253
+ case 35:
213
254
  this.enterOuterAlt(localctx, 2);
214
255
  {
215
- this.state = 84;
256
+ this.state = 106;
257
+ this.full_line_comment_stmt();
258
+ }
259
+ break;
260
+ case 34:
261
+ this.enterOuterAlt(localctx, 3);
262
+ {
263
+ this.state = 107;
264
+ this.disabled_line_stmt();
265
+ }
266
+ break;
267
+ case 6:
268
+ this.enterOuterAlt(localctx, 4);
269
+ {
270
+ this.state = 108;
216
271
  this.match(YiniParser.SECTION_HEAD);
217
272
  }
218
273
  break;
219
274
  case 7:
220
- this.enterOuterAlt(localctx, 3);
275
+ this.enterOuterAlt(localctx, 5);
221
276
  {
222
- this.state = 85;
277
+ this.state = 109;
223
278
  this.invalid_section_stmt();
224
279
  }
225
280
  break;
226
- case 41:
227
- this.enterOuterAlt(localctx, 4);
281
+ case 37:
282
+ this.enterOuterAlt(localctx, 6);
228
283
  {
229
- this.state = 86;
284
+ this.state = 110;
230
285
  this.assignment();
231
286
  }
232
287
  break;
233
288
  case 2:
234
289
  case 3:
235
290
  case 4:
236
- case 44:
237
- this.enterOuterAlt(localctx, 5);
291
+ case 40:
292
+ this.enterOuterAlt(localctx, 7);
238
293
  {
239
- this.state = 87;
294
+ this.state = 111;
240
295
  this.meta_stmt();
241
296
  }
242
297
  break;
@@ -246,14 +301,14 @@ class YiniParser extends antlr4_1.Parser {
246
301
  case 11:
247
302
  case 12:
248
303
  case 13:
249
- case 18:
250
- case 23:
251
- case 27:
252
- case 29:
253
- case 43:
254
- this.enterOuterAlt(localctx, 6);
304
+ case 14:
305
+ case 19:
306
+ case 22:
307
+ case 24:
308
+ case 39:
309
+ this.enterOuterAlt(localctx, 8);
255
310
  {
256
- this.state = 88;
311
+ this.state = 112;
257
312
  this.bad_member();
258
313
  }
259
314
  break;
@@ -277,13 +332,75 @@ class YiniParser extends antlr4_1.Parser {
277
332
  return localctx;
278
333
  }
279
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)
280
397
  invalid_section_stmt() {
281
398
  let localctx = new Invalid_section_stmtContext(this, this._ctx, this.state);
282
- this.enterRule(localctx, 8, YiniParser.RULE_invalid_section_stmt);
399
+ this.enterRule(localctx, 14, YiniParser.RULE_invalid_section_stmt);
283
400
  try {
284
401
  this.enterOuterAlt(localctx, 1);
285
402
  {
286
- this.state = 91;
403
+ this.state = 121;
287
404
  this.match(YiniParser.INVALID_SECTION_HEAD);
288
405
  }
289
406
  }
@@ -305,32 +422,32 @@ class YiniParser extends antlr4_1.Parser {
305
422
  // @RuleVersion(0)
306
423
  meta_stmt() {
307
424
  let localctx = new Meta_stmtContext(this, this._ctx, this.state);
308
- this.enterRule(localctx, 10, YiniParser.RULE_meta_stmt);
425
+ this.enterRule(localctx, 16, YiniParser.RULE_meta_stmt);
309
426
  try {
310
- this.state = 98;
427
+ this.state = 128;
311
428
  this._errHandler.sync(this);
312
429
  switch (this._input.LA(1)) {
313
430
  case 2:
314
431
  case 3:
315
432
  this.enterOuterAlt(localctx, 1);
316
433
  {
317
- this.state = 93;
434
+ this.state = 123;
318
435
  this.directive();
319
436
  }
320
437
  break;
321
438
  case 4:
322
439
  this.enterOuterAlt(localctx, 2);
323
440
  {
324
- this.state = 94;
441
+ this.state = 124;
325
442
  this.annotation();
326
443
  }
327
444
  break;
328
- case 44:
445
+ case 40:
329
446
  this.enterOuterAlt(localctx, 3);
330
447
  {
331
- this.state = 95;
448
+ this.state = 125;
332
449
  this.bad_meta_text();
333
- this.state = 96;
450
+ this.state = 126;
334
451
  this.eol();
335
452
  }
336
453
  break;
@@ -356,36 +473,34 @@ class YiniParser extends antlr4_1.Parser {
356
473
  // @RuleVersion(0)
357
474
  directive() {
358
475
  let localctx = new DirectiveContext(this, this._ctx, this.state);
359
- this.enterRule(localctx, 12, YiniParser.RULE_directive);
476
+ this.enterRule(localctx, 18, YiniParser.RULE_directive);
360
477
  let _la;
361
478
  try {
362
- this.state = 107;
479
+ this.state = 136;
363
480
  this._errHandler.sync(this);
364
481
  switch (this._input.LA(1)) {
365
482
  case 2:
366
483
  this.enterOuterAlt(localctx, 1);
367
484
  {
368
- this.state = 100;
369
- this.match(YiniParser.YINI_TOKEN);
370
- this.state = 101;
371
- this.eol();
485
+ this.state = 130;
486
+ this.yini_directive();
372
487
  }
373
488
  break;
374
489
  case 3:
375
490
  this.enterOuterAlt(localctx, 2);
376
491
  {
377
- this.state = 102;
492
+ this.state = 131;
378
493
  this.match(YiniParser.INCLUDE_TOKEN);
379
- this.state = 104;
494
+ this.state = 133;
380
495
  this._errHandler.sync(this);
381
496
  _la = this._input.LA(1);
382
497
  if (_la === 13) {
383
498
  {
384
- this.state = 103;
499
+ this.state = 132;
385
500
  this.string_literal();
386
501
  }
387
502
  }
388
- this.state = 106;
503
+ this.state = 135;
389
504
  this.eol();
390
505
  }
391
506
  break;
@@ -409,15 +524,79 @@ class YiniParser extends antlr4_1.Parser {
409
524
  return localctx;
410
525
  }
411
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)
412
591
  annotation() {
413
592
  let localctx = new AnnotationContext(this, this._ctx, this.state);
414
- this.enterRule(localctx, 14, YiniParser.RULE_annotation);
593
+ this.enterRule(localctx, 24, YiniParser.RULE_annotation);
415
594
  try {
416
595
  this.enterOuterAlt(localctx, 1);
417
596
  {
418
- this.state = 109;
597
+ this.state = 146;
419
598
  this.match(YiniParser.DEPRECATED_TOKEN);
420
- this.state = 110;
599
+ this.state = 147;
421
600
  this.eol();
422
601
  }
423
602
  }
@@ -439,12 +618,12 @@ class YiniParser extends antlr4_1.Parser {
439
618
  // @RuleVersion(0)
440
619
  eol() {
441
620
  let localctx = new EolContext(this, this._ctx, this.state);
442
- this.enterRule(localctx, 16, YiniParser.RULE_eol);
621
+ this.enterRule(localctx, 26, YiniParser.RULE_eol);
443
622
  try {
444
623
  let _alt;
445
624
  this.enterOuterAlt(localctx, 1);
446
625
  {
447
- this.state = 113;
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 = 112;
634
+ this.state = 149;
456
635
  this.match(YiniParser.NL);
457
636
  }
458
637
  }
@@ -460,9 +639,9 @@ class YiniParser extends antlr4_1.Parser {
460
639
  default:
461
640
  throw new antlr4_1.NoViableAltException(this);
462
641
  }
463
- this.state = 115;
642
+ this.state = 152;
464
643
  this._errHandler.sync(this);
465
- _alt = this._interp.adaptivePredict(this._input, 11, this._ctx);
644
+ _alt = this._interp.adaptivePredict(this._input, 14, this._ctx);
466
645
  } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
467
646
  }
468
647
  }
@@ -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, 18, 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 = 117;
670
+ this.state = 154;
492
671
  this.member();
493
- this.state = 118;
672
+ this.state = 155;
494
673
  this.eol();
495
674
  }
496
675
  }
@@ -512,21 +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, 20, 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 = 120;
699
+ this.state = 157;
521
700
  this.match(YiniParser.KEY);
522
- this.state = 121;
701
+ this.state = 158;
523
702
  this.match(YiniParser.EQ);
524
- this.state = 123;
703
+ this.state = 160;
525
704
  this._errHandler.sync(this);
526
705
  _la = this._input.LA(1);
527
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 671366912) !== 0)) {
706
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 21004032) !== 0)) {
528
707
  {
529
- this.state = 122;
708
+ this.state = 159;
530
709
  this.value();
531
710
  }
532
711
  }
@@ -550,29 +729,82 @@ class YiniParser extends antlr4_1.Parser {
550
729
  // @RuleVersion(0)
551
730
  value() {
552
731
  let localctx = new ValueContext(this, this._ctx, this.state);
553
- this.enterRule(localctx, 22, YiniParser.RULE_value);
732
+ this.enterRule(localctx, 32, YiniParser.RULE_value);
733
+ try {
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);
739
+ {
740
+ this.state = 162;
741
+ this.concat_expression();
742
+ }
743
+ break;
744
+ case 2:
745
+ this.enterOuterAlt(localctx, 2);
746
+ {
747
+ this.state = 163;
748
+ this.scalar_value();
749
+ }
750
+ break;
751
+ case 3:
752
+ this.enterOuterAlt(localctx, 3);
753
+ {
754
+ this.state = 164;
755
+ this.list_literal();
756
+ }
757
+ break;
758
+ case 4:
759
+ this.enterOuterAlt(localctx, 4);
760
+ {
761
+ this.state = 165;
762
+ this.object_literal();
763
+ }
764
+ break;
765
+ }
766
+ }
767
+ catch (re) {
768
+ if (re instanceof antlr4_1.RecognitionException) {
769
+ localctx.exception = re;
770
+ this._errHandler.reportError(this, re);
771
+ this._errHandler.recover(this, re);
772
+ }
773
+ else {
774
+ throw re;
775
+ }
776
+ }
777
+ finally {
778
+ this.exitRule();
779
+ }
780
+ return localctx;
781
+ }
782
+ // @RuleVersion(0)
783
+ scalar_value() {
784
+ let localctx = new Scalar_valueContext(this, this._ctx, this.state);
785
+ this.enterRule(localctx, 34, YiniParser.RULE_scalar_value);
554
786
  try {
555
- this.state = 131;
787
+ this.state = 172;
556
788
  this._errHandler.sync(this);
557
789
  switch (this._input.LA(1)) {
558
790
  case 10:
559
791
  this.enterOuterAlt(localctx, 1);
560
792
  {
561
- this.state = 125;
793
+ this.state = 168;
562
794
  this.null_literal();
563
795
  }
564
796
  break;
565
797
  case 13:
566
798
  this.enterOuterAlt(localctx, 2);
567
799
  {
568
- this.state = 126;
800
+ this.state = 169;
569
801
  this.string_literal();
570
802
  }
571
803
  break;
572
- case 18:
804
+ case 14:
573
805
  this.enterOuterAlt(localctx, 3);
574
806
  {
575
- this.state = 127;
807
+ this.state = 170;
576
808
  this.number_literal();
577
809
  }
578
810
  break;
@@ -580,26 +812,10 @@ class YiniParser extends antlr4_1.Parser {
580
812
  case 9:
581
813
  this.enterOuterAlt(localctx, 4);
582
814
  {
583
- this.state = 128;
815
+ this.state = 171;
584
816
  this.boolean_literal();
585
817
  }
586
818
  break;
587
- case 12:
588
- case 27:
589
- this.enterOuterAlt(localctx, 5);
590
- {
591
- this.state = 129;
592
- this.list_literal();
593
- }
594
- break;
595
- case 11:
596
- case 29:
597
- this.enterOuterAlt(localctx, 6);
598
- {
599
- this.state = 130;
600
- this.object_literal();
601
- }
602
- break;
603
819
  default:
604
820
  throw new antlr4_1.NoViableAltException(this);
605
821
  }
@@ -620,99 +836,243 @@ class YiniParser extends antlr4_1.Parser {
620
836
  return localctx;
621
837
  }
622
838
  // @RuleVersion(0)
623
- object_literal() {
624
- let localctx = new Object_literalContext(this, this._ctx, this.state);
625
- this.enterRule(localctx, 24, YiniParser.RULE_object_literal);
839
+ concat_expression() {
840
+ let localctx = new Concat_expressionContext(this, this._ctx, this.state);
841
+ this.enterRule(localctx, 36, YiniParser.RULE_concat_expression);
626
842
  let _la;
627
843
  try {
628
- let _alt;
629
- this.state = 163;
630
- this._errHandler.sync(this);
631
- switch (this._input.LA(1)) {
632
- case 29:
633
- this.enterOuterAlt(localctx, 1);
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 {
634
852
  {
635
- this.state = 133;
636
- this.match(YiniParser.OC);
637
- this.state = 137;
638
- this._errHandler.sync(this);
639
- _alt = this._interp.adaptivePredict(this._input, 14, this._ctx);
640
- while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
641
- if (_alt === 1) {
642
- {
643
- {
644
- this.state = 134;
645
- this.match(YiniParser.NL);
646
- }
647
- }
648
- }
649
- this.state = 139;
650
- this._errHandler.sync(this);
651
- _alt = this._interp.adaptivePredict(this._input, 14, this._ctx);
853
+ {
854
+ this.state = 175;
855
+ this.concat_tail();
652
856
  }
653
- this.state = 141;
654
- this._errHandler.sync(this);
655
- _la = this._input.LA(1);
656
- if (_la === 41) {
657
- {
658
- this.state = 140;
659
- this.object_members();
857
+ }
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) {
893
+ {
894
+ {
895
+ this.state = 181;
896
+ this.match(YiniParser.NL);
897
+ }
898
+ }
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);
965
+ }
966
+ }
967
+ catch (re) {
968
+ if (re instanceof antlr4_1.RecognitionException) {
969
+ localctx.exception = re;
970
+ this._errHandler.reportError(this, re);
971
+ this._errHandler.recover(this, re);
972
+ }
973
+ else {
974
+ throw re;
975
+ }
976
+ }
977
+ finally {
978
+ this.exitRule();
979
+ }
980
+ return localctx;
981
+ }
982
+ // @RuleVersion(0)
983
+ object_literal() {
984
+ let localctx = new Object_literalContext(this, this._ctx, this.state);
985
+ this.enterRule(localctx, 44, YiniParser.RULE_object_literal);
986
+ let _la;
987
+ try {
988
+ let _alt;
989
+ this.state = 223;
990
+ this._errHandler.sync(this);
991
+ switch (this._input.LA(1)) {
992
+ case 24:
993
+ this.enterOuterAlt(localctx, 1);
994
+ {
995
+ this.state = 193;
996
+ this.match(YiniParser.OC);
997
+ this.state = 197;
998
+ this._errHandler.sync(this);
999
+ _alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
1000
+ while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1001
+ if (_alt === 1) {
1002
+ {
1003
+ {
1004
+ this.state = 194;
1005
+ this.match(YiniParser.NL);
1006
+ }
1007
+ }
660
1008
  }
1009
+ this.state = 199;
1010
+ this._errHandler.sync(this);
1011
+ _alt = this._interp.adaptivePredict(this._input, 20, this._ctx);
661
1012
  }
662
- this.state = 146;
1013
+ this.state = 201;
663
1014
  this._errHandler.sync(this);
664
1015
  _la = this._input.LA(1);
665
- while (_la === 36) {
1016
+ if (_la === 37) {
1017
+ {
1018
+ this.state = 200;
1019
+ this.object_members();
1020
+ }
1021
+ }
1022
+ this.state = 206;
1023
+ this._errHandler.sync(this);
1024
+ _la = this._input.LA(1);
1025
+ while (_la === 31) {
666
1026
  {
667
1027
  {
668
- this.state = 143;
1028
+ this.state = 203;
669
1029
  this.match(YiniParser.NL);
670
1030
  }
671
1031
  }
672
- this.state = 148;
1032
+ this.state = 208;
673
1033
  this._errHandler.sync(this);
674
1034
  _la = this._input.LA(1);
675
1035
  }
676
- this.state = 149;
1036
+ this.state = 209;
677
1037
  this.match(YiniParser.CC);
678
- this.state = 153;
1038
+ this.state = 213;
679
1039
  this._errHandler.sync(this);
680
- _alt = this._interp.adaptivePredict(this._input, 17, this._ctx);
1040
+ _alt = this._interp.adaptivePredict(this._input, 23, this._ctx);
681
1041
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
682
1042
  if (_alt === 1) {
683
1043
  {
684
1044
  {
685
- this.state = 150;
1045
+ this.state = 210;
686
1046
  this.match(YiniParser.NL);
687
1047
  }
688
1048
  }
689
1049
  }
690
- this.state = 155;
1050
+ this.state = 215;
691
1051
  this._errHandler.sync(this);
692
- _alt = this._interp.adaptivePredict(this._input, 17, this._ctx);
1052
+ _alt = this._interp.adaptivePredict(this._input, 23, this._ctx);
693
1053
  }
694
1054
  }
695
1055
  break;
696
1056
  case 11:
697
1057
  this.enterOuterAlt(localctx, 2);
698
1058
  {
699
- this.state = 156;
1059
+ this.state = 216;
700
1060
  this.match(YiniParser.EMPTY_OBJECT);
701
- this.state = 160;
1061
+ this.state = 220;
702
1062
  this._errHandler.sync(this);
703
- _alt = this._interp.adaptivePredict(this._input, 18, this._ctx);
1063
+ _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
704
1064
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
705
1065
  if (_alt === 1) {
706
1066
  {
707
1067
  {
708
- this.state = 157;
1068
+ this.state = 217;
709
1069
  this.match(YiniParser.NL);
710
1070
  }
711
1071
  }
712
1072
  }
713
- this.state = 162;
1073
+ this.state = 222;
714
1074
  this._errHandler.sync(this);
715
- _alt = this._interp.adaptivePredict(this._input, 18, this._ctx);
1075
+ _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
716
1076
  }
717
1077
  }
718
1078
  break;
@@ -738,52 +1098,52 @@ class YiniParser extends antlr4_1.Parser {
738
1098
  // @RuleVersion(0)
739
1099
  object_members() {
740
1100
  let localctx = new Object_membersContext(this, this._ctx, this.state);
741
- this.enterRule(localctx, 26, YiniParser.RULE_object_members);
1101
+ this.enterRule(localctx, 46, YiniParser.RULE_object_members);
742
1102
  let _la;
743
1103
  try {
744
1104
  let _alt;
745
1105
  this.enterOuterAlt(localctx, 1);
746
1106
  {
747
- this.state = 165;
1107
+ this.state = 225;
748
1108
  this.object_member();
749
- this.state = 176;
1109
+ this.state = 236;
750
1110
  this._errHandler.sync(this);
751
- _alt = this._interp.adaptivePredict(this._input, 21, this._ctx);
1111
+ _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
752
1112
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
753
1113
  if (_alt === 1) {
754
1114
  {
755
1115
  {
756
- this.state = 166;
1116
+ this.state = 226;
757
1117
  this.match(YiniParser.COMMA);
758
- this.state = 170;
1118
+ this.state = 230;
759
1119
  this._errHandler.sync(this);
760
1120
  _la = this._input.LA(1);
761
- while (_la === 36) {
1121
+ while (_la === 31) {
762
1122
  {
763
1123
  {
764
- this.state = 167;
1124
+ this.state = 227;
765
1125
  this.match(YiniParser.NL);
766
1126
  }
767
1127
  }
768
- this.state = 172;
1128
+ this.state = 232;
769
1129
  this._errHandler.sync(this);
770
1130
  _la = this._input.LA(1);
771
1131
  }
772
- this.state = 173;
1132
+ this.state = 233;
773
1133
  this.object_member();
774
1134
  }
775
1135
  }
776
1136
  }
777
- this.state = 178;
1137
+ this.state = 238;
778
1138
  this._errHandler.sync(this);
779
- _alt = this._interp.adaptivePredict(this._input, 21, this._ctx);
1139
+ _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
780
1140
  }
781
- this.state = 180;
1141
+ this.state = 240;
782
1142
  this._errHandler.sync(this);
783
1143
  _la = this._input.LA(1);
784
- if (_la === 25) {
1144
+ if (_la === 20) {
785
1145
  {
786
- this.state = 179;
1146
+ this.state = 239;
787
1147
  this.match(YiniParser.COMMA);
788
1148
  }
789
1149
  }
@@ -807,31 +1167,50 @@ class YiniParser extends antlr4_1.Parser {
807
1167
  // @RuleVersion(0)
808
1168
  object_member() {
809
1169
  let localctx = new Object_memberContext(this, this._ctx, this.state);
810
- this.enterRule(localctx, 28, YiniParser.RULE_object_member);
811
- let _la;
1170
+ this.enterRule(localctx, 48, YiniParser.RULE_object_member);
812
1171
  try {
813
1172
  this.enterOuterAlt(localctx, 1);
814
1173
  {
815
- this.state = 182;
1174
+ this.state = 242;
816
1175
  this.match(YiniParser.KEY);
817
- this.state = 183;
818
- this.match(YiniParser.COLON);
819
- this.state = 187;
820
- 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;
821
1206
  _la = this._input.LA(1);
822
- while (_la === 36) {
823
- {
824
- {
825
- this.state = 184;
826
- this.match(YiniParser.NL);
827
- }
828
- }
829
- this.state = 189;
830
- this._errHandler.sync(this);
831
- _la = this._input.LA(1);
1207
+ if (!(_la === 19 || _la === 21)) {
1208
+ this._errHandler.recoverInline(this);
1209
+ }
1210
+ else {
1211
+ this._errHandler.reportMatch(this);
1212
+ this.consume();
832
1213
  }
833
- this.state = 190;
834
- this.value();
835
1214
  }
836
1215
  }
837
1216
  catch (re) {
@@ -852,97 +1231,97 @@ class YiniParser extends antlr4_1.Parser {
852
1231
  // @RuleVersion(0)
853
1232
  list_literal() {
854
1233
  let localctx = new List_literalContext(this, this._ctx, this.state);
855
- this.enterRule(localctx, 30, YiniParser.RULE_list_literal);
1234
+ this.enterRule(localctx, 52, YiniParser.RULE_list_literal);
856
1235
  let _la;
857
1236
  try {
858
1237
  let _alt;
859
- this.state = 222;
1238
+ this.state = 278;
860
1239
  this._errHandler.sync(this);
861
1240
  switch (this._input.LA(1)) {
862
- case 27:
1241
+ case 22:
863
1242
  this.enterOuterAlt(localctx, 1);
864
1243
  {
865
- this.state = 192;
1244
+ this.state = 248;
866
1245
  this.match(YiniParser.OB);
867
- this.state = 196;
1246
+ this.state = 252;
868
1247
  this._errHandler.sync(this);
869
- _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
1248
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
870
1249
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
871
1250
  if (_alt === 1) {
872
1251
  {
873
1252
  {
874
- this.state = 193;
1253
+ this.state = 249;
875
1254
  this.match(YiniParser.NL);
876
1255
  }
877
1256
  }
878
1257
  }
879
- this.state = 198;
1258
+ this.state = 254;
880
1259
  this._errHandler.sync(this);
881
- _alt = this._interp.adaptivePredict(this._input, 24, this._ctx);
1260
+ _alt = this._interp.adaptivePredict(this._input, 29, this._ctx);
882
1261
  }
883
- this.state = 200;
1262
+ this.state = 256;
884
1263
  this._errHandler.sync(this);
885
1264
  _la = this._input.LA(1);
886
- if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 671366912) !== 0)) {
1265
+ if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 21004032) !== 0)) {
887
1266
  {
888
- this.state = 199;
1267
+ this.state = 255;
889
1268
  this.elements();
890
1269
  }
891
1270
  }
892
- this.state = 205;
1271
+ this.state = 261;
893
1272
  this._errHandler.sync(this);
894
1273
  _la = this._input.LA(1);
895
- while (_la === 36) {
1274
+ while (_la === 31) {
896
1275
  {
897
1276
  {
898
- this.state = 202;
1277
+ this.state = 258;
899
1278
  this.match(YiniParser.NL);
900
1279
  }
901
1280
  }
902
- this.state = 207;
1281
+ this.state = 263;
903
1282
  this._errHandler.sync(this);
904
1283
  _la = this._input.LA(1);
905
1284
  }
906
- this.state = 208;
1285
+ this.state = 264;
907
1286
  this.match(YiniParser.CB);
908
- this.state = 212;
1287
+ this.state = 268;
909
1288
  this._errHandler.sync(this);
910
- _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
1289
+ _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
911
1290
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
912
1291
  if (_alt === 1) {
913
1292
  {
914
1293
  {
915
- this.state = 209;
1294
+ this.state = 265;
916
1295
  this.match(YiniParser.NL);
917
1296
  }
918
1297
  }
919
1298
  }
920
- this.state = 214;
1299
+ this.state = 270;
921
1300
  this._errHandler.sync(this);
922
- _alt = this._interp.adaptivePredict(this._input, 27, this._ctx);
1301
+ _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
923
1302
  }
924
1303
  }
925
1304
  break;
926
1305
  case 12:
927
1306
  this.enterOuterAlt(localctx, 2);
928
1307
  {
929
- this.state = 215;
1308
+ this.state = 271;
930
1309
  this.match(YiniParser.EMPTY_LIST);
931
- this.state = 219;
1310
+ this.state = 275;
932
1311
  this._errHandler.sync(this);
933
- _alt = this._interp.adaptivePredict(this._input, 28, this._ctx);
1312
+ _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
934
1313
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
935
1314
  if (_alt === 1) {
936
1315
  {
937
1316
  {
938
- this.state = 216;
1317
+ this.state = 272;
939
1318
  this.match(YiniParser.NL);
940
1319
  }
941
1320
  }
942
1321
  }
943
- this.state = 221;
1322
+ this.state = 277;
944
1323
  this._errHandler.sync(this);
945
- _alt = this._interp.adaptivePredict(this._input, 28, this._ctx);
1324
+ _alt = this._interp.adaptivePredict(this._input, 33, this._ctx);
946
1325
  }
947
1326
  }
948
1327
  break;
@@ -968,66 +1347,66 @@ class YiniParser extends antlr4_1.Parser {
968
1347
  // @RuleVersion(0)
969
1348
  elements() {
970
1349
  let localctx = new ElementsContext(this, this._ctx, this.state);
971
- this.enterRule(localctx, 32, YiniParser.RULE_elements);
1350
+ this.enterRule(localctx, 54, YiniParser.RULE_elements);
972
1351
  let _la;
973
1352
  try {
974
1353
  let _alt;
975
1354
  this.enterOuterAlt(localctx, 1);
976
1355
  {
977
- this.state = 224;
1356
+ this.state = 280;
978
1357
  this.value();
979
- this.state = 241;
1358
+ this.state = 297;
980
1359
  this._errHandler.sync(this);
981
- _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
1360
+ _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
982
1361
  while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
983
1362
  if (_alt === 1) {
984
1363
  {
985
1364
  {
986
- this.state = 228;
1365
+ this.state = 284;
987
1366
  this._errHandler.sync(this);
988
1367
  _la = this._input.LA(1);
989
- while (_la === 36) {
1368
+ while (_la === 31) {
990
1369
  {
991
1370
  {
992
- this.state = 225;
1371
+ this.state = 281;
993
1372
  this.match(YiniParser.NL);
994
1373
  }
995
1374
  }
996
- this.state = 230;
1375
+ this.state = 286;
997
1376
  this._errHandler.sync(this);
998
1377
  _la = this._input.LA(1);
999
1378
  }
1000
- this.state = 231;
1379
+ this.state = 287;
1001
1380
  this.match(YiniParser.COMMA);
1002
- this.state = 235;
1381
+ this.state = 291;
1003
1382
  this._errHandler.sync(this);
1004
1383
  _la = this._input.LA(1);
1005
- while (_la === 36) {
1384
+ while (_la === 31) {
1006
1385
  {
1007
1386
  {
1008
- this.state = 232;
1387
+ this.state = 288;
1009
1388
  this.match(YiniParser.NL);
1010
1389
  }
1011
1390
  }
1012
- this.state = 237;
1391
+ this.state = 293;
1013
1392
  this._errHandler.sync(this);
1014
1393
  _la = this._input.LA(1);
1015
1394
  }
1016
- this.state = 238;
1395
+ this.state = 294;
1017
1396
  this.value();
1018
1397
  }
1019
1398
  }
1020
1399
  }
1021
- this.state = 243;
1400
+ this.state = 299;
1022
1401
  this._errHandler.sync(this);
1023
- _alt = this._interp.adaptivePredict(this._input, 32, this._ctx);
1402
+ _alt = this._interp.adaptivePredict(this._input, 37, this._ctx);
1024
1403
  }
1025
- this.state = 245;
1404
+ this.state = 301;
1026
1405
  this._errHandler.sync(this);
1027
1406
  _la = this._input.LA(1);
1028
- if (_la === 25) {
1407
+ if (_la === 20) {
1029
1408
  {
1030
- this.state = 244;
1409
+ this.state = 300;
1031
1410
  this.match(YiniParser.COMMA);
1032
1411
  }
1033
1412
  }
@@ -1051,11 +1430,11 @@ class YiniParser extends antlr4_1.Parser {
1051
1430
  // @RuleVersion(0)
1052
1431
  number_literal() {
1053
1432
  let localctx = new Number_literalContext(this, this._ctx, this.state);
1054
- this.enterRule(localctx, 34, YiniParser.RULE_number_literal);
1433
+ this.enterRule(localctx, 56, YiniParser.RULE_number_literal);
1055
1434
  try {
1056
1435
  this.enterOuterAlt(localctx, 1);
1057
1436
  {
1058
- this.state = 247;
1437
+ this.state = 303;
1059
1438
  this.match(YiniParser.NUMBER);
1060
1439
  }
1061
1440
  }
@@ -1077,11 +1456,11 @@ class YiniParser extends antlr4_1.Parser {
1077
1456
  // @RuleVersion(0)
1078
1457
  null_literal() {
1079
1458
  let localctx = new Null_literalContext(this, this._ctx, this.state);
1080
- this.enterRule(localctx, 36, YiniParser.RULE_null_literal);
1459
+ this.enterRule(localctx, 58, YiniParser.RULE_null_literal);
1081
1460
  try {
1082
1461
  this.enterOuterAlt(localctx, 1);
1083
1462
  {
1084
- this.state = 249;
1463
+ this.state = 305;
1085
1464
  this.match(YiniParser.NULL);
1086
1465
  }
1087
1466
  }
@@ -1101,114 +1480,14 @@ class YiniParser extends antlr4_1.Parser {
1101
1480
  return localctx;
1102
1481
  }
1103
1482
  // @RuleVersion(0)
1104
- string_literal() {
1105
- let localctx = new String_literalContext(this, this._ctx, this.state);
1106
- this.enterRule(localctx, 38, YiniParser.RULE_string_literal);
1107
- try {
1108
- let _alt;
1109
- this.enterOuterAlt(localctx, 1);
1110
- {
1111
- this.state = 251;
1112
- this.match(YiniParser.STRING);
1113
- this.state = 255;
1114
- this._errHandler.sync(this);
1115
- _alt = this._interp.adaptivePredict(this._input, 34, this._ctx);
1116
- while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER) {
1117
- if (_alt === 1) {
1118
- {
1119
- {
1120
- this.state = 252;
1121
- this.string_concat();
1122
- }
1123
- }
1124
- }
1125
- this.state = 257;
1126
- this._errHandler.sync(this);
1127
- _alt = this._interp.adaptivePredict(this._input, 34, this._ctx);
1128
- }
1129
- }
1130
- }
1131
- catch (re) {
1132
- if (re instanceof antlr4_1.RecognitionException) {
1133
- localctx.exception = re;
1134
- this._errHandler.reportError(this, re);
1135
- this._errHandler.recover(this, re);
1136
- }
1137
- else {
1138
- throw re;
1139
- }
1140
- }
1141
- finally {
1142
- this.exitRule();
1143
- }
1144
- return localctx;
1145
- }
1146
- // @RuleVersion(0)
1147
- string_concat() {
1148
- let localctx = new String_concatContext(this, this._ctx, this.state);
1149
- this.enterRule(localctx, 40, YiniParser.RULE_string_concat);
1150
- let _la;
1151
- try {
1152
- this.enterOuterAlt(localctx, 1);
1153
- {
1154
- this.state = 261;
1155
- this._errHandler.sync(this);
1156
- _la = this._input.LA(1);
1157
- while (_la === 36) {
1158
- {
1159
- {
1160
- this.state = 258;
1161
- this.match(YiniParser.NL);
1162
- }
1163
- }
1164
- this.state = 263;
1165
- this._errHandler.sync(this);
1166
- _la = this._input.LA(1);
1167
- }
1168
- this.state = 264;
1169
- this.match(YiniParser.PLUS);
1170
- this.state = 268;
1171
- this._errHandler.sync(this);
1172
- _la = this._input.LA(1);
1173
- while (_la === 36) {
1174
- {
1175
- {
1176
- this.state = 265;
1177
- this.match(YiniParser.NL);
1178
- }
1179
- }
1180
- this.state = 270;
1181
- this._errHandler.sync(this);
1182
- _la = this._input.LA(1);
1183
- }
1184
- this.state = 271;
1185
- this.match(YiniParser.STRING);
1186
- }
1187
- }
1188
- catch (re) {
1189
- if (re instanceof antlr4_1.RecognitionException) {
1190
- localctx.exception = re;
1191
- this._errHandler.reportError(this, re);
1192
- this._errHandler.recover(this, re);
1193
- }
1194
- else {
1195
- throw re;
1196
- }
1197
- }
1198
- finally {
1199
- this.exitRule();
1200
- }
1201
- return localctx;
1202
- }
1203
- // @RuleVersion(0)
1204
1483
  boolean_literal() {
1205
1484
  let localctx = new Boolean_literalContext(this, this._ctx, this.state);
1206
- this.enterRule(localctx, 42, YiniParser.RULE_boolean_literal);
1485
+ this.enterRule(localctx, 60, YiniParser.RULE_boolean_literal);
1207
1486
  let _la;
1208
1487
  try {
1209
1488
  this.enterOuterAlt(localctx, 1);
1210
1489
  {
1211
- this.state = 273;
1490
+ this.state = 307;
1212
1491
  _la = this._input.LA(1);
1213
1492
  if (!(_la === 8 || _la === 9)) {
1214
1493
  this._errHandler.recoverInline(this);
@@ -1237,11 +1516,11 @@ class YiniParser extends antlr4_1.Parser {
1237
1516
  // @RuleVersion(0)
1238
1517
  bad_meta_text() {
1239
1518
  let localctx = new Bad_meta_textContext(this, this._ctx, this.state);
1240
- this.enterRule(localctx, 44, YiniParser.RULE_bad_meta_text);
1519
+ this.enterRule(localctx, 62, YiniParser.RULE_bad_meta_text);
1241
1520
  try {
1242
1521
  this.enterOuterAlt(localctx, 1);
1243
1522
  {
1244
- this.state = 275;
1523
+ this.state = 309;
1245
1524
  this.match(YiniParser.META_INVALID);
1246
1525
  }
1247
1526
  }
@@ -1263,16 +1542,16 @@ class YiniParser extends antlr4_1.Parser {
1263
1542
  // @RuleVersion(0)
1264
1543
  bad_member() {
1265
1544
  let localctx = new Bad_memberContext(this, this._ctx, this.state);
1266
- this.enterRule(localctx, 46, YiniParser.RULE_bad_member);
1545
+ this.enterRule(localctx, 64, YiniParser.RULE_bad_member);
1267
1546
  try {
1268
1547
  this.enterOuterAlt(localctx, 1);
1269
1548
  {
1270
- this.state = 279;
1549
+ this.state = 313;
1271
1550
  this._errHandler.sync(this);
1272
1551
  switch (this._input.LA(1)) {
1273
- case 43:
1552
+ case 39:
1274
1553
  {
1275
- this.state = 277;
1554
+ this.state = 311;
1276
1555
  this.match(YiniParser.REST);
1277
1556
  }
1278
1557
  break;
@@ -1282,22 +1561,22 @@ class YiniParser extends antlr4_1.Parser {
1282
1561
  case 11:
1283
1562
  case 12:
1284
1563
  case 13:
1285
- case 18:
1286
- case 27:
1287
- case 29:
1564
+ case 14:
1565
+ case 22:
1566
+ case 24:
1288
1567
  {
1289
- this.state = 278;
1568
+ this.state = 312;
1290
1569
  this.value();
1291
1570
  }
1292
1571
  break;
1293
- case 23:
1572
+ case 19:
1294
1573
  break;
1295
1574
  default:
1296
1575
  break;
1297
1576
  }
1298
- this.state = 281;
1577
+ this.state = 315;
1299
1578
  this.match(YiniParser.EQ);
1300
- this.state = 284;
1579
+ this.state = 318;
1301
1580
  this._errHandler.sync(this);
1302
1581
  switch (this._input.LA(1)) {
1303
1582
  case 8:
@@ -1306,29 +1585,29 @@ class YiniParser extends antlr4_1.Parser {
1306
1585
  case 11:
1307
1586
  case 12:
1308
1587
  case 13:
1309
- case 18:
1310
- case 27:
1311
- case 29:
1588
+ case 14:
1589
+ case 22:
1590
+ case 24:
1312
1591
  {
1313
- this.state = 282;
1592
+ this.state = 316;
1314
1593
  this.value();
1315
1594
  }
1316
1595
  break;
1317
- case 43:
1596
+ case 39:
1318
1597
  {
1319
- this.state = 283;
1598
+ this.state = 317;
1320
1599
  this.match(YiniParser.REST);
1321
1600
  }
1322
1601
  break;
1323
1602
  default:
1324
1603
  throw new antlr4_1.NoViableAltException(this);
1325
1604
  }
1326
- this.state = 287;
1605
+ this.state = 321;
1327
1606
  this._errHandler.sync(this);
1328
- switch (this._interp.adaptivePredict(this._input, 39, this._ctx)) {
1607
+ switch (this._interp.adaptivePredict(this._input, 41, this._ctx)) {
1329
1608
  case 1:
1330
1609
  {
1331
- this.state = 286;
1610
+ this.state = 320;
1332
1611
  this.eol();
1333
1612
  }
1334
1613
  break;
@@ -1370,62 +1649,67 @@ YiniParser.NULL = 10;
1370
1649
  YiniParser.EMPTY_OBJECT = 11;
1371
1650
  YiniParser.EMPTY_LIST = 12;
1372
1651
  YiniParser.STRING = 13;
1373
- YiniParser.TRIPLE_QUOTED_STRING = 14;
1374
- YiniParser.SINGLE_OR_DOUBLE = 15;
1375
- YiniParser.R_AND_C_STRING = 16;
1376
- YiniParser.HYPER_STRING = 17;
1377
- YiniParser.NUMBER = 18;
1378
- YiniParser.SS = 19;
1379
- YiniParser.CARET = 20;
1380
- YiniParser.GT = 21;
1381
- YiniParser.LT = 22;
1382
- YiniParser.EQ = 23;
1383
- YiniParser.HASH = 24;
1384
- YiniParser.COMMA = 25;
1385
- YiniParser.COLON = 26;
1386
- YiniParser.OB = 27;
1387
- YiniParser.CB = 28;
1388
- YiniParser.OC = 29;
1389
- YiniParser.CC = 30;
1390
- YiniParser.PLUS = 31;
1391
- YiniParser.DOLLAR = 32;
1392
- YiniParser.PC = 33;
1393
- YiniParser.AT = 34;
1394
- YiniParser.SEMICOLON = 35;
1395
- YiniParser.NL = 36;
1396
- YiniParser.WS = 37;
1397
- YiniParser.BLOCK_COMMENT = 38;
1398
- YiniParser.LINE_COMMENT = 39;
1399
- YiniParser.INLINE_COMMENT = 40;
1400
- YiniParser.KEY = 41;
1401
- YiniParser.IDENT_INVALID = 42;
1402
- YiniParser.REST = 43;
1403
- YiniParser.META_INVALID = 44;
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;
1404
1679
  YiniParser.EOF = antlr4_1.Token.EOF;
1405
1680
  YiniParser.RULE_yini = 0;
1406
1681
  YiniParser.RULE_prolog = 1;
1407
1682
  YiniParser.RULE_terminal_stmt = 2;
1408
- YiniParser.RULE_stmt = 3;
1409
- YiniParser.RULE_invalid_section_stmt = 4;
1410
- YiniParser.RULE_meta_stmt = 5;
1411
- YiniParser.RULE_directive = 6;
1412
- YiniParser.RULE_annotation = 7;
1413
- YiniParser.RULE_eol = 8;
1414
- YiniParser.RULE_assignment = 9;
1415
- YiniParser.RULE_member = 10;
1416
- YiniParser.RULE_value = 11;
1417
- YiniParser.RULE_object_literal = 12;
1418
- YiniParser.RULE_object_members = 13;
1419
- YiniParser.RULE_object_member = 14;
1420
- YiniParser.RULE_list_literal = 15;
1421
- YiniParser.RULE_elements = 16;
1422
- YiniParser.RULE_number_literal = 17;
1423
- YiniParser.RULE_null_literal = 18;
1424
- YiniParser.RULE_string_literal = 19;
1425
- YiniParser.RULE_string_concat = 20;
1426
- YiniParser.RULE_boolean_literal = 21;
1427
- YiniParser.RULE_bad_meta_text = 22;
1428
- 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;
1429
1713
  YiniParser.literalNames = [null, null,
1430
1714
  null, null,
1431
1715
  null, null,
@@ -1433,12 +1717,10 @@ YiniParser.literalNames = [null, null,
1433
1717
  null, null,
1434
1718
  null, "'{}'",
1435
1719
  "'[]'", null,
1436
- null, null,
1437
- null, null,
1438
- null, "'\\u00A7'",
1439
- "'^'", "'>'",
1440
- "'<'", "'='",
1441
- "'#'", "','",
1720
+ null, "'^'",
1721
+ "'\\u00A7'",
1722
+ "'>'", "'<'",
1723
+ "'='", "','",
1442
1724
  "':'", "'['",
1443
1725
  "']'", "'{'",
1444
1726
  "'}'", "'+'",
@@ -1455,14 +1737,10 @@ YiniParser.symbolicNames = [null, "SHEBANG",
1455
1737
  "BOOLEAN_TRUE",
1456
1738
  "NULL", "EMPTY_OBJECT",
1457
1739
  "EMPTY_LIST",
1458
- "STRING", "TRIPLE_QUOTED_STRING",
1459
- "SINGLE_OR_DOUBLE",
1460
- "R_AND_C_STRING",
1461
- "HYPER_STRING",
1462
- "NUMBER", "SS",
1463
- "CARET", "GT",
1464
- "LT", "EQ",
1465
- "HASH", "COMMA",
1740
+ "STRING", "NUMBER",
1741
+ "CARET", "SS",
1742
+ "GT", "LT",
1743
+ "EQ", "COMMA",
1466
1744
  "COLON", "OB",
1467
1745
  "CB", "OC",
1468
1746
  "CC", "PLUS",
@@ -1470,114 +1748,129 @@ YiniParser.symbolicNames = [null, "SHEBANG",
1470
1748
  "AT", "SEMICOLON",
1471
1749
  "NL", "WS",
1472
1750
  "BLOCK_COMMENT",
1473
- "LINE_COMMENT",
1751
+ "DISABLED_LINE",
1752
+ "FULL_LINE_COMMENT",
1474
1753
  "INLINE_COMMENT",
1475
1754
  "KEY", "IDENT_INVALID",
1476
1755
  "REST", "META_INVALID"];
1477
1756
  // tslint:disable:no-trailing-whitespace
1478
1757
  YiniParser.ruleNames = [
1479
- "yini", "prolog", "terminal_stmt", "stmt", "invalid_section_stmt", "meta_stmt",
1480
- "directive", "annotation", "eol", "assignment", "member", "value", "object_literal",
1481
- "object_members", "object_member", "list_literal", "elements", "number_literal",
1482
- "null_literal", "string_literal", "string_concat", "boolean_literal",
1483
- "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",
1484
1766
  ];
1485
- YiniParser._serializedATN = [4, 1, 44, 290, 2, 0, 7, 0, 2,
1767
+ YiniParser._serializedATN = [4, 1, 40, 324, 2, 0, 7, 0, 2,
1486
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,
1487
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,
1488
- 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,
1489
- 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,
1490
- 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,
1491
- 1, 2, 5, 2, 79, 8, 2, 10, 2, 12, 2, 82, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 90, 8, 3, 1, 4,
1492
- 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 99, 8, 5, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 105, 8, 6, 1, 6, 3, 6,
1493
- 108, 8, 6, 1, 7, 1, 7, 1, 7, 1, 8, 4, 8, 114, 8, 8, 11, 8, 12, 8, 115, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10,
1494
- 1, 10, 3, 10, 124, 8, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 132, 8, 11, 1, 12, 1, 12,
1495
- 5, 12, 136, 8, 12, 10, 12, 12, 12, 139, 9, 12, 1, 12, 3, 12, 142, 8, 12, 1, 12, 5, 12, 145, 8, 12,
1496
- 10, 12, 12, 12, 148, 9, 12, 1, 12, 1, 12, 5, 12, 152, 8, 12, 10, 12, 12, 12, 155, 9, 12, 1, 12,
1497
- 1, 12, 5, 12, 159, 8, 12, 10, 12, 12, 12, 162, 9, 12, 3, 12, 164, 8, 12, 1, 13, 1, 13, 1, 13, 5,
1498
- 13, 169, 8, 13, 10, 13, 12, 13, 172, 9, 13, 1, 13, 5, 13, 175, 8, 13, 10, 13, 12, 13, 178, 9, 13,
1499
- 1, 13, 3, 13, 181, 8, 13, 1, 14, 1, 14, 1, 14, 5, 14, 186, 8, 14, 10, 14, 12, 14, 189, 9, 14, 1,
1500
- 14, 1, 14, 1, 15, 1, 15, 5, 15, 195, 8, 15, 10, 15, 12, 15, 198, 9, 15, 1, 15, 3, 15, 201, 8, 15,
1501
- 1, 15, 5, 15, 204, 8, 15, 10, 15, 12, 15, 207, 9, 15, 1, 15, 1, 15, 5, 15, 211, 8, 15, 10, 15, 12,
1502
- 15, 214, 9, 15, 1, 15, 1, 15, 5, 15, 218, 8, 15, 10, 15, 12, 15, 221, 9, 15, 3, 15, 223, 8, 15,
1503
- 1, 16, 1, 16, 5, 16, 227, 8, 16, 10, 16, 12, 16, 230, 9, 16, 1, 16, 1, 16, 5, 16, 234, 8, 16, 10,
1504
- 16, 12, 16, 237, 9, 16, 1, 16, 5, 16, 240, 8, 16, 10, 16, 12, 16, 243, 9, 16, 1, 16, 3, 16, 246,
1505
- 8, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, 19, 1, 19, 5, 19, 254, 8, 19, 10, 19, 12, 19, 257, 9, 19, 1,
1506
- 20, 5, 20, 260, 8, 20, 10, 20, 12, 20, 263, 9, 20, 1, 20, 1, 20, 5, 20, 267, 8, 20, 10, 20, 12,
1507
- 20, 270, 9, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 280, 8, 23, 1, 23,
1508
- 1, 23, 1, 23, 3, 23, 285, 8, 23, 1, 23, 3, 23, 288, 8, 23, 1, 23, 0, 0, 24, 0, 2, 4, 6, 8, 10, 12,
1509
- 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 0, 1, 1, 0, 8, 9, 315, 0, 49,
1510
- 1, 0, 0, 0, 2, 74, 1, 0, 0, 0, 4, 76, 1, 0, 0, 0, 6, 89, 1, 0, 0, 0, 8, 91, 1, 0, 0, 0, 10, 98, 1, 0, 0,
1511
- 0, 12, 107, 1, 0, 0, 0, 14, 109, 1, 0, 0, 0, 16, 113, 1, 0, 0, 0, 18, 117, 1, 0, 0, 0, 20, 120, 1,
1512
- 0, 0, 0, 22, 131, 1, 0, 0, 0, 24, 163, 1, 0, 0, 0, 26, 165, 1, 0, 0, 0, 28, 182, 1, 0, 0, 0, 30, 222,
1513
- 1, 0, 0, 0, 32, 224, 1, 0, 0, 0, 34, 247, 1, 0, 0, 0, 36, 249, 1, 0, 0, 0, 38, 251, 1, 0, 0, 0, 40,
1514
- 261, 1, 0, 0, 0, 42, 273, 1, 0, 0, 0, 44, 275, 1, 0, 0, 0, 46, 279, 1, 0, 0, 0, 48, 50, 3, 2, 1, 0,
1515
- 49, 48, 1, 0, 0, 0, 49, 50, 1, 0, 0, 0, 50, 54, 1, 0, 0, 0, 51, 53, 3, 6, 3, 0, 52, 51, 1, 0, 0, 0, 53,
1516
- 56, 1, 0, 0, 0, 54, 52, 1, 0, 0, 0, 54, 55, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 57, 59,
1517
- 3, 4, 2, 0, 58, 57, 1, 0, 0, 0, 58, 59, 1, 0, 0, 0, 59, 60, 1, 0, 0, 0, 60, 61, 5, 0, 0, 1, 61, 1, 1,
1518
- 0, 0, 0, 62, 66, 5, 1, 0, 0, 63, 65, 3, 16, 8, 0, 64, 63, 1, 0, 0, 0, 65, 68, 1, 0, 0, 0, 66, 64, 1,
1519
- 0, 0, 0, 66, 67, 1, 0, 0, 0, 67, 75, 1, 0, 0, 0, 68, 66, 1, 0, 0, 0, 69, 71, 3, 16, 8, 0, 70, 69, 1,
1520
- 0, 0, 0, 71, 72, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 75, 1, 0, 0, 0, 74, 62, 1, 0,
1521
- 0, 0, 74, 70, 1, 0, 0, 0, 75, 3, 1, 0, 0, 0, 76, 80, 5, 5, 0, 0, 77, 79, 3, 16, 8, 0, 78, 77, 1, 0, 0,
1522
- 0, 79, 82, 1, 0, 0, 0, 80, 78, 1, 0, 0, 0, 80, 81, 1, 0, 0, 0, 81, 5, 1, 0, 0, 0, 82, 80, 1, 0, 0, 0,
1523
- 83, 90, 3, 16, 8, 0, 84, 90, 5, 6, 0, 0, 85, 90, 3, 8, 4, 0, 86, 90, 3, 18, 9, 0, 87, 90, 3, 10, 5,
1524
- 0, 88, 90, 3, 46, 23, 0, 89, 83, 1, 0, 0, 0, 89, 84, 1, 0, 0, 0, 89, 85, 1, 0, 0, 0, 89, 86, 1, 0, 0,
1525
- 0, 89, 87, 1, 0, 0, 0, 89, 88, 1, 0, 0, 0, 90, 7, 1, 0, 0, 0, 91, 92, 5, 7, 0, 0, 92, 9, 1, 0, 0, 0, 93,
1526
- 99, 3, 12, 6, 0, 94, 99, 3, 14, 7, 0, 95, 96, 3, 44, 22, 0, 96, 97, 3, 16, 8, 0, 97, 99, 1, 0, 0, 0,
1527
- 98, 93, 1, 0, 0, 0, 98, 94, 1, 0, 0, 0, 98, 95, 1, 0, 0, 0, 99, 11, 1, 0, 0, 0, 100, 101, 5, 2, 0, 0,
1528
- 101, 108, 3, 16, 8, 0, 102, 104, 5, 3, 0, 0, 103, 105, 3, 38, 19, 0, 104, 103, 1, 0, 0, 0, 104,
1529
- 105, 1, 0, 0, 0, 105, 106, 1, 0, 0, 0, 106, 108, 3, 16, 8, 0, 107, 100, 1, 0, 0, 0, 107, 102, 1,
1530
- 0, 0, 0, 108, 13, 1, 0, 0, 0, 109, 110, 5, 4, 0, 0, 110, 111, 3, 16, 8, 0, 111, 15, 1, 0, 0, 0, 112,
1531
- 114, 5, 36, 0, 0, 113, 112, 1, 0, 0, 0, 114, 115, 1, 0, 0, 0, 115, 113, 1, 0, 0, 0, 115, 116, 1,
1532
- 0, 0, 0, 116, 17, 1, 0, 0, 0, 117, 118, 3, 20, 10, 0, 118, 119, 3, 16, 8, 0, 119, 19, 1, 0, 0, 0,
1533
- 120, 121, 5, 41, 0, 0, 121, 123, 5, 23, 0, 0, 122, 124, 3, 22, 11, 0, 123, 122, 1, 0, 0, 0, 123,
1534
- 124, 1, 0, 0, 0, 124, 21, 1, 0, 0, 0, 125, 132, 3, 36, 18, 0, 126, 132, 3, 38, 19, 0, 127, 132,
1535
- 3, 34, 17, 0, 128, 132, 3, 42, 21, 0, 129, 132, 3, 30, 15, 0, 130, 132, 3, 24, 12, 0, 131, 125,
1536
- 1, 0, 0, 0, 131, 126, 1, 0, 0, 0, 131, 127, 1, 0, 0, 0, 131, 128, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0,
1537
- 131, 130, 1, 0, 0, 0, 132, 23, 1, 0, 0, 0, 133, 137, 5, 29, 0, 0, 134, 136, 5, 36, 0, 0, 135, 134,
1538
- 1, 0, 0, 0, 136, 139, 1, 0, 0, 0, 137, 135, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0,
1539
- 139, 137, 1, 0, 0, 0, 140, 142, 3, 26, 13, 0, 141, 140, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 146,
1540
- 1, 0, 0, 0, 143, 145, 5, 36, 0, 0, 144, 143, 1, 0, 0, 0, 145, 148, 1, 0, 0, 0, 146, 144, 1, 0, 0,
1541
- 0, 146, 147, 1, 0, 0, 0, 147, 149, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 149, 153, 5, 30, 0, 0, 150,
1542
- 152, 5, 36, 0, 0, 151, 150, 1, 0, 0, 0, 152, 155, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1,
1543
- 0, 0, 0, 154, 164, 1, 0, 0, 0, 155, 153, 1, 0, 0, 0, 156, 160, 5, 11, 0, 0, 157, 159, 5, 36, 0, 0,
1544
- 158, 157, 1, 0, 0, 0, 159, 162, 1, 0, 0, 0, 160, 158, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 164,
1545
- 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 163, 133, 1, 0, 0, 0, 163, 156, 1, 0, 0, 0, 164, 25, 1, 0, 0, 0,
1546
- 165, 176, 3, 28, 14, 0, 166, 170, 5, 25, 0, 0, 167, 169, 5, 36, 0, 0, 168, 167, 1, 0, 0, 0, 169,
1547
- 172, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 170, 171, 1, 0, 0, 0, 171, 173, 1, 0, 0, 0, 172, 170, 1, 0,
1548
- 0, 0, 173, 175, 3, 28, 14, 0, 174, 166, 1, 0, 0, 0, 175, 178, 1, 0, 0, 0, 176, 174, 1, 0, 0, 0, 176,
1549
- 177, 1, 0, 0, 0, 177, 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 179, 181, 5, 25, 0, 0, 180, 179, 1,
1550
- 0, 0, 0, 180, 181, 1, 0, 0, 0, 181, 27, 1, 0, 0, 0, 182, 183, 5, 41, 0, 0, 183, 187, 5, 26, 0, 0,
1551
- 184, 186, 5, 36, 0, 0, 185, 184, 1, 0, 0, 0, 186, 189, 1, 0, 0, 0, 187, 185, 1, 0, 0, 0, 187, 188,
1552
- 1, 0, 0, 0, 188, 190, 1, 0, 0, 0, 189, 187, 1, 0, 0, 0, 190, 191, 3, 22, 11, 0, 191, 29, 1, 0, 0,
1553
- 0, 192, 196, 5, 27, 0, 0, 193, 195, 5, 36, 0, 0, 194, 193, 1, 0, 0, 0, 195, 198, 1, 0, 0, 0, 196,
1554
- 194, 1, 0, 0, 0, 196, 197, 1, 0, 0, 0, 197, 200, 1, 0, 0, 0, 198, 196, 1, 0, 0, 0, 199, 201, 3, 32,
1555
- 16, 0, 200, 199, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 205, 1, 0, 0, 0, 202, 204, 5, 36, 0, 0, 203,
1556
- 202, 1, 0, 0, 0, 204, 207, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0, 0, 0, 206, 208, 1, 0,
1557
- 0, 0, 207, 205, 1, 0, 0, 0, 208, 212, 5, 28, 0, 0, 209, 211, 5, 36, 0, 0, 210, 209, 1, 0, 0, 0, 211,
1558
- 214, 1, 0, 0, 0, 212, 210, 1, 0, 0, 0, 212, 213, 1, 0, 0, 0, 213, 223, 1, 0, 0, 0, 214, 212, 1, 0,
1559
- 0, 0, 215, 219, 5, 12, 0, 0, 216, 218, 5, 36, 0, 0, 217, 216, 1, 0, 0, 0, 218, 221, 1, 0, 0, 0, 219,
1560
- 217, 1, 0, 0, 0, 219, 220, 1, 0, 0, 0, 220, 223, 1, 0, 0, 0, 221, 219, 1, 0, 0, 0, 222, 192, 1, 0,
1561
- 0, 0, 222, 215, 1, 0, 0, 0, 223, 31, 1, 0, 0, 0, 224, 241, 3, 22, 11, 0, 225, 227, 5, 36, 0, 0, 226,
1562
- 225, 1, 0, 0, 0, 227, 230, 1, 0, 0, 0, 228, 226, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 231, 1, 0,
1563
- 0, 0, 230, 228, 1, 0, 0, 0, 231, 235, 5, 25, 0, 0, 232, 234, 5, 36, 0, 0, 233, 232, 1, 0, 0, 0, 234,
1564
- 237, 1, 0, 0, 0, 235, 233, 1, 0, 0, 0, 235, 236, 1, 0, 0, 0, 236, 238, 1, 0, 0, 0, 237, 235, 1, 0,
1565
- 0, 0, 238, 240, 3, 22, 11, 0, 239, 228, 1, 0, 0, 0, 240, 243, 1, 0, 0, 0, 241, 239, 1, 0, 0, 0, 241,
1566
- 242, 1, 0, 0, 0, 242, 245, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 244, 246, 5, 25, 0, 0, 245, 244, 1,
1567
- 0, 0, 0, 245, 246, 1, 0, 0, 0, 246, 33, 1, 0, 0, 0, 247, 248, 5, 18, 0, 0, 248, 35, 1, 0, 0, 0, 249,
1568
- 250, 5, 10, 0, 0, 250, 37, 1, 0, 0, 0, 251, 255, 5, 13, 0, 0, 252, 254, 3, 40, 20, 0, 253, 252,
1569
- 1, 0, 0, 0, 254, 257, 1, 0, 0, 0, 255, 253, 1, 0, 0, 0, 255, 256, 1, 0, 0, 0, 256, 39, 1, 0, 0, 0,
1570
- 257, 255, 1, 0, 0, 0, 258, 260, 5, 36, 0, 0, 259, 258, 1, 0, 0, 0, 260, 263, 1, 0, 0, 0, 261, 259,
1571
- 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 264, 1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 264, 268, 5, 31, 0,
1572
- 0, 265, 267, 5, 36, 0, 0, 266, 265, 1, 0, 0, 0, 267, 270, 1, 0, 0, 0, 268, 266, 1, 0, 0, 0, 268,
1573
- 269, 1, 0, 0, 0, 269, 271, 1, 0, 0, 0, 270, 268, 1, 0, 0, 0, 271, 272, 5, 13, 0, 0, 272, 41, 1, 0,
1574
- 0, 0, 273, 274, 7, 0, 0, 0, 274, 43, 1, 0, 0, 0, 275, 276, 5, 44, 0, 0, 276, 45, 1, 0, 0, 0, 277,
1575
- 280, 5, 43, 0, 0, 278, 280, 3, 22, 11, 0, 279, 277, 1, 0, 0, 0, 279, 278, 1, 0, 0, 0, 279, 280,
1576
- 1, 0, 0, 0, 280, 281, 1, 0, 0, 0, 281, 284, 5, 23, 0, 0, 282, 285, 3, 22, 11, 0, 283, 285, 5, 43,
1577
- 0, 0, 284, 282, 1, 0, 0, 0, 284, 283, 1, 0, 0, 0, 285, 287, 1, 0, 0, 0, 286, 288, 3, 16, 8, 0, 287,
1578
- 286, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 47, 1, 0, 0, 0, 40, 49, 54, 58, 66, 72, 74, 80, 89, 98,
1579
- 104, 107, 115, 123, 131, 137, 141, 146, 153, 160, 163, 170, 176, 180, 187, 196, 200, 205,
1580
- 212, 219, 222, 228, 235, 241, 245, 255, 261, 268, 279, 284, 287];
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];
1581
1874
  YiniParser.DecisionsToDFA = YiniParser._ATN.decisionToState.map((ds, index) => new antlr4_1.DFA(ds, index));
1582
1875
  exports.default = YiniParser;
1583
1876
  class YiniContext extends antlr4_1.ParserRuleContext {
@@ -1650,11 +1943,11 @@ class Terminal_stmtContext extends antlr4_1.ParserRuleContext {
1650
1943
  TERMINAL_TOKEN() {
1651
1944
  return this.getToken(YiniParser.TERMINAL_TOKEN, 0);
1652
1945
  }
1653
- eol_list() {
1654
- return this.getTypedRuleContexts(EolContext);
1946
+ terminal_trivia_list() {
1947
+ return this.getTypedRuleContexts(Terminal_triviaContext);
1655
1948
  }
1656
- eol(i) {
1657
- return this.getTypedRuleContext(EolContext, i);
1949
+ terminal_trivia(i) {
1950
+ return this.getTypedRuleContext(Terminal_triviaContext, i);
1658
1951
  }
1659
1952
  get ruleIndex() {
1660
1953
  return YiniParser.RULE_terminal_stmt;
@@ -1670,6 +1963,31 @@ class Terminal_stmtContext extends antlr4_1.ParserRuleContext {
1670
1963
  }
1671
1964
  }
1672
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;
1673
1991
  class StmtContext extends antlr4_1.ParserRuleContext {
1674
1992
  constructor(parser, parent, invokingState) {
1675
1993
  super(parent, invokingState);
@@ -1678,6 +1996,12 @@ class StmtContext extends antlr4_1.ParserRuleContext {
1678
1996
  eol() {
1679
1997
  return this.getTypedRuleContext(EolContext, 0);
1680
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
+ }
1681
2005
  SECTION_HEAD() {
1682
2006
  return this.getToken(YiniParser.SECTION_HEAD, 0);
1683
2007
  }
@@ -1690,23 +2014,70 @@ class StmtContext extends antlr4_1.ParserRuleContext {
1690
2014
  meta_stmt() {
1691
2015
  return this.getTypedRuleContext(Meta_stmtContext, 0);
1692
2016
  }
1693
- bad_member() {
1694
- return this.getTypedRuleContext(Bad_memberContext, 0);
2017
+ bad_member() {
2018
+ return this.getTypedRuleContext(Bad_memberContext, 0);
2019
+ }
2020
+ get ruleIndex() {
2021
+ return YiniParser.RULE_stmt;
2022
+ }
2023
+ // @Override
2024
+ accept(visitor) {
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);
1695
2066
  }
1696
2067
  get ruleIndex() {
1697
- return YiniParser.RULE_stmt;
2068
+ return YiniParser.RULE_disabled_line_stmt;
1698
2069
  }
1699
2070
  // @Override
1700
2071
  accept(visitor) {
1701
- if (visitor.visitStmt) {
1702
- return visitor.visitStmt(this);
2072
+ if (visitor.visitDisabled_line_stmt) {
2073
+ return visitor.visitDisabled_line_stmt(this);
1703
2074
  }
1704
2075
  else {
1705
2076
  return visitor.visitChildren(this);
1706
2077
  }
1707
2078
  }
1708
2079
  }
1709
- exports.StmtContext = StmtContext;
2080
+ exports.Disabled_line_stmtContext = Disabled_line_stmtContext;
1710
2081
  class Invalid_section_stmtContext extends antlr4_1.ParserRuleContext {
1711
2082
  constructor(parser, parent, invokingState) {
1712
2083
  super(parent, invokingState);
@@ -1765,15 +2136,15 @@ class DirectiveContext extends antlr4_1.ParserRuleContext {
1765
2136
  super(parent, invokingState);
1766
2137
  this.parser = parser;
1767
2138
  }
1768
- YINI_TOKEN() {
1769
- return this.getToken(YiniParser.YINI_TOKEN, 0);
1770
- }
1771
- eol() {
1772
- return this.getTypedRuleContext(EolContext, 0);
2139
+ yini_directive() {
2140
+ return this.getTypedRuleContext(Yini_directiveContext, 0);
1773
2141
  }
1774
2142
  INCLUDE_TOKEN() {
1775
2143
  return this.getToken(YiniParser.INCLUDE_TOKEN, 0);
1776
2144
  }
2145
+ eol() {
2146
+ return this.getTypedRuleContext(EolContext, 0);
2147
+ }
1777
2148
  string_literal() {
1778
2149
  return this.getTypedRuleContext(String_literalContext, 0);
1779
2150
  }
@@ -1791,6 +2162,56 @@ class DirectiveContext extends antlr4_1.ParserRuleContext {
1791
2162
  }
1792
2163
  }
1793
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;
1794
2215
  class AnnotationContext extends antlr4_1.ParserRuleContext {
1795
2216
  constructor(parser, parent, invokingState) {
1796
2217
  super(parent, invokingState);
@@ -1895,6 +2316,37 @@ class MemberContext extends antlr4_1.ParserRuleContext {
1895
2316
  }
1896
2317
  exports.MemberContext = MemberContext;
1897
2318
  class ValueContext extends antlr4_1.ParserRuleContext {
2319
+ constructor(parser, parent, invokingState) {
2320
+ super(parent, invokingState);
2321
+ this.parser = parser;
2322
+ }
2323
+ concat_expression() {
2324
+ return this.getTypedRuleContext(Concat_expressionContext, 0);
2325
+ }
2326
+ scalar_value() {
2327
+ return this.getTypedRuleContext(Scalar_valueContext, 0);
2328
+ }
2329
+ list_literal() {
2330
+ return this.getTypedRuleContext(List_literalContext, 0);
2331
+ }
2332
+ object_literal() {
2333
+ return this.getTypedRuleContext(Object_literalContext, 0);
2334
+ }
2335
+ get ruleIndex() {
2336
+ return YiniParser.RULE_value;
2337
+ }
2338
+ // @Override
2339
+ accept(visitor) {
2340
+ if (visitor.visitValue) {
2341
+ return visitor.visitValue(this);
2342
+ }
2343
+ else {
2344
+ return visitor.visitChildren(this);
2345
+ }
2346
+ }
2347
+ }
2348
+ exports.ValueContext = ValueContext;
2349
+ class Scalar_valueContext extends antlr4_1.ParserRuleContext {
1898
2350
  constructor(parser, parent, invokingState) {
1899
2351
  super(parent, invokingState);
1900
2352
  this.parser = parser;
@@ -1911,26 +2363,135 @@ class ValueContext extends antlr4_1.ParserRuleContext {
1911
2363
  boolean_literal() {
1912
2364
  return this.getTypedRuleContext(Boolean_literalContext, 0);
1913
2365
  }
1914
- list_literal() {
1915
- return this.getTypedRuleContext(List_literalContext, 0);
2366
+ get ruleIndex() {
2367
+ return YiniParser.RULE_scalar_value;
1916
2368
  }
1917
- object_literal() {
1918
- 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);
1919
2393
  }
1920
2394
  get ruleIndex() {
1921
- return YiniParser.RULE_value;
2395
+ return YiniParser.RULE_concat_expression;
1922
2396
  }
1923
2397
  // @Override
1924
2398
  accept(visitor) {
1925
- if (visitor.visitValue) {
1926
- return visitor.visitValue(this);
2399
+ if (visitor.visitConcat_expression) {
2400
+ return visitor.visitConcat_expression(this);
1927
2401
  }
1928
2402
  else {
1929
2403
  return visitor.visitChildren(this);
1930
2404
  }
1931
2405
  }
1932
2406
  }
1933
- 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;
1934
2495
  class Object_literalContext extends antlr4_1.ParserRuleContext {
1935
2496
  constructor(parser, parent, invokingState) {
1936
2497
  super(parent, invokingState);
@@ -2013,18 +2574,12 @@ class Object_memberContext extends antlr4_1.ParserRuleContext {
2013
2574
  KEY() {
2014
2575
  return this.getToken(YiniParser.KEY, 0);
2015
2576
  }
2016
- COLON() {
2017
- return this.getToken(YiniParser.COLON, 0);
2577
+ object_member_separator() {
2578
+ return this.getTypedRuleContext(Object_member_separatorContext, 0);
2018
2579
  }
2019
2580
  value() {
2020
2581
  return this.getTypedRuleContext(ValueContext, 0);
2021
2582
  }
2022
- NL_list() {
2023
- return this.getTokens(YiniParser.NL);
2024
- }
2025
- NL(i) {
2026
- return this.getToken(YiniParser.NL, i);
2027
- }
2028
2583
  get ruleIndex() {
2029
2584
  return YiniParser.RULE_object_member;
2030
2585
  }
@@ -2039,6 +2594,31 @@ class Object_memberContext extends antlr4_1.ParserRuleContext {
2039
2594
  }
2040
2595
  }
2041
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;
2042
2622
  class List_literalContext extends antlr4_1.ParserRuleContext {
2043
2623
  constructor(parser, parent, invokingState) {
2044
2624
  super(parent, invokingState);
@@ -2157,65 +2737,6 @@ class Null_literalContext extends antlr4_1.ParserRuleContext {
2157
2737
  }
2158
2738
  }
2159
2739
  exports.Null_literalContext = Null_literalContext;
2160
- class String_literalContext extends antlr4_1.ParserRuleContext {
2161
- constructor(parser, parent, invokingState) {
2162
- super(parent, invokingState);
2163
- this.parser = parser;
2164
- }
2165
- STRING() {
2166
- return this.getToken(YiniParser.STRING, 0);
2167
- }
2168
- string_concat_list() {
2169
- return this.getTypedRuleContexts(String_concatContext);
2170
- }
2171
- string_concat(i) {
2172
- return this.getTypedRuleContext(String_concatContext, i);
2173
- }
2174
- get ruleIndex() {
2175
- return YiniParser.RULE_string_literal;
2176
- }
2177
- // @Override
2178
- accept(visitor) {
2179
- if (visitor.visitString_literal) {
2180
- return visitor.visitString_literal(this);
2181
- }
2182
- else {
2183
- return visitor.visitChildren(this);
2184
- }
2185
- }
2186
- }
2187
- exports.String_literalContext = String_literalContext;
2188
- class String_concatContext extends antlr4_1.ParserRuleContext {
2189
- constructor(parser, parent, invokingState) {
2190
- super(parent, invokingState);
2191
- this.parser = parser;
2192
- }
2193
- PLUS() {
2194
- return this.getToken(YiniParser.PLUS, 0);
2195
- }
2196
- STRING() {
2197
- return this.getToken(YiniParser.STRING, 0);
2198
- }
2199
- NL_list() {
2200
- return this.getTokens(YiniParser.NL);
2201
- }
2202
- NL(i) {
2203
- return this.getToken(YiniParser.NL, i);
2204
- }
2205
- get ruleIndex() {
2206
- return YiniParser.RULE_string_concat;
2207
- }
2208
- // @Override
2209
- accept(visitor) {
2210
- if (visitor.visitString_concat) {
2211
- return visitor.visitString_concat(this);
2212
- }
2213
- else {
2214
- return visitor.visitChildren(this);
2215
- }
2216
- }
2217
- }
2218
- exports.String_concatContext = String_concatContext;
2219
2740
  class Boolean_literalContext extends antlr4_1.ParserRuleContext {
2220
2741
  constructor(parser, parent, invokingState) {
2221
2742
  super(parent, invokingState);