time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

squiggleDefinition.js (750B)


      1 import { parse } from "../../ast/parse.js";
      2 import { defaultEnv } from "../../dist/env.js";
      3 import { compileAst } from "../../expression/compile.js";
      4 import { createContext } from "../../reducer/context.js";
      5 export function makeSquiggleDefinition({ builtins, name, code, }) {
      6     const astResult = parse(code, "@stdlib");
      7     if (!astResult.ok) {
      8         throw new Error(`Stdlib code ${code} is invalid`);
      9     }
     10     const expressionResult = compileAst(astResult.value, builtins);
     11     if (!expressionResult.ok) {
     12         throw expressionResult.value;
     13     }
     14     const context = createContext(defaultEnv);
     15     const [value] = context.evaluate(expressionResult.value, context);
     16     return { name, value };
     17 }
     18 //# sourceMappingURL=squiggleDefinition.js.map