//import * as babelparser from "../babel/packages/babel-parser"; import * as babelparser from "@babel/parser"; //import core from "../babel/packages/babel-core"; import { parse_with_plugins } from "./parser/parse"; import { SelfHostedRecipe, TransformRecipe, transform, } from "./transform/transform"; import { readdir } from "node:fs/promises"; import { parseJSTQL } from "./langium/langiumRunner"; const dir = "../prettier/src"; const path = "test_files/do_test.js"; const file = Bun.file(path); const codeFromFile = await file.text(); const main = async () => { //transform(selfHostedTransformExampleMultiStmt, codeFromFile); /* console.log(codeFromFile); const jstql_file = "/home/rolfmg/Coding/Master/didactic-chainsaw/dsl_files/do.jstql"; const test_file = Bun.file(jstql_file); const test_JSTQL = await test_file.text(); let proposals = await parseJSTQL(test_JSTQL); let [code, count] = transform(proposals[0].cases, codeFromFile); await Bun.write("output_files/output_do.js", code); return; */ let basepathExamplesJSFiles = "../react"; let examples = (await readdir(basepathExamplesJSFiles, { recursive: true })) .filter((x) => x.endsWith(".js")) .map((x) => basepathExamplesJSFiles + "/" + x); console.log(examples); let result = []; for (let proposalFile of [ "pipeline.jstql", "do.jstql", "awaitToPromise.jstql", ]) { const jstql_file = "dsl_files/" + proposalFile; const test_file = Bun.file(jstql_file); const test_JSTQL = await test_file.text(); let proposals = await parseJSTQL(test_JSTQL); let sum = 0; let failures = 0; let filesSucceeded = 0; console.log("Scripts found ", sum, "matches!"); let count = 0; for (let examplesFile of examples) { try { if (examplesFile.split("/").includes("compiled")) { continue; } console.log(examplesFile); let script = await Bun.file(examplesFile).text(); let [resultString, matches] = transform( proposals[0].cases, script ); sum += matches; if (matches > 0) { //await Bun.write( // "output_testing/" + count + examplesFile.split("/").at(-1), //resultString //); count += 1; } filesSucceeded += 1; } catch (e) { failures += 1; } console.log("current sum", sum); } result.push( "Total for " + proposalFile + " is " + sum + ",failures " + failures + ",succeeded " + filesSucceeded + ", Files With Matches " + count + ",totalJSFiles " + examples.length ); } for (let res of result) { console.log(res); } }; main();