@mojir/dvala 0.0.1 → 0.0.2
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/LICENSE +1 -1
- package/README.md +1613 -4
- package/dist/bundler.esm.js +2 -0
- package/dist/bundler.esm.js.map +1 -0
- package/dist/bundler.js +2 -0
- package/dist/bundler.js.map +1 -0
- package/dist/cli/cli/src/cli.d.ts +2 -0
- package/dist/cli/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/cli/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/cli/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/cli/cli/src/colorizer.d.ts +939 -0
- package/dist/cli/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/cli/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/cli/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/cli/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/cli/cli.js +38614 -0
- package/dist/cli/common/createFormatter.d.ts +6 -0
- package/dist/cli/common/utils.d.ts +2 -0
- package/dist/cli/reference/api.d.ts +75 -0
- package/dist/cli/reference/datatype.d.ts +3 -0
- package/dist/cli/reference/effect.d.ts +3 -0
- package/dist/cli/reference/examples.d.ts +11 -0
- package/dist/cli/reference/index.d.ts +191 -0
- package/dist/cli/reference/shorthand.d.ts +3 -0
- package/dist/cli/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/cli/src/Dvala/Cache.d.ts +16 -0
- package/dist/cli/src/Dvala/Dvala.d.ts +68 -0
- package/dist/cli/src/allModules.d.ts +2 -0
- package/dist/cli/src/builtin/bindingNode.d.ts +11 -0
- package/dist/cli/src/builtin/core/array.d.ts +2 -0
- package/dist/cli/src/builtin/core/assertion.d.ts +2 -0
- package/dist/cli/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/cli/src/builtin/core/collection.d.ts +2 -0
- package/dist/cli/src/builtin/core/functional.d.ts +2 -0
- package/dist/cli/src/builtin/core/math.d.ts +2 -0
- package/dist/cli/src/builtin/core/meta.d.ts +3 -0
- package/dist/cli/src/builtin/core/misc.d.ts +2 -0
- package/dist/cli/src/builtin/core/object.d.ts +2 -0
- package/dist/cli/src/builtin/core/predicates.d.ts +2 -0
- package/dist/cli/src/builtin/core/regexp.d.ts +2 -0
- package/dist/cli/src/builtin/core/sequence.d.ts +2 -0
- package/dist/cli/src/builtin/core/string.d.ts +2 -0
- package/dist/cli/src/builtin/core/vector.d.ts +2 -0
- package/dist/cli/src/builtin/index.d.ts +13 -0
- package/dist/cli/src/builtin/interface.d.ts +113 -0
- package/dist/cli/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/cli/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/cli/src/builtin/modules/interface.d.ts +11 -0
- package/dist/cli/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/cli/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/cli/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/cli/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/cli/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/cli/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/cli/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/cli/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/cli/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/cli/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/cli/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/cli/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/cli/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/cli/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/cli/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/cli/src/builtin/utils.d.ts +6 -0
- package/dist/cli/src/bundler/index.d.ts +9 -0
- package/dist/cli/src/bundler/interface.d.ts +15 -0
- package/dist/cli/src/bundler.d.ts +3 -0
- package/dist/cli/src/cli.d.ts +2 -0
- package/dist/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/cli/src/colorizer.d.ts +939 -0
- package/dist/cli/src/constants/constants.d.ts +19 -0
- package/dist/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/cli/src/effects.d.ts +106 -0
- package/dist/cli/src/errors.d.ts +24 -0
- package/dist/cli/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/cli/src/evaluator/effectRef.d.ts +27 -0
- package/dist/cli/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/cli/src/evaluator/frames.d.ts +525 -0
- package/dist/cli/src/evaluator/interface.d.ts +14 -0
- package/dist/cli/src/evaluator/serialization.d.ts +45 -0
- package/dist/cli/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/cli/src/evaluator/step.d.ts +159 -0
- package/dist/cli/src/evaluator/suspension.d.ts +53 -0
- package/dist/cli/src/evaluator/trampoline.d.ts +119 -0
- package/dist/cli/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/cli/src/index.d.ts +18 -0
- package/dist/cli/src/initReferenceData.d.ts +1 -0
- package/dist/cli/src/interface.d.ts +7 -0
- package/dist/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/cli/src/parser/ParserContext.d.ts +20 -0
- package/dist/cli/src/parser/getPrecedence.d.ts +3 -0
- package/dist/cli/src/parser/helpers.d.ts +19 -0
- package/dist/cli/src/parser/index.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/cli/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/cli/src/parser/types.d.ts +129 -0
- package/dist/cli/src/symbolPatterns.d.ts +2 -0
- package/dist/cli/src/testFramework/index.d.ts +15 -0
- package/dist/cli/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/cli/src/tokenizer/operators.d.ts +12 -0
- package/dist/cli/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/cli/src/tokenizer/token.d.ts +84 -0
- package/dist/cli/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/cli/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/cli/src/transformer/index.d.ts +2 -0
- package/dist/cli/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/cli/src/typeGuards/array.d.ts +9 -0
- package/dist/cli/src/typeGuards/astNode.d.ts +19 -0
- package/dist/cli/src/typeGuards/dvala.d.ts +26 -0
- package/dist/cli/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/cli/src/typeGuards/index.d.ts +7 -0
- package/dist/cli/src/typeGuards/number.d.ts +66 -0
- package/dist/cli/src/typeGuards/string.d.ts +15 -0
- package/dist/cli/src/untokenizer/index.d.ts +2 -0
- package/dist/cli/src/utils/arity.d.ts +10 -0
- package/dist/cli/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/cli/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/cli/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/cli/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/cli/src/utils/getAssertionError.d.ts +3 -0
- package/dist/cli/src/utils/index.d.ts +14 -0
- package/dist/cli/src/utils/maybePromise.d.ts +54 -0
- package/dist/cli/src/utils/symbols.d.ts +3 -0
- package/dist/common/createFormatter.d.ts +6 -0
- package/dist/common/utils.d.ts +2 -0
- package/dist/debug.esm.js +2 -0
- package/dist/debug.esm.js.map +1 -0
- package/dist/debug.js +2 -0
- package/dist/debug.js.map +1 -0
- package/dist/dvala.iife.js +2 -0
- package/dist/dvala.iife.js.map +1 -0
- package/dist/full.esm.js +2 -0
- package/dist/full.esm.js.map +1 -0
- package/dist/full.js +2 -0
- package/dist/full.js.map +1 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/assertion.esm.js +2 -0
- package/dist/modules/assertion.esm.js.map +1 -0
- package/dist/modules/assertion.js +2 -0
- package/dist/modules/assertion.js.map +1 -0
- package/dist/modules/bitwise.esm.js +2 -0
- package/dist/modules/bitwise.esm.js.map +1 -0
- package/dist/modules/bitwise.js +2 -0
- package/dist/modules/bitwise.js.map +1 -0
- package/dist/modules/cli/src/cli.d.ts +2 -0
- package/dist/modules/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/modules/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/modules/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/modules/cli/src/colorizer.d.ts +939 -0
- package/dist/modules/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/modules/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/modules/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/modules/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/modules/collection.esm.js +2 -0
- package/dist/modules/collection.esm.js.map +1 -0
- package/dist/modules/collection.js +2 -0
- package/dist/modules/collection.js.map +1 -0
- package/dist/modules/common/createFormatter.d.ts +6 -0
- package/dist/modules/common/utils.d.ts +2 -0
- package/dist/modules/convert.esm.js +2 -0
- package/dist/modules/convert.esm.js.map +1 -0
- package/dist/modules/convert.js +2 -0
- package/dist/modules/convert.js.map +1 -0
- package/dist/modules/functional.esm.js +2 -0
- package/dist/modules/functional.esm.js.map +1 -0
- package/dist/modules/functional.js +2 -0
- package/dist/modules/functional.js.map +1 -0
- package/dist/modules/grid.esm.js +2 -0
- package/dist/modules/grid.esm.js.map +1 -0
- package/dist/modules/grid.js +2 -0
- package/dist/modules/grid.js.map +1 -0
- package/dist/modules/linear-algebra.esm.js +2 -0
- package/dist/modules/linear-algebra.esm.js.map +1 -0
- package/dist/modules/linear-algebra.js +2 -0
- package/dist/modules/linear-algebra.js.map +1 -0
- package/dist/modules/math.esm.js +2 -0
- package/dist/modules/math.esm.js.map +1 -0
- package/dist/modules/math.js +2 -0
- package/dist/modules/math.js.map +1 -0
- package/dist/modules/matrix.esm.js +2 -0
- package/dist/modules/matrix.esm.js.map +1 -0
- package/dist/modules/matrix.js +2 -0
- package/dist/modules/matrix.js.map +1 -0
- package/dist/modules/number-theory.esm.js +2 -0
- package/dist/modules/number-theory.esm.js.map +1 -0
- package/dist/modules/number-theory.js +2 -0
- package/dist/modules/number-theory.js.map +1 -0
- package/dist/modules/random.esm.js +2 -0
- package/dist/modules/random.esm.js.map +1 -0
- package/dist/modules/random.js +2 -0
- package/dist/modules/random.js.map +1 -0
- package/dist/modules/reference/api.d.ts +75 -0
- package/dist/modules/reference/datatype.d.ts +3 -0
- package/dist/modules/reference/effect.d.ts +3 -0
- package/dist/modules/reference/index.d.ts +191 -0
- package/dist/modules/reference/shorthand.d.ts +3 -0
- package/dist/modules/sequence.esm.js +2 -0
- package/dist/modules/sequence.esm.js.map +1 -0
- package/dist/modules/sequence.js +2 -0
- package/dist/modules/sequence.js.map +1 -0
- package/dist/modules/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/modules/src/Dvala/Cache.d.ts +16 -0
- package/dist/modules/src/Dvala/Dvala.d.ts +68 -0
- package/dist/modules/src/allModules.d.ts +2 -0
- package/dist/modules/src/builtin/bindingNode.d.ts +11 -0
- package/dist/modules/src/builtin/core/array.d.ts +2 -0
- package/dist/modules/src/builtin/core/assertion.d.ts +2 -0
- package/dist/modules/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/modules/src/builtin/core/collection.d.ts +2 -0
- package/dist/modules/src/builtin/core/functional.d.ts +2 -0
- package/dist/modules/src/builtin/core/math.d.ts +2 -0
- package/dist/modules/src/builtin/core/meta.d.ts +3 -0
- package/dist/modules/src/builtin/core/misc.d.ts +2 -0
- package/dist/modules/src/builtin/core/object.d.ts +2 -0
- package/dist/modules/src/builtin/core/predicates.d.ts +2 -0
- package/dist/modules/src/builtin/core/regexp.d.ts +2 -0
- package/dist/modules/src/builtin/core/sequence.d.ts +2 -0
- package/dist/modules/src/builtin/core/string.d.ts +2 -0
- package/dist/modules/src/builtin/core/vector.d.ts +2 -0
- package/dist/modules/src/builtin/index.d.ts +13 -0
- package/dist/modules/src/builtin/interface.d.ts +113 -0
- package/dist/modules/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/modules/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/modules/src/builtin/modules/interface.d.ts +11 -0
- package/dist/modules/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/diagonal.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/modules/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/modules/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/modules/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/modules/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/modules/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/modules/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/modules/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/modules/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/modules/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/modules/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/modules/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/modules/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/modules/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/modules/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/modules/src/builtin/utils.d.ts +6 -0
- package/dist/modules/src/bundler/index.d.ts +9 -0
- package/dist/modules/src/bundler/interface.d.ts +15 -0
- package/dist/modules/src/bundler.d.ts +3 -0
- package/dist/modules/src/constants/constants.d.ts +19 -0
- package/dist/modules/src/debug.d.ts +115 -0
- package/dist/modules/src/effects.d.ts +106 -0
- package/dist/modules/src/errors.d.ts +24 -0
- package/dist/modules/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/modules/src/evaluator/effectRef.d.ts +27 -0
- package/dist/modules/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/modules/src/evaluator/frames.d.ts +525 -0
- package/dist/modules/src/evaluator/interface.d.ts +14 -0
- package/dist/modules/src/evaluator/serialization.d.ts +45 -0
- package/dist/modules/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/modules/src/evaluator/step.d.ts +159 -0
- package/dist/modules/src/evaluator/suspension.d.ts +53 -0
- package/dist/modules/src/evaluator/trampoline.d.ts +119 -0
- package/dist/modules/src/full.d.ts +17 -0
- package/dist/modules/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/modules/src/index.d.ts +18 -0
- package/dist/modules/src/initReferenceData.d.ts +1 -0
- package/dist/modules/src/interface.d.ts +7 -0
- package/dist/modules/src/modules/assertion.d.ts +2 -0
- package/dist/modules/src/modules/bitwise.d.ts +2 -0
- package/dist/modules/src/modules/collection.d.ts +2 -0
- package/dist/modules/src/modules/convert.d.ts +2 -0
- package/dist/modules/src/modules/functional.d.ts +2 -0
- package/dist/modules/src/modules/grid.d.ts +2 -0
- package/dist/modules/src/modules/linear-algebra.d.ts +2 -0
- package/dist/modules/src/modules/math.d.ts +2 -0
- package/dist/modules/src/modules/matrix.d.ts +2 -0
- package/dist/modules/src/modules/number-theory.d.ts +2 -0
- package/dist/modules/src/modules/random.d.ts +2 -0
- package/dist/modules/src/modules/sequence.d.ts +2 -0
- package/dist/modules/src/modules/string.d.ts +2 -0
- package/dist/modules/src/modules/vector.d.ts +2 -0
- package/dist/modules/src/parser/ParserContext.d.ts +20 -0
- package/dist/modules/src/parser/getPrecedence.d.ts +3 -0
- package/dist/modules/src/parser/helpers.d.ts +19 -0
- package/dist/modules/src/parser/index.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/modules/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/modules/src/parser/types.d.ts +129 -0
- package/dist/modules/src/symbolPatterns.d.ts +2 -0
- package/dist/modules/src/testFramework/index.d.ts +15 -0
- package/dist/modules/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/modules/src/tokenizer/operators.d.ts +12 -0
- package/dist/modules/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/modules/src/tokenizer/token.d.ts +84 -0
- package/dist/modules/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/modules/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/modules/src/transformer/index.d.ts +2 -0
- package/dist/modules/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/modules/src/typeGuards/array.d.ts +9 -0
- package/dist/modules/src/typeGuards/astNode.d.ts +19 -0
- package/dist/modules/src/typeGuards/dvala.d.ts +26 -0
- package/dist/modules/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/modules/src/typeGuards/index.d.ts +7 -0
- package/dist/modules/src/typeGuards/number.d.ts +66 -0
- package/dist/modules/src/typeGuards/string.d.ts +15 -0
- package/dist/modules/src/untokenizer/index.d.ts +2 -0
- package/dist/modules/src/utils/arity.d.ts +10 -0
- package/dist/modules/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/modules/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/modules/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/modules/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/modules/src/utils/getAssertionError.d.ts +3 -0
- package/dist/modules/src/utils/index.d.ts +14 -0
- package/dist/modules/src/utils/maybePromise.d.ts +54 -0
- package/dist/modules/src/utils/symbols.d.ts +3 -0
- package/dist/modules/string.esm.js +2 -0
- package/dist/modules/string.esm.js.map +1 -0
- package/dist/modules/string.js +2 -0
- package/dist/modules/string.js.map +1 -0
- package/dist/modules/vector.esm.js +2 -0
- package/dist/modules/vector.esm.js.map +1 -0
- package/dist/modules/vector.js +2 -0
- package/dist/modules/vector.js.map +1 -0
- package/dist/reference/api.d.ts +75 -0
- package/dist/reference/datatype.d.ts +3 -0
- package/dist/reference/effect.d.ts +3 -0
- package/dist/reference/index.d.ts +191 -0
- package/dist/reference/shorthand.d.ts +3 -0
- package/dist/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/src/Dvala/Cache.d.ts +16 -0
- package/dist/src/Dvala/Dvala.d.ts +68 -0
- package/dist/src/allModules.d.ts +2 -0
- package/dist/src/builtin/bindingNode.d.ts +11 -0
- package/dist/src/builtin/core/array.d.ts +2 -0
- package/dist/src/builtin/core/assertion.d.ts +2 -0
- package/dist/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/src/builtin/core/collection.d.ts +2 -0
- package/dist/src/builtin/core/functional.d.ts +2 -0
- package/dist/src/builtin/core/math.d.ts +2 -0
- package/dist/src/builtin/core/meta.d.ts +3 -0
- package/dist/src/builtin/core/misc.d.ts +2 -0
- package/dist/src/builtin/core/object.d.ts +2 -0
- package/dist/src/builtin/core/predicates.d.ts +2 -0
- package/dist/src/builtin/core/regexp.d.ts +2 -0
- package/dist/src/builtin/core/sequence.d.ts +2 -0
- package/dist/src/builtin/core/string.d.ts +2 -0
- package/dist/src/builtin/core/vector.d.ts +2 -0
- package/dist/src/builtin/index.d.ts +13 -0
- package/dist/src/builtin/interface.d.ts +113 -0
- package/dist/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/src/builtin/modules/interface.d.ts +11 -0
- package/dist/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/src/builtin/modules/matrix/helpers/diagonal.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/src/builtin/utils.d.ts +6 -0
- package/dist/src/bundler/index.d.ts +9 -0
- package/dist/src/bundler/interface.d.ts +15 -0
- package/dist/src/bundler.d.ts +3 -0
- package/dist/src/constants/constants.d.ts +19 -0
- package/dist/src/debug.d.ts +115 -0
- package/dist/src/effects.d.ts +106 -0
- package/dist/src/errors.d.ts +24 -0
- package/dist/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/src/evaluator/effectRef.d.ts +27 -0
- package/dist/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/src/evaluator/frames.d.ts +525 -0
- package/dist/src/evaluator/interface.d.ts +14 -0
- package/dist/src/evaluator/serialization.d.ts +45 -0
- package/dist/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/src/evaluator/step.d.ts +159 -0
- package/dist/src/evaluator/suspension.d.ts +53 -0
- package/dist/src/evaluator/trampoline.d.ts +119 -0
- package/dist/src/full.d.ts +17 -0
- package/dist/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/src/index.d.ts +18 -0
- package/dist/src/initReferenceData.d.ts +1 -0
- package/dist/src/interface.d.ts +7 -0
- package/dist/src/modules/assertion.d.ts +2 -0
- package/dist/src/modules/bitwise.d.ts +2 -0
- package/dist/src/modules/collection.d.ts +2 -0
- package/dist/src/modules/convert.d.ts +2 -0
- package/dist/src/modules/functional.d.ts +2 -0
- package/dist/src/modules/grid.d.ts +2 -0
- package/dist/src/modules/linear-algebra.d.ts +2 -0
- package/dist/src/modules/math.d.ts +2 -0
- package/dist/src/modules/matrix.d.ts +2 -0
- package/dist/src/modules/number-theory.d.ts +2 -0
- package/dist/src/modules/random.d.ts +2 -0
- package/dist/src/modules/sequence.d.ts +2 -0
- package/dist/src/modules/string.d.ts +2 -0
- package/dist/src/modules/vector.d.ts +2 -0
- package/dist/src/parser/ParserContext.d.ts +20 -0
- package/dist/src/parser/getPrecedence.d.ts +3 -0
- package/dist/src/parser/helpers.d.ts +19 -0
- package/dist/src/parser/index.d.ts +5 -0
- package/dist/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/src/parser/types.d.ts +129 -0
- package/dist/src/symbolPatterns.d.ts +2 -0
- package/dist/src/testFramework/index.d.ts +15 -0
- package/dist/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/src/tokenizer/operators.d.ts +12 -0
- package/dist/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/src/tokenizer/token.d.ts +84 -0
- package/dist/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/src/transformer/index.d.ts +2 -0
- package/dist/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/src/typeGuards/array.d.ts +9 -0
- package/dist/src/typeGuards/astNode.d.ts +19 -0
- package/dist/src/typeGuards/dvala.d.ts +26 -0
- package/dist/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/src/typeGuards/index.d.ts +7 -0
- package/dist/src/typeGuards/number.d.ts +66 -0
- package/dist/src/typeGuards/string.d.ts +15 -0
- package/dist/src/untokenizer/index.d.ts +2 -0
- package/dist/src/utils/arity.d.ts +10 -0
- package/dist/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/src/utils/getAssertionError.d.ts +3 -0
- package/dist/src/utils/index.d.ts +14 -0
- package/dist/src/utils/maybePromise.d.ts +54 -0
- package/dist/src/utils/symbols.d.ts +3 -0
- package/dist/testFramework.esm.js +2 -0
- package/dist/testFramework.esm.js.map +1 -0
- package/dist/testFramework.js +2 -0
- package/dist/testFramework.js.map +1 -0
- package/package.json +144 -16
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frame types for the trampoline evaluator.
|
|
3
|
+
*
|
|
4
|
+
* Each frame type represents a continuation — "what to do with the result of a
|
|
5
|
+
* sub-evaluation." When the trampoline evaluates a sub-expression, it pushes a
|
|
6
|
+
* frame onto the continuation stack (k). When the sub-expression produces a
|
|
7
|
+
* value, the trampoline pops the frame and calls `applyFrame(frame, value, k)`
|
|
8
|
+
* to determine the next step.
|
|
9
|
+
*
|
|
10
|
+
* All frame types are plain serializable objects — no functions, no closures.
|
|
11
|
+
* This enables continuation serialization in Phase 4 (suspension & resume).
|
|
12
|
+
*
|
|
13
|
+
* The `env` field uses `ContextStack` for Phase 1 runtime use. In Phase 4,
|
|
14
|
+
* this will be replaced with a serializable representation (the `Context[]`
|
|
15
|
+
* chain without host bindings, which are re-injected on resume).
|
|
16
|
+
*/
|
|
17
|
+
import type { Any, Arr, Obj } from '../interface';
|
|
18
|
+
import type { AstNode, BindingNode, BindingTarget, NormalExpressionNode, UserDefinedFunction } from '../parser/types';
|
|
19
|
+
import type { MatchCase } from '../builtin/specialExpressions/match';
|
|
20
|
+
import type { LoopBindingNode } from '../builtin/specialExpressions/loops';
|
|
21
|
+
import type { SourceCodeInfo } from '../tokenizer/token';
|
|
22
|
+
import type { ContextStack } from './ContextStack';
|
|
23
|
+
import type { Context } from './interface';
|
|
24
|
+
/**
|
|
25
|
+
* Evaluate a sequence of AST nodes in order, returning the last value.
|
|
26
|
+
*
|
|
27
|
+
* Used by: `do...end` (block), top-level program evaluation, function body.
|
|
28
|
+
*
|
|
29
|
+
* The trampoline evaluates `nodes[index]`. When the value comes back it
|
|
30
|
+
* advances `index`. When all nodes are done, the last value propagates up.
|
|
31
|
+
*/
|
|
32
|
+
export interface SequenceFrame {
|
|
33
|
+
type: 'Sequence';
|
|
34
|
+
nodes: AstNode[];
|
|
35
|
+
index: number;
|
|
36
|
+
env: ContextStack;
|
|
37
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Binary conditional branch — used by both `if` and `unless`.
|
|
41
|
+
*
|
|
42
|
+
* Pushed when the condition expression is being evaluated. When the condition
|
|
43
|
+
* value arrives, the trampoline picks `thenNode` or `elseNode` (or returns
|
|
44
|
+
* `null` if there is no else branch). `inverted` flips the test for `unless`.
|
|
45
|
+
*/
|
|
46
|
+
export interface IfBranchFrame {
|
|
47
|
+
type: 'IfBranch';
|
|
48
|
+
thenNode: AstNode;
|
|
49
|
+
elseNode: AstNode | undefined;
|
|
50
|
+
inverted: boolean;
|
|
51
|
+
env: ContextStack;
|
|
52
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Multi-way conditional (`cond`).
|
|
56
|
+
*
|
|
57
|
+
* When `phase` is `'test'`: a test expression is being evaluated. If truthy,
|
|
58
|
+
* transition to body evaluation. If falsy, advance to the next case.
|
|
59
|
+
* When `phase` is `'body'`: the body expression is being evaluated. The
|
|
60
|
+
* resulting value propagates up.
|
|
61
|
+
*/
|
|
62
|
+
export interface CondFrame {
|
|
63
|
+
type: 'Cond';
|
|
64
|
+
phase: 'test' | 'body';
|
|
65
|
+
cases: [AstNode, AstNode][];
|
|
66
|
+
index: number;
|
|
67
|
+
env: ContextStack;
|
|
68
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Pattern matching (`match`).
|
|
72
|
+
*
|
|
73
|
+
* Phase `'matchValue'`: the match-value expression is being evaluated.
|
|
74
|
+
* Phase `'guard'`: a pattern matched and boundary bindings were created;
|
|
75
|
+
* the guard expression is being evaluated.
|
|
76
|
+
* Phase `'body'`: the body for the matched case is being evaluated.
|
|
77
|
+
*
|
|
78
|
+
* `matchValue` is `null` during the `'matchValue'` phase and set once known.
|
|
79
|
+
* `bindings` holds the names captured by `tryMatch` (empty until a pattern
|
|
80
|
+
* matches).
|
|
81
|
+
*/
|
|
82
|
+
export interface MatchFrame {
|
|
83
|
+
type: 'Match';
|
|
84
|
+
phase: 'matchValue' | 'guard' | 'body';
|
|
85
|
+
matchValue: Any | null;
|
|
86
|
+
cases: MatchCase[];
|
|
87
|
+
index: number;
|
|
88
|
+
bindings: Record<string, Any>;
|
|
89
|
+
env: ContextStack;
|
|
90
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Short-circuit `&&` — evaluates nodes sequentially, returning the first
|
|
94
|
+
* falsy value or the last value if all are truthy.
|
|
95
|
+
*/
|
|
96
|
+
export interface AndFrame {
|
|
97
|
+
type: 'And';
|
|
98
|
+
nodes: AstNode[];
|
|
99
|
+
index: number;
|
|
100
|
+
env: ContextStack;
|
|
101
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Short-circuit `||` — evaluates nodes sequentially, returning the first
|
|
105
|
+
* truthy value or the last value if all are falsy.
|
|
106
|
+
*/
|
|
107
|
+
export interface OrFrame {
|
|
108
|
+
type: 'Or';
|
|
109
|
+
nodes: AstNode[];
|
|
110
|
+
index: number;
|
|
111
|
+
env: ContextStack;
|
|
112
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Nullish coalescing `??` — evaluates nodes sequentially, returning the
|
|
116
|
+
* first non-null value. Undefined user-defined symbols are treated as null
|
|
117
|
+
* (skipped without throwing `UndefinedSymbolError`).
|
|
118
|
+
*/
|
|
119
|
+
export interface QqFrame {
|
|
120
|
+
type: 'Qq';
|
|
121
|
+
nodes: AstNode[];
|
|
122
|
+
index: number;
|
|
123
|
+
env: ContextStack;
|
|
124
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Array literal construction (`[]` / `array`).
|
|
128
|
+
*
|
|
129
|
+
* Evaluates elements sequentially. Spread nodes (`...expr`) evaluate the
|
|
130
|
+
* inner expression and flatten the resulting array into `result`.
|
|
131
|
+
*/
|
|
132
|
+
export interface ArrayBuildFrame {
|
|
133
|
+
type: 'ArrayBuild';
|
|
134
|
+
nodes: AstNode[];
|
|
135
|
+
index: number;
|
|
136
|
+
result: Arr;
|
|
137
|
+
isSpread: boolean;
|
|
138
|
+
env: ContextStack;
|
|
139
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Object literal construction (`{}` / `object`).
|
|
143
|
+
*
|
|
144
|
+
* Evaluates key-value pairs sequentially. For normal entries, evaluates
|
|
145
|
+
* key then value (stepping by 2). For spread entries, evaluates the spread
|
|
146
|
+
* expression and merges the result into `result`.
|
|
147
|
+
*
|
|
148
|
+
* `currentKey` holds the evaluated key string when we're between key and
|
|
149
|
+
* value evaluation (null otherwise).
|
|
150
|
+
*/
|
|
151
|
+
export interface ObjectBuildFrame {
|
|
152
|
+
type: 'ObjectBuild';
|
|
153
|
+
nodes: AstNode[];
|
|
154
|
+
index: number;
|
|
155
|
+
result: Obj;
|
|
156
|
+
currentKey: string | null;
|
|
157
|
+
isSpread: boolean;
|
|
158
|
+
env: ContextStack;
|
|
159
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* `let` binding — evaluate the value expression, then process destructuring.
|
|
163
|
+
*
|
|
164
|
+
* The trampoline evaluates the value expression. When it completes,
|
|
165
|
+
* `applyFrame` processes `evaluateBindingNodeValues(target, value, ...)`
|
|
166
|
+
* and adds the resulting bindings to the context. The result of the let
|
|
167
|
+
* expression is the evaluated value itself.
|
|
168
|
+
*/
|
|
169
|
+
export interface LetBindFrame {
|
|
170
|
+
type: 'LetBind';
|
|
171
|
+
target: BindingTarget;
|
|
172
|
+
env: ContextStack;
|
|
173
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* `loop` binding setup — evaluate binding values sequentially.
|
|
177
|
+
*
|
|
178
|
+
* Each binding's value expression is evaluated in a context that includes
|
|
179
|
+
* all previously bound values (bindings can depend on earlier bindings).
|
|
180
|
+
*
|
|
181
|
+
* Phase `'value'`: evaluating a binding's value expression.
|
|
182
|
+
* Phase `'destructure'`: value evaluated, processing destructuring defaults.
|
|
183
|
+
*/
|
|
184
|
+
export interface LoopBindFrame {
|
|
185
|
+
type: 'LoopBind';
|
|
186
|
+
phase: 'value' | 'destructure';
|
|
187
|
+
bindingNodes: BindingNode[];
|
|
188
|
+
index: number;
|
|
189
|
+
context: Context;
|
|
190
|
+
body: AstNode;
|
|
191
|
+
env: ContextStack;
|
|
192
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* `loop` body iteration — evaluate body with `recur` handling.
|
|
196
|
+
*
|
|
197
|
+
* In the trampoline, `recur` does NOT throw `RecurSignal`. Instead, when
|
|
198
|
+
* recur args are collected, the trampoline pops back to this frame, rebinds
|
|
199
|
+
* the variables, and re-evaluates the body. This gives proper tail-call
|
|
200
|
+
* elimination without stack growth.
|
|
201
|
+
*/
|
|
202
|
+
export interface LoopIterateFrame {
|
|
203
|
+
type: 'LoopIterate';
|
|
204
|
+
bindingNodes: BindingNode[];
|
|
205
|
+
bindingContext: Context;
|
|
206
|
+
body: AstNode;
|
|
207
|
+
env: ContextStack;
|
|
208
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* State for a single binding level in a `for`/`doseq` loop.
|
|
212
|
+
*
|
|
213
|
+
* Each level iterates over a `collection`. Inner-level collections are
|
|
214
|
+
* re-evaluated when outer-level bindings change.
|
|
215
|
+
*/
|
|
216
|
+
export interface ForBindingLevelState {
|
|
217
|
+
collection: Arr;
|
|
218
|
+
index: number;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* `for`/`doseq` multi-binding nested iteration.
|
|
222
|
+
*
|
|
223
|
+
* Multi-level nested loop with optional let-bindings, when-guards, and
|
|
224
|
+
* while-guards at each binding level. `for` collects results; `doseq`
|
|
225
|
+
* discards them (side-effects only).
|
|
226
|
+
*
|
|
227
|
+
* Phase describes what sub-expression is currently being evaluated:
|
|
228
|
+
* - `'evalCollection'`: evaluating the collection expression for a level
|
|
229
|
+
* - `'evalElement'`: processing destructuring for the current element
|
|
230
|
+
* - `'evalLet'`: evaluating let-bindings at the current level
|
|
231
|
+
* - `'evalWhen'`: evaluating the when-guard
|
|
232
|
+
* - `'evalWhile'`: evaluating the while-guard
|
|
233
|
+
* - `'evalBody'`: evaluating the loop body
|
|
234
|
+
*/
|
|
235
|
+
export interface ForLoopFrame {
|
|
236
|
+
type: 'ForLoop';
|
|
237
|
+
returnResult: boolean;
|
|
238
|
+
bindingNodes: LoopBindingNode[];
|
|
239
|
+
body: AstNode;
|
|
240
|
+
result: Arr;
|
|
241
|
+
phase: 'evalCollection' | 'evalElement' | 'evalLet' | 'evalWhen' | 'evalWhile' | 'evalBody';
|
|
242
|
+
bindingLevel: number;
|
|
243
|
+
levelStates: ForBindingLevelState[];
|
|
244
|
+
context: Context;
|
|
245
|
+
env: ContextStack;
|
|
246
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* `throw` — evaluate the expression, then throw `UserDefinedError`.
|
|
250
|
+
*
|
|
251
|
+
* The trampoline evaluates the throw's argument expression. When the value
|
|
252
|
+
* arrives, `applyFrame` asserts it's a non-empty string and throws.
|
|
253
|
+
*/
|
|
254
|
+
export interface ThrowFrame {
|
|
255
|
+
type: 'Throw';
|
|
256
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* `perform` argument collection — evaluate effect ref + args sequentially.
|
|
260
|
+
*
|
|
261
|
+
* First evaluates the effect expression (index 0) to get an EffectRef.
|
|
262
|
+
* Then evaluates each argument expression. When all are collected, produces
|
|
263
|
+
* a `PerformStep` with the resolved EffectRef and argument values.
|
|
264
|
+
*/
|
|
265
|
+
export interface PerformArgsFrame {
|
|
266
|
+
type: 'PerformArgs';
|
|
267
|
+
argNodes: AstNode[];
|
|
268
|
+
index: number;
|
|
269
|
+
params: Arr;
|
|
270
|
+
env: ContextStack;
|
|
271
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* `recur` — evaluate parameters sequentially, then signal tail-call.
|
|
275
|
+
*
|
|
276
|
+
* In the trampoline, instead of throwing `RecurSignal`, the completed
|
|
277
|
+
* recur frame pops the continuation stack to the nearest `LoopIterateFrame`
|
|
278
|
+
* or `FnBodyFrame`, rebinds parameters, and re-enters the loop/body.
|
|
279
|
+
* This eliminates the exception-based control flow used by the recursive
|
|
280
|
+
* evaluator.
|
|
281
|
+
*/
|
|
282
|
+
export interface RecurFrame {
|
|
283
|
+
type: 'Recur';
|
|
284
|
+
nodes: AstNode[];
|
|
285
|
+
index: number;
|
|
286
|
+
params: Arr;
|
|
287
|
+
env: ContextStack;
|
|
288
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* `try/catch` exception boundary.
|
|
292
|
+
*
|
|
293
|
+
* Pushed around the try body evaluation. If an error is thrown during
|
|
294
|
+
* sub-evaluation, the trampoline pops frames up to this one and evaluates
|
|
295
|
+
* the catch body in a new context with the error bound to `errorSymbol`.
|
|
296
|
+
*
|
|
297
|
+
* `TryCatchFrame` only catches errors — it ignores `perform` (effects).
|
|
298
|
+
* `TryWithFrame` only handles effects — it ignores errors.
|
|
299
|
+
* The two frame types are independent and stack correctly.
|
|
300
|
+
*/
|
|
301
|
+
export interface TryCatchFrame {
|
|
302
|
+
type: 'TryCatch';
|
|
303
|
+
errorSymbol: string | null;
|
|
304
|
+
catchNode: AstNode;
|
|
305
|
+
env: ContextStack;
|
|
306
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* `try/with` effect handler boundary.
|
|
310
|
+
*
|
|
311
|
+
* Pushed around the try body evaluation. When `perform` is called, the
|
|
312
|
+
* trampoline searches the continuation stack for a matching `TryWithFrame`.
|
|
313
|
+
* The delimited continuation between `perform` and this frame is captured.
|
|
314
|
+
*
|
|
315
|
+
* Handlers are stored as evaluated `[EffectRef, handlerFn AstNode]` pairs.
|
|
316
|
+
* The effect expressions are evaluated eagerly when entering the `try/with`
|
|
317
|
+
* scope (i.e., when the frame is created) via `evaluateNodeRecursive`.
|
|
318
|
+
* This ensures handler matching is deterministic and doesn't depend on
|
|
319
|
+
* state changes inside the try body.
|
|
320
|
+
*/
|
|
321
|
+
export interface TryWithFrame {
|
|
322
|
+
type: 'TryWith';
|
|
323
|
+
handlers: EvaluatedWithHandler[];
|
|
324
|
+
env: ContextStack;
|
|
325
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* A pre-evaluated effect handler pair for `TryWithFrame`.
|
|
329
|
+
* `effectRef` is the resolved EffectRef value.
|
|
330
|
+
* `handlerNode` is the AST node for the handler function expression.
|
|
331
|
+
*/
|
|
332
|
+
export interface EvaluatedWithHandler {
|
|
333
|
+
effectRef: Any;
|
|
334
|
+
handlerNode: AstNode;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Bridges a handler's return value back to the perform call site.
|
|
338
|
+
*
|
|
339
|
+
* When `perform` matches a `TryWithFrame`, the handler runs with a continuation
|
|
340
|
+
* that excludes the current try/with/catch scope (so errors and effects from
|
|
341
|
+
* the handler propagate upward per P&P semantics). However, the handler's
|
|
342
|
+
* return value needs to resume the body at the perform call site with the
|
|
343
|
+
* TryWithFrame still on the stack (so subsequent performs in the same body
|
|
344
|
+
* can still match handlers).
|
|
345
|
+
*
|
|
346
|
+
* `EffectResumeFrame` is placed below the handler's function frames in the
|
|
347
|
+
* continuation stack. When the handler returns a value, this frame replaces
|
|
348
|
+
* the continuation with `resumeK` — the original continuation from the
|
|
349
|
+
* perform call site, with the TryWithFrame intact.
|
|
350
|
+
*
|
|
351
|
+
* Error/effect semantics:
|
|
352
|
+
* - Handler RETURNS value → EffectResumeFrame redirects to resumeK → body continues
|
|
353
|
+
* - Handler THROWS error → error walks past EffectResumeFrame to outer_k → correct
|
|
354
|
+
* - Handler PERFORMS effect → effect walks past EffectResumeFrame to outer_k → correct
|
|
355
|
+
*/
|
|
356
|
+
export interface EffectResumeFrame {
|
|
357
|
+
type: 'EffectResume';
|
|
358
|
+
resumeK: ContinuationStack;
|
|
359
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Resume a `parallel(...)` expression after suspension.
|
|
363
|
+
*
|
|
364
|
+
* When a `parallel` has some branches that suspended and some that completed,
|
|
365
|
+
* the continuation is suspended with this frame at the top. On resume, the
|
|
366
|
+
* host provides a value for the first pending suspended branch.
|
|
367
|
+
*
|
|
368
|
+
* `applyFrame` converts this to a `ParallelResumeStep` so that `tick` can
|
|
369
|
+
* handle it with access to `handlers` and `signal`.
|
|
370
|
+
*
|
|
371
|
+
* Fields:
|
|
372
|
+
* - `branchCount`: total number of branches (for ordered result array)
|
|
373
|
+
* - `completedBranches`: branches that already finished `{ index, value }`
|
|
374
|
+
* - `suspendedBranches`: remaining suspended branches `{ index, blob, meta? }`
|
|
375
|
+
* The first entry is the one being resumed — its blob is NOT used because
|
|
376
|
+
* the value was already provided by the host. Subsequent entries are pending.
|
|
377
|
+
*/
|
|
378
|
+
export interface ParallelResumeFrame {
|
|
379
|
+
type: 'ParallelResume';
|
|
380
|
+
branchCount: number;
|
|
381
|
+
completedBranches: Array<{
|
|
382
|
+
index: number;
|
|
383
|
+
value: Any;
|
|
384
|
+
}>;
|
|
385
|
+
suspendedBranches: Array<{
|
|
386
|
+
index: number;
|
|
387
|
+
blob: string;
|
|
388
|
+
meta?: Any;
|
|
389
|
+
}>;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Evaluate function call arguments.
|
|
393
|
+
*
|
|
394
|
+
* Evaluates argument expressions sequentially, collecting results into
|
|
395
|
+
* `params`. Handles spread nodes (flatten arrays) and placeholder `_`
|
|
396
|
+
* nodes (record indices for partial application).
|
|
397
|
+
*
|
|
398
|
+
* `fnNode` is the first element of the `NormalExpressionNode` payload —
|
|
399
|
+
* either a symbol node (for named calls) or an expression node (for
|
|
400
|
+
* anonymous calls like `((fn [x] x) 5)`).
|
|
401
|
+
*
|
|
402
|
+
* When all arguments are collected:
|
|
403
|
+
* - Named builtin symbol → dispatch to builtin's evaluate
|
|
404
|
+
* - Named user symbol → look up value, push `CallFnFrame`, dispatch
|
|
405
|
+
* - Anonymous expression → push `CallFnFrame`, evaluate function expression
|
|
406
|
+
*/
|
|
407
|
+
export interface EvalArgsFrame {
|
|
408
|
+
type: 'EvalArgs';
|
|
409
|
+
node: NormalExpressionNode;
|
|
410
|
+
index: number;
|
|
411
|
+
params: Arr;
|
|
412
|
+
placeholders: number[];
|
|
413
|
+
env: ContextStack;
|
|
414
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Dispatch a function call after the function value has been resolved.
|
|
418
|
+
*
|
|
419
|
+
* Pushed when an anonymous function expression needs to be evaluated before
|
|
420
|
+
* calling, or when a compound function type (Comp, Juxt, etc.) needs to
|
|
421
|
+
* chain sub-calls. Receives the resolved function value and dispatches
|
|
422
|
+
* using `executeFunction`.
|
|
423
|
+
*/
|
|
424
|
+
export interface CallFnFrame {
|
|
425
|
+
type: 'CallFn';
|
|
426
|
+
params: Arr;
|
|
427
|
+
placeholders: number[];
|
|
428
|
+
env: ContextStack;
|
|
429
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* User-defined function body evaluation.
|
|
433
|
+
*
|
|
434
|
+
* After parameter setup (binding destructuring, defaults, rest args), the
|
|
435
|
+
* function body is evaluated as a sequence. This frame also serves as the
|
|
436
|
+
* target for `recur` — when recur params are collected, the trampoline
|
|
437
|
+
* pops to this frame, rebinds parameters, and re-evaluates the body.
|
|
438
|
+
*
|
|
439
|
+
* `fn` is stored for recur handling: the parameter definitions
|
|
440
|
+
* (`fn.evaluatedfunction[0]`) and captured environment
|
|
441
|
+
* (`fn.evaluatedfunction[2]`) are needed to rebind.
|
|
442
|
+
*/
|
|
443
|
+
export interface FnBodyFrame {
|
|
444
|
+
type: 'FnBody';
|
|
445
|
+
fn: UserDefinedFunction;
|
|
446
|
+
bodyIndex: number;
|
|
447
|
+
env: ContextStack;
|
|
448
|
+
outerEnv: ContextStack;
|
|
449
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Evaluate default values during binding destructuring.
|
|
453
|
+
*
|
|
454
|
+
* `evaluateBindingNodeValues` processes destructuring patterns and may need
|
|
455
|
+
* to evaluate default value expressions (e.g., `let [a (= 10) b] [1]` —
|
|
456
|
+
* the default `10` for `b` needs evaluation). This frame captures the
|
|
457
|
+
* state needed to resume destructuring after a default is evaluated.
|
|
458
|
+
*
|
|
459
|
+
* `target` is the overall binding target being destructured.
|
|
460
|
+
* `value` is the value being destructured against the target.
|
|
461
|
+
* `record` accumulates the name→value mappings produced so far.
|
|
462
|
+
*/
|
|
463
|
+
export interface BindingDefaultFrame {
|
|
464
|
+
type: 'BindingDefault';
|
|
465
|
+
target: BindingTarget;
|
|
466
|
+
value: Any;
|
|
467
|
+
record: Record<string, Any>;
|
|
468
|
+
env: ContextStack;
|
|
469
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* NaN guard after evaluating a normal expression.
|
|
473
|
+
*
|
|
474
|
+
* Normal expressions go through a NaN check: if the result is `NaN`, a
|
|
475
|
+
* `DvalaError` is thrown. This frame wraps that check.
|
|
476
|
+
*/
|
|
477
|
+
export interface NanCheckFrame {
|
|
478
|
+
type: 'NanCheck';
|
|
479
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Injected by the trampoline in debug mode (when a `dvala.debug.step` handler
|
|
483
|
+
* is registered). Wraps compound expression evaluation to intercept the result
|
|
484
|
+
* and produce a `PerformStep` for `dvala.debug.step`.
|
|
485
|
+
*
|
|
486
|
+
* Two-phase lifecycle:
|
|
487
|
+
* 1. **awaitValue**: Pushed before evaluating a compound node. Receives the
|
|
488
|
+
* node's evaluation result, builds step info, and produces a `PerformStep`
|
|
489
|
+
* for `dvala.debug.step` with the step info as args.
|
|
490
|
+
* 2. **awaitPerform**: The debug perform completed (handler resumed or
|
|
491
|
+
* suspension was resumed). Passes the value through to the next frame.
|
|
492
|
+
* For normal stepping, the debugger resumes with the original value.
|
|
493
|
+
* For `rerunFrom`, the debugger resumes with an alternate value.
|
|
494
|
+
*/
|
|
495
|
+
export interface DebugStepFrame {
|
|
496
|
+
type: 'DebugStep';
|
|
497
|
+
phase: 'awaitValue' | 'awaitPerform';
|
|
498
|
+
sourceCodeInfo?: SourceCodeInfo;
|
|
499
|
+
env: ContextStack;
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Discriminated union of all frame types.
|
|
503
|
+
*
|
|
504
|
+
* Each frame captures the continuation state for one recursive call pattern
|
|
505
|
+
* in the evaluator. The `type` field serves as the discriminant.
|
|
506
|
+
*
|
|
507
|
+
* Frame categories:
|
|
508
|
+
* - **Program flow**: SequenceFrame
|
|
509
|
+
* - **Branching**: IfBranchFrame, CondFrame, MatchFrame
|
|
510
|
+
* - **Short-circuit**: AndFrame, OrFrame, QqFrame
|
|
511
|
+
* - **Collection construction**: ArrayBuildFrame, ObjectBuildFrame
|
|
512
|
+
* - **Binding**: LetBindFrame, LoopBindFrame, LoopIterateFrame, ForLoopFrame
|
|
513
|
+
* - **Control flow**: ThrowFrame, RecurFrame
|
|
514
|
+
* - **Exception & effect handling**: TryCatchFrame, TryWithFrame
|
|
515
|
+
* - **Function calls**: EvalArgsFrame, CallFnFrame, FnBodyFrame
|
|
516
|
+
* - **Destructuring**: BindingDefaultFrame
|
|
517
|
+
* - **Post-processing**: NanCheckFrame
|
|
518
|
+
* - **Debug**: DebugStepFrame
|
|
519
|
+
*/
|
|
520
|
+
export type Frame = SequenceFrame | IfBranchFrame | CondFrame | MatchFrame | AndFrame | OrFrame | QqFrame | ArrayBuildFrame | ObjectBuildFrame | LetBindFrame | LoopBindFrame | LoopIterateFrame | ForLoopFrame | ThrowFrame | RecurFrame | PerformArgsFrame | TryCatchFrame | TryWithFrame | EffectResumeFrame | ParallelResumeFrame | EvalArgsFrame | CallFnFrame | FnBodyFrame | BindingDefaultFrame | NanCheckFrame | DebugStepFrame;
|
|
521
|
+
/**
|
|
522
|
+
* Array type alias for readability — a continuation stack is just
|
|
523
|
+
* an array of frames. The top of the stack is index 0.
|
|
524
|
+
*/
|
|
525
|
+
export type ContinuationStack = Frame[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Any, Arr } from '../interface';
|
|
2
|
+
import type { AstNode, FunctionLike } from '../parser/types';
|
|
3
|
+
import type { SourceCodeInfo } from '../tokenizer/token';
|
|
4
|
+
import type { MaybePromise } from '../utils/maybePromise';
|
|
5
|
+
import type { ContextStack } from './ContextStack';
|
|
6
|
+
interface ContextEntry {
|
|
7
|
+
value: Any;
|
|
8
|
+
}
|
|
9
|
+
export type Context = Record<string, ContextEntry>;
|
|
10
|
+
export type EvaluateNode = (node: AstNode, contextStack: ContextStack) => MaybePromise<Any>;
|
|
11
|
+
export type ExecuteFunction = (fn: FunctionLike, params: Arr, contextStack: ContextStack, sourceCodeInfo?: SourceCodeInfo) => MaybePromise<Any>;
|
|
12
|
+
export type LookUpResult = ContextEntry | null;
|
|
13
|
+
export declare function isContextEntry(value: unknown): value is ContextEntry;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DvalaValue Serialization Contract
|
|
3
|
+
*
|
|
4
|
+
* Defines which runtime value types can be serialized to JSON and restored.
|
|
5
|
+
* Used at suspension time to produce clear errors when non-serializable
|
|
6
|
+
* values (e.g. NativeJsFunction) are found in the continuation stack.
|
|
7
|
+
*
|
|
8
|
+
* Serializable value types:
|
|
9
|
+
* - Primitives: number, string, boolean, null
|
|
10
|
+
* - Containers: array, object (if all contents are serializable)
|
|
11
|
+
* - RegularExpression: stored as {s, f} string data
|
|
12
|
+
* - UserDefinedFunction: {params, body, capturedEnv} — all plain data
|
|
13
|
+
* - NormalBuiltinFunction: identified by normalBuiltinSymbolType (number)
|
|
14
|
+
* - SpecialBuiltinFunction: identified by specialBuiltinSymbolType (number)
|
|
15
|
+
* - ModuleFunction: identified by {moduleName, functionName}
|
|
16
|
+
* - PartialFunction, CompFunction, ConstantlyFunction, JuxtFunction,
|
|
17
|
+
* ComplementFunction, EveryPredFunction, SomePredFunction, FNullFunction:
|
|
18
|
+
* serializable only if all inner values/functions are serializable
|
|
19
|
+
* - EffectRef: stored as just the name string
|
|
20
|
+
*
|
|
21
|
+
* Non-serializable value types:
|
|
22
|
+
* - NativeJsFunction: contains a live JS function reference.
|
|
23
|
+
* These live in the global context and are re-injected from `bindings`
|
|
24
|
+
* on resume — they must never appear in serialized continuation frames.
|
|
25
|
+
*/
|
|
26
|
+
import type { Any } from '../interface';
|
|
27
|
+
/**
|
|
28
|
+
* Checks whether a Dvala runtime value is fully JSON-serializable.
|
|
29
|
+
*
|
|
30
|
+
* Returns `true` if the value can be serialized and later restored.
|
|
31
|
+
* Returns `false` if any part of the value contains a NativeJsFunction
|
|
32
|
+
* or other non-serializable reference.
|
|
33
|
+
*
|
|
34
|
+
* Uses a `Set` to track visited objects and avoid infinite loops from
|
|
35
|
+
* circular references (which are themselves not serializable, but we
|
|
36
|
+
* want to report NativeJsFunction as the problem, not stack overflow).
|
|
37
|
+
*/
|
|
38
|
+
export declare function isSerializable(value: Any, visited?: Set<object>): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Describes why a value is not serializable.
|
|
41
|
+
* Returns `null` if the value is serializable.
|
|
42
|
+
* Returns a human-readable string describing the first non-serializable
|
|
43
|
+
* component found.
|
|
44
|
+
*/
|
|
45
|
+
export declare function describeSerializationIssue(value: Any, path?: string): string | null;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard effects — built-in effects with default implementations.
|
|
3
|
+
*
|
|
4
|
+
* These effects are always available without requiring explicit host handlers.
|
|
5
|
+
* Host handlers can override them (host handlers take priority in the lookup order).
|
|
6
|
+
*
|
|
7
|
+
* Lookup order: local try/with → host handlers → standard effects → unhandled error
|
|
8
|
+
*
|
|
9
|
+
* Standard effects:
|
|
10
|
+
* - `dvala.log` — sync: console.log(...args), resumes with null
|
|
11
|
+
* - `dvala.now` — sync: Date.now()
|
|
12
|
+
* - `dvala.random` — sync: Math.random()
|
|
13
|
+
* - `dvala.sleep` — async: setTimeout(resolve, ms), resumes with null
|
|
14
|
+
*
|
|
15
|
+
* Sync effects work in both `runSync` and `run`.
|
|
16
|
+
* Async effects (`dvala.sleep`) only work in `run` — `runSync` will throw
|
|
17
|
+
* when a Promise surfaces.
|
|
18
|
+
*/
|
|
19
|
+
import type { Arr } from '../interface';
|
|
20
|
+
import type { SourceCodeInfo } from '../tokenizer/token';
|
|
21
|
+
import type { ContinuationStack } from './frames';
|
|
22
|
+
import type { Step } from './step';
|
|
23
|
+
/**
|
|
24
|
+
* A standard effect handler returns the next step directly.
|
|
25
|
+
* Sync effects return `Step`, async effects return `Promise<Step>`.
|
|
26
|
+
*/
|
|
27
|
+
type StandardEffectHandler = (args: Arr, k: ContinuationStack, sourceCodeInfo?: SourceCodeInfo) => Step | Promise<Step>;
|
|
28
|
+
/** All standard effect names. */
|
|
29
|
+
export declare const standardEffectNames: ReadonlySet<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Look up a standard effect handler by name.
|
|
32
|
+
* Returns undefined if the effect is not a standard effect.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getStandardEffectHandler(effectName: string): StandardEffectHandler | undefined;
|
|
35
|
+
export {};
|