@mojir/lits 1.1.0 → 1.2.0
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/src/colorizer.d.ts +817 -784
- package/dist/cli/cli/src/createReadlineInterface.d.ts +0 -1
- package/dist/cli/cli.js +6495 -4834
- package/dist/cli/common/utils.d.ts +0 -1
- package/dist/cli/reference/api.d.ts +1 -1
- package/dist/cli/reference/examples.d.ts +1 -6
- package/dist/cli/src/Lits/Lits.d.ts +10 -7
- package/dist/cli/src/analyze/calculateOutcomes/calculateAndOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateCommentOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateCondOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateDeclaredOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateDefOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateDefsOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateDoOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateFunctionOutcomes.d.ts +5 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateIfLetOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateIfNotOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateIfOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateLetOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateLoopOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateLoopsOutcomes.d.ts +4 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateOrOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateQqOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateRecurOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateThrowOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateTimeOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateTryOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateWhenFirstOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateWhenLetOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateWhenNotOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/calculateWhenOutcomes.d.ts +3 -0
- package/dist/cli/src/analyze/calculateOutcomes/index.d.ts +18 -0
- package/dist/cli/src/analyze/calculateOutcomes/specialExpressionCalculators.d.ts +55 -0
- package/dist/cli/src/analyze/findUnresolvedIdentifiers.d.ts +2 -0
- package/dist/cli/src/analyze/index.d.ts +17 -2
- package/dist/cli/src/analyze/utils.d.ts +4 -3
- package/dist/cli/src/builtin/index.d.ts +35 -2
- package/dist/cli/src/builtin/interface.d.ts +13 -14
- package/dist/cli/src/builtin/specialExpressions/and.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/comment.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/cond.d.ts +3 -5
- package/dist/cli/src/builtin/specialExpressions/declared.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/def.d.ts +4 -2
- package/dist/cli/src/builtin/specialExpressions/defs.d.ts +4 -2
- package/dist/cli/src/builtin/specialExpressions/do.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/functions.d.ts +15 -6
- package/dist/cli/src/builtin/specialExpressions/if-let.d.ts +8 -1
- package/dist/cli/src/builtin/specialExpressions/if-not.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/if.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/let.d.ts +8 -1
- package/dist/cli/src/builtin/specialExpressions/loop.d.ts +5 -1
- package/dist/cli/src/builtin/specialExpressions/loops.d.ts +9 -3
- package/dist/cli/src/builtin/specialExpressions/or.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/qq.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/recur.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/throw.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/time.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/try.d.ts +6 -1
- package/dist/cli/src/builtin/specialExpressions/when-first.d.ts +5 -1
- package/dist/cli/src/builtin/specialExpressions/when-let.d.ts +5 -1
- package/dist/cli/src/builtin/specialExpressions/when-not.d.ts +4 -1
- package/dist/cli/src/builtin/specialExpressions/when.d.ts +4 -1
- package/dist/cli/src/colorizer.d.ts +817 -784
- package/dist/cli/src/constants/constants.d.ts +5 -2
- package/dist/cli/src/createReadlineInterface.d.ts +0 -1
- package/dist/cli/src/errors.d.ts +2 -1
- package/dist/cli/src/evaluator/ContextStack.d.ts +5 -2
- package/dist/cli/src/parser/interface.d.ts +27 -32
- package/dist/cli/src/removeCommentNodes/index.d.ts +11 -0
- package/dist/cli/src/removeCommentNodes/removeCommentNodesFromSpecialExpression.d.ts +3 -0
- package/dist/cli/src/tokenizer/index.d.ts +8 -1
- package/dist/cli/src/tokenizer/interface.d.ts +15 -5
- package/dist/cli/src/tokenizer/tokenizers.d.ts +3 -2
- package/dist/cli/src/typeGuards/index.d.ts +8 -6
- package/dist/cli/src/typeGuards/token.d.ts +1 -1
- package/dist/cli/src/unparser/UnparseOptions.d.ts +15 -0
- package/dist/cli/src/unparser/unparse.d.ts +5 -0
- package/dist/cli/src/unparser/unparseArrayLiteral.d.ts +3 -0
- package/dist/cli/src/unparser/unparseBindings.d.ts +3 -0
- package/dist/cli/src/unparser/unparseNormalExpression.d.ts +3 -0
- package/dist/cli/src/unparser/unparseObjectLiteral.d.ts +3 -0
- package/dist/cli/src/unparser/unparseParams.d.ts +17 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/index.d.ts +3 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/unparseCond.d.ts +3 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/unparseDo.d.ts +3 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/unparseIfLet.d.ts +3 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/unparseIfOrWhenLike.d.ts +6 -0
- package/dist/cli/src/unparser/unparseSpecialExpression/unparseLet.d.ts +3 -0
- package/dist/cli/src/unparser/utils.d.ts +5 -0
- package/dist/cli/src/utils/index.d.ts +1 -0
- package/dist/cli/src/utils/symbols.d.ts +2 -2
- package/dist/common/utils.d.ts +0 -1
- package/dist/index.esm.js +6522 -4863
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +6522 -4863
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +6522 -4863
- package/dist/lits.iife.js.map +1 -1
- package/dist/reference/api.d.ts +1 -1
- package/dist/src/Lits/Lits.d.ts +10 -7
- package/dist/src/analyze/calculateOutcomes/calculateAndOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateCommentOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateCondOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateDeclaredOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateDefOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateDefsOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateDoOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateFunctionOutcomes.d.ts +5 -0
- package/dist/src/analyze/calculateOutcomes/calculateIfLetOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateIfNotOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateIfOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateLetOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateLoopOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateLoopsOutcomes.d.ts +4 -0
- package/dist/src/analyze/calculateOutcomes/calculateOrOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateQqOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateRecurOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateThrowOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateTimeOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateTryOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateWhenFirstOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateWhenLetOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateWhenNotOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/calculateWhenOutcomes.d.ts +3 -0
- package/dist/src/analyze/calculateOutcomes/index.d.ts +18 -0
- package/dist/src/analyze/calculateOutcomes/specialExpressionCalculators.d.ts +55 -0
- package/dist/src/analyze/findUnresolvedIdentifiers.d.ts +2 -0
- package/dist/src/analyze/index.d.ts +17 -2
- package/dist/src/analyze/utils.d.ts +4 -3
- package/dist/src/builtin/index.d.ts +35 -2
- package/dist/src/builtin/interface.d.ts +13 -14
- package/dist/src/builtin/specialExpressions/and.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/comment.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/cond.d.ts +3 -5
- package/dist/src/builtin/specialExpressions/declared.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/def.d.ts +4 -2
- package/dist/src/builtin/specialExpressions/defs.d.ts +4 -2
- package/dist/src/builtin/specialExpressions/do.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/functions.d.ts +15 -6
- package/dist/src/builtin/specialExpressions/if-let.d.ts +8 -1
- package/dist/src/builtin/specialExpressions/if-not.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/if.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/let.d.ts +8 -1
- package/dist/src/builtin/specialExpressions/loop.d.ts +5 -1
- package/dist/src/builtin/specialExpressions/loops.d.ts +9 -3
- package/dist/src/builtin/specialExpressions/or.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/qq.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/recur.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/throw.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/time.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/try.d.ts +6 -1
- package/dist/src/builtin/specialExpressions/when-first.d.ts +5 -1
- package/dist/src/builtin/specialExpressions/when-let.d.ts +5 -1
- package/dist/src/builtin/specialExpressions/when-not.d.ts +4 -1
- package/dist/src/builtin/specialExpressions/when.d.ts +4 -1
- package/dist/src/constants/constants.d.ts +5 -2
- package/dist/src/errors.d.ts +2 -1
- package/dist/src/evaluator/ContextStack.d.ts +5 -2
- package/dist/src/parser/interface.d.ts +27 -32
- package/dist/src/removeCommentNodes/index.d.ts +11 -0
- package/dist/src/removeCommentNodes/removeCommentNodesFromSpecialExpression.d.ts +3 -0
- package/dist/src/tokenizer/index.d.ts +8 -1
- package/dist/src/tokenizer/interface.d.ts +15 -5
- package/dist/src/tokenizer/tokenizers.d.ts +3 -2
- package/dist/src/typeGuards/index.d.ts +8 -6
- package/dist/src/typeGuards/token.d.ts +1 -1
- package/dist/src/unparser/UnparseOptions.d.ts +15 -0
- package/dist/src/unparser/__tests__/testFormatter.d.ts +1 -0
- package/dist/src/unparser/unparse.d.ts +5 -0
- package/dist/src/unparser/unparseArrayLiteral.d.ts +3 -0
- package/dist/src/unparser/unparseBindings.d.ts +3 -0
- package/dist/src/unparser/unparseNormalExpression.d.ts +3 -0
- package/dist/src/unparser/unparseObjectLiteral.d.ts +3 -0
- package/dist/src/unparser/unparseParams.d.ts +17 -0
- package/dist/src/unparser/unparseSpecialExpression/index.d.ts +3 -0
- package/dist/src/unparser/unparseSpecialExpression/unparseCond.d.ts +3 -0
- package/dist/src/unparser/unparseSpecialExpression/unparseDo.d.ts +3 -0
- package/dist/src/unparser/unparseSpecialExpression/unparseIfLet.d.ts +3 -0
- package/dist/src/unparser/unparseSpecialExpression/unparseIfOrWhenLike.d.ts +6 -0
- package/dist/src/unparser/unparseSpecialExpression/unparseLet.d.ts +3 -0
- package/dist/src/unparser/utils.d.ts +5 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/symbols.d.ts +2 -2
- package/dist/testFramework.esm.js +6180 -4521
- package/dist/testFramework.esm.js.map +1 -1
- package/dist/testFramework.js +6180 -4521
- package/dist/testFramework.js.map +1 -1
- package/package.json +6 -5
- package/dist/cli/src/analyze/interface.d.ts +0 -12
- package/dist/src/analyze/interface.d.ts +0 -12
|
@@ -8,7 +8,8 @@ export declare enum AstNodeType {
|
|
|
8
8
|
ReservedName = 207,
|
|
9
9
|
Binding = 208,
|
|
10
10
|
Argument = 209,
|
|
11
|
-
Partial = 210
|
|
11
|
+
Partial = 210,
|
|
12
|
+
Comment = 211
|
|
12
13
|
}
|
|
13
14
|
export declare const astNodeTypeName: Map<AstNodeType, string>;
|
|
14
15
|
export declare function isAstNodeType(type: unknown): type is AstNodeType;
|
|
@@ -21,7 +22,9 @@ export declare enum TokenType {
|
|
|
21
22
|
Modifier = 106,
|
|
22
23
|
RegexpShorthand = 107,
|
|
23
24
|
FnShorthand = 108,
|
|
24
|
-
CollectionAccessor = 109
|
|
25
|
+
CollectionAccessor = 109,
|
|
26
|
+
Comment = 110,
|
|
27
|
+
NewLine = 111
|
|
25
28
|
}
|
|
26
29
|
export declare const tokenTypeName: Map<TokenType, string>;
|
|
27
30
|
export declare function isTokenType(type: unknown): type is TokenType;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/// <reference types="node" />
|
|
3
2
|
import type { ReadLine, ReadLineOptions } from 'node:readline';
|
|
4
3
|
type Options = Required<Pick<ReadLineOptions, 'completer' | 'historySize' | 'prompt'>>;
|
|
5
4
|
export declare function createReadlineInterface(options: Options): ReadLine;
|
package/dist/cli/src/errors.d.ts
CHANGED
|
@@ -14,7 +14,8 @@ export declare class NotAFunctionError extends LitsError {
|
|
|
14
14
|
constructor(fn: unknown, sourceCodeInfo?: SourceCodeInfo);
|
|
15
15
|
}
|
|
16
16
|
export declare class UserDefinedError extends LitsError {
|
|
17
|
-
|
|
17
|
+
userMessage: string;
|
|
18
|
+
constructor(message: string, sourceCodeInfo?: SourceCodeInfo);
|
|
18
19
|
}
|
|
19
20
|
export declare class AssertionError extends LitsError {
|
|
20
21
|
constructor(message: string | Error, sourceCodeInfo?: SourceCodeInfo);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ExtraData, NameNode, NativeJsFunction } from '../parser/interface';
|
|
2
2
|
import type { Any } from '../interface';
|
|
3
|
-
import type { LazyValue } from '../Lits/Lits';
|
|
3
|
+
import type { LazyValue, LitsParams } from '../Lits/Lits';
|
|
4
4
|
import type { Context, LookUpResult } from './interface';
|
|
5
|
-
export
|
|
5
|
+
export type ContextStack = ContextStackImpl;
|
|
6
|
+
export declare class ContextStackImpl {
|
|
6
7
|
private contexts;
|
|
7
8
|
globalContext: Context;
|
|
8
9
|
private values?;
|
|
@@ -15,7 +16,9 @@ export declare class ContextStack {
|
|
|
15
16
|
nativeJsFunctions?: Record<string, NativeJsFunction>;
|
|
16
17
|
});
|
|
17
18
|
create(context: Context, extraData?: ExtraData): ContextStack;
|
|
19
|
+
clone(): ContextStack;
|
|
18
20
|
getValue(name: string): unknown;
|
|
19
21
|
lookUp(node: NameNode): LookUpResult;
|
|
20
22
|
evaluateName(node: NameNode): Any;
|
|
21
23
|
}
|
|
24
|
+
export declare function createContextStack(params?: LitsParams): ContextStack;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
1
|
+
import type { JsFunction, LazyValue } from '../Lits/Lits';
|
|
2
|
+
import type { SpecialExpressionName, SpecialExpressionNode } from '../builtin';
|
|
3
|
+
import type { Arity } from '../builtin/utils';
|
|
4
|
+
import type { AstNodeType, FunctionType } from '../constants/constants';
|
|
5
5
|
import type { Context } from '../evaluator/interface';
|
|
6
6
|
import type { Any, Arr } from '../interface';
|
|
7
7
|
import type { ReservedName } from '../reservedNames';
|
|
8
8
|
import type { SourceCodeInfo, Token, TokenStream } from '../tokenizer/interface';
|
|
9
9
|
import type { FUNCTION_SYMBOL, REGEXP_SYMBOL } from '../utils/symbols';
|
|
10
|
-
import type { AstNodeType, FunctionType } from '../constants/constants';
|
|
11
|
-
import type { JsFunction, LazyValue } from '../Lits/Lits';
|
|
12
10
|
export interface EvaluatedFunctionArguments {
|
|
13
11
|
mandatoryArguments: string[];
|
|
14
12
|
restArgument?: string;
|
|
@@ -83,16 +81,22 @@ export interface BuiltinFunction extends GenericLitsFunction {
|
|
|
83
81
|
export type LitsFunction = NativeJsFunction | UserDefinedFunction | BuiltinFunction | PartialFunction | CompFunction | ConstantlyFunction | JuxtFunction | ComplementFunction | EveryPredFunction | SomePredFunction | FNilFunction;
|
|
84
82
|
export type LitsFunctionType = LitsFunction['t'];
|
|
85
83
|
export type ModifierName = '&' | '&let' | '&when' | '&while';
|
|
86
|
-
interface GenericNode {
|
|
84
|
+
export interface GenericNode {
|
|
87
85
|
t: AstNodeType;
|
|
88
|
-
|
|
86
|
+
p: AstNode[];
|
|
87
|
+
n: string | undefined;
|
|
88
|
+
debugData: {
|
|
89
|
+
token: Token;
|
|
90
|
+
lastToken: Token;
|
|
91
|
+
nameToken?: Token;
|
|
92
|
+
} | undefined;
|
|
89
93
|
}
|
|
90
94
|
export type ExpressionNode = NormalExpressionNode | SpecialExpressionNode | NumberNode | StringNode;
|
|
91
95
|
export type ParseBinding = (tokens: TokenStream, position: number) => [number, BindingNode];
|
|
92
96
|
export type ParseBindings = (tokens: TokenStream, position: number) => [number, BindingNode[]];
|
|
93
97
|
export type ParseArgument = (tokens: TokenStream, position: number) => [number, ArgumentNode | ModifierNode];
|
|
94
98
|
export type ParseExpression = (tokens: TokenStream, position: number) => [number, ExpressionNode];
|
|
95
|
-
export type
|
|
99
|
+
export type ParseTokensUntilClosingBracket = (tokens: TokenStream, position: number) => [number, AstNode[]];
|
|
96
100
|
export type ParseToken = (tokens: TokenStream, position: number) => [number, AstNode];
|
|
97
101
|
export interface NumberNode extends GenericNode {
|
|
98
102
|
t: AstNodeType.Number;
|
|
@@ -114,17 +118,18 @@ export interface ReservedNameNode extends GenericNode {
|
|
|
114
118
|
t: AstNodeType.ReservedName;
|
|
115
119
|
v: ReservedName;
|
|
116
120
|
}
|
|
117
|
-
interface
|
|
121
|
+
interface CommonNormalExpressionNode extends GenericNode {
|
|
118
122
|
t: AstNodeType.NormalExpression;
|
|
119
|
-
p: AstNode[];
|
|
120
123
|
}
|
|
121
|
-
export interface
|
|
124
|
+
export interface CommonSpecialExpressionNode<T extends SpecialExpressionName> extends GenericNode {
|
|
125
|
+
t: AstNodeType.SpecialExpression;
|
|
126
|
+
n: T;
|
|
127
|
+
}
|
|
128
|
+
export interface NormalExpressionNodeWithName extends CommonNormalExpressionNode {
|
|
122
129
|
n: string;
|
|
123
|
-
e?: ExpressionNode;
|
|
124
130
|
}
|
|
125
|
-
interface NormalExpressionNodeExpression extends
|
|
126
|
-
n
|
|
127
|
-
e: ExpressionNode;
|
|
131
|
+
interface NormalExpressionNodeExpression extends CommonNormalExpressionNode {
|
|
132
|
+
n: undefined;
|
|
128
133
|
}
|
|
129
134
|
export type NormalExpressionNode = NormalExpressionNodeWithName | NormalExpressionNodeExpression;
|
|
130
135
|
export interface BindingNode extends GenericNode {
|
|
@@ -137,24 +142,14 @@ export interface ArgumentNode extends GenericNode {
|
|
|
137
142
|
n: string;
|
|
138
143
|
d?: AstNode;
|
|
139
144
|
}
|
|
140
|
-
export interface
|
|
141
|
-
t: AstNodeType.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
bs?: BindingNode[];
|
|
146
|
-
c?: Condition[];
|
|
147
|
-
f?: AstNode;
|
|
148
|
-
o?: FunctionOverload[];
|
|
149
|
-
l?: LoopBindingNode[];
|
|
150
|
-
m?: AstNode;
|
|
151
|
-
te?: AstNode;
|
|
152
|
-
e?: NameNode;
|
|
153
|
-
ce?: AstNode;
|
|
154
|
-
}
|
|
155
|
-
export type AstNode = NumberNode | StringNode | ReservedNameNode | NameNode | NormalExpressionNode | ModifierNode | SpecialExpressionNode;
|
|
145
|
+
export interface CommentNode extends GenericNode {
|
|
146
|
+
t: AstNodeType.Comment;
|
|
147
|
+
v: string;
|
|
148
|
+
}
|
|
149
|
+
export type AstNode = NumberNode | StringNode | ReservedNameNode | NameNode | CommentNode | NormalExpressionNode | ModifierNode | SpecialExpressionNode;
|
|
156
150
|
type AstBody = AstNode[];
|
|
157
151
|
export interface Ast {
|
|
158
152
|
b: AstBody;
|
|
153
|
+
hasDebugData: boolean;
|
|
159
154
|
}
|
|
160
155
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Ast, AstNode } from '../parser/interface';
|
|
2
|
+
declare const removeOptions: {
|
|
3
|
+
readonly recursivelyRemoveCommentNodes: typeof recursivelyRemoveCommentNodes;
|
|
4
|
+
readonly removeCommenNodesFromArray: typeof removeCommenNodesFromArray;
|
|
5
|
+
};
|
|
6
|
+
export type RemoveOptions = typeof removeOptions;
|
|
7
|
+
export declare function removeCommenNodes(ast: Ast): void;
|
|
8
|
+
declare function recursivelyRemoveCommentNodes(astNode: AstNode): void;
|
|
9
|
+
declare function removeCommenNodesFromArray(astNodes: AstNode[]): void;
|
|
10
|
+
export declare function withoutCommentNodes(astNodes: AstNode[]): (import("../parser/interface").NumberNode | import("../parser/interface").StringNode | import("../parser/interface").ReservedNameNode | import("../parser/interface").NameNode | import("../parser/interface").NormalExpressionNode | import("../parser/interface").ModifierNode | import("../builtin/specialExpressions/and").AndNode | import("../builtin/specialExpressions/comment").CommentExpressionNode | import("../builtin/specialExpressions/cond").CondNode | import("../builtin/specialExpressions/def").DefNode | import("../builtin/specialExpressions/functions").DefnNode | import("../builtin/specialExpressions/functions").DefnsNode | import("../builtin/specialExpressions/defs").DefsNode | import("../builtin/specialExpressions/do").DoNode | import("../builtin/specialExpressions/loops").DoSeqNode | import("../builtin/specialExpressions/loops").ForNode | import("../builtin/specialExpressions/functions").FnNode | import("../builtin/specialExpressions/if").IfNode | import("../builtin/specialExpressions/if-let").IfLetNode | import("../builtin/specialExpressions/if-not").IfNotNode | import("../builtin/specialExpressions/let").LetNode | import("../builtin/specialExpressions/loop").LoopNode | import("../builtin/specialExpressions/or").OrNode | import("../builtin/specialExpressions/recur").RecurNode | import("../builtin/specialExpressions/throw").ThrowNode | import("../builtin/specialExpressions/time").TimeNode | import("../builtin/specialExpressions/try").TryNode | import("../builtin/specialExpressions/when").WhenNode | import("../builtin/specialExpressions/when-first").WhenFirstNode | import("../builtin/specialExpressions/when-let").WhenLetNode | import("../builtin/specialExpressions/when-not").WhenNotNode | import("../builtin/specialExpressions/declared").DeclaredNode | import("../builtin/specialExpressions/qq").QqNode)[];
|
|
11
|
+
export {};
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TokenType } from '../constants/constants';
|
|
2
|
+
import type { MetaToken, Token, TokenStream, TokenizeParams } from './interface';
|
|
2
3
|
export declare function tokenize(input: string, params: TokenizeParams): TokenStream;
|
|
4
|
+
export declare function isMetaToken(token?: Token): token is MetaToken;
|
|
5
|
+
export declare function assertMetaToken(token?: Token): asserts token is MetaToken;
|
|
6
|
+
export declare function isCommentToken(token?: Token): token is Token<TokenType.Comment>;
|
|
7
|
+
export declare function assertCommentToken(token?: Token): asserts token is Token<TokenType.Comment>;
|
|
8
|
+
export declare function isNewLineToken(token?: Token): token is Token<TokenType.NewLine>;
|
|
9
|
+
export declare function assertNewLineToken(token?: Token): asserts token is Token<TokenType.NewLine>;
|
|
@@ -7,19 +7,29 @@ export interface SourceCodeInfo {
|
|
|
7
7
|
code?: string;
|
|
8
8
|
filePath?: string;
|
|
9
9
|
}
|
|
10
|
-
export
|
|
11
|
-
|
|
10
|
+
export type MetaToken = Token<TokenType.NewLine> | Token<TokenType.Comment>;
|
|
11
|
+
export interface MetaTokens {
|
|
12
|
+
leadingMetaTokens: MetaToken[];
|
|
13
|
+
inlineCommentToken: Token<TokenType.Comment> | null;
|
|
14
|
+
}
|
|
15
|
+
export interface TokenDebugData {
|
|
16
|
+
sourceCodeInfo: SourceCodeInfo;
|
|
17
|
+
metaTokens: MetaTokens;
|
|
18
|
+
}
|
|
19
|
+
export interface Token<T extends TokenType = TokenType> {
|
|
20
|
+
t: T;
|
|
12
21
|
v: string;
|
|
13
22
|
o?: Record<string, boolean>;
|
|
14
|
-
|
|
23
|
+
debugData: TokenDebugData | undefined;
|
|
15
24
|
}
|
|
16
25
|
export type TokenDescriptor = [length: number, token: Token | undefined];
|
|
17
|
-
export type Tokenizer = (input: string, position: number,
|
|
26
|
+
export type Tokenizer = (input: string, position: number, debugData?: TokenDebugData) => TokenDescriptor;
|
|
18
27
|
export interface TokenStream {
|
|
19
28
|
tokens: Token[];
|
|
29
|
+
hasDebugData: boolean;
|
|
20
30
|
filePath?: string;
|
|
21
31
|
}
|
|
22
32
|
export interface TokenizeParams {
|
|
23
|
-
debug
|
|
33
|
+
debug?: boolean;
|
|
24
34
|
filePath?: string;
|
|
25
35
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Tokenizer } from './interface';
|
|
2
|
-
export declare const nameCharacters = "[
|
|
2
|
+
export declare const nameCharacters = "[\\w@%^?=!$<>+*/-]";
|
|
3
|
+
export declare const tokenizeNewLine: Tokenizer;
|
|
4
|
+
export declare const tokenizeComment: Tokenizer;
|
|
3
5
|
export declare const skipWhiteSpace: Tokenizer;
|
|
4
|
-
export declare const skipComment: Tokenizer;
|
|
5
6
|
export declare const tokenizeLeftParen: Tokenizer;
|
|
6
7
|
export declare const tokenizeRightParen: Tokenizer;
|
|
7
8
|
export declare const tokenizeLeftBracket: Tokenizer;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { UnknownRecord } from '../interface';
|
|
2
|
-
import type {
|
|
2
|
+
import type { GenericNode } from '../parser/interface';
|
|
3
3
|
import type { SourceCodeInfo } from '../tokenizer/interface';
|
|
4
|
-
|
|
4
|
+
type Count = number | {
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function assertEvenNumberOfParams(node: GenericNode): void;
|
|
9
|
+
export declare function assertNumberOfParams(count: Count, node: GenericNode): void;
|
|
5
10
|
export declare function isNonUndefined<T>(value: T | undefined): value is T;
|
|
6
11
|
export declare function asNonUndefined<T>(value: T | undefined, sourceCodeInfo?: SourceCodeInfo): T;
|
|
7
12
|
export declare function assertNonUndefined<T>(value: T | undefined, sourceCodeInfo?: SourceCodeInfo): asserts value is T;
|
|
@@ -9,7 +14,4 @@ export declare function assertUnreachable(_: never): never;
|
|
|
9
14
|
export declare function isUnknownRecord(value: unknown): value is Record<string, unknown>;
|
|
10
15
|
export declare function assertUnknownRecord(value: unknown, sourceCodeInfo?: SourceCodeInfo): asserts value is UnknownRecord;
|
|
11
16
|
export declare function asUnknownRecord(value: unknown, sourceCodeInfo?: SourceCodeInfo): UnknownRecord;
|
|
12
|
-
export
|
|
13
|
-
min?: number;
|
|
14
|
-
max?: number;
|
|
15
|
-
}, node: NormalExpressionNode | SpecialExpressionNode): void;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Unparse } from './unparse';
|
|
2
|
+
export declare class UnparseOptions {
|
|
3
|
+
readonly unparse: Unparse;
|
|
4
|
+
readonly lineLength: number;
|
|
5
|
+
readonly col: number;
|
|
6
|
+
readonly inlined: boolean;
|
|
7
|
+
readonly locked: boolean;
|
|
8
|
+
readonly indent: string;
|
|
9
|
+
constructor(unparse: Unparse, lineLength: number, col?: number, inlined?: boolean, locked?: boolean);
|
|
10
|
+
inc(count?: number): UnparseOptions;
|
|
11
|
+
inline(): UnparseOptions;
|
|
12
|
+
noInline(): UnparseOptions;
|
|
13
|
+
lock(): UnparseOptions;
|
|
14
|
+
assertNotOverflown(value: string): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Ast, AstNode, NormalExpressionNode } from '../parser/interface';
|
|
2
|
+
import { UnparseOptions } from './UnparseOptions';
|
|
3
|
+
export type ExpressionWithParamsNode = Pick<NormalExpressionNode, 'debugData' | 'n' | 'p'>;
|
|
4
|
+
export type Unparse = (node: AstNode, options: UnparseOptions) => string;
|
|
5
|
+
export declare function unparseAst(ast: Ast, lineLength: number): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AstNode } from '../parser/interface';
|
|
2
|
+
import type { UnparseOptions } from './UnparseOptions';
|
|
3
|
+
export declare function unparseParams({ params, options, prefix, inline, endBracket, body, name, noMultilineInline, pairs, }: {
|
|
4
|
+
params: AstNode[];
|
|
5
|
+
prefix: string;
|
|
6
|
+
inline: boolean;
|
|
7
|
+
endBracket: string;
|
|
8
|
+
options: UnparseOptions;
|
|
9
|
+
body?: boolean;
|
|
10
|
+
name?: string;
|
|
11
|
+
noMultilineInline?: boolean;
|
|
12
|
+
pairs?: boolean;
|
|
13
|
+
}): string;
|
|
14
|
+
export declare function unparseSingleLineParams(params: AstNode[], options: UnparseOptions): string;
|
|
15
|
+
export declare function unparseSingleLinePairs(params: AstNode[], options: UnparseOptions): string;
|
|
16
|
+
export declare function unparseMultilineParams(params: AstNode[], options: UnparseOptions): string;
|
|
17
|
+
export declare function unparseMultilinePairwise(params: AstNode[], options: UnparseOptions): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IfNode } from '../../builtin/specialExpressions/if';
|
|
2
|
+
import type { IfNotNode } from '../../builtin/specialExpressions/if-not';
|
|
3
|
+
import type { WhenNode } from '../../builtin/specialExpressions/when';
|
|
4
|
+
import type { WhenNotNode } from '../../builtin/specialExpressions/when-not';
|
|
5
|
+
import type { UnparseOptions } from '../UnparseOptions';
|
|
6
|
+
export declare function unparseIfOrWhenLike(node: WhenNode | WhenNotNode | IfNode | IfNotNode, options: UnparseOptions): string;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MetaTokens } from '../tokenizer/interface';
|
|
2
|
+
import type { UnparseOptions } from './UnparseOptions';
|
|
3
|
+
export declare function ensureNewlineSeparator(a: string, b: string): string;
|
|
4
|
+
export declare function ensureSpaceSeparator(a: string, b: string): string;
|
|
5
|
+
export declare function applyMetaTokens(value: string | number, metaTokens: MetaTokens | undefined, options: UnparseOptions): string;
|
|
@@ -8,3 +8,4 @@ export declare function toNonNegativeInteger(num: number): number;
|
|
|
8
8
|
export declare function toAny(value: unknown): Any;
|
|
9
9
|
export declare function cloneColl<T extends Coll>(value: T): T;
|
|
10
10
|
export declare function createNativeJsFunction(fn: (...args: any[]) => unknown, name?: string): NativeJsFunction;
|
|
11
|
+
export declare function arrayToPairs<T>(arr: T[]): T[][];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const FUNCTION_SYMBOL = "
|
|
2
|
-
export declare const REGEXP_SYMBOL = "
|
|
1
|
+
export declare const FUNCTION_SYMBOL = "^^fn^^";
|
|
2
|
+
export declare const REGEXP_SYMBOL = "^^re^^";
|
package/dist/common/utils.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export declare function throttle<T extends (...args: any[]) => void>(func: T): (this: any, ...args: Parameters<T>) => void;
|
|
2
1
|
export declare function stringifyValue(value: unknown, html: boolean): string;
|
|
3
2
|
export declare function findAllOccurrences(input: string, pattern: RegExp): Set<string>;
|