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