From eb09d691fde64cfd2a9ee4d17dcbdf1d0ee5e288 Mon Sep 17 00:00:00 2001 From: polsevev Date: Sun, 2 Jun 2024 21:43:02 +0200 Subject: [PATCH] Final finishing touches --- src/api/jstqlsh.ts | 8 ++++++++ src/evalRunner.ts | 2 +- src/matcher/matcher.ts | 15 +++------------ src/transform/transform.ts | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) create mode 100644 src/api/jstqlsh.ts diff --git a/src/api/jstqlsh.ts b/src/api/jstqlsh.ts new file mode 100644 index 0000000..04bd22e --- /dev/null +++ b/src/api/jstqlsh.ts @@ -0,0 +1,8 @@ +import { SelfHostedRecipe } from "../transform/transform"; +import { transform } from "../transform/transform"; + +export function transformSH(spec: SelfHostedRecipe[], code: string) { + let res = transform(spec, code); + + return res; +} diff --git a/src/evalRunner.ts b/src/evalRunner.ts index 09eb372..a0430e7 100644 --- a/src/evalRunner.ts +++ b/src/evalRunner.ts @@ -3,7 +3,7 @@ import { readdir } from "node:fs/promises"; import { parseJSTQL } from "./langium/langiumRunner"; const main = async () => { - let basepathExamplesJSFiles = "../next.js"; + let basepathExamplesJSFiles = "../three.js"; let examples = (await readdir(basepathExamplesJSFiles, { recursive: true })) .filter((x) => x.endsWith(".js")) .map((x) => basepathExamplesJSFiles + "/" + x); diff --git a/src/matcher/matcher.ts b/src/matcher/matcher.ts index 0847e09..1cd4b85 100644 --- a/src/matcher/matcher.ts +++ b/src/matcher/matcher.ts @@ -201,18 +201,9 @@ export class Matcher { } } - for (let [key, val] of Object.entries(aplToNode)) { - if (keys_to_ignore.includes(key)) { - continue; - } - if (typeof val !== "object") { - if (codeNode[key] !== val) { - return MatchResult.NoMatch; - } - } - } - - return MatchResult.Matched; + return codeNode.type === aplToNode.type + ? MatchResult.Matched + : MatchResult.NoMatch; } multiStatementMatcher(code: TreeNode, aplTo: TreeNode) { diff --git a/src/transform/transform.ts b/src/transform/transform.ts index 7ab7208..48b0b0f 100644 --- a/src/transform/transform.ts +++ b/src/transform/transform.ts @@ -71,7 +71,7 @@ export function transform( return [output, amount]; } -function transformSelfHosted( +export function transformSelfHosted( recipe: TransformRecipe, internals: Wildcard[], codeAST: t.Node