@mojir/lits 2.1.37 → 2.1.38

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,6 +1,6 @@
1
1
  import type { ReservedSymbol } from './reservedNames';
2
2
  import { type SymbolicBinaryOperator, type SymbolicOperator } from './operators';
3
- export declare const tokenTypes: readonly ["LBrace", "LBracket", "RBrace", "RBracket", "LParen", "RParen", "BasePrefixedNumber", "DocString", "Error", "MultiLineComment", "Number", "Operator", "RegexpShorthand", "ReservedSymbol", "SingleLineComment", "String", "Symbol", "Whitespace"];
3
+ export declare const tokenTypes: readonly ["LBrace", "LBracket", "RBrace", "RBracket", "LParen", "RParen", "BasePrefixedNumber", "DocString", "Error", "MultiLineComment", "Number", "Operator", "RegexpShorthand", "ReservedSymbol", "SingleLineComment", "Shebang", "String", "Symbol", "Whitespace"];
4
4
  export type TokenType = typeof tokenTypes[number];
5
5
  declare const modifierNames: readonly ["&rest", "&let", "&when", "&while"];
6
6
  export type ModifierName = typeof modifierNames[number];
@@ -19,11 +19,12 @@ export type OperatorToken<T extends SymbolicOperator = SymbolicOperator> = Gener
19
19
  export type RegexpShorthandToken = GenericToken<'RegexpShorthand'>;
20
20
  export type ReservedSymbolToken<T extends ReservedSymbol = ReservedSymbol> = GenericToken<'ReservedSymbol', T>;
21
21
  export type SingleLineCommentToken = GenericToken<'SingleLineComment'>;
22
+ export type ShebangToken = GenericToken<'Shebang'>;
22
23
  export type StringToken = GenericToken<'String'>;
23
24
  export type DocStringToken = GenericToken<'DocString'>;
24
25
  export type SymbolToken<T extends string = string> = GenericToken<'Symbol', T>;
25
26
  export type WhitespaceToken = GenericToken<'Whitespace'>;
26
- export type Token = LBraceToken | LBracketToken | LParenToken | RBraceToken | RBracketToken | RParenToken | BasePrefixedNumberToken | DocStringToken | ErrorToken | MultiLineCommentToken | NumberToken | OperatorToken | RegexpShorthandToken | ReservedSymbolToken | SingleLineCommentToken | StringToken | SymbolToken | WhitespaceToken;
27
+ export type Token = LBraceToken | LBracketToken | LParenToken | RBraceToken | RBracketToken | RParenToken | BasePrefixedNumberToken | DocStringToken | ErrorToken | MultiLineCommentToken | NumberToken | OperatorToken | RegexpShorthandToken | ReservedSymbolToken | SingleLineCommentToken | ShebangToken | StringToken | SymbolToken | WhitespaceToken;
27
28
  export type TokenDescriptor<T extends Token> = [length: number, token?: T];
