@mojir/lits 2.1.32 → 2.1.33
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/README.md +34 -69
- package/dist/cli/cli.js +211 -333
- package/dist/cli/src/builtin/index.d.ts +1 -1
- package/dist/cli/src/builtin/specialExpressionTypes.d.ts +13 -15
- package/dist/cli/src/builtin/specialExpressions/functions.d.ts +3 -7
- package/dist/cli/src/builtin/specialExpressions/loop.d.ts +1 -1
- package/dist/cli/src/parser/Parser.d.ts +5 -4
- package/dist/cli/src/tokenizer/reservedNames.d.ts +2 -0
- package/dist/index.esm.js +220 -342
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +220 -342
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +220 -342
- package/dist/lits.iife.js.map +1 -1
- package/dist/src/builtin/index.d.ts +1 -1
- package/dist/src/builtin/specialExpressionTypes.d.ts +13 -15
- package/dist/src/builtin/specialExpressions/functions.d.ts +3 -7
- package/dist/src/builtin/specialExpressions/loop.d.ts +1 -1
- package/dist/src/parser/Parser.d.ts +5 -4
- package/dist/src/tokenizer/reservedNames.d.ts +2 -0
- package/dist/testFramework.esm.js +210 -332
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +210 -332
- package/dist/testFramework.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Builtin } from './interface';
|
|
2
2
|
import { specialExpressionTypes } from './specialExpressionTypes';
|
|
3
|
-
export declare const specialExpressions: readonly [import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/qq").QqNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/and").AndNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/or").OrNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/array").ArrayNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/cond").CondNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/def").DefNode>, import("./interface").BuiltinSpecialExpression<boolean, import("./specialExpressions/defined").DefinedNode>, import("./interface").BuiltinSpecialExpression<import("../
|
|
3
|
+
export declare const specialExpressions: readonly [import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/qq").QqNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/and").AndNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/or").OrNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/array").ArrayNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/cond").CondNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/def").DefNode>, import("./interface").BuiltinSpecialExpression<boolean, import("./specialExpressions/defined").DefinedNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/block").DoNode>, import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/loops").DoSeqNode>, import("./interface").BuiltinSpecialExpression<import("../parser/types").LitsFunction, import("./specialExpressions/functions").LambdaNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/loops").ForNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/if").IfNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/let").LetNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/loop").LoopNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/object").ObjectNode>, import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/recur").RecurNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/switch").SwitchNode>, import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/throw").ThrowNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/try").TryNode>, import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/unless").UnlessNode>];
|
|
4
4
|
export type SpecialExpressions = typeof specialExpressions;
|
|
5
5
|
export type SpecialExpression = SpecialExpressions[number];
|
|
6
6
|
export type SpecialExpressionName = keyof typeof specialExpressionTypes;
|
|
@@ -6,20 +6,18 @@ export declare const specialExpressionTypes: {
|
|
|
6
6
|
readonly cond: 4;
|
|
7
7
|
readonly '0_def': 5;
|
|
8
8
|
readonly 'defined?': 6;
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
18
|
-
readonly
|
|
19
|
-
readonly
|
|
20
|
-
readonly
|
|
21
|
-
readonly
|
|
22
|
-
readonly try: 20;
|
|
23
|
-
readonly unless: 21;
|
|
9
|
+
readonly block: 7;
|
|
10
|
+
readonly doseq: 8;
|
|
11
|
+
readonly '0_lambda': 9;
|
|
12
|
+
readonly for: 10;
|
|
13
|
+
readonly if: 11;
|
|
14
|
+
readonly let: 12;
|
|
15
|
+
readonly loop: 13;
|
|
16
|
+
readonly object: 14;
|
|
17
|
+
readonly recur: 15;
|
|
18
|
+
readonly switch: 16;
|
|
19
|
+
readonly throw: 17;
|
|
20
|
+
readonly try: 18;
|
|
21
|
+
readonly unless: 19;
|
|
24
22
|
};
|
|
25
23
|
export type SpecialExpressionTypes = typeof specialExpressionTypes;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { type LitsFunction, type SpecialExpressionNode
|
|
1
|
+
import { type LitsFunction, type SpecialExpressionNode } from '../../parser/types';
|
|
2
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
3
|
import type { Function } from '../utils';
|
|
4
4
|
import type { specialExpressionTypes } from '../specialExpressionTypes';
|
|
5
|
-
export type
|
|
6
|
-
export
|
|
7
|
-
export type FnNode = SpecialExpressionNode<[typeof specialExpressionTypes['0_fn'], Function]>;
|
|
8
|
-
export declare const functionSpecialExpression: BuiltinSpecialExpression<LitsFunction, FunctionNode>;
|
|
9
|
-
export declare const defnSpecialExpression: BuiltinSpecialExpression<LitsFunction, DefnNode>;
|
|
10
|
-
export declare const fnSpecialExpression: BuiltinSpecialExpression<LitsFunction, FnNode>;
|
|
5
|
+
export type LambdaNode = SpecialExpressionNode<[typeof specialExpressionTypes['0_lambda'], Function, string]>;
|
|
6
|
+
export declare const lambdaSpecialExpression: BuiltinSpecialExpression<LitsFunction, LambdaNode>;
|
|
@@ -2,5 +2,5 @@ import type { Any } from '../../interface';
|
|
|
2
2
|
import type { BindingNode, Node, SpecialExpressionNode } from '../../parser/types';
|
|
3
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
4
4
|
import type { specialExpressionTypes } from '../specialExpressionTypes';
|
|
5
|
-
export type LoopNode = SpecialExpressionNode<[typeof specialExpressionTypes['loop'], BindingNode[], Node
|
|
5
|
+
export type LoopNode = SpecialExpressionNode<[typeof specialExpressionTypes['loop'], BindingNode[], Node]>;
|
|
6
6
|
export declare const loopSpecialExpression: BuiltinSpecialExpression<Any, LoopNode>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { CondNode } from '../builtin/specialExpressions/cond';
|
|
2
|
-
import type {
|
|
2
|
+
import type { LambdaNode } from '../builtin/specialExpressions/functions';
|
|
3
3
|
import type { IfNode } from '../builtin/specialExpressions/if';
|
|
4
4
|
import type { SwitchNode } from '../builtin/specialExpressions/switch';
|
|
5
5
|
import type { UnlessNode } from '../builtin/specialExpressions/unless';
|
|
6
|
-
import type {
|
|
6
|
+
import type { SymbolToken, Token } from '../tokenizer/token';
|
|
7
7
|
import type { TokenStream } from '../tokenizer/tokenize';
|
|
8
8
|
import { type BindingTarget, type Node, type ParseState } from './types';
|
|
9
9
|
export declare class Parser {
|
|
@@ -22,7 +22,7 @@ export declare class Parser {
|
|
|
22
22
|
private parseObject;
|
|
23
23
|
private parseArray;
|
|
24
24
|
private parseFunctionCall;
|
|
25
|
-
parseLambdaFunction():
|
|
25
|
+
parseLambdaFunction(): LambdaNode | null;
|
|
26
26
|
parseFunctionArguments(): BindingTarget[];
|
|
27
27
|
private parseShorthandLamdaFunction;
|
|
28
28
|
private parseOptionalDefaulValue;
|
|
@@ -33,11 +33,12 @@ export declare class Parser {
|
|
|
33
33
|
private parseTry;
|
|
34
34
|
private parseForOrDoseq;
|
|
35
35
|
private parseForLoopBinding;
|
|
36
|
+
assertInternalLoopBindingDelimiter(token: Token, symbols: ('let' | 'when' | 'while')[]): void;
|
|
37
|
+
isInternalLoopBindingDelimiter(token: Token, symbols: ('let' | 'when' | 'while')[]): boolean;
|
|
36
38
|
private parseBinding;
|
|
37
39
|
parseIfOrUnless(token: SymbolToken): IfNode | UnlessNode;
|
|
38
40
|
parseCond(token: SymbolToken): CondNode;
|
|
39
41
|
parseSwitch(token: SymbolToken): SwitchNode;
|
|
40
|
-
parseFunction(token: ReservedSymbolToken<'function'>): FunctionNode;
|
|
41
42
|
private isAtEnd;
|
|
42
43
|
private isAtExpressionEnd;
|
|
43
44
|
private parseExport;
|
|
@@ -56,6 +56,8 @@ export declare const reservedSymbolRecord: {
|
|
|
56
56
|
readonly function: null;
|
|
57
57
|
readonly export: null;
|
|
58
58
|
readonly as: null;
|
|
59
|
+
readonly then: null;
|
|
60
|
+
readonly end: null;
|
|
59
61
|
readonly _: null;
|
|
60
62
|
};
|
|
61
63
|
export type ReservedSymbol = keyof typeof reservedSymbolRecord;
|