index.d.ts (2249B)
1 import { ASTNode } from "../ast/parse.js"; 2 import { Value } from "../value/index.js"; 3 export type LambdaExpressionParameter = { 4 name: string; 5 annotation?: Expression; 6 }; 7 export type ExpressionContent = { 8 type: "Block"; 9 value: Expression[]; 10 } | { 11 type: "Program"; 12 value: { 13 statements: Expression[]; 14 exports: string[]; 15 }; 16 } | { 17 type: "Array"; 18 value: Expression[]; 19 } | { 20 type: "Dict"; 21 value: [Expression, Expression][]; 22 } | { 23 type: "ResolvedSymbol"; 24 value: { 25 name: string; 26 offset: number; 27 }; 28 } | { 29 type: "Ternary"; 30 value: { 31 condition: Expression; 32 ifTrue: Expression; 33 ifFalse: Expression; 34 }; 35 } | { 36 type: "Assign"; 37 value: { 38 left: string; 39 right: Expression; 40 }; 41 } | { 42 type: "Call"; 43 value: { 44 fn: Expression; 45 args: Expression[]; 46 }; 47 } | { 48 type: "Lambda"; 49 value: { 50 name?: string; 51 parameters: LambdaExpressionParameter[]; 52 body: Expression; 53 }; 54 } | { 55 type: "Value"; 56 value: Value; 57 }; 58 export type Expression = ExpressionContent & { 59 ast: ASTNode; 60 }; 61 export declare const eArray: (anArray: Expression[]) => ExpressionContent; 62 export declare const eValue: (value: Value) => ExpressionContent; 63 export declare const eCall: (fn: Expression, args: Expression[]) => ExpressionContent; 64 export declare const eLambda: (name: string | undefined, parameters: LambdaExpressionParameter[], body: Expression) => ExpressionContent; 65 export declare const eDict: (aMap: [Expression, Expression][]) => ExpressionContent; 66 export declare const eResolvedSymbol: (name: string, offset: number) => ExpressionContent; 67 export declare const eBlock: (exprs: Expression[]) => ExpressionContent; 68 export declare const eProgram: (statements: Expression[], exports: string[]) => ExpressionContent; 69 export declare const eLetStatement: (left: string, right: Expression) => ExpressionContent; 70 export declare const eTernary: (condition: Expression, ifTrue: Expression, ifFalse: Expression) => ExpressionContent; 71 export declare const eVoid: () => ExpressionContent; 72 export declare function expressionToString(expression: Expression): string; 73 //# sourceMappingURL=index.d.ts.map