@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.
- package/dist/cli/cli.js +28 -5
- package/dist/cli/src/tokenizer/token.d.ts +4 -6
- package/dist/cli/src/tokenizer/tokenizers.d.ts +1 -0
- package/dist/index.esm.js +27 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +27 -4
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +27 -4
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/tokenizer/token.d.ts +4 -6
- package/dist/src/tokenizer/tokenizers.d.ts +1 -0
- package/dist/testFramework.esm.js +27 -4
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +27 -4
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
13533
|
-
if (input[position] === '
|
|
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
|
|
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
|
}
|