28
29
  export interface SourceCodeInfo {
29
30
  position: {
@@ -39,12 +40,9 @@ export declare function asSymbolToken<T extends string>(token: Token | undefined
39
40
  export declare function isReservedSymbolToken<T extends ReservedSymbol>(token: Token | undefined | undefined, symbolName?: T): token is ReservedSymbolToken<T>;
40
41
  export declare function assertReservedSymbolToken<T extends ReservedSymbol>(token: Token | undefined | undefined, symbolName?: T): asserts token is ReservedSymbolToken<T>;
41
42
  export declare function asReservedSymbolToken<T extends ReservedSymbol>(token: Token | undefined | undefined, symbolName?: T): ReservedSymbolToken<T>;
43
+ export declare function isShebangToken(token: Token | undefined): token is SingleLineCommentToken;
42
44
  export declare function isSingleLineCommentToken(token: Token | undefined): token is SingleLineCommentToken;
43
- export declare function assertSingleLineCommentToken(token: Token | undefined): asserts token is SingleLineCommentToken;
44
- export declare function asSingleLineCommentToken(token: Token | undefined): SingleLineCommentToken;
45
45
  export declare function isMultiLineCommentToken(token: Token | undefined): token is MultiLineCommentToken;
46
- export declare function assertMultiLineCommentToken(token: Token | undefined): asserts token is MultiLineCommentToken;
47
- export declare function asMultiLineCommentToken(token: Token | undefined): MultiLineCommentToken;
48
46
  export declare function isOperatorToken<T extends SymbolicOperator>(token: Token | undefined | undefined, operatorName?: T): token is OperatorToken<T>;
49
47
  export declare function assertOperatorToken<T extends SymbolicOperator>(token: Token | undefined | undefined, operatorName?: T): asserts token is OperatorToken<T>;
50
48
  export declare function asOperatorToken<T extends SymbolicOperator>(token: Token | undefined | undefined, operatorName?: T): OperatorToken<T>;
@@ -9,5 +9,6 @@ export declare const tokenizeSymbol: Tokenizer<SymbolToken>;
9
9
  export declare const tokenizeReservedSymbolToken: Tokenizer<ReservedSymbolToken>;
10
10
  export declare const tokenizeOperator: Tokenizer<OperatorToken>;
11
11
  export declare const tokenizeMultiLineComment: Tokenizer<MultiLineCommentToken>;
12
+ export declare const tokenizeShebang: Tokenizer<SingleLineCommentToken>;
12
13
  export declare const tokenizeSingleLineComment: Tokenizer<SingleLineCommentToken>;
13
14
  export declare const tokenizers: [Tokenizer<WhitespaceToken>, Tokenizer<MultiLineCommentToken>, Tokenizer<SingleLineCommentToken>, Tokenizer<ReservedSymbolToken>, Tokenizer<LParenToken>, Tokenizer<RParenToken>, Tokenizer<LBracketToken>, Tokenizer<RBracketToken>, Tokenizer<LBraceToken>, Tokenizer<RBraceToken>, Tokenizer<DocStringToken>, Tokenizer<StringToken>, Tokenizer<RegexpShorthandToken>, Tokenizer<BasePrefixedNumberToken>, Tokenizer<NumberToken>, Tokenizer<OperatorToken>, Tokenizer<SymbolToken>];
@@ -13529,10 +13529,10 @@ var tokenizeMultiLineComment = function (input, position) {
13529
13529
  }
13530
13530
  return NO_MATCH;
13531
13531
  };
13532
- var tokenizeSingleLineComment = function (input, position) {
13533
- if (input[position] === '/' && input[position + 1] === '/') {
13532
+ var tokenizeShebang = function (input, position) {
13533
+ if (input[position] === '#' && input[position + 1] === '!') {
13534
13534
  var length_3 = 2;
13535
- var value = '//';
13535
+ var value = '#!';
13536
13536
  while (input[position + length_3] !== '\n' && position + length_3 < input.length) {
13537
13537
  value += input[position + length_3];
13538
13538
  length_3 += 1;
@@ -13541,6 +13541,18 @@ var tokenizeSingleLineComment = function (input, position) {
13541
13541
  }
13542
13542
  return NO_MATCH;
13543
13543
  };
13544
+ var tokenizeSingleLineComment = function (input, position) {
13545
+ if (input[position] === '/' && input[position + 1] === '/') {
13546
+ var length_4 = 2;
13547
+ var value = '//';
13548
+ while (input[position + length_4] !== '\n' && position + length_4 < input.length) {
13549
+ value += input[position + length_4];
13550
+ length_4 += 1;
13551
+ }
13552
+ return [length_4, ['SingleLineComment', value]];
13553
+ }
13554
+ return NO_MATCH;
13555
+ };
13544
13556
  // All tokenizers, order matters!
13545
13557
  var tokenizers = [
13546
13558
  tokenizeWhitespace,
@@ -13606,10 +13618,17 @@ function createSourceCodeInfo(input, position, filePath) {
13606
13618
  function getCurrentToken(input, position) {
13607
13619
  var e_1, _a;
13608
13620
  var initialPosition = position;
13621
+ if (position === 0) {
13622
+ var _b = __read(tokenizeShebang(input, position), 2), nbrOfCharacters = _b[0], token = _b[1];
13623
+ position += nbrOfCharacters;
13624
+ if (nbrOfCharacters > 0) {
13625
+ return [position - initialPosition, token];
13626
+ }
13627
+ }
13609
13628
  try {
13610
13629
  for (var tokenizers_1 = __values(tokenizers), tokenizers_1_1 = tokenizers_1.next(); !tokenizers_1_1.done; tokenizers_1_1 = tokenizers_1.next()) {
13611
13630
  var tokenizer = tokenizers_1_1.value;
13612
- var _b = __read(tokenizer(input, position), 2), nbrOfCharacters = _b[0], token = _b[1];
13631
+ var _c = __read(tokenizer(input, position), 2), nbrOfCharacters = _c[0], token = _c[1];
13613
13632
  position += nbrOfCharacters;
13614
13633
  if (nbrOfCharacters === 0) {
13615
13634
  continue;
@@ -13663,6 +13682,9 @@ function asReservedSymbolToken(token, symbolName) {
13663
13682
  assertReservedSymbolToken(token, symbolName);
13664
13683
  return token;
13665
13684
  }
13685
+ function isShebangToken(token) {
13686
+ return (token === null || token === void 0 ? void 0 : token[0]) === 'Shebang';
13687
+ }
13666
13688
  function isSingleLineCommentToken(token) {
13667
13689
  return (token === null || token === void 0 ? void 0 : token[0]) === 'SingleLineComment';
13668
13690
  }
@@ -13762,6 +13784,7 @@ function minifyTokenStream(tokenStream, _a) {
13762
13784
  .filter(function (token) {
13763
13785
  if (isSingleLineCommentToken(token)
13764
13786
  || isMultiLineCommentToken(token)
13787
+ || isShebangToken(token)
13765
13788
  || (removeWhiteSpace && isWhitespaceToken(token))) {
13766
13789
  return false;
13767
13790
  }