@mojir/lits 1.1.0 → 1.2.1-alpha.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 +6857 -5196
- 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/index.d.ts +1 -0
- 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 +14008 -5896
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +14008 -5895
- package/dist/index.js.map +1 -1
- package/dist/lits.iife.js +14008 -5895
- 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/index.d.ts +1 -0
- 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
|
@@ -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>;
|
|
@@ -52,7 +52,7 @@ export declare const categoryRecord: {
|
|
|
52
52
|
readonly Datatype: true;
|
|
53
53
|
};
|
|
54
54
|
export type Category = keyof typeof categoryRecord;
|
|
55
|
-
export declare const categories:
|
|
55
|
+
export declare const categories: Category[];
|
|
56
56
|
declare const dataTypes: readonly ["number", "string", "object", "array", "boolean", "function", "integer", "any", "nil", "collection", "sequence", "regexp", "never"];
|
|
57
57
|
export type DataType = typeof dataTypes[number];
|
|
58
58
|
export declare function isDataType(arg: string): arg is DataType;
|
|
@@ -5,12 +5,7 @@ export interface Example {
|
|
|
5
5
|
code: string;
|
|
6
6
|
context?: {
|
|
7
7
|
values?: Record<string, unknown>;
|
|
8
|
-
|
|
9
|
-
read: string;
|
|
10
|
-
}>;
|
|
11
|
-
jsFunctions?: Record<string, {
|
|
12
|
-
fn: string;
|
|
13
|
-
}>;
|
|
8
|
+
jsFunctions?: Record<string, string>;
|
|
14
9
|
};
|
|
15
10
|
}
|
|
16
11
|
export declare const examples: Example[];
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { ContextStack } from '../evaluator/ContextStack';
|
|
1
|
+
import type { Analysis } from '../analyze';
|
|
3
2
|
import type { Context } from '../evaluator/interface';
|
|
4
3
|
import type { Any } from '../interface';
|
|
5
4
|
import type { Ast, LitsFunction } from '../parser/interface';
|
|
6
|
-
import type { TokenStream } from '../tokenizer/interface';
|
|
5
|
+
import type { TokenStream, TokenizeParams } from '../tokenizer/interface';
|
|
7
6
|
import { Cache } from './Cache';
|
|
8
7
|
export interface LitsRuntimeInfo {
|
|
9
8
|
astCache: Cache | null;
|
|
@@ -25,12 +24,16 @@ export interface LitsParams {
|
|
|
25
24
|
lazyValues?: Record<string, LazyValue>;
|
|
26
25
|
jsFunctions?: Record<string, JsFunction>;
|
|
27
26
|
filePath?: string;
|
|
27
|
+
debug?: boolean;
|
|
28
28
|
}
|
|
29
29
|
interface LitsConfig {
|
|
30
30
|
initialCache?: Record<string, Ast>;
|
|
31
31
|
astCacheSize?: number | null;
|
|
32
32
|
debug?: boolean;
|
|
33
33
|
}
|
|
34
|
+
type FormatParams = LitsParams & {
|
|
35
|
+
lineLength?: number;
|
|
36
|
+
};
|
|
34
37
|
export declare class Lits {
|
|
35
38
|
private astCache;
|
|
36
39
|
private astCacheSize;
|
|
@@ -38,13 +41,13 @@ export declare class Lits {
|
|
|
38
41
|
constructor(config?: LitsConfig);
|
|
39
42
|
getRuntimeInfo(): LitsRuntimeInfo;
|
|
40
43
|
run(program: string, params?: LitsParams): unknown;
|
|
44
|
+
format(program: string, params?: FormatParams): string;
|
|
41
45
|
context(program: string, params?: LitsParams): Context;
|
|
42
|
-
analyze(program: string):
|
|
43
|
-
tokenize(program: string,
|
|
46
|
+
analyze(program: string, params?: LitsParams): Analysis;
|
|
47
|
+
tokenize(program: string, tokenizeParams?: TokenizeParams): TokenStream;
|
|
44
48
|
parse(tokenStream: TokenStream): Ast;
|
|
45
|
-
|
|
49
|
+
evaluate(ast: Ast, params: LitsParams): Any;
|
|
46
50
|
apply(fn: LitsFunction, fnParams: unknown[], params?: LitsParams): Any;
|
|
47
51
|
private generateAst;
|
|
48
52
|
}
|
|
49
|
-
export declare function createContextStack(params?: LitsParams): ContextStack;
|
|
50
53
|
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DefnNode, DefnsNode, FnNode } from '../../builtin/specialExpressions/functions';
|
|
2
|
+
import type { CalculatePossibleAstNodesHelper } from '.';
|
|
3
|
+
export declare const calculateDefnOutcomes: CalculatePossibleAstNodesHelper<DefnNode>;
|
|
4
|
+
export declare const calculateDefnsOutcomes: CalculatePossibleAstNodesHelper<DefnsNode>;
|
|
5
|
+
export declare const calculateFnOutcomes: CalculatePossibleAstNodesHelper<FnNode>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DoSeqNode, ForNode } from '../../builtin/specialExpressions/loops';
|
|
2
|
+
import type { CalculatePossibleAstNodesHelper } from '.';
|
|
3
|
+
export declare const calculateForOutcomes: CalculatePossibleAstNodesHelper<ForNode>;
|
|
4
|
+
export declare const calculateDoSeqOutcomes: CalculatePossibleAstNodesHelper<DoSeqNode>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Outcomes } from '..';
|
|
2
|
+
import type { ContextStack } from '../../evaluator/ContextStack';
|
|
3
|
+
import type { AstNode } from '../../parser/interface';
|
|
4
|
+
export type CalculatePossibleAstNodes = (astNode: AstNode, indentifiers?: string[]) => AstNode[];
|
|
5
|
+
export type CombinateAstNodes = (astNodes: AstNode[], indentifiers?: string[]) => AstNode[][];
|
|
6
|
+
export type IsAstComputable = (node: AstNode | AstNode[] | AstNode[][]) => boolean;
|
|
7
|
+
export type AddGlobaleIdentifier = (name: string) => void;
|
|
8
|
+
export interface CalculatePossibleAstNodesHelperOptions<T extends AstNode> {
|
|
9
|
+
astNode: T;
|
|
10
|
+
nilNode: AstNode;
|
|
11
|
+
calculatePossibleAstNodes: CalculatePossibleAstNodes;
|
|
12
|
+
combinateAstNodes: CombinateAstNodes;
|
|
13
|
+
isAstComputable: IsAstComputable;
|
|
14
|
+
addGlobalIdentifier: AddGlobaleIdentifier;
|
|
15
|
+
}
|
|
16
|
+
export type CalculatePossibleAstNodesHelper<T extends AstNode> = (options: CalculatePossibleAstNodesHelperOptions<T>) => AstNode[];
|
|
17
|
+
export declare function calculateOutcomes(contextStack: ContextStack, astNodes: AstNode[]): Outcomes | null;
|
|
18
|
+
export declare function calculateOutcomesInner(contextStack: ContextStack, astNodes: AstNode[]): Outcomes | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { AndNode } from '../../builtin/specialExpressions/and';
|
|
2
|
+
import type { CommentExpressionNode } from '../../builtin/specialExpressions/comment';
|
|
3
|
+
import type { CondNode } from '../../builtin/specialExpressions/cond';
|
|
4
|
+
import type { DeclaredNode } from '../../builtin/specialExpressions/declared';
|
|
5
|
+
import type { DefNode } from '../../builtin/specialExpressions/def';
|
|
6
|
+
import type { DefsNode } from '../../builtin/specialExpressions/defs';
|
|
7
|
+
import type { DoNode } from '../../builtin/specialExpressions/do';
|
|
8
|
+
import type { DefnNode, DefnsNode, FnNode } from '../../builtin/specialExpressions/functions';
|
|
9
|
+
import type { IfNode } from '../../builtin/specialExpressions/if';
|
|
10
|
+
import type { IfLetNode } from '../../builtin/specialExpressions/if-let';
|
|
11
|
+
import type { IfNotNode } from '../../builtin/specialExpressions/if-not';
|
|
12
|
+
import type { LetNode } from '../../builtin/specialExpressions/let';
|
|
13
|
+
import type { LoopNode } from '../../builtin/specialExpressions/loop';
|
|
14
|
+
import type { DoSeqNode, ForNode } from '../../builtin/specialExpressions/loops';
|
|
15
|
+
import type { OrNode } from '../../builtin/specialExpressions/or';
|
|
16
|
+
import type { QqNode } from '../../builtin/specialExpressions/qq';
|
|
17
|
+
import type { RecurNode } from '../../builtin/specialExpressions/recur';
|
|
18
|
+
import type { ThrowNode } from '../../builtin/specialExpressions/throw';
|
|
19
|
+
import type { TimeNode } from '../../builtin/specialExpressions/time';
|
|
20
|
+
import type { TryNode } from '../../builtin/specialExpressions/try';
|
|
21
|
+
import type { WhenNode } from '../../builtin/specialExpressions/when';
|
|
22
|
+
import type { WhenFirstNode } from '../../builtin/specialExpressions/when-first';
|
|
23
|
+
import type { WhenLetNode } from '../../builtin/specialExpressions/when-let';
|
|
24
|
+
import type { WhenNotNode } from '../../builtin/specialExpressions/when-not';
|
|
25
|
+
import type { AstNode } from '../../parser/interface';
|
|
26
|
+
import type { CalculatePossibleAstNodesHelperOptions } from '.';
|
|
27
|
+
export declare const specialExpressionCalculator: {
|
|
28
|
+
and: (astNode: AndNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
29
|
+
comment: (astNode: CommentExpressionNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
30
|
+
cond: (astNode: CondNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
31
|
+
'declared?': (astNode: DeclaredNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
32
|
+
defn: (astNode: DefnNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
33
|
+
def: (astNode: DefNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
34
|
+
defns: (astNode: DefnsNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
35
|
+
defs: (astNode: DefsNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
36
|
+
do: (astNode: DoNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
37
|
+
doseq: (astNode: DoSeqNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
38
|
+
fn: (astNode: FnNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
39
|
+
for: (astNode: ForNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
40
|
+
'if-let': (astNode: IfLetNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
41
|
+
if: (astNode: IfNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
42
|
+
'if-not': (astNode: IfNotNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
43
|
+
let: (astNode: LetNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
44
|
+
loop: (astNode: LoopNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
45
|
+
or: (astNode: OrNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
46
|
+
'??': (astNode: QqNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
47
|
+
recur: (astNode: RecurNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
48
|
+
'time!': (astNode: TimeNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
49
|
+
throw: (astNode: ThrowNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
50
|
+
try: (astNode: TryNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
51
|
+
'when-first': (astNode: WhenFirstNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
52
|
+
'when-let': (astNode: WhenLetNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
53
|
+
when: (astNode: WhenNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
54
|
+
'when-not': (astNode: WhenNotNode, helperOptions: Omit<CalculatePossibleAstNodesHelperOptions<AstNode>, "astNode">) => AstNode[];
|
|
55
|
+
};
|
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { LitsParams } from '../Lits/Lits';
|
|
2
|
+
import type { Builtin } from '../builtin/interface';
|
|
3
|
+
import { type ContextStack } from '../evaluator/ContextStack';
|
|
4
|
+
import type { Ast, AstNode } from '../parser/interface';
|
|
5
|
+
import type { Token } from '../tokenizer/interface';
|
|
6
|
+
export interface UnresolvedIdentifier {
|
|
7
|
+
symbol: string;
|
|
8
|
+
token: Token | undefined;
|
|
9
|
+
}
|
|
10
|
+
export type UnresolvedIdentifiers = Set<UnresolvedIdentifier>;
|
|
11
|
+
export type Outcomes = unknown[];
|
|
12
|
+
export interface Analysis {
|
|
13
|
+
unresolvedIdentifiers: UnresolvedIdentifiers;
|
|
14
|
+
outcomes: Outcomes | null;
|
|
15
|
+
}
|
|
16
|
+
export type FindUnresolvedIdentifiers = (ast: Ast | AstNode[], contextStack: ContextStack, builtin: Builtin) => UnresolvedIdentifiers;
|
|
17
|
+
export declare function analyze(ast: Ast, params: LitsParams): Analysis;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function joinAnalyzeResults(...results:
|
|
3
|
-
export declare function addAnalyzeResults(target:
|
|
1
|
+
import type { UnresolvedIdentifiers } from '.';
|
|
2
|
+
export declare function joinAnalyzeResults(...results: UnresolvedIdentifiers[]): UnresolvedIdentifiers;
|
|
3
|
+
export declare function addAnalyzeResults(target: UnresolvedIdentifiers, source: UnresolvedIdentifiers): void;
|
|
4
|
+
export declare function combinate<T>(arrays: T[][]): T[][];
|
|
@@ -1,5 +1,38 @@
|
|
|
1
|
-
import type { Builtin
|
|
2
|
-
|
|
1
|
+
import type { Builtin } from './interface';
|
|
2
|
+
declare const specialExpressions: {
|
|
3
|
+
readonly and: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/and").AndNode>;
|
|
4
|
+
readonly comment: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/comment").CommentExpressionNode>;
|
|
5
|
+
readonly cond: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/cond").CondNode>;
|
|
6
|
+
readonly def: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/def").DefNode>;
|
|
7
|
+
readonly defn: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/functions").DefnNode>;
|
|
8
|
+
readonly defns: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/functions").DefnsNode>;
|
|
9
|
+
readonly defs: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/defs").DefsNode>;
|
|
10
|
+
readonly do: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/do").DoNode>;
|
|
11
|
+
readonly doseq: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/loops").DoSeqNode>;
|
|
12
|
+
readonly for: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/loops").ForNode>;
|
|
13
|
+
readonly fn: import("./interface").BuiltinSpecialExpression<import("..").LitsFunction, import("./specialExpressions/functions").FnNode>;
|
|
14
|
+
readonly if: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/if").IfNode>;
|
|
15
|
+
readonly 'if-let': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/if-let").IfLetNode>;
|
|
16
|
+
readonly 'if-not': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/if-not").IfNotNode>;
|
|
17
|
+
readonly let: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/let").LetNode>;
|
|
18
|
+
readonly loop: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/loop").LoopNode>;
|
|
19
|
+
readonly or: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/or").OrNode>;
|
|
20
|
+
readonly recur: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/recur").RecurNode>;
|
|
21
|
+
readonly throw: import("./interface").BuiltinSpecialExpression<null, import("./specialExpressions/throw").ThrowNode>;
|
|
22
|
+
readonly 'time!': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/time").TimeNode>;
|
|
23
|
+
readonly try: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/try").TryNode>;
|
|
24
|
+
readonly when: import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/when").WhenNode>;
|
|
25
|
+
readonly 'when-first': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/when-first").WhenFirstNode>;
|
|
26
|
+
readonly 'when-let': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/when-let").WhenLetNode>;
|
|
27
|
+
readonly 'when-not': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/when-not").WhenNotNode>;
|
|
28
|
+
readonly 'declared?': import("./interface").BuiltinSpecialExpression<boolean, import("./specialExpressions/declared").DeclaredNode>;
|
|
29
|
+
readonly '??': import("./interface").BuiltinSpecialExpression<import("../interface").Any, import("./specialExpressions/qq").QqNode>;
|
|
30
|
+
};
|
|
31
|
+
export type SpecialExpressionName = keyof typeof specialExpressions;
|
|
32
|
+
export type BuiltinSpecialExpressions = typeof specialExpressions;
|
|
33
|
+
export type BuiltinSpecialExpression = typeof specialExpressions[SpecialExpressionName];
|
|
34
|
+
export type SpecialExpressionNode = ReturnType<typeof specialExpressions[SpecialExpressionName]['parse']>[1];
|
|
3
35
|
export declare const builtin: Builtin;
|
|
4
36
|
export declare const normalExpressionKeys: string[];
|
|
5
37
|
export declare const specialExpressionKeys: string[];
|
|
38
|
+
export {};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { FindUnresolvedIdentifiers, UnresolvedIdentifiers } from '../analyze';
|
|
2
|
+
import type { ContextStack } from '../evaluator/ContextStack';
|
|
1
3
|
import type { EvaluateAstNode, ExecuteFunction } from '../evaluator/interface';
|
|
2
|
-
import type { NormalExpressionNode, ParseArgument, ParseBinding, ParseBindings, ParseExpression, ParseToken, ParseTokens, SpecialExpressionNode } from '../parser/interface';
|
|
3
|
-
import type { SourceCodeInfo, TokenStream } from '../tokenizer/interface';
|
|
4
4
|
import type { Any, Arr } from '../interface';
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
5
|
+
import type { NormalExpressionNode, ParseArgument, ParseBinding, ParseBindings, ParseExpression, ParseToken, ParseTokensUntilClosingBracket } from '../parser/interface';
|
|
6
|
+
import type { SourceCodeInfo, Token, TokenStream } from '../tokenizer/interface';
|
|
7
|
+
import type { BuiltinSpecialExpressions, SpecialExpressionNode } from '.';
|
|
7
8
|
export type NormalExpressionEvaluator<T> = (params: Arr, sourceCodeInfo: SourceCodeInfo | undefined, contextStack: ContextStack, { executeFunction }: {
|
|
8
9
|
executeFunction: ExecuteFunction;
|
|
9
10
|
}) => T;
|
|
@@ -14,28 +15,26 @@ interface BuiltinNormalExpression<T> {
|
|
|
14
15
|
}
|
|
15
16
|
export interface ParserHelpers {
|
|
16
17
|
parseExpression: ParseExpression;
|
|
17
|
-
|
|
18
|
+
parseTokensUntilClosingBracket: ParseTokensUntilClosingBracket;
|
|
18
19
|
parseToken: ParseToken;
|
|
19
20
|
parseBinding: ParseBinding;
|
|
20
21
|
parseBindings: ParseBindings;
|
|
21
22
|
parseArgument: ParseArgument;
|
|
22
23
|
}
|
|
23
24
|
export type BuiltinNormalExpressions = Record<string, BuiltinNormalExpression<Any>>;
|
|
24
|
-
export type BuiltinSpecialExpressions = Record<string, BuiltinSpecialExpression<Any>>;
|
|
25
25
|
interface EvaluateHelpers {
|
|
26
26
|
evaluateAstNode: EvaluateAstNode;
|
|
27
27
|
builtin: Builtin;
|
|
28
28
|
}
|
|
29
|
-
export interface BuiltinSpecialExpression<T> {
|
|
30
|
-
parse: (tokenStream: TokenStream, position: number, parsers: ParserHelpers) => [number,
|
|
31
|
-
evaluate: (node:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
analyzeAst: AnalyzeAst;
|
|
29
|
+
export interface BuiltinSpecialExpression<T, N extends SpecialExpressionNode> {
|
|
30
|
+
parse: (tokenStream: TokenStream, position: number, firstToken: Token, parsers: ParserHelpers) => [number, N];
|
|
31
|
+
evaluate: (node: N, contextStack: ContextStack, helpers: EvaluateHelpers) => T;
|
|
32
|
+
findUnresolvedIdentifiers: (node: N, contextStack: ContextStack, params: {
|
|
33
|
+
findUnresolvedIdentifiers: FindUnresolvedIdentifiers;
|
|
35
34
|
builtin: Builtin;
|
|
36
|
-
|
|
35
|
+
evaluateAstNode: EvaluateAstNode;
|
|
36
|
+
}) => UnresolvedIdentifiers;
|
|
37
37
|
}
|
|
38
|
-
export type SpecialExpressionName = 'and' | 'block' | 'comment' | 'cond' | 'def' | 'defn' | 'defns' | 'defs' | 'do' | 'doseq' | 'fn' | 'for' | 'function' | 'if-let' | 'if-not' | 'if' | 'let' | 'loop' | 'or' | 'partial' | 'recur' | 'return-from' | 'return' | 'throw' | 'time!' | 'try' | 'when-first' | 'when-let' | 'when-not' | 'when' | 'declared?' | '??';
|
|
39
38
|
export interface Builtin {
|
|
40
39
|
normalExpressions: BuiltinNormalExpressions;
|
|
41
40
|
specialExpressions: BuiltinSpecialExpressions;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface AndNode extends CommonSpecialExpressionNode<'and'> {
|
|
5
|
+
}
|
|
6
|
+
export declare const andSpecialExpression: BuiltinSpecialExpression<Any, AndNode>;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
1
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
2
|
-
export
|
|
3
|
+
export interface CommentExpressionNode extends CommonSpecialExpressionNode<'comment'> {
|
|
4
|
+
}
|
|
5
|
+
export declare const commentSpecialExpression: BuiltinSpecialExpression<null, CommentExpressionNode>;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
-
import type {
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
3
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
4
|
-
export interface
|
|
5
|
-
t: AstNode;
|
|
6
|
-
f: AstNode;
|
|
4
|
+
export interface CondNode extends CommonSpecialExpressionNode<'cond'> {
|
|
7
5
|
}
|
|
8
|
-
export declare const condSpecialExpression: BuiltinSpecialExpression<Any>;
|
|
6
|
+
export declare const condSpecialExpression: BuiltinSpecialExpression<Any, CondNode>;
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
1
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
2
|
-
export
|
|
3
|
+
export interface DeclaredNode extends CommonSpecialExpressionNode<'declared?'> {
|
|
4
|
+
}
|
|
5
|
+
export declare const declaredSpecialExpression: BuiltinSpecialExpression<boolean, DeclaredNode>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
3
|
+
export interface DefNode extends CommonSpecialExpressionNode<'def'> {
|
|
4
|
+
}
|
|
5
|
+
export declare const defSpecialExpression: BuiltinSpecialExpression<null, DefNode>;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
3
|
+
export interface DefsNode extends CommonSpecialExpressionNode<'defs'> {
|
|
4
|
+
}
|
|
5
|
+
export declare const defsSpecialExpression: BuiltinSpecialExpression<null, DefsNode>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface DoNode extends CommonSpecialExpressionNode<'do'> {
|
|
5
|
+
}
|
|
6
|
+
export declare const doSpecialExpression: BuiltinSpecialExpression<Any, DoNode>;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import type { LitsFunction,
|
|
1
|
+
import type { AstNode, CommonSpecialExpressionNode, LitsFunction, NameNode } from '../../parser/interface';
|
|
2
2
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
3
|
import type { FunctionOverload } from '../utils';
|
|
4
|
-
export
|
|
4
|
+
export interface DefnNode extends CommonSpecialExpressionNode<'defn'> {
|
|
5
|
+
f: NameNode;
|
|
5
6
|
o: FunctionOverload[];
|
|
6
|
-
}
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
}
|
|
8
|
+
export interface DefnsNode extends CommonSpecialExpressionNode<'defns'> {
|
|
9
|
+
f: AstNode;
|
|
10
|
+
o: FunctionOverload[];
|
|
11
|
+
}
|
|
12
|
+
export interface FnNode extends CommonSpecialExpressionNode<'fn'> {
|
|
13
|
+
p: AstNode[];
|
|
14
|
+
o: FunctionOverload[];
|
|
15
|
+
}
|
|
16
|
+
export declare const defnSpecialExpression: BuiltinSpecialExpression<null, DefnNode>;
|
|
17
|
+
export declare const defnsSpecialExpression: BuiltinSpecialExpression<null, DefnsNode>;
|
|
18
|
+
export declare const fnSpecialExpression: BuiltinSpecialExpression<LitsFunction, FnNode>;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { BindingNode, CommonSpecialExpressionNode, NormalExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface IfLetNode extends CommonSpecialExpressionNode<'if-let'> {
|
|
5
|
+
b: BindingNode;
|
|
6
|
+
debugData: CommonSpecialExpressionNode<'let'>['debugData'] & ({
|
|
7
|
+
bindingArray: NormalExpressionNode;
|
|
8
|
+
} | undefined);
|
|
9
|
+
}
|
|
10
|
+
export declare const ifLetSpecialExpression: BuiltinSpecialExpression<Any, IfLetNode>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface IfNotNode extends CommonSpecialExpressionNode<'if-not'> {
|
|
5
|
+
}
|
|
6
|
+
export declare const ifNotSpecialExpression: BuiltinSpecialExpression<Any, IfNotNode>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface IfNode extends CommonSpecialExpressionNode<'if'> {
|
|
5
|
+
}
|
|
6
|
+
export declare const ifSpecialExpression: BuiltinSpecialExpression<Any, IfNode>;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { BindingNode, CommonSpecialExpressionNode, NormalExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface LetNode extends CommonSpecialExpressionNode<'let'> {
|
|
5
|
+
bs: BindingNode[];
|
|
6
|
+
debugData: CommonSpecialExpressionNode<'let'>['debugData'] & ({
|
|
7
|
+
bindingArray: NormalExpressionNode;
|
|
8
|
+
} | undefined);
|
|
9
|
+
}
|
|
10
|
+
export declare const letSpecialExpression: BuiltinSpecialExpression<Any, LetNode>;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { BindingNode, CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface LoopNode extends CommonSpecialExpressionNode<'loop'> {
|
|
5
|
+
bs: BindingNode[];
|
|
6
|
+
}
|
|
7
|
+
export declare const loopSpecialExpression: BuiltinSpecialExpression<Any, LoopNode>;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
-
import type { AstNode, BindingNode } from '../../parser/interface';
|
|
2
|
+
import type { AstNode, BindingNode, CommonSpecialExpressionNode } from '../../parser/interface';
|
|
3
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
4
|
+
export interface ForNode extends CommonSpecialExpressionNode<'for'> {
|
|
5
|
+
l: LoopBindingNode[];
|
|
6
|
+
}
|
|
7
|
+
export interface DoSeqNode extends CommonSpecialExpressionNode<'doseq'> {
|
|
8
|
+
l: LoopBindingNode[];
|
|
9
|
+
}
|
|
4
10
|
export interface LoopBindingNode {
|
|
5
11
|
b: BindingNode;
|
|
6
12
|
m: Array<'&let' | '&when' | '&while'>;
|
|
@@ -8,5 +14,5 @@ export interface LoopBindingNode {
|
|
|
8
14
|
wn?: AstNode;
|
|
9
15
|
we?: AstNode;
|
|
10
16
|
}
|
|
11
|
-
export declare const forSpecialExpression: BuiltinSpecialExpression<Any>;
|
|
12
|
-
export declare const doseqSpecialExpression: BuiltinSpecialExpression<null>;
|
|
17
|
+
export declare const forSpecialExpression: BuiltinSpecialExpression<Any, ForNode>;
|
|
18
|
+
export declare const doseqSpecialExpression: BuiltinSpecialExpression<null, DoSeqNode>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { Any } from '../../interface';
|
|
2
|
+
import type { CommonSpecialExpressionNode } from '../../parser/interface';
|
|
2
3
|
import type { BuiltinSpecialExpression } from '../interface';
|
|
3
|
-
export
|
|
4
|
+
export interface OrNode extends CommonSpecialExpressionNode<'or'> {
|
|
5
|
+
}
|
|
6
|
+
export declare const orSpecialExpression: BuiltinSpecialExpression<Any, OrNode>;
|