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