From 92cc395e2eee1e0d7e051775a795e5f83e45c5e9 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sun, 9 Nov 2025 13:29:28 -0800 Subject: wip error handling --- src/lang/ts-lang/core/eval.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/lang/ts-lang/core/eval.ts') diff --git a/src/lang/ts-lang/core/eval.ts b/src/lang/ts-lang/core/eval.ts index ebc58e7..fa11f3c 100644 --- a/src/lang/ts-lang/core/eval.ts +++ b/src/lang/ts-lang/core/eval.ts @@ -1,3 +1,4 @@ +import { AnySoaRecord } from "dns"; import { BUILTIN_Add, BUILTIN_Arr, @@ -13,11 +14,15 @@ import { ToString } from "../util"; import { ASTNode, EmptyStackFrame, + KSError, MergeStackFrames, NodeType, StackFrame, } from "./common"; +export type EvalError = + KSError<`Eval error: ${Message}`>; + export type RECURSION_DEPTH_LIMIT = 7; export type SENTINEL_NO_BUILTIN = "__NO_BUILTIN__"; @@ -51,8 +56,6 @@ export type MapBuiltins< : SENTINEL_NO_BUILTIN : never; -export type EvalError = `Eval error: ${T}`; - export type FindInStack< Frame extends StackFrame, NameToFind @@ -168,8 +171,8 @@ export type GetEvaluatedChildren< } : never; -export type Evaluate = _Evaluate< - Node, - EmptyStackFrame, - [] ->; +export type Evaluate = Node extends ASTNode + ? _Evaluate + : Node extends KSError + ? E + : EvalError<`Cannot evaluate ${ToString}`>; -- cgit v1.2.3-70-g09d2