@intlify/message-compiler 9.3.0-beta.10 → 9.3.0-beta.11

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * message-compiler v9.3.0-beta.10
2
+ * message-compiler v9.3.0-beta.11
3
3
  * (c) 2022 kazuya kawaguchi
4
4
  * Released under the MIT License.
5
5
  */
@@ -170,11 +170,11 @@ function createTokenizer(source, options = {}) {
170
170
  const _initLoc = currentPosition();
171
171
  const _initOffset = currentOffset();
172
172
  const _context = {
173
- currentType: 14 /* EOF */,
173
+ currentType: 14 /* TokenTypes.EOF */,
174
174
  offset: _initOffset,
175
175
  startLoc: _initLoc,
176
176
  endLoc: _initLoc,
177
- lastType: 14 /* EOF */,
177
+ lastType: 14 /* TokenTypes.EOF */,
178
178
  lastOffset: _initOffset,
179
179
  lastStartLoc: _initLoc,
180
180
  lastEndLoc: _initLoc,
@@ -209,7 +209,7 @@ function createTokenizer(source, options = {}) {
209
209
  }
210
210
  return token;
211
211
  }
212
- const getEndToken = (context) => getToken(context, 14 /* EOF */);
212
+ const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);
213
213
  function eat(scnr, ch) {
214
214
  if (scnr.currentChar() === ch) {
215
215
  scnr.next();
@@ -252,7 +252,7 @@ function createTokenizer(source, options = {}) {
252
252
  }
253
253
  function isNamedIdentifierStart(scnr, context) {
254
254
  const { currentType } = context;
255
- if (currentType !== 2 /* BraceLeft */) {
255
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
256
256
  return false;
257
257
  }
258
258
  peekSpaces(scnr);
@@ -262,7 +262,7 @@ function createTokenizer(source, options = {}) {
262
262
  }
263
263
  function isListIdentifierStart(scnr, context) {
264
264
  const { currentType } = context;
265
- if (currentType !== 2 /* BraceLeft */) {
265
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
266
266
  return false;
267
267
  }
268
268
  peekSpaces(scnr);
@@ -273,7 +273,7 @@ function createTokenizer(source, options = {}) {
273
273
  }
274
274
  function isLiteralStart(scnr, context) {
275
275
  const { currentType } = context;
276
- if (currentType !== 2 /* BraceLeft */) {
276
+ if (currentType !== 2 /* TokenTypes.BraceLeft */) {
277
277
  return false;
278
278
  }
279
279
  peekSpaces(scnr);
@@ -283,17 +283,17 @@ function createTokenizer(source, options = {}) {
283
283
  }
284
284
  function isLinkedDotStart(scnr, context) {
285
285
  const { currentType } = context;
286
- if (currentType !== 8 /* LinkedAlias */) {
286
+ if (currentType !== 8 /* TokenTypes.LinkedAlias */) {
287
287
  return false;
288
288
  }
289
289
  peekSpaces(scnr);
290
- const ret = scnr.currentPeek() === "." /* LinkedDot */;
290
+ const ret = scnr.currentPeek() === "." /* TokenChars.LinkedDot */;
291
291
  scnr.resetPeek();
292
292
  return ret;
293
293
  }
294
294
  function isLinkedModifierStart(scnr, context) {
295
295
  const { currentType } = context;
296
- if (currentType !== 9 /* LinkedDot */) {
296
+ if (currentType !== 9 /* TokenTypes.LinkedDot */) {
297
297
  return false;
298
298
  }
299
299
  peekSpaces(scnr);
@@ -303,30 +303,30 @@ function createTokenizer(source, options = {}) {
303
303
  }
304
304
  function isLinkedDelimiterStart(scnr, context) {
305
305
  const { currentType } = context;
306
- if (!(currentType === 8 /* LinkedAlias */ ||
307
- currentType === 12 /* LinkedModifier */)) {
306
+ if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||
307
+ currentType === 12 /* TokenTypes.LinkedModifier */)) {
308
308
  return false;
309
309
  }
310
310
  peekSpaces(scnr);
311
- const ret = scnr.currentPeek() === ":" /* LinkedDelimiter */;
311
+ const ret = scnr.currentPeek() === ":" /* TokenChars.LinkedDelimiter */;
312
312
  scnr.resetPeek();
313
313
  return ret;
314
314
  }
315
315
  function isLinkedReferStart(scnr, context) {
316
316
  const { currentType } = context;
317
- if (currentType !== 10 /* LinkedDelimiter */) {
317
+ if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {
318
318
  return false;
319
319
  }
320
320
  const fn = () => {
321
321
  const ch = scnr.currentPeek();
322
- if (ch === "{" /* BraceLeft */) {
322
+ if (ch === "{" /* TokenChars.BraceLeft */) {
323
323
  return isIdentifierStart(scnr.peek());
324
324
  }
325
- else if (ch === "@" /* LinkedAlias */ ||
326
- ch === "%" /* Modulo */ ||
327
- ch === "|" /* Pipe */ ||
328
- ch === ":" /* LinkedDelimiter */ ||
329
- ch === "." /* LinkedDot */ ||
325
+ else if (ch === "@" /* TokenChars.LinkedAlias */ ||
326
+ ch === "%" /* TokenChars.Modulo */ ||
327
+ ch === "|" /* TokenChars.Pipe */ ||
328
+ ch === ":" /* TokenChars.LinkedDelimiter */ ||
329
+ ch === "." /* TokenChars.LinkedDot */ ||
330
330
  ch === CHAR_SP ||
331
331
  !ch) {
332
332
  return false;
@@ -346,14 +346,14 @@ function createTokenizer(source, options = {}) {
346
346
  }
347
347
  function isPluralStart(scnr) {
348
348
  peekSpaces(scnr);
349
- const ret = scnr.currentPeek() === "|" /* Pipe */;
349
+ const ret = scnr.currentPeek() === "|" /* TokenChars.Pipe */;
350
350
  scnr.resetPeek();
351
351
  return ret;
352
352
  }
353
353
  function detectModuloStart(scnr) {
354
354
  const spaces = peekSpaces(scnr);
355
- const ret = scnr.currentPeek() === "%" /* Modulo */ &&
356
- scnr.peek() === "{" /* BraceLeft */;
355
+ const ret = scnr.currentPeek() === "%" /* TokenChars.Modulo */ &&
356
+ scnr.peek() === "{" /* TokenChars.BraceLeft */;
357
357
  scnr.resetPeek();
358
358
  return {
359
359
  isModulo: ret,
@@ -363,18 +363,18 @@ function createTokenizer(source, options = {}) {
363
363
  function isTextStart(scnr, reset = true) {
364
364
  const fn = (hasSpace = false, prev = '', detectModulo = false) => {
365
365
  const ch = scnr.currentPeek();
366
- if (ch === "{" /* BraceLeft */) {
367
- return prev === "%" /* Modulo */ ? false : hasSpace;
366
+ if (ch === "{" /* TokenChars.BraceLeft */) {
367
+ return prev === "%" /* TokenChars.Modulo */ ? false : hasSpace;
368
368
  }
369
- else if (ch === "@" /* LinkedAlias */ || !ch) {
370
- return prev === "%" /* Modulo */ ? true : hasSpace;
369
+ else if (ch === "@" /* TokenChars.LinkedAlias */ || !ch) {
370
+ return prev === "%" /* TokenChars.Modulo */ ? true : hasSpace;
371
371
  }
372
- else if (ch === "%" /* Modulo */) {
372
+ else if (ch === "%" /* TokenChars.Modulo */) {
373
373
  scnr.peek();
374
- return fn(hasSpace, "%" /* Modulo */, true);
374
+ return fn(hasSpace, "%" /* TokenChars.Modulo */, true);
375
375
  }
376
- else if (ch === "|" /* Pipe */) {
377
- return prev === "%" /* Modulo */ || detectModulo
376
+ else if (ch === "|" /* TokenChars.Pipe */) {
377
+ return prev === "%" /* TokenChars.Modulo */ || detectModulo
378
378
  ? true
379
379
  : !(prev === CHAR_SP || prev === CHAR_LF);
380
380
  }
@@ -444,24 +444,24 @@ function createTokenizer(source, options = {}) {
444
444
  function readModulo(scnr) {
445
445
  skipSpaces(scnr);
446
446
  const ch = scnr.currentChar();
447
- if (ch !== "%" /* Modulo */) {
447
+ if (ch !== "%" /* TokenChars.Modulo */) {
448
448
  emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);
449
449
  }
450
450
  scnr.next();
451
- return "%" /* Modulo */;
451
+ return "%" /* TokenChars.Modulo */;
452
452
  }
453
453
  function readText(scnr) {
454
454
  let buf = '';
455
455
  while (true) {
456
456
  const ch = scnr.currentChar();
457
- if (ch === "{" /* BraceLeft */ ||
458
- ch === "}" /* BraceRight */ ||
459
- ch === "@" /* LinkedAlias */ ||
460
- ch === "|" /* Pipe */ ||
457
+ if (ch === "{" /* TokenChars.BraceLeft */ ||
458
+ ch === "}" /* TokenChars.BraceRight */ ||
459
+ ch === "@" /* TokenChars.LinkedAlias */ ||
460
+ ch === "|" /* TokenChars.Pipe */ ||
461
461
  !ch) {
462
462
  break;
463
463
  }
464
- else if (ch === "%" /* Modulo */) {
464
+ else if (ch === "%" /* TokenChars.Modulo */) {
465
465
  if (isTextStart(scnr)) {
466
466
  buf += ch;
467
467
  scnr.next();
@@ -577,8 +577,8 @@ function createTokenizer(source, options = {}) {
577
577
  skipSpaces(scnr);
578
578
  let ch = '';
579
579
  let identifiers = '';
580
- const closure = (ch) => ch !== "{" /* BraceLeft */ &&
581
- ch !== "}" /* BraceRight */ &&
580
+ const closure = (ch) => ch !== "{" /* TokenChars.BraceLeft */ &&
581
+ ch !== "}" /* TokenChars.BraceRight */ &&
582
582
  ch !== CHAR_SP &&
583
583
  ch !== CHAR_LF;
584
584
  while ((ch = takeChar(scnr, closure))) {
@@ -597,10 +597,10 @@ function createTokenizer(source, options = {}) {
597
597
  function readLinkedRefer(scnr) {
598
598
  const fn = (detect = false, buf) => {
599
599
  const ch = scnr.currentChar();
600
- if (ch === "{" /* BraceLeft */ ||
601
- ch === "%" /* Modulo */ ||
602
- ch === "@" /* LinkedAlias */ ||
603
- ch === "|" /* Pipe */ ||
600
+ if (ch === "{" /* TokenChars.BraceLeft */ ||
601
+ ch === "%" /* TokenChars.Modulo */ ||
602
+ ch === "@" /* TokenChars.LinkedAlias */ ||
603
+ ch === "|" /* TokenChars.Pipe */ ||
604
604
  !ch) {
605
605
  return buf;
606
606
  }
@@ -622,7 +622,7 @@ function createTokenizer(source, options = {}) {
622
622
  }
623
623
  function readPlural(scnr) {
624
624
  skipSpaces(scnr);
625
- const plural = eat(scnr, "|" /* Pipe */);
625
+ const plural = eat(scnr, "|" /* TokenChars.Pipe */);
626
626
  skipSpaces(scnr);
627
627
  return plural;
628
628
  }
@@ -631,29 +631,29 @@ function createTokenizer(source, options = {}) {
631
631
  let token = null;
632
632
  const ch = scnr.currentChar();
633
633
  switch (ch) {
634
- case "{" /* BraceLeft */:
634
+ case "{" /* TokenChars.BraceLeft */:
635
635
  if (context.braceNest >= 1) {
636
636
  emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);
637
637
  }
638
638
  scnr.next();
639
- token = getToken(context, 2 /* BraceLeft */, "{" /* BraceLeft */);
639
+ token = getToken(context, 2 /* TokenTypes.BraceLeft */, "{" /* TokenChars.BraceLeft */);
640
640
  skipSpaces(scnr);
641
641
  context.braceNest++;
642
642
  return token;
643
- case "}" /* BraceRight */:
643
+ case "}" /* TokenChars.BraceRight */:
644
644
  if (context.braceNest > 0 &&
645
- context.currentType === 2 /* BraceLeft */) {
645
+ context.currentType === 2 /* TokenTypes.BraceLeft */) {
646
646
  emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);
647
647
  }
648
648
  scnr.next();
649
- token = getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
649
+ token = getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
650
650
  context.braceNest--;
651
651
  context.braceNest > 0 && skipSpaces(scnr);
652
652
  if (context.inLinked && context.braceNest === 0) {
653
653
  context.inLinked = false;
654
654
  }
655
655
  return token;
656
- case "@" /* LinkedAlias */:
656
+ case "@" /* TokenChars.LinkedAlias */:
657
657
  if (context.braceNest > 0) {
658
658
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
659
659
  }
@@ -668,38 +668,38 @@ function createTokenizer(source, options = {}) {
668
668
  if (context.braceNest > 0) {
669
669
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
670
670
  }
671
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
671
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
672
672
  // reset
673
673
  context.braceNest = 0;
674
674
  context.inLinked = false;
675
675
  return token;
676
676
  }
677
677
  if (context.braceNest > 0 &&
678
- (context.currentType === 5 /* Named */ ||
679
- context.currentType === 6 /* List */ ||
680
- context.currentType === 7 /* Literal */)) {
678
+ (context.currentType === 5 /* TokenTypes.Named */ ||
679
+ context.currentType === 6 /* TokenTypes.List */ ||
680
+ context.currentType === 7 /* TokenTypes.Literal */)) {
681
681
  emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);
682
682
  context.braceNest = 0;
683
683
  return readToken(scnr, context);
684
684
  }
685
685
  if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {
686
- token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));
686
+ token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));
687
687
  skipSpaces(scnr);
688
688
  return token;
689
689
  }
690
690
  if ((validListIdentifier = isListIdentifierStart(scnr, context))) {
691
- token = getToken(context, 6 /* List */, readListIdentifier(scnr));
691
+ token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));
692
692
  skipSpaces(scnr);
693
693
  return token;
694
694
  }
695
695
  if ((validLiteral = isLiteralStart(scnr, context))) {
696
- token = getToken(context, 7 /* Literal */, readLiteral(scnr));
696
+ token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));
697
697
  skipSpaces(scnr);
698
698
  return token;
699
699
  }
700
700
  if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {
701
701
  // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...
702
- token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));
702
+ token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));
703
703
  emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);
704
704
  skipSpaces(scnr);
705
705
  return token;
@@ -713,30 +713,30 @@ function createTokenizer(source, options = {}) {
713
713
  const { currentType } = context;
714
714
  let token = null;
715
715
  const ch = scnr.currentChar();
716
- if ((currentType === 8 /* LinkedAlias */ ||
717
- currentType === 9 /* LinkedDot */ ||
718
- currentType === 12 /* LinkedModifier */ ||
719
- currentType === 10 /* LinkedDelimiter */) &&
716
+ if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||
717
+ currentType === 9 /* TokenTypes.LinkedDot */ ||
718
+ currentType === 12 /* TokenTypes.LinkedModifier */ ||
719
+ currentType === 10 /* TokenTypes.LinkedDelimiter */) &&
720
720
  (ch === CHAR_LF || ch === CHAR_SP)) {
721
721
  emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
722
722
  }
723
723
  switch (ch) {
724
- case "@" /* LinkedAlias */:
724
+ case "@" /* TokenChars.LinkedAlias */:
725
725
  scnr.next();
726
- token = getToken(context, 8 /* LinkedAlias */, "@" /* LinkedAlias */);
726
+ token = getToken(context, 8 /* TokenTypes.LinkedAlias */, "@" /* TokenChars.LinkedAlias */);
727
727
  context.inLinked = true;
728
728
  return token;
729
- case "." /* LinkedDot */:
729
+ case "." /* TokenChars.LinkedDot */:
730
730
  skipSpaces(scnr);
731
731
  scnr.next();
732
- return getToken(context, 9 /* LinkedDot */, "." /* LinkedDot */);
733
- case ":" /* LinkedDelimiter */:
732
+ return getToken(context, 9 /* TokenTypes.LinkedDot */, "." /* TokenChars.LinkedDot */);
733
+ case ":" /* TokenChars.LinkedDelimiter */:
734
734
  skipSpaces(scnr);
735
735
  scnr.next();
736
- return getToken(context, 10 /* LinkedDelimiter */, ":" /* LinkedDelimiter */);
736
+ return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, ":" /* TokenChars.LinkedDelimiter */);
737
737
  default:
738
738
  if (isPluralStart(scnr)) {
739
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
739
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
740
740
  // reset
741
741
  context.braceNest = 0;
742
742
  context.inLinked = false;
@@ -749,19 +749,19 @@ function createTokenizer(source, options = {}) {
749
749
  }
750
750
  if (isLinkedModifierStart(scnr, context)) {
751
751
  skipSpaces(scnr);
752
- return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));
752
+ return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));
753
753
  }
754
754
  if (isLinkedReferStart(scnr, context)) {
755
755
  skipSpaces(scnr);
756
- if (ch === "{" /* BraceLeft */) {
756
+ if (ch === "{" /* TokenChars.BraceLeft */) {
757
757
  // scan the placeholder
758
758
  return readTokenInPlaceholder(scnr, context) || token;
759
759
  }
760
760
  else {
761
- return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));
761
+ return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));
762
762
  }
763
763
  }
764
- if (currentType === 8 /* LinkedAlias */) {
764
+ if (currentType === 8 /* TokenTypes.LinkedAlias */) {
765
765
  emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);
766
766
  }
767
767
  context.braceNest = 0;
@@ -771,7 +771,7 @@ function createTokenizer(source, options = {}) {
771
771
  }
772
772
  // TODO: We need refactoring of token parsing ...
773
773
  function readToken(scnr, context) {
774
- let token = { type: 14 /* EOF */ };
774
+ let token = { type: 14 /* TokenTypes.EOF */ };
775
775
  if (context.braceNest > 0) {
776
776
  return readTokenInPlaceholder(scnr, context) || getEndToken(context);
777
777
  }
@@ -780,17 +780,17 @@ function createTokenizer(source, options = {}) {
780
780
  }
781
781
  const ch = scnr.currentChar();
782
782
  switch (ch) {
783
- case "{" /* BraceLeft */:
783
+ case "{" /* TokenChars.BraceLeft */:
784
784
  return readTokenInPlaceholder(scnr, context) || getEndToken(context);
785
- case "}" /* BraceRight */:
785
+ case "}" /* TokenChars.BraceRight */:
786
786
  emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);
787
787
  scnr.next();
788
- return getToken(context, 3 /* BraceRight */, "}" /* BraceRight */);
789
- case "@" /* LinkedAlias */:
788
+ return getToken(context, 3 /* TokenTypes.BraceRight */, "}" /* TokenChars.BraceRight */);
789
+ case "@" /* TokenChars.LinkedAlias */:
790
790
  return readTokenInLinked(scnr, context) || getEndToken(context);
791
791
  default:
792
792
  if (isPluralStart(scnr)) {
793
- token = getToken(context, 1 /* Pipe */, readPlural(scnr));
793
+ token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));
794
794
  // reset
795
795
  context.braceNest = 0;
796
796
  context.inLinked = false;
@@ -799,11 +799,11 @@ function createTokenizer(source, options = {}) {
799
799
  const { isModulo, hasSpace } = detectModuloStart(scnr);
800
800
  if (isModulo) {
801
801
  return hasSpace
802
- ? getToken(context, 0 /* Text */, readText(scnr))
803
- : getToken(context, 4 /* Modulo */, readModulo(scnr));
802
+ ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))
803
+ : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));
804
804
  }
805
805
  if (isTextStart(scnr)) {
806
- return getToken(context, 0 /* Text */, readText(scnr));
806
+ return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));
807
807
  }
808
808
  break;
809
809
  }
@@ -818,7 +818,7 @@ function createTokenizer(source, options = {}) {
818
818
  _context.offset = currentOffset();
819
819
  _context.startLoc = currentPosition();
820
820
  if (_scnr.currentChar() === EOF) {
821
- return getToken(_context, 14 /* EOF */);
821
+ return getToken(_context, 14 /* TokenTypes.EOF */);
822
822
  }
823
823
  return readToken(_scnr, _context);
824
824
  }
@@ -888,7 +888,7 @@ function createParser(options = {}) {
888
888
  }
889
889
  function parseText(tokenizer, value) {
890
890
  const context = tokenizer.context();
891
- const node = startNode(3 /* Text */, context.offset, context.startLoc);
891
+ const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);
892
892
  node.value = value;
893
893
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
894
894
  return node;
@@ -896,7 +896,7 @@ function createParser(options = {}) {
896
896
  function parseList(tokenizer, index) {
897
897
  const context = tokenizer.context();
898
898
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
899
- const node = startNode(5 /* List */, offset, loc);
899
+ const node = startNode(5 /* NodeTypes.List */, offset, loc);
900
900
  node.index = parseInt(index, 10);
901
901
  tokenizer.nextToken(); // skip brach right
902
902
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -905,7 +905,7 @@ function createParser(options = {}) {
905
905
  function parseNamed(tokenizer, key) {
906
906
  const context = tokenizer.context();
907
907
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
908
- const node = startNode(4 /* Named */, offset, loc);
908
+ const node = startNode(4 /* NodeTypes.Named */, offset, loc);
909
909
  node.key = key;
910
910
  tokenizer.nextToken(); // skip brach right
911
911
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -914,7 +914,7 @@ function createParser(options = {}) {
914
914
  function parseLiteral(tokenizer, value) {
915
915
  const context = tokenizer.context();
916
916
  const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc
917
- const node = startNode(9 /* Literal */, offset, loc);
917
+ const node = startNode(9 /* NodeTypes.Literal */, offset, loc);
918
918
  node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);
919
919
  tokenizer.nextToken(); // skip brach right
920
920
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -924,8 +924,8 @@ function createParser(options = {}) {
924
924
  const token = tokenizer.nextToken();
925
925
  const context = tokenizer.context();
926
926
  const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc
927
- const node = startNode(8 /* LinkedModifier */, offset, loc);
928
- if (token.type !== 12 /* LinkedModifier */) {
927
+ const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);
928
+ if (token.type !== 12 /* TokenTypes.LinkedModifier */) {
929
929
  // empty modifier
930
930
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);
931
931
  node.value = '';
@@ -947,49 +947,49 @@ function createParser(options = {}) {
947
947
  }
948
948
  function parseLinkedKey(tokenizer, value) {
949
949
  const context = tokenizer.context();
950
- const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);
950
+ const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);
951
951
  node.value = value;
952
952
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
953
953
  return node;
954
954
  }
955
955
  function parseLinked(tokenizer) {
956
956
  const context = tokenizer.context();
957
- const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);
957
+ const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);
958
958
  let token = tokenizer.nextToken();
959
- if (token.type === 9 /* LinkedDot */) {
959
+ if (token.type === 9 /* TokenTypes.LinkedDot */) {
960
960
  const parsed = parseLinkedModifier(tokenizer);
961
961
  linkedNode.modifier = parsed.node;
962
962
  token = parsed.nextConsumeToken || tokenizer.nextToken();
963
963
  }
964
964
  // asset check token
965
- if (token.type !== 10 /* LinkedDelimiter */) {
965
+ if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {
966
966
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
967
967
  }
968
968
  token = tokenizer.nextToken();
969
969
  // skip brace left
970
- if (token.type === 2 /* BraceLeft */) {
970
+ if (token.type === 2 /* TokenTypes.BraceLeft */) {
971
971
  token = tokenizer.nextToken();
972
972
  }
973
973
  switch (token.type) {
974
- case 11 /* LinkedKey */:
974
+ case 11 /* TokenTypes.LinkedKey */:
975
975
  if (token.value == null) {
976
976
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
977
977
  }
978
978
  linkedNode.key = parseLinkedKey(tokenizer, token.value || '');
979
979
  break;
980
- case 5 /* Named */:
980
+ case 5 /* TokenTypes.Named */:
981
981
  if (token.value == null) {
982
982
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
983
983
  }
984
984
  linkedNode.key = parseNamed(tokenizer, token.value || '');
985
985
  break;
986
- case 6 /* List */:
986
+ case 6 /* TokenTypes.List */:
987
987
  if (token.value == null) {
988
988
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
989
989
  }
990
990
  linkedNode.key = parseList(tokenizer, token.value || '');
991
991
  break;
992
- case 7 /* Literal */:
992
+ case 7 /* TokenTypes.Literal */:
993
993
  if (token.value == null) {
994
994
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
995
995
  }
@@ -999,7 +999,7 @@ function createParser(options = {}) {
999
999
  // empty key
1000
1000
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);
1001
1001
  const nextContext = tokenizer.context();
1002
- const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);
1002
+ const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);
1003
1003
  emptyLinkedKeyNode.value = '';
1004
1004
  endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);
1005
1005
  linkedNode.key = emptyLinkedKeyNode;
@@ -1016,56 +1016,56 @@ function createParser(options = {}) {
1016
1016
  }
1017
1017
  function parseMessage(tokenizer) {
1018
1018
  const context = tokenizer.context();
1019
- const startOffset = context.currentType === 1 /* Pipe */
1019
+ const startOffset = context.currentType === 1 /* TokenTypes.Pipe */
1020
1020
  ? tokenizer.currentOffset()
1021
1021
  : context.offset;
1022
- const startLoc = context.currentType === 1 /* Pipe */
1022
+ const startLoc = context.currentType === 1 /* TokenTypes.Pipe */
1023
1023
  ? context.endLoc
1024
1024
  : context.startLoc;
1025
- const node = startNode(2 /* Message */, startOffset, startLoc);
1025
+ const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);
1026
1026
  node.items = [];
1027
1027
  let nextToken = null;
1028
1028
  do {
1029
1029
  const token = nextToken || tokenizer.nextToken();
1030
1030
  nextToken = null;
1031
1031
  switch (token.type) {
1032
- case 0 /* Text */:
1032
+ case 0 /* TokenTypes.Text */:
1033
1033
  if (token.value == null) {
1034
1034
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1035
1035
  }
1036
1036
  node.items.push(parseText(tokenizer, token.value || ''));
1037
1037
  break;
1038
- case 6 /* List */:
1038
+ case 6 /* TokenTypes.List */:
1039
1039
  if (token.value == null) {
1040
1040
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1041
1041
  }
1042
1042
  node.items.push(parseList(tokenizer, token.value || ''));
1043
1043
  break;
1044
- case 5 /* Named */:
1044
+ case 5 /* TokenTypes.Named */:
1045
1045
  if (token.value == null) {
1046
1046
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1047
1047
  }
1048
1048
  node.items.push(parseNamed(tokenizer, token.value || ''));
1049
1049
  break;
1050
- case 7 /* Literal */:
1050
+ case 7 /* TokenTypes.Literal */:
1051
1051
  if (token.value == null) {
1052
1052
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));
1053
1053
  }
1054
1054
  node.items.push(parseLiteral(tokenizer, token.value || ''));
1055
1055
  break;
1056
- case 8 /* LinkedAlias */:
1056
+ case 8 /* TokenTypes.LinkedAlias */:
1057
1057
  const parsed = parseLinked(tokenizer);
1058
1058
  node.items.push(parsed.node);
1059
1059
  nextToken = parsed.nextConsumeToken || null;
1060
1060
  break;
1061
1061
  }
1062
- } while (context.currentType !== 14 /* EOF */ &&
1063
- context.currentType !== 1 /* Pipe */);
1062
+ } while (context.currentType !== 14 /* TokenTypes.EOF */ &&
1063
+ context.currentType !== 1 /* TokenTypes.Pipe */);
1064
1064
  // adjust message node loc
1065
- const endOffset = context.currentType === 1 /* Pipe */
1065
+ const endOffset = context.currentType === 1 /* TokenTypes.Pipe */
1066
1066
  ? context.lastOffset
1067
1067
  : tokenizer.currentOffset();
1068
- const endLoc = context.currentType === 1 /* Pipe */
1068
+ const endLoc = context.currentType === 1 /* TokenTypes.Pipe */
1069
1069
  ? context.lastEndLoc
1070
1070
  : tokenizer.currentPosition();
1071
1071
  endNode(node, endOffset, endLoc);
@@ -1074,7 +1074,7 @@ function createParser(options = {}) {
1074
1074
  function parsePlural(tokenizer, offset, loc, msgNode) {
1075
1075
  const context = tokenizer.context();
1076
1076
  let hasEmptyMessage = msgNode.items.length === 0;
1077
- const node = startNode(1 /* Plural */, offset, loc);
1077
+ const node = startNode(1 /* NodeTypes.Plural */, offset, loc);
1078
1078
  node.cases = [];
1079
1079
  node.cases.push(msgNode);
1080
1080
  do {
@@ -1083,7 +1083,7 @@ function createParser(options = {}) {
1083
1083
  hasEmptyMessage = msg.items.length === 0;
1084
1084
  }
1085
1085
  node.cases.push(msg);
1086
- } while (context.currentType !== 14 /* EOF */);
1086
+ } while (context.currentType !== 14 /* TokenTypes.EOF */);
1087
1087
  if (hasEmptyMessage) {
1088
1088
  emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);
1089
1089
  }
@@ -1094,7 +1094,7 @@ function createParser(options = {}) {
1094
1094
  const context = tokenizer.context();
1095
1095
  const { offset, startLoc } = context;
1096
1096
  const msgNode = parseMessage(tokenizer);
1097
- if (context.currentType === 14 /* EOF */) {
1097
+ if (context.currentType === 14 /* TokenTypes.EOF */) {
1098
1098
  return msgNode;
1099
1099
  }
1100
1100
  else {
@@ -1104,13 +1104,13 @@ function createParser(options = {}) {
1104
1104
  function parse(source) {
1105
1105
  const tokenizer = createTokenizer(source, shared.assign({}, options));
1106
1106
  const context = tokenizer.context();
1107
- const node = startNode(0 /* Resource */, context.offset, context.startLoc);
1107
+ const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);
1108
1108
  if (location && node.loc) {
1109
1109
  node.loc.source = source;
1110
1110
  }
1111
1111
  node.body = parseResource(tokenizer);
1112
1112
  // assert whether achieved to EOF
1113
- if (context.currentType !== 14 /* EOF */) {
1113
+ if (context.currentType !== 14 /* TokenTypes.EOF */) {
1114
1114
  emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');
1115
1115
  }
1116
1116
  endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());
@@ -1119,7 +1119,7 @@ function createParser(options = {}) {
1119
1119
  return { parse };
1120
1120
  }
1121
1121
  function getTokenCaption(token) {
1122
- if (token.type === 14 /* EOF */) {
1122
+ if (token.type === 14 /* TokenTypes.EOF */) {
1123
1123
  return 'EOF';
1124
1124
  }
1125
1125
  const name = (token.value || '').replace(/\r?\n/gu, '\\n');
@@ -1147,26 +1147,26 @@ function traverseNodes(nodes, transformer) {
1147
1147
  function traverseNode(node, transformer) {
1148
1148
  // TODO: if we need pre-hook of transform, should be implemented to here
1149
1149
  switch (node.type) {
1150
- case 1 /* Plural */:
1150
+ case 1 /* NodeTypes.Plural */:
1151
1151
  traverseNodes(node.cases, transformer);
1152
- transformer.helper("plural" /* PLURAL */);
1152
+ transformer.helper("plural" /* HelperNameMap.PLURAL */);
1153
1153
  break;
1154
- case 2 /* Message */:
1154
+ case 2 /* NodeTypes.Message */:
1155
1155
  traverseNodes(node.items, transformer);
1156
1156
  break;
1157
- case 6 /* Linked */:
1157
+ case 6 /* NodeTypes.Linked */:
1158
1158
  const linked = node;
1159
1159
  traverseNode(linked.key, transformer);
1160
- transformer.helper("linked" /* LINKED */);
1161
- transformer.helper("type" /* TYPE */);
1160
+ transformer.helper("linked" /* HelperNameMap.LINKED */);
1161
+ transformer.helper("type" /* HelperNameMap.TYPE */);
1162
1162
  break;
1163
- case 5 /* List */:
1164
- transformer.helper("interpolate" /* INTERPOLATE */);
1165
- transformer.helper("list" /* LIST */);
1163
+ case 5 /* NodeTypes.List */:
1164
+ transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
1165
+ transformer.helper("list" /* HelperNameMap.LIST */);
1166
1166
  break;
1167
- case 4 /* Named */:
1168
- transformer.helper("interpolate" /* INTERPOLATE */);
1169
- transformer.helper("named" /* NAMED */);
1167
+ case 4 /* NodeTypes.Named */:
1168
+ transformer.helper("interpolate" /* HelperNameMap.INTERPOLATE */);
1169
+ transformer.helper("named" /* HelperNameMap.NAMED */);
1170
1170
  break;
1171
1171
  }
1172
1172
  // TODO: if we need post-hook of transform, should be implemented to here
@@ -1175,7 +1175,7 @@ function traverseNode(node, transformer) {
1175
1175
  function transform(ast, options = {} // eslint-disable-line
1176
1176
  ) {
1177
1177
  const transformer = createTransformer(ast);
1178
- transformer.helper("normalize" /* NORMALIZE */);
1178
+ transformer.helper("normalize" /* HelperNameMap.NORMALIZE */);
1179
1179
  // traverse
1180
1180
  ast.body && traverseNode(ast.body, transformer);
1181
1181
  // set meta information
@@ -1254,7 +1254,7 @@ function createCodeGenerator(ast, options) {
1254
1254
  }
1255
1255
  function generateLinkedNode(generator, node) {
1256
1256
  const { helper } = generator;
1257
- generator.push(`${helper("linked" /* LINKED */)}(`);
1257
+ generator.push(`${helper("linked" /* HelperNameMap.LINKED */)}(`);
1258
1258
  generateNode(generator, node.key);
1259
1259
  if (node.modifier) {
1260
1260
  generator.push(`, `);
@@ -1268,7 +1268,7 @@ function generateLinkedNode(generator, node) {
1268
1268
  }
1269
1269
  function generateMessageNode(generator, node) {
1270
1270
  const { helper, needIndent } = generator;
1271
- generator.push(`${helper("normalize" /* NORMALIZE */)}([`);
1271
+ generator.push(`${helper("normalize" /* HelperNameMap.NORMALIZE */)}([`);
1272
1272
  generator.indent(needIndent());
1273
1273
  const length = node.items.length;
1274
1274
  for (let i = 0; i < length; i++) {
@@ -1284,7 +1284,7 @@ function generateMessageNode(generator, node) {
1284
1284
  function generatePluralNode(generator, node) {
1285
1285
  const { helper, needIndent } = generator;
1286
1286
  if (node.cases.length > 1) {
1287
- generator.push(`${helper("plural" /* PLURAL */)}([`);
1287
+ generator.push(`${helper("plural" /* HelperNameMap.PLURAL */)}([`);
1288
1288
  generator.indent(needIndent());
1289
1289
  const length = node.cases.length;
1290
1290
  for (let i = 0; i < length; i++) {
@@ -1309,34 +1309,34 @@ function generateResource(generator, node) {
1309
1309
  function generateNode(generator, node) {
1310
1310
  const { helper } = generator;
1311
1311
  switch (node.type) {
1312
- case 0 /* Resource */:
1312
+ case 0 /* NodeTypes.Resource */:
1313
1313
  generateResource(generator, node);
1314
1314
  break;
1315
- case 1 /* Plural */:
1315
+ case 1 /* NodeTypes.Plural */:
1316
1316
  generatePluralNode(generator, node);
1317
1317
  break;
1318
- case 2 /* Message */:
1318
+ case 2 /* NodeTypes.Message */:
1319
1319
  generateMessageNode(generator, node);
1320
1320
  break;
1321
- case 6 /* Linked */:
1321
+ case 6 /* NodeTypes.Linked */:
1322
1322
  generateLinkedNode(generator, node);
1323
1323
  break;
1324
- case 8 /* LinkedModifier */:
1324
+ case 8 /* NodeTypes.LinkedModifier */:
1325
1325
  generator.push(JSON.stringify(node.value), node);
1326
1326
  break;
1327
- case 7 /* LinkedKey */:
1327
+ case 7 /* NodeTypes.LinkedKey */:
1328
1328
  generator.push(JSON.stringify(node.value), node);
1329
1329
  break;
1330
- case 5 /* List */:
1331
- generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("list" /* LIST */)}(${node.index}))`, node);
1330
+ case 5 /* NodeTypes.List */:
1331
+ generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("list" /* HelperNameMap.LIST */)}(${node.index}))`, node);
1332
1332
  break;
1333
- case 4 /* Named */:
1334
- generator.push(`${helper("interpolate" /* INTERPOLATE */)}(${helper("named" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);
1333
+ case 4 /* NodeTypes.Named */:
1334
+ generator.push(`${helper("interpolate" /* HelperNameMap.INTERPOLATE */)}(${helper("named" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);
1335
1335
  break;
1336
- case 9 /* Literal */:
1336
+ case 9 /* NodeTypes.Literal */:
1337
1337
  generator.push(JSON.stringify(node.value), node);
1338
1338
  break;
1339
- case 3 /* Text */:
1339
+ case 3 /* NodeTypes.Text */:
1340
1340
  generator.push(JSON.stringify(node.value), node);
1341
1341
  break;
1342
1342
  default:
@@ -1387,14 +1387,14 @@ const generate = (ast, options = {} // eslint-disable-line
1387
1387
  };
1388
1388
  function getMappingName(node) {
1389
1389
  switch (node.type) {
1390
- case 3 /* Text */:
1391
- case 9 /* Literal */:
1392
- case 8 /* LinkedModifier */:
1393
- case 7 /* LinkedKey */:
1390
+ case 3 /* NodeTypes.Text */:
1391
+ case 9 /* NodeTypes.Literal */:
1392
+ case 8 /* NodeTypes.LinkedModifier */:
1393
+ case 7 /* NodeTypes.LinkedKey */:
1394
1394
  return node.value;
1395
- case 5 /* List */:
1395
+ case 5 /* NodeTypes.List */:
1396
1396
  return node.index.toString();
1397
- case 4 /* Named */:
1397
+ case 4 /* NodeTypes.Named */:
1398
1398
  return node.key;
1399
1399
  default:
1400
1400
  return undefined;