From e2b06551b12bb5d177332b296ade1f24156d0df0 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Mon, 8 Jun 2026 19:23:16 +0100 Subject: [PATCH 01/12] Clava-JS: Make the project compatible with Node.js' TS parser where only erasable syntax is allowed - Removed a couple of deprecated files. - Transformed enums into "const" declarations. - Modified the tsconfig.json files - Updated to TS 6 while I was at it. --- Clava-JS/jest/ClavaLegacyTester.ts | 2 +- Clava-JS/package.json | 6 +- Clava-JS/src-api/Joinpoints.ts | 208 ++++++++++-------- Clava-JS/src-api/clava/Clava.ts | 2 +- Clava-JS/src-api/clava/ClavaCode.ts | 2 +- Clava-JS/src-api/clava/ClavaJavaTypes.ts | 2 +- Clava-JS/src-api/clava/ClavaJoinPoints.ts | 2 +- Clava-JS/src-api/clava/cmake/CMaker.ts | 2 +- Clava-JS/src-api/clava/cmake/CMakerSources.ts | 2 +- .../src-api/clava/code/SimplifyAssignment.ts | 2 +- Clava-JS/src-api/clava/gprofer/Gprofer.ts | 2 +- Clava-JS/src-api/clava/hdf5/Hdf5.ts | 56 ++--- .../src-api/clava/opencl/KernelReplacer.ts | 56 +++-- .../clava/opencl/KernelReplacerAuto.ts | 2 +- Clava-JS/src-api/clava/parser/BatchParser.ts | 2 +- Clava-JS/src-api/clava/util/ClavaDataStore.ts | 2 +- Clava-JS/src-api/clava/util/FileIterator.ts | 2 +- .../lara/benchmark/ClavaBenchmarkInstance.ts | 2 +- Clava-JS/src-api/tsconfig.json | 1 + Clava-JS/src-code/Dumper/ClangJSONDumper.ts | 2 +- Clava-JS/src-code/WeaverConfiguration.ts | 2 +- Clava-JS/src-code/tsconfig.json | 1 + Clava-JS/tsconfig.json | 7 +- .../resources/clava/test/weaver/Traversal.js | 2 +- 24 files changed, 217 insertions(+), 152 deletions(-) diff --git a/Clava-JS/jest/ClavaLegacyTester.ts b/Clava-JS/jest/ClavaLegacyTester.ts index c5a75e0ca1..8ee73374fb 100644 --- a/Clava-JS/jest/ClavaLegacyTester.ts +++ b/Clava-JS/jest/ClavaLegacyTester.ts @@ -1,5 +1,5 @@ import ClavaJavaTypes, { - ClavaJavaClasses, + type ClavaJavaClasses, } from "@specs-feup/clava/api/clava/ClavaJavaTypes.js"; import { WeaverLegacyTester } from "@specs-feup/lara/jest/WeaverLegacyTester.js"; diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 1c253d8ed6..81ca3f9f90 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -63,17 +63,17 @@ "@types/debug": "^4.1.12", "@types/java": "^0.9.6", "@types/jest": "^30.0.0", - "@types/node": "^20.14.10", + "@types/node": "^25.0.0", "@types/yargs": "^17.0.35", "cross-env": "^10.1.0", - "eslint": "^9.32.2", + "eslint": "^9.39.2", "eslint-config-prettier": "^10.1.8", "eslint-plugin-jest": "^29.12.1", "eslint-plugin-tsdoc": "^0.5.0", "jest": "^30.2.0", "node-notifier": "^10.0.1", "ts-jest": "^29.4.6", - "typescript": "^5.9.3", + "typescript": "^6.0.3", "typescript-eslint": "^8.52.0" } } diff --git a/Clava-JS/src-api/Joinpoints.ts b/Clava-JS/src-api/Joinpoints.ts index 185b3a6498..ded340b4af 100644 --- a/Clava-JS/src-api/Joinpoints.ts +++ b/Clava-JS/src-api/Joinpoints.ts @@ -2805,92 +2805,128 @@ export class TypedefType extends Type { get underlyingType(): Type { return wrapJoinPoint(this._javaObject.underlyingType()) } } -export enum StorageClass { - NONE = "none", - AUTO = "auto", - EXTERN = "extern", - PRIVATE_EXTERN = "private_extern", - REGISTER = "register", - STATIC = "static", -} - -export enum Relation { - LE = "le", - LT = "lt", - GE = "ge", - GT = "gt", - EQ = "eq", - NE = "ne", -} - -export enum LoopKind { - for = "for", - while = "while", - dowhile = "dowhile", - foreach = "foreach", -} - -export enum ExpressionUse { - read = "read", - write = "write", - readwrite = "readwrite", -} - -export enum OpKind { - ptr_mem_d = "ptr_mem_d", - ptr_mem_i = "ptr_mem_i", - mul = "mul", - div = "div", - rem = "rem", - add = "add", - sub = "sub", - shl = "shl", - shr = "shr", - cmp = "cmp", - lt = "lt", - gt = "gt", - le = "le", - ge = "ge", - eq = "eq", - ne = "ne", - and = "and", - xor = "xor", - or = "or", - l_and = "l_and", - l_or = "l_or", - assign = "assign", - mul_assign = "mul_assign", - div_assign = "div_assign", - rem_assign = "rem_assign", - add_assign = "add_assign", - sub_assign = "sub_assign", - shl_assign = "shl_assign", - shr_assign = "shr_assign", - and_assign = "and_assign", - xor_assign = "xor_assign", - or_assign = "or_assign", - comma = "comma", - post_inc = "post_inc", - post_dec = "post_dec", - pre_inc = "pre_inc", - pre_dec = "pre_dec", - addr_of = "addr_of", - deref = "deref", - plus = "plus", - minus = "minus", - not = "not", - l_not = "l_not", - real = "real", - imag = "imag", - extension = "extension", - cowait = "cowait", - ternary = "ternary", -} - -export enum WrapperStatementKind { - comment = "comment", - pragma = "pragma", -} +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const StorageClass = { + NONE: "none", + AUTO: "auto", + EXTERN: "extern", + PRIVATE_EXTERN: "private_extern", + REGISTER: "register", + STATIC: "static", +} as const; +export type StorageClass = typeof StorageClass[keyof typeof StorageClass]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const Relation = { + LE: "le", + LT: "lt", + GE: "ge", + GT: "gt", + EQ: "eq", + NE: "ne", +} as const; +export type Relation = typeof Relation[keyof typeof Relation]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const LoopKind = { + for: "for", + while: "while", + dowhile: "dowhile", + foreach: "foreach", +} as const; +export type LoopKind = typeof LoopKind[keyof typeof LoopKind]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const ExpressionUse = { + read: "read", + write: "write", + readwrite: "readwrite", +} as const; +export type ExpressionUse = typeof ExpressionUse[keyof typeof ExpressionUse]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const OpKind = { + ptr_mem_d: "ptr_mem_d", + ptr_mem_i: "ptr_mem_i", + mul: "mul", + div: "div", + rem: "rem", + add: "add", + sub: "sub", + shl: "shl", + shr: "shr", + cmp: "cmp", + lt: "lt", + gt: "gt", + le: "le", + ge: "ge", + eq: "eq", + ne: "ne", + and: "and", + xor: "xor", + or: "or", + l_and: "l_and", + l_or: "l_or", + assign: "assign", + mul_assign: "mul_assign", + div_assign: "div_assign", + rem_assign: "rem_assign", + add_assign: "add_assign", + sub_assign: "sub_assign", + shl_assign: "shl_assign", + shr_assign: "shr_assign", + and_assign: "and_assign", + xor_assign: "xor_assign", + or_assign: "or_assign", + comma: "comma", + post_inc: "post_inc", + post_dec: "post_dec", + pre_inc: "pre_inc", + pre_dec: "pre_dec", + addr_of: "addr_of", + deref: "deref", + plus: "plus", + minus: "minus", + not: "not", + l_not: "l_not", + real: "real", + imag: "imag", + extension: "extension", + cowait: "cowait", + ternary: "ternary", +} as const; +export type OpKind = typeof OpKind[keyof typeof OpKind]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +export const WrapperStatementKind = { + comment: "comment", + pragma: "pragma", +} as const; +export type WrapperStatementKind = typeof WrapperStatementKind[keyof typeof WrapperStatementKind]; const JoinpointMapper = { joinpoint: Joinpoint, diff --git a/Clava-JS/src-api/clava/Clava.ts b/Clava-JS/src-api/clava/Clava.ts index d6e402ca5d..3a48c219ef 100644 --- a/Clava-JS/src-api/clava/Clava.ts +++ b/Clava-JS/src-api/clava/Clava.ts @@ -1,7 +1,7 @@ import { wrapJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; import Io from "@specs-feup/lara/api/lara/Io.js"; import JavaInterop from "@specs-feup/lara/api/lara/JavaInterop.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; import Weaver from "@specs-feup/lara/api/weaver/Weaver.js"; import WeaverOptions from "@specs-feup/lara/api/weaver/WeaverOptions.js"; diff --git a/Clava-JS/src-api/clava/ClavaCode.ts b/Clava-JS/src-api/clava/ClavaCode.ts index d50230427c..292aa2e4fc 100644 --- a/Clava-JS/src-api/clava/ClavaCode.ts +++ b/Clava-JS/src-api/clava/ClavaCode.ts @@ -1,6 +1,6 @@ import Io from "@specs-feup/lara/api/lara/Io.js"; import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; import { FileJp, diff --git a/Clava-JS/src-api/clava/ClavaJavaTypes.ts b/Clava-JS/src-api/clava/ClavaJavaTypes.ts index 8e0ade6355..1dce1d31d2 100644 --- a/Clava-JS/src-api/clava/ClavaJavaTypes.ts +++ b/Clava-JS/src-api/clava/ClavaJavaTypes.ts @@ -1,5 +1,5 @@ import JavaTypes, { - JavaClasses, + type JavaClasses, } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; // eslint-disable-next-line @typescript-eslint/no-namespace diff --git a/Clava-JS/src-api/clava/ClavaJoinPoints.ts b/Clava-JS/src-api/clava/ClavaJoinPoints.ts index 873f9181fc..332c0a23a5 100644 --- a/Clava-JS/src-api/clava/ClavaJoinPoints.ts +++ b/Clava-JS/src-api/clava/ClavaJoinPoints.ts @@ -6,7 +6,7 @@ import { arrayFromArgs, flattenArgsArray, } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import * as Joinpoints from "../Joinpoints.js"; import Clava from "./Clava.js"; import ClavaJavaTypes from "./ClavaJavaTypes.js"; diff --git a/Clava-JS/src-api/clava/cmake/CMaker.ts b/Clava-JS/src-api/clava/cmake/CMaker.ts index ee3a289716..f53c7641ae 100644 --- a/Clava-JS/src-api/clava/cmake/CMaker.ts +++ b/Clava-JS/src-api/clava/cmake/CMaker.ts @@ -5,7 +5,7 @@ import { debug, debugObject, } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.js"; import { FileJp } from "../../Joinpoints.js"; import Clava from "../Clava.js"; diff --git a/Clava-JS/src-api/clava/cmake/CMakerSources.ts b/Clava-JS/src-api/clava/cmake/CMakerSources.ts index b824a7c7ce..5d64d8c1c5 100644 --- a/Clava-JS/src-api/clava/cmake/CMakerSources.ts +++ b/Clava-JS/src-api/clava/cmake/CMakerSources.ts @@ -1,6 +1,6 @@ import Io from "@specs-feup/lara/api/lara/Io.js"; import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Clava from "../Clava.js"; import CMakerUtils from "./CMakerUtils.js"; diff --git a/Clava-JS/src-api/clava/code/SimplifyAssignment.ts b/Clava-JS/src-api/clava/code/SimplifyAssignment.ts index fb176fefe3..0352c44461 100644 --- a/Clava-JS/src-api/clava/code/SimplifyAssignment.ts +++ b/Clava-JS/src-api/clava/code/SimplifyAssignment.ts @@ -26,7 +26,7 @@ export default function SimplifyAssignment($complexAssignment: BinaryOp): void { /** * Non-assignment counterparts of complex assignment operators (lookup table) */ -const ops = new Map([ +const ops = new Map([ [OpKind.mul_assign, OpKind.mul], [OpKind.div_assign, OpKind.div], [OpKind.rem_assign, OpKind.rem], diff --git a/Clava-JS/src-api/clava/gprofer/Gprofer.ts b/Clava-JS/src-api/clava/gprofer/Gprofer.ts index 8b12018270..08761c91d6 100644 --- a/Clava-JS/src-api/clava/gprofer/Gprofer.ts +++ b/Clava-JS/src-api/clava/gprofer/Gprofer.ts @@ -1,7 +1,7 @@ import Io from "@specs-feup/lara/api/lara/Io.js"; import Strings from "@specs-feup/lara/api/lara/Strings.js"; import JavaTypes, { - JavaClasses, + type JavaClasses, } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; import { FileJp, FunctionJp } from "../../Joinpoints.js"; diff --git a/Clava-JS/src-api/clava/hdf5/Hdf5.ts b/Clava-JS/src-api/clava/hdf5/Hdf5.ts index c626aca7c3..886262e5c3 100644 --- a/Clava-JS/src-api/clava/hdf5/Hdf5.ts +++ b/Clava-JS/src-api/clava/hdf5/Hdf5.ts @@ -9,31 +9,37 @@ import { import ClavaJoinPoints from "../ClavaJoinPoints.js"; import Format from "../Format.js"; -enum HDF5Types { - "char" = "C_S1", - "signed char" = "NATIVE_SCHAR", - "unsigned char" = "NATIVE_UCHAR", - "short" = "NATIVE_SHORT", - "unsigned short" = "NATIVE_USHORT", - "int" = "NATIVE_INT", - "unsigned int" = "NATIVE_UINT", - "long" = "NATIVE_LONG", - "unsigned long" = "NATIVE_ULONG", - "long long" = "NATIVE_LLONG", - "unsigned long long" = "NATIVE_ULLONG", - "float" = "NATIVE_FLOAT", - "double" = "NATIVE_DOUBLE", - "long double" = "NATIVE_LDOUBLE", - - "int8_t" = "NATIVE_INT8", - "uint8_t" = "NATIVE_UINT8", - "int16_t" = "NATIVE_INT16", - "uint16_t" = "NATIVE_UINT16", - "int32_t" = "NATIVE_INT32", - "uin32_t" = "NATIVE_UINT32", - "int64_t" = "NATIVE_INT64", - "uint64_t" = "NATIVE_UINT64", -} +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +const HDF5Types = { + "char": "C_S1", + "signed char": "NATIVE_SCHAR", + "unsigned char": "NATIVE_UCHAR", + "short": "NATIVE_SHORT", + "unsigned short": "NATIVE_USHORT", + "int": "NATIVE_INT", + "unsigned int": "NATIVE_UINT", + "long": "NATIVE_LONG", + "unsigned long": "NATIVE_ULONG", + "long long": "NATIVE_LLONG", + "unsigned long long": "NATIVE_ULLONG", + "float": "NATIVE_FLOAT", + "double": "NATIVE_DOUBLE", + "long double": "NATIVE_LDOUBLE", + + "int8_t": "NATIVE_INT8", + "uint8_t": "NATIVE_UINT8", + "int16_t": "NATIVE_INT16", + "uint16_t": "NATIVE_UINT16", + "int32_t": "NATIVE_INT32", + "uint32_t": "NATIVE_UINT32", + "int64_t": "NATIVE_INT64", + "uint64_t": "NATIVE_UINT64", +} as const; +type HDF5Types = typeof HDF5Types[keyof typeof HDF5Types]; /** * Utility methods related to the HDF5 library. diff --git a/Clava-JS/src-api/clava/opencl/KernelReplacer.ts b/Clava-JS/src-api/clava/opencl/KernelReplacer.ts index 3f85c2babd..bed6f67381 100644 --- a/Clava-JS/src-api/clava/opencl/KernelReplacer.ts +++ b/Clava-JS/src-api/clava/opencl/KernelReplacer.ts @@ -484,22 +484,40 @@ class Buffer { /* ------------------------------ ENUMS ----------------------------- */ -enum BufferKind { - INPUT = "CL_MEM_READ_ONLY", - OUTPUT = "CL_MEM_WRITE_ONLY", - INPUT_OUTPUT = "CL_MEM_READ_WRITE", -} - -enum DeviceType { - CL_DEVICE_TYPE_ALL = "CL_DEVICE_TYPE_ALL", - CL_DEVICE_TYPE_CPU = "CL_DEVICE_TYPE_CPU", - CL_DEVICE_TYPE_GPU = "CL_DEVICE_TYPE_GPU", - CL_DEVICE_TYPE_ACCELERATOR = "CL_DEVICE_TYPE_ACCELERATOR", - CL_DEVICE_TYPE_DEFAULT = "CL_DEVICE_TYPE_DEFAULT", -} - -enum ErrorHandling { - EXIT = 0, - RETURN = 1, - USER = 2, -} +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +const BufferKind = { + INPUT: "CL_MEM_READ_ONLY", + OUTPUT: "CL_MEM_WRITE_ONLY", + INPUT_OUTPUT: "CL_MEM_READ_WRITE", +} as const; +type BufferKind = typeof BufferKind[keyof typeof BufferKind]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +const DeviceType = { + CL_DEVICE_TYPE_ALL: "CL_DEVICE_TYPE_ALL", + CL_DEVICE_TYPE_CPU: "CL_DEVICE_TYPE_CPU", + CL_DEVICE_TYPE_GPU: "CL_DEVICE_TYPE_GPU", + CL_DEVICE_TYPE_ACCELERATOR: "CL_DEVICE_TYPE_ACCELERATOR", + CL_DEVICE_TYPE_DEFAULT: "CL_DEVICE_TYPE_DEFAULT", +} as const; +type DeviceType = typeof DeviceType[keyof typeof DeviceType]; + +/** + * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. + * Revert to an enum when Node.js supports it, or when we move to a different engine that supports it. + * This and the "type" declaration below. + */ +const ErrorHandling = { + EXIT: 0, + RETURN: 1, + USER: 2, +} as const; +type ErrorHandling = typeof ErrorHandling[keyof typeof ErrorHandling]; diff --git a/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts b/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts index fda9724da8..a27bfc7c4b 100644 --- a/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts +++ b/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts @@ -3,7 +3,7 @@ import Strings from "@specs-feup/lara/api/lara/Strings.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; import { Call, FileJp, Pragma } from "../../Joinpoints.js"; import KernelReplacer, { - OpenClKernelReplacerConfiguration, + type OpenClKernelReplacerConfiguration, } from "./KernelReplacer.js"; // This aspect can be included in a library, imported and diff --git a/Clava-JS/src-api/clava/parser/BatchParser.ts b/Clava-JS/src-api/clava/parser/BatchParser.ts index bc714a3983..69301fe23e 100644 --- a/Clava-JS/src-api/clava/parser/BatchParser.ts +++ b/Clava-JS/src-api/clava/parser/BatchParser.ts @@ -4,7 +4,7 @@ import System from "@specs-feup/lara/api/lara/System.js"; import Strings from "@specs-feup/lara/api/lara/Strings.js"; import Clava from "../Clava.js"; import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; import { FileJp } from "../../Joinpoints.js"; diff --git a/Clava-JS/src-api/clava/util/ClavaDataStore.ts b/Clava-JS/src-api/clava/util/ClavaDataStore.ts index 20e0d5b648..ed672b53a3 100644 --- a/Clava-JS/src-api/clava/util/ClavaDataStore.ts +++ b/Clava-JS/src-api/clava/util/ClavaDataStore.ts @@ -1,7 +1,7 @@ import WeaverDataStore from "@specs-feup/lara/api/weaver/util/WeaverDataStore.js"; import ClavaJavaTypes from "../ClavaJavaTypes.js"; import JavaTypes, { - JavaClasses, + type JavaClasses, } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Io from "@specs-feup/lara/api/lara/Io.js"; import DataStore from "@specs-feup/lara/api/lara/util/DataStore.js"; diff --git a/Clava-JS/src-api/clava/util/FileIterator.ts b/Clava-JS/src-api/clava/util/FileIterator.ts index 21267c0aa5..9333de784a 100644 --- a/Clava-JS/src-api/clava/util/FileIterator.ts +++ b/Clava-JS/src-api/clava/util/FileIterator.ts @@ -1,6 +1,6 @@ import Io from "@specs-feup/lara/api/lara/Io.js"; import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import { FileJp } from "../../Joinpoints.js"; import Clava from "../Clava.js"; diff --git a/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts b/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts index 90fe37bcbf..b31d487e58 100644 --- a/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts +++ b/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts @@ -1,6 +1,6 @@ import Io from "@specs-feup/lara/api/lara/Io.js"; import BenchmarkInstance from "@specs-feup/lara/api/lara/benchmark/BenchmarkInstance.js"; -import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import Query from "@specs-feup/lara/api/weaver/Query.js"; import Clava from "../..//clava/Clava.js"; import { Pragma } from "../../Joinpoints.js"; diff --git a/Clava-JS/src-api/tsconfig.json b/Clava-JS/src-api/tsconfig.json index b03a6a89ec..0607bd620a 100644 --- a/Clava-JS/src-api/tsconfig.json +++ b/Clava-JS/src-api/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { + "rootDir": ".", "outDir": "../api" }, "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"], diff --git a/Clava-JS/src-code/Dumper/ClangJSONDumper.ts b/Clava-JS/src-code/Dumper/ClangJSONDumper.ts index 1c7c0cf593..879a4042a6 100644 --- a/Clava-JS/src-code/Dumper/ClangJSONDumper.ts +++ b/Clava-JS/src-code/Dumper/ClangJSONDumper.ts @@ -1,4 +1,4 @@ -import AbstractDumper from "./AbstractDumper.js"; +import type AbstractDumper from "./AbstractDumper.js"; import { spawn } from "child_process"; diff --git a/Clava-JS/src-code/WeaverConfiguration.ts b/Clava-JS/src-code/WeaverConfiguration.ts index aa00ea44ab..2db66bf3b7 100644 --- a/Clava-JS/src-code/WeaverConfiguration.ts +++ b/Clava-JS/src-code/WeaverConfiguration.ts @@ -1,4 +1,4 @@ -import WeaverConfiguration from "@specs-feup/lara/code/WeaverConfiguration.js"; +import type WeaverConfiguration from "@specs-feup/lara/code/WeaverConfiguration.js"; import path from "path"; import { fileURLToPath } from "url"; diff --git a/Clava-JS/src-code/tsconfig.json b/Clava-JS/src-code/tsconfig.json index 8061f3caf7..62a2028ceb 100644 --- a/Clava-JS/src-code/tsconfig.json +++ b/Clava-JS/src-code/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { + "rootDir": ".", "outDir": "../code", "composite": true }, diff --git a/Clava-JS/tsconfig.json b/Clava-JS/tsconfig.json index 17889a771f..dfabb45eff 100644 --- a/Clava-JS/tsconfig.json +++ b/Clava-JS/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { + //"noEmit": true, "module": "NodeNext", - "moduleResolution": "NodeNext", "isolatedModules": true, "declaration": true, "strict": true, @@ -11,6 +11,9 @@ "declarationMap": true, "allowSyntheticDefaultImports": true, //"esModuleInterop": true - "types": ["node", "jest"] + "types": ["node", "jest"], + "rewriteRelativeImportExtensions": true, + "erasableSyntaxOnly": true, + "verbatimModuleSyntax": true } } diff --git a/ClavaWeaver/resources/clava/test/weaver/Traversal.js b/ClavaWeaver/resources/clava/test/weaver/Traversal.js index 0b986a1259..9fb7b1278b 100644 --- a/ClavaWeaver/resources/clava/test/weaver/Traversal.js +++ b/ClavaWeaver/resources/clava/test/weaver/Traversal.js @@ -1,5 +1,5 @@ import Query from "@specs-feup/lara/api/weaver/Query.js"; -import TraversalType from "@specs-feup/lara/api/weaver/TraversalType.js"; +import { TraversalType } from "@specs-feup/lara/api/weaver/TraversalType.js"; for (const $jp of Query.search("function", "foo").search( undefined, From 9e58452c221316748f236d87202a3211896a7c34 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Mon, 8 Jun 2026 20:54:44 +0100 Subject: [PATCH 02/12] Clava-JS: Move TS files into the old JS locations. Since we do not transpile TS anymore, the sources have been moved to their old destination folders. --- .codex/skills/clava-scripting/SKILL.md | 6 +-- .../clava-scripting/references/clava-apis.md | 26 +++++------ .../clava-scripting/references/examples.md | 2 +- .../clava-scripting/references/query-api.md | 8 ++-- Clava-JS/.gitignore | 2 - Clava-JS/{src-api => api}/Issues.test.ts | 8 ++-- Clava-JS/{src-api => api}/Joinpoints.ts | 2 +- .../LegacyIntegrationTests - C.test.ts | 6 +-- .../LegacyIntegrationTests - CXX.test.ts | 6 +-- .../LegacyIntegrationTests - Issues.test.ts | 4 +- Clava-JS/{src-api => api}/Query.test.ts | 6 +-- Clava-JS/{src-api => api}/clava/Clava.ts | 19 ++++---- Clava-JS/{src-api => api}/clava/ClavaCode.ts | 12 ++--- .../{src-api => api}/clava/ClavaJavaTypes.ts | 2 +- .../clava/ClavaJoinPoints.test.ts | 8 ++-- .../{src-api => api}/clava/ClavaJoinPoints.ts | 14 +++--- Clava-JS/{src-api => api}/clava/ClavaType.ts | 6 +-- Clava-JS/{src-api => api}/clava/Format.ts | 2 +- Clava-JS/{src-api => api}/clava/MathExtra.ts | 6 +-- .../clava/analysis/Analyser.ts | 4 +- .../clava/analysis/AnalyserResult.test.ts | 4 +- .../clava/analysis/AnalyserResult.ts | 4 +- .../clava/analysis/CheckBasedAnalyser.ts | 12 ++--- .../clava/analysis/CheckResult.ts | 2 +- .../clava/analysis/Checker.ts | 4 +- .../{src-api => api}/clava/analysis/Fix.ts | 2 +- .../clava/analysis/MessageGenerator.ts | 8 ++-- .../clava/analysis/ResultFormatManager.ts | 6 +-- .../clava/analysis/ResultList.ts | 2 +- .../analysis/analysers/BoundsAnalyser.ts | 10 ++--- .../clava/analysis/analysers/BoundsResult.ts | 6 +-- .../analysis/analysers/DoubleFreeAnalyser.ts | 10 ++--- .../analysis/analysers/DoubleFreeResult.ts | 6 +-- .../clava/analysis/checkers/ChgrpChecker.ts | 6 +-- .../clava/analysis/checkers/ChmodChecker.ts | 6 +-- .../clava/analysis/checkers/ChownChecker.ts | 6 +-- .../clava/analysis/checkers/CinChecker.ts | 6 +-- .../clava/analysis/checkers/ExecChecker.ts | 6 +-- .../clava/analysis/checkers/FprintfChecker.ts | 6 +-- .../clava/analysis/checkers/FscanfChecker.ts | 6 +-- .../clava/analysis/checkers/GetsChecker.ts | 8 ++-- .../clava/analysis/checkers/LambdaChecker.ts | 6 +-- .../clava/analysis/checkers/MemcpyChecker.ts | 6 +-- .../clava/analysis/checkers/PrintfChecker.ts | 6 +-- .../clava/analysis/checkers/ScanfChecker.ts | 6 +-- .../clava/analysis/checkers/SprintfChecker.ts | 8 ++-- .../clava/analysis/checkers/StrcatChecker.ts | 8 ++-- .../clava/analysis/checkers/StrcpyChecker.ts | 12 ++--- .../clava/analysis/checkers/SyslogChecker.ts | 6 +-- .../clava/analysis/checkers/SystemChecker.ts | 6 +-- .../{src-api => api}/clava/cmake/CMaker.ts | 22 +++++----- .../clava/cmake/CMakerSources.ts | 10 ++--- .../clava/cmake/CMakerUtils.ts | 6 +-- .../clava/cmake/compilers/CMakeCompiler.ts | 0 .../cmake/compilers/GenericCMakeCompiler.ts | 2 +- .../clava/code/DecomposeResult.ts | 2 +- .../clava/code/DoToWhileStmt.ts | 4 +- .../clava/code/ForToWhileStmt.ts | 4 +- .../clava/code/GlobalVariable.ts | 4 +- .../{src-api => api}/clava/code/Inliner.ts | 10 ++--- .../{src-api => api}/clava/code/Outliner.ts | 8 ++-- .../clava/code/RemoveShadowing.ts | 2 +- .../clava/code/SimplifyAssignment.ts | 4 +- .../clava/code/SimplifyTernaryOp.ts | 4 +- .../clava/code/StatementDecomposer.ts | 8 ++-- .../{src-api => api}/clava/gprofer/Gprofer.ts | 16 +++---- .../clava/graphs/ControlFlowGraph.ts | 6 +-- .../clava/graphs/StaticCallGraph.ts | 12 ++--- .../clava/graphs/cfg/CfgBuilder.ts | 44 +++++++++---------- .../clava/graphs/cfg/CfgEdge.ts | 4 +- .../clava/graphs/cfg/CfgEdgeType.ts | 0 .../clava/graphs/cfg/CfgNodeData.ts | 6 +-- .../clava/graphs/cfg/CfgNodeType.ts | 0 .../clava/graphs/cfg/CfgUtils.ts | 8 ++-- .../clava/graphs/cfg/NextCfgNode.ts | 2 +- .../clava/graphs/cfg/nodedata/CaseData.ts | 6 +-- .../clava/graphs/cfg/nodedata/DataFactory.ts | 26 +++++------ .../clava/graphs/cfg/nodedata/GotoData.ts | 6 +-- .../clava/graphs/cfg/nodedata/HeaderData.ts | 6 +-- .../clava/graphs/cfg/nodedata/IfData.ts | 6 +-- .../graphs/cfg/nodedata/InstListNodeData.ts | 8 ++-- .../clava/graphs/cfg/nodedata/LabelData.ts | 6 +-- .../clava/graphs/cfg/nodedata/LoopData.ts | 6 +-- .../clava/graphs/cfg/nodedata/ReturnData.ts | 6 +-- .../graphs/cfg/nodedata/ScopeNodeData.ts | 6 +-- .../clava/graphs/cfg/nodedata/SwitchData.ts | 6 +-- .../clava/graphs/scg/ScgEdgeData.ts | 4 +- .../clava/graphs/scg/ScgNodeData.ts | 6 +-- .../graphs/scg/StaticCallGraphBuilder.ts | 12 ++--- Clava-JS/{src-api => api}/clava/hdf5/Hdf5.ts | 6 +-- .../clava/liveness/LivenessAnalyser.ts | 10 ++--- .../clava/liveness/LivenessAnalysis.ts | 4 +- .../clava/liveness/LivenessUtils.ts | 6 +-- .../clava/mpi/MpiAccessPattern.ts | 2 +- .../clava/mpi/MpiScatterGatherLoop.ts | 12 ++--- .../{src-api => api}/clava/mpi/MpiUtils.ts | 2 +- .../mpi/patterns/IterationVariablePattern.ts | 8 ++-- .../clava/mpi/patterns/MpiAccessPatterns.ts | 4 +- .../clava/mpi/patterns/ScalarPattern.ts | 4 +- .../clava/opencl/KernelReplacer.ts | 8 ++-- .../clava/opencl/KernelReplacerAuto.ts | 10 ++--- .../clava/opencl/OpenCLCall.ts | 10 ++--- .../clava/opencl/OpenCLCallVariables.ts | 0 .../{src-api => api}/clava/opt/Inlining.ts | 10 ++--- .../clava/opt/NormalizeToSubset.ts | 21 +++++---- Clava-JS/api/clava/opt/PrepareForInlining.ts | 8 ++++ .../clava/parser/BatchParser.ts | 18 ++++---- .../clava/pass/DecomposeDeclStmt.ts | 8 ++-- .../clava/pass/DecomposeVarDeclarations.ts | 8 ++-- .../clava/pass/LocalStaticToGlobal.ts | 10 ++--- .../clava/pass/SimplifyLoops.ts | 14 +++--- .../clava/pass/SimplifyReturnStmts.ts | 10 ++--- .../clava/pass/SimplifySelectionStmts.ts | 10 ++--- .../clava/pass/SingleReturnFunction.ts | 12 ++--- .../clava/pass/TransformSwitchToIf.ts | 12 ++--- .../{src-api => api}/clava/stats/OpsBlock.ts | 2 +- .../{src-api => api}/clava/stats/OpsCost.ts | 0 .../clava/stats/OpsCounter.ts | 12 ++--- .../clava/stats/StaticOpsCounter.ts | 8 ++-- .../clava/util/ClavaDataStore.ts | 12 ++--- .../clava/util/CodeInserter.ts | 8 ++-- .../clava/util/FileIterator.ts | 10 ++--- Clava-JS/{src-api => api}/jest.config.js | 3 +- .../lara/benchmark/ClavaBenchmarkInstance.ts | 16 +++---- Clava-JS/{src-api => api}/lara/code/Energy.ts | 14 +++--- Clava-JS/{src-api => api}/lara/code/Logger.ts | 10 ++--- Clava-JS/{src-api => api}/lara/code/Timer.ts | 16 +++---- .../lara/metrics/EnergyMetric.ts | 12 ++--- .../lara/metrics/ExecutionTimeMetric.ts | 14 +++--- Clava-JS/{src-code => api}/tsconfig.json | 4 +- .../{src-api => api}/weaver/WeaverLauncher.ts | 4 +- .../ClangPlugin/ClangPlugin.test.ts | 2 +- .../ClangPlugin/ClangPlugin.ts | 2 +- .../Dumper/AbstractDumper.ts | 0 .../Dumper/ClangJSONDumper.ts | 2 +- Clava-JS/{src-code => code}/Sandbox.test.ts | 2 +- Clava-JS/{src-code => code}/Sandbox.ts | 2 +- .../{src-code => code}/WeaverConfiguration.ts | 6 +-- Clava-JS/{src-code => code}/index.ts | 4 +- Clava-JS/{src-code => code}/jest.config.js | 0 Clava-JS/{src-code => code}/sideEffects.ts | 4 +- Clava-JS/code/tsconfig.json | 7 +++ Clava-JS/jest.config.js | 2 +- Clava-JS/jest/ClavaLegacyTester.ts | 4 +- Clava-JS/package.json | 18 ++++---- .../src-api/clava/opt/PrepareForInlining.ts | 8 ---- Clava-JS/src-api/tsconfig.json | 9 ---- Clava-JS/tsconfig.json | 2 +- Clava-JS/typedoc.config.js | 4 +- README.md | 20 ++++----- 150 files changed, 548 insertions(+), 559 deletions(-) rename Clava-JS/{src-api => api}/Issues.test.ts (87%) rename Clava-JS/{src-api => api}/Joinpoints.ts (99%) rename Clava-JS/{src-api => api}/LegacyIntegrationTests - C.test.ts (98%) rename Clava-JS/{src-api => api}/LegacyIntegrationTests - CXX.test.ts (98%) rename Clava-JS/{src-api => api}/LegacyIntegrationTests - Issues.test.ts (80%) rename Clava-JS/{src-api => api}/Query.test.ts (96%) rename Clava-JS/{src-api => api}/clava/Clava.ts (94%) rename Clava-JS/{src-api => api}/clava/ClavaCode.ts (96%) rename Clava-JS/{src-api => api}/clava/ClavaJavaTypes.ts (98%) rename Clava-JS/{src-api => api}/clava/ClavaJoinPoints.test.ts (75%) rename Clava-JS/{src-api => api}/clava/ClavaJoinPoints.ts (99%) rename Clava-JS/{src-api => api}/clava/ClavaType.ts (97%) rename Clava-JS/{src-api => api}/clava/Format.ts (99%) rename Clava-JS/{src-api => api}/clava/MathExtra.ts (94%) rename Clava-JS/{src-api => api}/clava/analysis/Analyser.ts (54%) rename Clava-JS/{src-api => api}/clava/analysis/AnalyserResult.test.ts (92%) rename Clava-JS/{src-api => api}/clava/analysis/AnalyserResult.ts (87%) rename Clava-JS/{src-api => api}/clava/analysis/CheckBasedAnalyser.ts (83%) rename Clava-JS/{src-api => api}/clava/analysis/CheckResult.ts (54%) rename Clava-JS/{src-api => api}/clava/analysis/Checker.ts (70%) rename Clava-JS/{src-api => api}/clava/analysis/Fix.ts (86%) rename Clava-JS/{src-api => api}/clava/analysis/MessageGenerator.ts (91%) rename Clava-JS/{src-api => api}/clava/analysis/ResultFormatManager.ts (84%) rename Clava-JS/{src-api => api}/clava/analysis/ResultList.ts (81%) rename Clava-JS/{src-api => api}/clava/analysis/analysers/BoundsAnalyser.ts (93%) rename Clava-JS/{src-api => api}/clava/analysis/analysers/BoundsResult.ts (83%) rename Clava-JS/{src-api => api}/clava/analysis/analysers/DoubleFreeAnalyser.ts (92%) rename Clava-JS/{src-api => api}/clava/analysis/analysers/DoubleFreeResult.ts (73%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/ChgrpChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/ChmodChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/ChownChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/CinChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/ExecChecker.ts (82%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/FprintfChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/FscanfChecker.ts (79%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/GetsChecker.ts (82%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/LambdaChecker.ts (81%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/MemcpyChecker.ts (78%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/PrintfChecker.ts (79%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/ScanfChecker.ts (81%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/SprintfChecker.ts (87%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/StrcatChecker.ts (83%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/StrcpyChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/SyslogChecker.ts (79%) rename Clava-JS/{src-api => api}/clava/analysis/checkers/SystemChecker.ts (80%) rename Clava-JS/{src-api => api}/clava/cmake/CMaker.ts (96%) rename Clava-JS/{src-api => api}/clava/cmake/CMakerSources.ts (95%) rename Clava-JS/{src-api => api}/clava/cmake/CMakerUtils.ts (92%) rename Clava-JS/{src-api => api}/clava/cmake/compilers/CMakeCompiler.ts (100%) rename Clava-JS/{src-api => api}/clava/cmake/compilers/GenericCMakeCompiler.ts (87%) rename Clava-JS/{src-api => api}/clava/code/DecomposeResult.ts (92%) rename Clava-JS/{src-api => api}/clava/code/DoToWhileStmt.ts (94%) rename Clava-JS/{src-api => api}/clava/code/ForToWhileStmt.ts (95%) rename Clava-JS/{src-api => api}/clava/code/GlobalVariable.ts (95%) rename Clava-JS/{src-api => api}/clava/code/Inliner.ts (98%) rename Clava-JS/{src-api => api}/clava/code/Outliner.ts (99%) rename Clava-JS/{src-api => api}/clava/code/RemoveShadowing.ts (90%) rename Clava-JS/{src-api => api}/clava/code/SimplifyAssignment.ts (90%) rename Clava-JS/{src-api => api}/clava/code/SimplifyTernaryOp.ts (96%) rename Clava-JS/{src-api => api}/clava/code/StatementDecomposer.ts (98%) rename Clava-JS/{src-api => api}/clava/gprofer/Gprofer.ts (93%) rename Clava-JS/{src-api => api}/clava/graphs/ControlFlowGraph.ts (93%) rename Clava-JS/{src-api => api}/clava/graphs/StaticCallGraph.ts (87%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgBuilder.ts (96%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgEdge.ts (94%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgEdgeType.ts (100%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgNodeData.ts (95%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgNodeType.ts (100%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/CfgUtils.ts (96%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/NextCfgNode.ts (99%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/CaseData.ts (77%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/DataFactory.ts (81%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/GotoData.ts (69%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/HeaderData.ts (76%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/IfData.ts (72%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/InstListNodeData.ts (89%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/LabelData.ts (69%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/LoopData.ts (70%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/ReturnData.ts (72%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/ScopeNodeData.ts (66%) rename Clava-JS/{src-api => api}/clava/graphs/cfg/nodedata/SwitchData.ts (73%) rename Clava-JS/{src-api => api}/clava/graphs/scg/ScgEdgeData.ts (88%) rename Clava-JS/{src-api => api}/clava/graphs/scg/ScgNodeData.ts (86%) rename Clava-JS/{src-api => api}/clava/graphs/scg/StaticCallGraphBuilder.ts (95%) rename Clava-JS/{src-api => api}/clava/hdf5/Hdf5.ts (98%) rename Clava-JS/{src-api => api}/clava/liveness/LivenessAnalyser.ts (96%) rename Clava-JS/{src-api => api}/clava/liveness/LivenessAnalysis.ts (95%) rename Clava-JS/{src-api => api}/clava/liveness/LivenessUtils.ts (98%) rename Clava-JS/{src-api => api}/clava/mpi/MpiAccessPattern.ts (91%) rename Clava-JS/{src-api => api}/clava/mpi/MpiScatterGatherLoop.ts (97%) rename Clava-JS/{src-api => api}/clava/mpi/MpiUtils.ts (90%) rename Clava-JS/{src-api => api}/clava/mpi/patterns/IterationVariablePattern.ts (97%) rename Clava-JS/{src-api => api}/clava/mpi/patterns/MpiAccessPatterns.ts (88%) rename Clava-JS/{src-api => api}/clava/mpi/patterns/ScalarPattern.ts (85%) rename Clava-JS/{src-api => api}/clava/opencl/KernelReplacer.ts (98%) rename Clava-JS/{src-api => api}/clava/opencl/KernelReplacerAuto.ts (83%) rename Clava-JS/{src-api => api}/clava/opencl/OpenCLCall.ts (92%) rename Clava-JS/{src-api => api}/clava/opencl/OpenCLCallVariables.ts (100%) rename Clava-JS/{src-api => api}/clava/opt/Inlining.ts (74%) rename Clava-JS/{src-api => api}/clava/opt/NormalizeToSubset.ts (67%) create mode 100644 Clava-JS/api/clava/opt/PrepareForInlining.ts rename Clava-JS/{src-api => api}/clava/parser/BatchParser.ts (91%) rename Clava-JS/{src-api => api}/clava/pass/DecomposeDeclStmt.ts (89%) rename Clava-JS/{src-api => api}/clava/pass/DecomposeVarDeclarations.ts (94%) rename Clava-JS/{src-api => api}/clava/pass/LocalStaticToGlobal.ts (93%) rename Clava-JS/{src-api => api}/clava/pass/SimplifyLoops.ts (88%) rename Clava-JS/{src-api => api}/clava/pass/SimplifyReturnStmts.ts (83%) rename Clava-JS/{src-api => api}/clava/pass/SimplifySelectionStmts.ts (82%) rename Clava-JS/{src-api => api}/clava/pass/SingleReturnFunction.ts (91%) rename Clava-JS/{src-api => api}/clava/pass/TransformSwitchToIf.ts (97%) rename Clava-JS/{src-api => api}/clava/stats/OpsBlock.ts (87%) rename Clava-JS/{src-api => api}/clava/stats/OpsCost.ts (100%) rename Clava-JS/{src-api => api}/clava/stats/OpsCounter.ts (95%) rename Clava-JS/{src-api => api}/clava/stats/StaticOpsCounter.ts (98%) rename Clava-JS/{src-api => api}/clava/util/ClavaDataStore.ts (93%) rename Clava-JS/{src-api => api}/clava/util/CodeInserter.ts (93%) rename Clava-JS/{src-api => api}/clava/util/FileIterator.ts (95%) rename Clava-JS/{src-api => api}/jest.config.js (79%) rename Clava-JS/{src-api => api}/lara/benchmark/ClavaBenchmarkInstance.ts (89%) rename Clava-JS/{src-api => api}/lara/code/Energy.ts (93%) rename Clava-JS/{src-api => api}/lara/code/Logger.ts (99%) rename Clava-JS/{src-api => api}/lara/code/Timer.ts (97%) rename Clava-JS/{src-api => api}/lara/metrics/EnergyMetric.ts (82%) rename Clava-JS/{src-api => api}/lara/metrics/ExecutionTimeMetric.ts (82%) rename Clava-JS/{src-code => api}/tsconfig.json (65%) rename Clava-JS/{src-api => api}/weaver/WeaverLauncher.ts (77%) rename Clava-JS/{src-code => code}/ClangPlugin/ClangPlugin.test.ts (98%) rename Clava-JS/{src-code => code}/ClangPlugin/ClangPlugin.ts (99%) rename Clava-JS/{src-code => code}/Dumper/AbstractDumper.ts (100%) rename Clava-JS/{src-code => code}/Dumper/ClangJSONDumper.ts (92%) rename Clava-JS/{src-code => code}/Sandbox.test.ts (98%) rename Clava-JS/{src-code => code}/Sandbox.ts (99%) rename Clava-JS/{src-code => code}/WeaverConfiguration.ts (69%) rename Clava-JS/{src-code => code}/index.ts (73%) mode change 100644 => 100755 rename Clava-JS/{src-code => code}/jest.config.js (100%) rename Clava-JS/{src-code => code}/sideEffects.ts (94%) create mode 100644 Clava-JS/code/tsconfig.json delete mode 100644 Clava-JS/src-api/clava/opt/PrepareForInlining.ts delete mode 100644 Clava-JS/src-api/tsconfig.json diff --git a/.codex/skills/clava-scripting/SKILL.md b/.codex/skills/clava-scripting/SKILL.md index b965f94e8d..c6353222e1 100644 --- a/.codex/skills/clava-scripting/SKILL.md +++ b/.codex/skills/clava-scripting/SKILL.md @@ -14,8 +14,8 @@ Write and modify Clava scripts in TypeScript using Clava/Lara APIs for joinpoint Use ESM imports with `.js` extensions, select joinpoints with `Query`, and transform with Clava APIs. ```ts -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FunctionJp } from "@specs-feup/clava/api/Joinpoints.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FunctionJp } from "@specs-feup/clava/api/Joinpoints.ts"; const $fn = Query.search(FunctionJp, { isImplementation: true }).first(); if ($fn) $fn.clone(`${$fn.name}_clone`); @@ -24,7 +24,7 @@ if ($fn) $fn.clone(`${$fn.name}_clone`); ## Workflow 1. Identify joinpoints and attributes. -Use the generated joinpoint wrappers in `@specs-feup/clava/api/Joinpoints.js` and check `Joinpoints.ts` for default attributes and available fields. +Use the generated joinpoint wrappers in `@specs-feup/clava/api/Joinpoints.ts` and check `Joinpoints.ts` for default attributes and available fields. 2. Select joinpoints with Query/Selector. Use `Query.search`, `Query.searchFrom`, `Query.searchFromInclusive`, `Query.childrenFrom`, and `Selector.scope`. Filters accept strings, regex, predicate functions, or objects keyed by attributes. `Selector` is iterable and methods like `.get()`, `.first()`, and `.chain()` consume the current selection. diff --git a/.codex/skills/clava-scripting/references/clava-apis.md b/.codex/skills/clava-scripting/references/clava-apis.md index 4661d47483..9b9c0850c0 100644 --- a/.codex/skills/clava-scripting/references/clava-apis.md +++ b/.codex/skills/clava-scripting/references/clava-apis.md @@ -4,27 +4,27 @@ Use this to locate the right TypeScript APIs and understand where functionality ## Clava-JS APIs (this repo) -- Joinpoint wrappers (generated): `Clava-JS/src-api/Joinpoints.ts` -- Joinpoint factories/utilities: `Clava-JS/src-api/clava/ClavaJoinPoints.ts` -- Core Clava utilities and AST stack: `Clava-JS/src-api/clava/Clava.ts` -- Common passes/opts built on Query: `Clava-JS/src-api/clava/opt`, `Clava-JS/src-api/clava/pass` +- Joinpoint wrappers (generated): `Clava-JS/api/Joinpoints.ts` +- Joinpoint factories/utilities: `Clava-JS/api/clava/ClavaJoinPoints.ts` +- Core Clava utilities and AST stack: `Clava-JS/api/clava/Clava.ts` +- Common passes/opts built on Query: `Clava-JS/api/clava/opt`, `Clava-JS/api/clava/pass` Imports typically use: -- `@specs-feup/clava/api/Joinpoints.js` -- `@specs-feup/clava/api/clava/ClavaJoinPoints.js` -- `@specs-feup/clava/api/clava/Clava.js` +- `@specs-feup/clava/api/Joinpoints.ts` +- `@specs-feup/clava/api/clava/ClavaJoinPoints.ts` +- `@specs-feup/clava/api/clava/Clava.ts` ## Lara-JS APIs (sibling repo) -- Query API: `../lara/Lara-JS/src-api/weaver/Query.ts` -- Selector behavior and filters: `../lara/Lara-JS/src-api/weaver/Selector.ts` -- Weaver utilities: `../lara/Lara-JS/src-api/weaver/Weaver.ts` +- Query API: `../lara/Lara-JS/api/weaver/Query.ts` +- Selector behavior and filters: `../lara/Lara-JS/api/weaver/Selector.ts` +- Weaver utilities: `../lara/Lara-JS/api/weaver/Weaver.ts` -If the Lara-JS repo is not a sibling of Clava, search for `Lara-JS/src-api/weaver/Query.ts`. +If the Lara-JS repo is not a sibling of Clava, search for `Lara-JS/api/weaver/Query.ts`. Imports typically use: -- `@specs-feup/lara/api/weaver/Query.js` -- `@specs-feup/lara/api/weaver/Weaver.js` +- `@specs-feup/lara/api/weaver/Query.ts` +- `@specs-feup/lara/api/weaver/Weaver.ts` ## Notes diff --git a/.codex/skills/clava-scripting/references/examples.md b/.codex/skills/clava-scripting/references/examples.md index 79e9dd6ccc..b57d102de1 100644 --- a/.codex/skills/clava-scripting/references/examples.md +++ b/.codex/skills/clava-scripting/references/examples.md @@ -24,5 +24,5 @@ Use these files for concrete patterns and idioms. - `ClavaWeaver/resources/clava/test/api/ClavaJoinPointsTest.js` - Large catalog of `ClavaJoinPoints` factory helpers. -- `Clava-JS/src-api/Query.test.ts` +- `Clava-JS/api/Query.test.ts` - Query chaining, `.scope()`, `.chain()`, and regex selection. diff --git a/.codex/skills/clava-scripting/references/query-api.md b/.codex/skills/clava-scripting/references/query-api.md index 1073cbecd1..f78fd8caf2 100644 --- a/.codex/skills/clava-scripting/references/query-api.md +++ b/.codex/skills/clava-scripting/references/query-api.md @@ -4,11 +4,11 @@ Use this when writing or debugging joinpoint selection logic. ## Primary sources -- Query API: `../lara/Lara-JS/src-api/weaver/Query.ts` (sibling worktree) -- Selector behavior: `../lara/Lara-JS/src-api/weaver/Selector.ts` (sibling worktree) -- Query usage tests: `Clava-JS/src-api/Query.test.ts` +- Query API: `../lara/Lara-JS/api/weaver/Query.ts` (sibling worktree) +- Selector behavior: `../lara/Lara-JS/api/weaver/Selector.ts` (sibling worktree) +- Query usage tests: `Clava-JS/api/Query.test.ts` -If the Lara-JS repo is not a sibling of Clava, search for `Lara-JS/src-api/weaver/Query.ts`. +If the Lara-JS repo is not a sibling of Clava, search for `Lara-JS/api/weaver/Query.ts`. ## Core patterns diff --git a/Clava-JS/.gitignore b/Clava-JS/.gitignore index 60a7a887ce..d8f403bdc2 100644 --- a/Clava-JS/.gitignore +++ b/Clava-JS/.gitignore @@ -1,7 +1,5 @@ ##### User-added ##### woven_code/ -/api -/code package-lock.json java-binaries diff --git a/Clava-JS/src-api/Issues.test.ts b/Clava-JS/api/Issues.test.ts similarity index 87% rename from Clava-JS/src-api/Issues.test.ts rename to Clava-JS/api/Issues.test.ts index dd73aa1cdc..165a255610 100644 --- a/Clava-JS/src-api/Issues.test.ts +++ b/Clava-JS/api/Issues.test.ts @@ -1,10 +1,10 @@ import { registerSourceCode, registerSourceCodes, -} from "@specs-feup/lara/jest/jestHelpers.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FunctionJp } from "@specs-feup/clava/api/Joinpoints.js"; -import ClavaJoinPoints from "@specs-feup/clava/api/clava/ClavaJoinPoints.js"; +} from "@specs-feup/lara/jest/jestHelpers.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FunctionJp } from "./Joinpoints.ts"; +import ClavaJoinPoints from "./clava/ClavaJoinPoints.ts"; const code187 = ` int foo(int a); diff --git a/Clava-JS/src-api/Joinpoints.ts b/Clava-JS/api/Joinpoints.ts similarity index 99% rename from Clava-JS/src-api/Joinpoints.ts rename to Clava-JS/api/Joinpoints.ts index ded340b4af..b1ab847a0c 100644 --- a/Clava-JS/src-api/Joinpoints.ts +++ b/Clava-JS/api/Joinpoints.ts @@ -8,7 +8,7 @@ import { wrapJoinPoint, unwrapJoinPoint, InsertPosition, -} from "@specs-feup/lara/api/LaraJoinPoint.js"; +} from "@specs-feup/lara/api/LaraJoinPoint.ts"; type PrivateMapper = { "Joinpoint": typeof Joinpoint, diff --git a/Clava-JS/src-api/LegacyIntegrationTests - C.test.ts b/Clava-JS/api/LegacyIntegrationTests - C.test.ts similarity index 98% rename from Clava-JS/src-api/LegacyIntegrationTests - C.test.ts rename to Clava-JS/api/LegacyIntegrationTests - C.test.ts index e039f61c09..819f278223 100644 --- a/Clava-JS/src-api/LegacyIntegrationTests - C.test.ts +++ b/Clava-JS/api/LegacyIntegrationTests - C.test.ts @@ -1,6 +1,6 @@ -import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.js"; -import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import ClavaJavaTypes from "@specs-feup/clava/api/clava/ClavaJavaTypes.js"; +import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.ts"; +import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import ClavaJavaTypes from "./clava/ClavaJavaTypes.ts"; import path from "path"; const isWindows = process.platform === "win32"; diff --git a/Clava-JS/src-api/LegacyIntegrationTests - CXX.test.ts b/Clava-JS/api/LegacyIntegrationTests - CXX.test.ts similarity index 98% rename from Clava-JS/src-api/LegacyIntegrationTests - CXX.test.ts rename to Clava-JS/api/LegacyIntegrationTests - CXX.test.ts index 5473c3bc3a..c0bef9b83d 100644 --- a/Clava-JS/src-api/LegacyIntegrationTests - CXX.test.ts +++ b/Clava-JS/api/LegacyIntegrationTests - CXX.test.ts @@ -1,6 +1,6 @@ -import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.js"; -import ClavaJavaTypes from "@specs-feup/clava/api/clava/ClavaJavaTypes.js"; -import JavaInterop from "@specs-feup/lara/api/lara/JavaInterop.js"; +import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.ts"; +import ClavaJavaTypes from "./clava/ClavaJavaTypes.ts"; +import JavaInterop from "@specs-feup/lara/api/lara/JavaInterop.ts"; import path from "path"; const isWindows = process.platform === "win32"; diff --git a/Clava-JS/src-api/LegacyIntegrationTests - Issues.test.ts b/Clava-JS/api/LegacyIntegrationTests - Issues.test.ts similarity index 80% rename from Clava-JS/src-api/LegacyIntegrationTests - Issues.test.ts rename to Clava-JS/api/LegacyIntegrationTests - Issues.test.ts index 480a24262a..e73847c701 100644 --- a/Clava-JS/src-api/LegacyIntegrationTests - Issues.test.ts +++ b/Clava-JS/api/LegacyIntegrationTests - Issues.test.ts @@ -1,5 +1,5 @@ -import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.js"; -import ClavaJavaTypes from "@specs-feup/clava/api/clava/ClavaJavaTypes.js"; +import { ClavaLegacyTester } from "../jest/ClavaLegacyTester.ts"; +import ClavaJavaTypes from "./clava/ClavaJavaTypes.ts"; import path from "path"; /* eslint-disable jest/expect-expect */ diff --git a/Clava-JS/src-api/Query.test.ts b/Clava-JS/api/Query.test.ts similarity index 96% rename from Clava-JS/src-api/Query.test.ts rename to Clava-JS/api/Query.test.ts index 477308a338..ca2fba6d11 100644 --- a/Clava-JS/src-api/Query.test.ts +++ b/Clava-JS/api/Query.test.ts @@ -1,6 +1,6 @@ -import { registerSourceCode } from "@specs-feup/lara/jest/jestHelpers.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FunctionJp, Loop } from "./Joinpoints.js"; +import { registerSourceCode } from "@specs-feup/lara/jest/jestHelpers.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FunctionJp, Loop } from "./Joinpoints.ts"; const code = `void query_loop() { for(int i=0; i<10; i++) { diff --git a/Clava-JS/src-api/clava/Clava.ts b/Clava-JS/api/clava/Clava.ts similarity index 94% rename from Clava-JS/src-api/clava/Clava.ts rename to Clava-JS/api/clava/Clava.ts index 3a48c219ef..3f03b49626 100644 --- a/Clava-JS/src-api/clava/Clava.ts +++ b/Clava-JS/api/clava/Clava.ts @@ -1,13 +1,12 @@ -import { wrapJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; -import Io from "@specs-feup/lara/api/lara/Io.js"; -import JavaInterop from "@specs-feup/lara/api/lara/JavaInterop.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import Weaver from "@specs-feup/lara/api/weaver/Weaver.js"; -import WeaverOptions from "@specs-feup/lara/api/weaver/WeaverOptions.js"; -import { FileJp, Include, Joinpoint, Program } from "../Joinpoints.js"; -import ClavaJavaTypes from "./ClavaJavaTypes.js"; -import ClavaDataStore from "./util/ClavaDataStore.js"; +import { wrapJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import Weaver from "@specs-feup/lara/api/weaver/Weaver.ts"; +import WeaverOptions from "@specs-feup/lara/api/weaver/WeaverOptions.ts"; +import { FileJp, Include, Joinpoint, Program } from "../Joinpoints.ts"; +import ClavaJavaTypes from "./ClavaJavaTypes.ts"; +import ClavaDataStore from "./util/ClavaDataStore.ts"; export default class Clava { /** diff --git a/Clava-JS/src-api/clava/ClavaCode.ts b/Clava-JS/api/clava/ClavaCode.ts similarity index 96% rename from Clava-JS/src-api/clava/ClavaCode.ts rename to Clava-JS/api/clava/ClavaCode.ts index 292aa2e4fc..38b6190e59 100644 --- a/Clava-JS/src-api/clava/ClavaCode.ts +++ b/Clava-JS/api/clava/ClavaCode.ts @@ -1,7 +1,7 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { FileJp, FunctionJp, @@ -11,8 +11,8 @@ import { Statement, StorageClass, Vardecl, -} from "../Joinpoints.js"; -import Clava from "./Clava.js"; +} from "../Joinpoints.ts"; +import Clava from "./Clava.ts"; /** * Utility methods related with the source code. diff --git a/Clava-JS/src-api/clava/ClavaJavaTypes.ts b/Clava-JS/api/clava/ClavaJavaTypes.ts similarity index 98% rename from Clava-JS/src-api/clava/ClavaJavaTypes.ts rename to Clava-JS/api/clava/ClavaJavaTypes.ts index 1dce1d31d2..3f3d47692d 100644 --- a/Clava-JS/src-api/clava/ClavaJavaTypes.ts +++ b/Clava-JS/api/clava/ClavaJavaTypes.ts @@ -1,6 +1,6 @@ import JavaTypes, { type JavaClasses, -} from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +} from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; // eslint-disable-next-line @typescript-eslint/no-namespace export namespace ClavaJavaClasses { diff --git a/Clava-JS/src-api/clava/ClavaJoinPoints.test.ts b/Clava-JS/api/clava/ClavaJoinPoints.test.ts similarity index 75% rename from Clava-JS/src-api/clava/ClavaJoinPoints.test.ts rename to Clava-JS/api/clava/ClavaJoinPoints.test.ts index f570a5edac..53cf209c38 100644 --- a/Clava-JS/src-api/clava/ClavaJoinPoints.test.ts +++ b/Clava-JS/api/clava/ClavaJoinPoints.test.ts @@ -1,7 +1,7 @@ -import { registerSourceCode } from "@specs-feup/lara/jest/jestHelpers.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { ExprStmt } from "../Joinpoints.js"; -import ClavaJoinPoints from "./ClavaJoinPoints.js"; +import { registerSourceCode } from "@specs-feup/lara/jest/jestHelpers.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { ExprStmt } from "../Joinpoints.ts"; +import ClavaJoinPoints from "./ClavaJoinPoints.ts"; const code = `int main() { int a = 0, b = 0; diff --git a/Clava-JS/src-api/clava/ClavaJoinPoints.ts b/Clava-JS/api/clava/ClavaJoinPoints.ts similarity index 99% rename from Clava-JS/src-api/clava/ClavaJoinPoints.ts rename to Clava-JS/api/clava/ClavaJoinPoints.ts index 332c0a23a5..0b4193b9a8 100644 --- a/Clava-JS/src-api/clava/ClavaJoinPoints.ts +++ b/Clava-JS/api/clava/ClavaJoinPoints.ts @@ -1,16 +1,16 @@ import { unwrapJoinPoint, wrapJoinPoint, -} from "@specs-feup/lara/api/LaraJoinPoint.js"; +} from "@specs-feup/lara/api/LaraJoinPoint.ts"; import { arrayFromArgs, flattenArgsArray, -} from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import * as Joinpoints from "../Joinpoints.js"; -import Clava from "./Clava.js"; -import ClavaJavaTypes from "./ClavaJavaTypes.js"; -import Weaver from "@specs-feup/lara/api/weaver/Weaver.js"; +} from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import * as Joinpoints from "../Joinpoints.ts"; +import Clava from "./Clava.ts"; +import ClavaJavaTypes from "./ClavaJavaTypes.ts"; +import Weaver from "@specs-feup/lara/api/weaver/Weaver.ts"; /** * Utility methods related with the creation of new join points. diff --git a/Clava-JS/src-api/clava/ClavaType.ts b/Clava-JS/api/clava/ClavaType.ts similarity index 97% rename from Clava-JS/src-api/clava/ClavaType.ts rename to Clava-JS/api/clava/ClavaType.ts index 94a5b456f8..29783ace42 100644 --- a/Clava-JS/src-api/clava/ClavaType.ts +++ b/Clava-JS/api/clava/ClavaType.ts @@ -8,9 +8,9 @@ import { Type, VariableArrayType, Varref, -} from "../Joinpoints.js"; -import ClavaJoinPoints from "./ClavaJoinPoints.js"; -import ClavaJavaTypes from "./ClavaJavaTypes.js"; +} from "../Joinpoints.ts"; +import ClavaJoinPoints from "./ClavaJoinPoints.ts"; +import ClavaJavaTypes from "./ClavaJavaTypes.ts"; /** * Utility methods related with the type join points. diff --git a/Clava-JS/src-api/clava/Format.ts b/Clava-JS/api/clava/Format.ts similarity index 99% rename from Clava-JS/src-api/clava/Format.ts rename to Clava-JS/api/clava/Format.ts index a3793873d3..a8b4beede1 100644 --- a/Clava-JS/src-api/clava/Format.ts +++ b/Clava-JS/api/clava/Format.ts @@ -1,4 +1,4 @@ -import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.js"; +import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; export default class Format { static addPrefix(str: string, prefix: string): string { diff --git a/Clava-JS/src-api/clava/MathExtra.ts b/Clava-JS/api/clava/MathExtra.ts similarity index 94% rename from Clava-JS/src-api/clava/MathExtra.ts rename to Clava-JS/api/clava/MathExtra.ts index 4a2a69272c..371ac294a9 100644 --- a/Clava-JS/src-api/clava/MathExtra.ts +++ b/Clava-JS/api/clava/MathExtra.ts @@ -1,6 +1,6 @@ -import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import { Expression } from "../Joinpoints.js"; -import ClavaJavaTypes from "./ClavaJavaTypes.js"; +import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import { Expression } from "../Joinpoints.ts"; +import ClavaJavaTypes from "./ClavaJavaTypes.ts"; export default class MathExtra { /** diff --git a/Clava-JS/src-api/clava/analysis/Analyser.ts b/Clava-JS/api/clava/analysis/Analyser.ts similarity index 54% rename from Clava-JS/src-api/clava/analysis/Analyser.ts rename to Clava-JS/api/clava/analysis/Analyser.ts index b0b382413c..4cdfff7047 100644 --- a/Clava-JS/src-api/clava/analysis/Analyser.ts +++ b/Clava-JS/api/clava/analysis/Analyser.ts @@ -1,5 +1,5 @@ -import { Joinpoint } from "../../Joinpoints.js"; -import ResultList from "./ResultList.js"; +import { Joinpoint } from "../../Joinpoints.ts"; +import ResultList from "./ResultList.ts"; export default abstract class Analyser { abstract analyse($node?: Joinpoint): ResultList | undefined; diff --git a/Clava-JS/src-api/clava/analysis/AnalyserResult.test.ts b/Clava-JS/api/clava/analysis/AnalyserResult.test.ts similarity index 92% rename from Clava-JS/src-api/clava/analysis/AnalyserResult.test.ts rename to Clava-JS/api/clava/analysis/AnalyserResult.test.ts index 7effbf0216..61870b1325 100644 --- a/Clava-JS/src-api/clava/analysis/AnalyserResult.test.ts +++ b/Clava-JS/api/clava/analysis/AnalyserResult.test.ts @@ -1,5 +1,5 @@ -import AnalyserResult from "./AnalyserResult.js"; -import ClavaJoinPoints from "@specs-feup/clava/api/clava/ClavaJoinPoints.js"; +import AnalyserResult from "./AnalyserResult.ts"; +import ClavaJoinPoints from "@specs-feup/clava/api/clava/ClavaJoinPoints.ts"; describe("AnalyserResult", () => { describe("getName", () => { diff --git a/Clava-JS/src-api/clava/analysis/AnalyserResult.ts b/Clava-JS/api/clava/analysis/AnalyserResult.ts similarity index 87% rename from Clava-JS/src-api/clava/analysis/AnalyserResult.ts rename to Clava-JS/api/clava/analysis/AnalyserResult.ts index 7c8787bc5c..5219e1e09d 100644 --- a/Clava-JS/src-api/clava/analysis/AnalyserResult.ts +++ b/Clava-JS/api/clava/analysis/AnalyserResult.ts @@ -1,5 +1,5 @@ -import { Joinpoint } from "../../Joinpoints.js"; -import Fix from "./Fix.js"; +import { Joinpoint } from "../../Joinpoints.ts"; +import Fix from "./Fix.ts"; /** * Abstract class created as a model for every result of analyser diff --git a/Clava-JS/src-api/clava/analysis/CheckBasedAnalyser.ts b/Clava-JS/api/clava/analysis/CheckBasedAnalyser.ts similarity index 83% rename from Clava-JS/src-api/clava/analysis/CheckBasedAnalyser.ts rename to Clava-JS/api/clava/analysis/CheckBasedAnalyser.ts index 9020b4bbe8..98aa2bdd83 100644 --- a/Clava-JS/src-api/clava/analysis/CheckBasedAnalyser.ts +++ b/Clava-JS/api/clava/analysis/CheckBasedAnalyser.ts @@ -1,9 +1,9 @@ -import Analyser from "./Analyser.js"; -import Checker from "./Checker.js"; -import ResultFormatManager from "./ResultFormatManager.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FileJp, Joinpoint, Program } from "../../Joinpoints.js"; -import AnalyserResult from "./AnalyserResult.js"; +import Analyser from "./Analyser.ts"; +import Checker from "./Checker.ts"; +import ResultFormatManager from "./ResultFormatManager.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FileJp, Joinpoint, Program } from "../../Joinpoints.ts"; +import AnalyserResult from "./AnalyserResult.ts"; type T = Program | FileJp; diff --git a/Clava-JS/src-api/clava/analysis/CheckResult.ts b/Clava-JS/api/clava/analysis/CheckResult.ts similarity index 54% rename from Clava-JS/src-api/clava/analysis/CheckResult.ts rename to Clava-JS/api/clava/analysis/CheckResult.ts index 69af292a18..8125cd3f82 100644 --- a/Clava-JS/src-api/clava/analysis/CheckResult.ts +++ b/Clava-JS/api/clava/analysis/CheckResult.ts @@ -1,3 +1,3 @@ -import AnalyserResult from "./AnalyserResult.js"; +import AnalyserResult from "./AnalyserResult.ts"; export default class CheckResult extends AnalyserResult {} diff --git a/Clava-JS/src-api/clava/analysis/Checker.ts b/Clava-JS/api/clava/analysis/Checker.ts similarity index 70% rename from Clava-JS/src-api/clava/analysis/Checker.ts rename to Clava-JS/api/clava/analysis/Checker.ts index 05520bbb8a..2c3639b83d 100644 --- a/Clava-JS/src-api/clava/analysis/Checker.ts +++ b/Clava-JS/api/clava/analysis/Checker.ts @@ -1,5 +1,5 @@ -import { Joinpoint } from "../../Joinpoints.js"; -import AnalyserResult from "./AnalyserResult.js"; +import { Joinpoint } from "../../Joinpoints.ts"; +import AnalyserResult from "./AnalyserResult.ts"; export default abstract class Checker { name: string; diff --git a/Clava-JS/src-api/clava/analysis/Fix.ts b/Clava-JS/api/clava/analysis/Fix.ts similarity index 86% rename from Clava-JS/src-api/clava/analysis/Fix.ts rename to Clava-JS/api/clava/analysis/Fix.ts index e774d87768..0c1d44a2a5 100644 --- a/Clava-JS/src-api/clava/analysis/Fix.ts +++ b/Clava-JS/api/clava/analysis/Fix.ts @@ -1,4 +1,4 @@ -import { Joinpoint } from "../../Joinpoints.js"; +import { Joinpoint } from "../../Joinpoints.ts"; export default class Fix { private node: Joinpoint; diff --git a/Clava-JS/src-api/clava/analysis/MessageGenerator.ts b/Clava-JS/api/clava/analysis/MessageGenerator.ts similarity index 91% rename from Clava-JS/src-api/clava/analysis/MessageGenerator.ts rename to Clava-JS/api/clava/analysis/MessageGenerator.ts index 25e663a2b0..260b942fc8 100644 --- a/Clava-JS/src-api/clava/analysis/MessageGenerator.ts +++ b/Clava-JS/api/clava/analysis/MessageGenerator.ts @@ -1,7 +1,7 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Clava from "../Clava.js"; -import AnalyserResult from "./AnalyserResult.js"; -import ResultList from "./ResultList.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Clava from "../Clava.ts"; +import AnalyserResult from "./AnalyserResult.ts"; +import ResultList from "./ResultList.ts"; // Class sorting resultLists and generating an analysis report diff --git a/Clava-JS/src-api/clava/analysis/ResultFormatManager.ts b/Clava-JS/api/clava/analysis/ResultFormatManager.ts similarity index 84% rename from Clava-JS/src-api/clava/analysis/ResultFormatManager.ts rename to Clava-JS/api/clava/analysis/ResultFormatManager.ts index 4a620b3bbc..25db7976d4 100644 --- a/Clava-JS/src-api/clava/analysis/ResultFormatManager.ts +++ b/Clava-JS/api/clava/analysis/ResultFormatManager.ts @@ -1,6 +1,6 @@ -import { FileJp, Program } from "../../Joinpoints.js"; -import AnalyserResult from "./AnalyserResult.js"; -import ResultList from "./ResultList.js"; +import { FileJp, Program } from "../../Joinpoints.ts"; +import AnalyserResult from "./AnalyserResult.ts"; +import ResultList from "./ResultList.ts"; /** * Class to format the results from the analyser into a resultList diff --git a/Clava-JS/src-api/clava/analysis/ResultList.ts b/Clava-JS/api/clava/analysis/ResultList.ts similarity index 81% rename from Clava-JS/src-api/clava/analysis/ResultList.ts rename to Clava-JS/api/clava/analysis/ResultList.ts index 366a138c6a..7f59ed5bb7 100644 --- a/Clava-JS/src-api/clava/analysis/ResultList.ts +++ b/Clava-JS/api/clava/analysis/ResultList.ts @@ -1,4 +1,4 @@ -import AnalyserResult from "./AnalyserResult.js"; +import AnalyserResult from "./AnalyserResult.ts"; export default class ResultList { fileName: string; diff --git a/Clava-JS/src-api/clava/analysis/analysers/BoundsAnalyser.ts b/Clava-JS/api/clava/analysis/analysers/BoundsAnalyser.ts similarity index 93% rename from Clava-JS/src-api/clava/analysis/analysers/BoundsAnalyser.ts rename to Clava-JS/api/clava/analysis/analysers/BoundsAnalyser.ts index 9ab20fdf63..b7987b44bb 100644 --- a/Clava-JS/src-api/clava/analysis/analysers/BoundsAnalyser.ts +++ b/Clava-JS/api/clava/analysis/analysers/BoundsAnalyser.ts @@ -1,4 +1,4 @@ -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { ArrayAccess, ArrayType, @@ -6,10 +6,10 @@ import { FunctionJp, Program, Vardecl, -} from "../../../Joinpoints.js"; -import Analyser from "../Analyser.js"; -import ResultFormatManager from "../ResultFormatManager.js"; -import BoundsResult from "./BoundsResult.js"; +} from "../../../Joinpoints.ts"; +import Analyser from "../Analyser.ts"; +import ResultFormatManager from "../ResultFormatManager.ts"; +import BoundsResult from "./BoundsResult.ts"; type T = Program | FileJp; diff --git a/Clava-JS/src-api/clava/analysis/analysers/BoundsResult.ts b/Clava-JS/api/clava/analysis/analysers/BoundsResult.ts similarity index 83% rename from Clava-JS/src-api/clava/analysis/analysers/BoundsResult.ts rename to Clava-JS/api/clava/analysis/analysers/BoundsResult.ts index edab2f4c61..aeaacdc7cc 100644 --- a/Clava-JS/src-api/clava/analysis/analysers/BoundsResult.ts +++ b/Clava-JS/api/clava/analysis/analysers/BoundsResult.ts @@ -1,6 +1,6 @@ -import { Vardecl } from "../../../Joinpoints.js"; -import AnalyserResult from "../AnalyserResult.js"; -import Fix from "../Fix.js"; +import { Vardecl } from "../../../Joinpoints.ts"; +import AnalyserResult from "../AnalyserResult.ts"; +import Fix from "../Fix.ts"; export default class BoundsResult extends AnalyserResult { arrayName: string; diff --git a/Clava-JS/src-api/clava/analysis/analysers/DoubleFreeAnalyser.ts b/Clava-JS/api/clava/analysis/analysers/DoubleFreeAnalyser.ts similarity index 92% rename from Clava-JS/src-api/clava/analysis/analysers/DoubleFreeAnalyser.ts rename to Clava-JS/api/clava/analysis/analysers/DoubleFreeAnalyser.ts index 43fd4198a1..28f62b985f 100644 --- a/Clava-JS/src-api/clava/analysis/analysers/DoubleFreeAnalyser.ts +++ b/Clava-JS/api/clava/analysis/analysers/DoubleFreeAnalyser.ts @@ -1,4 +1,4 @@ -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { BinaryOp, Call, @@ -7,10 +7,10 @@ import { Joinpoint, Program, Vardecl, -} from "../../../Joinpoints.js"; -import Analyser from "../Analyser.js"; -import ResultFormatManager from "../ResultFormatManager.js"; -import DoubleFreeResult from "./DoubleFreeResult.js"; +} from "../../../Joinpoints.ts"; +import Analyser from "../Analyser.ts"; +import ResultFormatManager from "../ResultFormatManager.ts"; +import DoubleFreeResult from "./DoubleFreeResult.ts"; type T = Program | FileJp; diff --git a/Clava-JS/src-api/clava/analysis/analysers/DoubleFreeResult.ts b/Clava-JS/api/clava/analysis/analysers/DoubleFreeResult.ts similarity index 73% rename from Clava-JS/src-api/clava/analysis/analysers/DoubleFreeResult.ts rename to Clava-JS/api/clava/analysis/analysers/DoubleFreeResult.ts index 135627f00a..a5a80cf6a5 100644 --- a/Clava-JS/src-api/clava/analysis/analysers/DoubleFreeResult.ts +++ b/Clava-JS/api/clava/analysis/analysers/DoubleFreeResult.ts @@ -1,6 +1,6 @@ -import { Joinpoint } from "../../../Joinpoints.js"; -import AnalyserResult from "../AnalyserResult.js"; -import Fix from "../Fix.js"; +import { Joinpoint } from "../../../Joinpoints.ts"; +import AnalyserResult from "../AnalyserResult.ts"; +import Fix from "../Fix.ts"; export default class DoubleFreeResult extends AnalyserResult { ptrName: string; diff --git a/Clava-JS/src-api/clava/analysis/checkers/ChgrpChecker.ts b/Clava-JS/api/clava/analysis/checkers/ChgrpChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/ChgrpChecker.ts rename to Clava-JS/api/clava/analysis/checkers/ChgrpChecker.ts index 9394c59004..f9e4bdfead 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/ChgrpChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/ChgrpChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of chgrp functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/ChmodChecker.ts b/Clava-JS/api/clava/analysis/checkers/ChmodChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/ChmodChecker.ts rename to Clava-JS/api/clava/analysis/checkers/ChmodChecker.ts index ebac3efb3e..eb0b7ffc00 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/ChmodChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/ChmodChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of chmod functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/ChownChecker.ts b/Clava-JS/api/clava/analysis/checkers/ChownChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/ChownChecker.ts rename to Clava-JS/api/clava/analysis/checkers/ChownChecker.ts index a66b095785..dd74d7eba0 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/ChownChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/ChownChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of chown functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/CinChecker.ts b/Clava-JS/api/clava/analysis/checkers/CinChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/CinChecker.ts rename to Clava-JS/api/clava/analysis/checkers/CinChecker.ts index d7edb5b30a..1fc3ef1bb2 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/CinChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/CinChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; export default class CinChecker extends Checker { private advice = diff --git a/Clava-JS/src-api/clava/analysis/checkers/ExecChecker.ts b/Clava-JS/api/clava/analysis/checkers/ExecChecker.ts similarity index 82% rename from Clava-JS/src-api/clava/analysis/checkers/ExecChecker.ts rename to Clava-JS/api/clava/analysis/checkers/ExecChecker.ts index cf4aa2a542..b0dd2cca18 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/ExecChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/ExecChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of exec family functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/FprintfChecker.ts b/Clava-JS/api/clava/analysis/checkers/FprintfChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/FprintfChecker.ts rename to Clava-JS/api/clava/analysis/checkers/FprintfChecker.ts index dcc200d23c..ae842ab983 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/FprintfChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/FprintfChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of fprintf functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/FscanfChecker.ts b/Clava-JS/api/clava/analysis/checkers/FscanfChecker.ts similarity index 79% rename from Clava-JS/src-api/clava/analysis/checkers/FscanfChecker.ts rename to Clava-JS/api/clava/analysis/checkers/FscanfChecker.ts index 775ecf88d1..49b0d72365 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/FscanfChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/FscanfChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of fscanf functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/GetsChecker.ts b/Clava-JS/api/clava/analysis/checkers/GetsChecker.ts similarity index 82% rename from Clava-JS/src-api/clava/analysis/checkers/GetsChecker.ts rename to Clava-JS/api/clava/analysis/checkers/GetsChecker.ts index 6488a8bc27..786188b982 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/GetsChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/GetsChecker.ts @@ -1,7 +1,7 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; -import Fix from "../Fix.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; +import Fix from "../Fix.ts"; /** * Check for the presence of gets functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/LambdaChecker.ts b/Clava-JS/api/clava/analysis/checkers/LambdaChecker.ts similarity index 81% rename from Clava-JS/src-api/clava/analysis/checkers/LambdaChecker.ts rename to Clava-JS/api/clava/analysis/checkers/LambdaChecker.ts index 6d8d55ffc7..ea4ae4ccf7 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/LambdaChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/LambdaChecker.ts @@ -1,6 +1,6 @@ -import { Joinpoint, Vardecl } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Joinpoint, Vardecl } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of lambda objects using capture by reference diff --git a/Clava-JS/src-api/clava/analysis/checkers/MemcpyChecker.ts b/Clava-JS/api/clava/analysis/checkers/MemcpyChecker.ts similarity index 78% rename from Clava-JS/src-api/clava/analysis/checkers/MemcpyChecker.ts rename to Clava-JS/api/clava/analysis/checkers/MemcpyChecker.ts index bcf849d9fa..c89eb8d043 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/MemcpyChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/MemcpyChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of memcpy functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/PrintfChecker.ts b/Clava-JS/api/clava/analysis/checkers/PrintfChecker.ts similarity index 79% rename from Clava-JS/src-api/clava/analysis/checkers/PrintfChecker.ts rename to Clava-JS/api/clava/analysis/checkers/PrintfChecker.ts index d42cf29c52..5cd270c866 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/PrintfChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/PrintfChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of printf functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/ScanfChecker.ts b/Clava-JS/api/clava/analysis/checkers/ScanfChecker.ts similarity index 81% rename from Clava-JS/src-api/clava/analysis/checkers/ScanfChecker.ts rename to Clava-JS/api/clava/analysis/checkers/ScanfChecker.ts index 69c8d38970..65c46d42bc 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/ScanfChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/ScanfChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of scanf functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/SprintfChecker.ts b/Clava-JS/api/clava/analysis/checkers/SprintfChecker.ts similarity index 87% rename from Clava-JS/src-api/clava/analysis/checkers/SprintfChecker.ts rename to Clava-JS/api/clava/analysis/checkers/SprintfChecker.ts index 0bed50093b..9607a8ddd1 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/SprintfChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/SprintfChecker.ts @@ -1,7 +1,7 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; -import Fix from "../Fix.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; +import Fix from "../Fix.ts"; /** * Check for the presence of sprintf functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/StrcatChecker.ts b/Clava-JS/api/clava/analysis/checkers/StrcatChecker.ts similarity index 83% rename from Clava-JS/src-api/clava/analysis/checkers/StrcatChecker.ts rename to Clava-JS/api/clava/analysis/checkers/StrcatChecker.ts index 10c9aea20c..0b75676a5c 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/StrcatChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/StrcatChecker.ts @@ -1,7 +1,7 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; -import Fix from "../Fix.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; +import Fix from "../Fix.ts"; /** * Check for the presence of strcat functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/StrcpyChecker.ts b/Clava-JS/api/clava/analysis/checkers/StrcpyChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/StrcpyChecker.ts rename to Clava-JS/api/clava/analysis/checkers/StrcpyChecker.ts index 9c3aef5252..f21b6f2ecf 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/StrcpyChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/StrcpyChecker.ts @@ -1,9 +1,9 @@ -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; -import Fix from "../Fix.js"; -import { Joinpoint, Call } from "../../../Joinpoints.js"; -import AnalyserResult from "../AnalyserResult.js"; -import ClavaJoinPoints from "../../ClavaJoinPoints.js"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; +import Fix from "../Fix.ts"; +import { Joinpoint, Call } from "../../../Joinpoints.ts"; +import AnalyserResult from "../AnalyserResult.ts"; +import ClavaJoinPoints from "../../ClavaJoinPoints.ts"; /*Check for the presence of strcpy functions*/ diff --git a/Clava-JS/src-api/clava/analysis/checkers/SyslogChecker.ts b/Clava-JS/api/clava/analysis/checkers/SyslogChecker.ts similarity index 79% rename from Clava-JS/src-api/clava/analysis/checkers/SyslogChecker.ts rename to Clava-JS/api/clava/analysis/checkers/SyslogChecker.ts index d418e80a69..2859e8cc79 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/SyslogChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/SyslogChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of syslog functions diff --git a/Clava-JS/src-api/clava/analysis/checkers/SystemChecker.ts b/Clava-JS/api/clava/analysis/checkers/SystemChecker.ts similarity index 80% rename from Clava-JS/src-api/clava/analysis/checkers/SystemChecker.ts rename to Clava-JS/api/clava/analysis/checkers/SystemChecker.ts index 8fc727477d..16bd5b16fc 100644 --- a/Clava-JS/src-api/clava/analysis/checkers/SystemChecker.ts +++ b/Clava-JS/api/clava/analysis/checkers/SystemChecker.ts @@ -1,6 +1,6 @@ -import { Call, Joinpoint } from "../../../Joinpoints.js"; -import Checker from "../Checker.js"; -import CheckResult from "../CheckResult.js"; +import { Call, Joinpoint } from "../../../Joinpoints.ts"; +import Checker from "../Checker.ts"; +import CheckResult from "../CheckResult.ts"; /** * Check for the presence of system functions diff --git a/Clava-JS/src-api/clava/cmake/CMaker.ts b/Clava-JS/api/clava/cmake/CMaker.ts similarity index 96% rename from Clava-JS/src-api/clava/cmake/CMaker.ts rename to Clava-JS/api/clava/cmake/CMaker.ts index f53c7641ae..142c61addf 100644 --- a/Clava-JS/src-api/clava/cmake/CMaker.ts +++ b/Clava-JS/api/clava/cmake/CMaker.ts @@ -1,18 +1,18 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Platforms from "@specs-feup/lara/api/lara/Platforms.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Platforms from "@specs-feup/lara/api/lara/Platforms.ts"; import { arrayFromArgs, debug, debugObject, -} from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.js"; -import { FileJp } from "../../Joinpoints.js"; -import Clava from "../Clava.js"; -import CMakerSources from "./CMakerSources.js"; -import CMakerUtils from "./CMakerUtils.js"; -import CMakeCompiler from "./compilers/CMakeCompiler.js"; -import BenchmarkCompilationEngine from "@specs-feup/lara/api/lara/benchmark/BenchmarkCompilationEngine.js"; +} from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.ts"; +import { FileJp } from "../../Joinpoints.ts"; +import Clava from "../Clava.ts"; +import CMakerSources from "./CMakerSources.ts"; +import CMakerUtils from "./CMakerUtils.ts"; +import CMakeCompiler from "./compilers/CMakeCompiler.ts"; +import BenchmarkCompilationEngine from "@specs-feup/lara/api/lara/benchmark/BenchmarkCompilationEngine.ts"; /** * Builds CMake configurations. diff --git a/Clava-JS/src-api/clava/cmake/CMakerSources.ts b/Clava-JS/api/clava/cmake/CMakerSources.ts similarity index 95% rename from Clava-JS/src-api/clava/cmake/CMakerSources.ts rename to Clava-JS/api/clava/cmake/CMakerSources.ts index 5d64d8c1c5..aa5ea4a490 100644 --- a/Clava-JS/src-api/clava/cmake/CMakerSources.ts +++ b/Clava-JS/api/clava/cmake/CMakerSources.ts @@ -1,8 +1,8 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Clava from "../Clava.js"; -import CMakerUtils from "./CMakerUtils.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Clava from "../Clava.ts"; +import CMakerUtils from "./CMakerUtils.ts"; /** * Contains CMaker sources diff --git a/Clava-JS/src-api/clava/cmake/CMakerUtils.ts b/Clava-JS/api/clava/cmake/CMakerUtils.ts similarity index 92% rename from Clava-JS/src-api/clava/cmake/CMakerUtils.ts rename to Clava-JS/api/clava/cmake/CMakerUtils.ts index eff7c88906..c6f21edade 100644 --- a/Clava-JS/src-api/clava/cmake/CMakerUtils.ts +++ b/Clava-JS/api/clava/cmake/CMakerUtils.ts @@ -1,6 +1,6 @@ -import ToolUtils from "@specs-feup/lara/api/lara/tool/ToolUtils.js"; -import CMakeCompiler from "./compilers/CMakeCompiler.js"; -import GenericCMakeCompiler from "./compilers/GenericCMakeCompiler.js"; +import ToolUtils from "@specs-feup/lara/api/lara/tool/ToolUtils.ts"; +import CMakeCompiler from "./compilers/CMakeCompiler.ts"; +import GenericCMakeCompiler from "./compilers/GenericCMakeCompiler.ts"; export default class CMakerUtils extends ToolUtils { private static compilerTable = { diff --git a/Clava-JS/src-api/clava/cmake/compilers/CMakeCompiler.ts b/Clava-JS/api/clava/cmake/compilers/CMakeCompiler.ts similarity index 100% rename from Clava-JS/src-api/clava/cmake/compilers/CMakeCompiler.ts rename to Clava-JS/api/clava/cmake/compilers/CMakeCompiler.ts diff --git a/Clava-JS/src-api/clava/cmake/compilers/GenericCMakeCompiler.ts b/Clava-JS/api/clava/cmake/compilers/GenericCMakeCompiler.ts similarity index 87% rename from Clava-JS/src-api/clava/cmake/compilers/GenericCMakeCompiler.ts rename to Clava-JS/api/clava/cmake/compilers/GenericCMakeCompiler.ts index 75d817f142..246ca1c289 100644 --- a/Clava-JS/src-api/clava/cmake/compilers/GenericCMakeCompiler.ts +++ b/Clava-JS/api/clava/cmake/compilers/GenericCMakeCompiler.ts @@ -1,4 +1,4 @@ -import CMakeCompiler from "./CMakeCompiler.js"; +import CMakeCompiler from "./CMakeCompiler.ts"; /** * Iterates over a list of values. diff --git a/Clava-JS/src-api/clava/code/DecomposeResult.ts b/Clava-JS/api/clava/code/DecomposeResult.ts similarity index 92% rename from Clava-JS/src-api/clava/code/DecomposeResult.ts rename to Clava-JS/api/clava/code/DecomposeResult.ts index 81648819a1..fa8edfe5e9 100644 --- a/Clava-JS/src-api/clava/code/DecomposeResult.ts +++ b/Clava-JS/api/clava/code/DecomposeResult.ts @@ -1,4 +1,4 @@ -import { Expression, Statement } from "../../Joinpoints.js"; +import { Expression, Statement } from "../../Joinpoints.ts"; export default class DecomposeResult { precedingStmts: Statement[]; diff --git a/Clava-JS/src-api/clava/code/DoToWhileStmt.ts b/Clava-JS/api/clava/code/DoToWhileStmt.ts similarity index 94% rename from Clava-JS/src-api/clava/code/DoToWhileStmt.ts rename to Clava-JS/api/clava/code/DoToWhileStmt.ts index 0c6d4b07db..0c97a1cfa1 100644 --- a/Clava-JS/src-api/clava/code/DoToWhileStmt.ts +++ b/Clava-JS/api/clava/code/DoToWhileStmt.ts @@ -1,5 +1,5 @@ -import { Joinpoint, Loop } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import { Joinpoint, Loop } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; export default function DoToWhileStmt($doStmt: Loop, labelSuffix: number | string) { // do statements have an unconditional first iteration diff --git a/Clava-JS/src-api/clava/code/ForToWhileStmt.ts b/Clava-JS/api/clava/code/ForToWhileStmt.ts similarity index 95% rename from Clava-JS/src-api/clava/code/ForToWhileStmt.ts rename to Clava-JS/api/clava/code/ForToWhileStmt.ts index 50461555d1..4a9d4af209 100644 --- a/Clava-JS/src-api/clava/code/ForToWhileStmt.ts +++ b/Clava-JS/api/clava/code/ForToWhileStmt.ts @@ -1,5 +1,5 @@ -import { EmptyStmt, Joinpoint, Loop } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import { EmptyStmt, Joinpoint, Loop } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Replaces for loop with an equivalent construct based on a while loop: diff --git a/Clava-JS/src-api/clava/code/GlobalVariable.ts b/Clava-JS/api/clava/code/GlobalVariable.ts similarity index 95% rename from Clava-JS/src-api/clava/code/GlobalVariable.ts rename to Clava-JS/api/clava/code/GlobalVariable.ts index ee251bc458..ef9c8718ed 100644 --- a/Clava-JS/src-api/clava/code/GlobalVariable.ts +++ b/Clava-JS/api/clava/code/GlobalVariable.ts @@ -1,5 +1,5 @@ -import { FileJp, Joinpoint, Type, Varref } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import { FileJp, Joinpoint, Type, Varref } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Adds and manages global variables. diff --git a/Clava-JS/src-api/clava/code/Inliner.ts b/Clava-JS/api/clava/code/Inliner.ts similarity index 98% rename from Clava-JS/src-api/clava/code/Inliner.ts rename to Clava-JS/api/clava/code/Inliner.ts index 0ca32aa9d8..1bdeb8ac58 100644 --- a/Clava-JS/src-api/clava/code/Inliner.ts +++ b/Clava-JS/api/clava/code/Inliner.ts @@ -1,6 +1,6 @@ -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { BinaryOp, Call, @@ -23,8 +23,8 @@ import { Vardecl, VariableArrayType, Varref, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; export interface InlinerOptions { prefix?: string; diff --git a/Clava-JS/src-api/clava/code/Outliner.ts b/Clava-JS/api/clava/code/Outliner.ts similarity index 99% rename from Clava-JS/src-api/clava/code/Outliner.ts rename to Clava-JS/api/clava/code/Outliner.ts index 2a0ea6f954..26833ac281 100644 --- a/Clava-JS/src-api/clava/code/Outliner.ts +++ b/Clava-JS/api/clava/code/Outliner.ts @@ -1,5 +1,5 @@ -import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { AdjustedType, ArrayType, @@ -18,8 +18,8 @@ import { Statement, Vardecl, Varref, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; export default class Outliner { private verbose: boolean = true; diff --git a/Clava-JS/src-api/clava/code/RemoveShadowing.ts b/Clava-JS/api/clava/code/RemoveShadowing.ts similarity index 90% rename from Clava-JS/src-api/clava/code/RemoveShadowing.ts rename to Clava-JS/api/clava/code/RemoveShadowing.ts index 205b984013..81fb4d6a6e 100644 --- a/Clava-JS/src-api/clava/code/RemoveShadowing.ts +++ b/Clava-JS/api/clava/code/RemoveShadowing.ts @@ -1,4 +1,4 @@ -import { FunctionJp, Vardecl } from "../../Joinpoints.js"; +import { FunctionJp, Vardecl } from "../../Joinpoints.ts"; export default function RemoveShadowing($function: FunctionJp): void { const usedNames = new Set(); diff --git a/Clava-JS/src-api/clava/code/SimplifyAssignment.ts b/Clava-JS/api/clava/code/SimplifyAssignment.ts similarity index 90% rename from Clava-JS/src-api/clava/code/SimplifyAssignment.ts rename to Clava-JS/api/clava/code/SimplifyAssignment.ts index 0352c44461..7327677ea8 100644 --- a/Clava-JS/src-api/clava/code/SimplifyAssignment.ts +++ b/Clava-JS/api/clava/code/SimplifyAssignment.ts @@ -1,5 +1,5 @@ -import { BinaryOp, Expression, OpKind } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import { BinaryOp, Expression, OpKind } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Simplifies assignments of the type `a += b` into the equivalent expression `a = a + b` diff --git a/Clava-JS/src-api/clava/code/SimplifyTernaryOp.ts b/Clava-JS/api/clava/code/SimplifyTernaryOp.ts similarity index 96% rename from Clava-JS/src-api/clava/code/SimplifyTernaryOp.ts rename to Clava-JS/api/clava/code/SimplifyTernaryOp.ts index 8ba7813fdb..abbd538042 100644 --- a/Clava-JS/src-api/clava/code/SimplifyTernaryOp.ts +++ b/Clava-JS/api/clava/code/SimplifyTernaryOp.ts @@ -1,5 +1,5 @@ -import { BinaryOp, ExprStmt, TernaryOp } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import { BinaryOp, ExprStmt, TernaryOp } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Simplifies a statement like: diff --git a/Clava-JS/src-api/clava/code/StatementDecomposer.ts b/Clava-JS/api/clava/code/StatementDecomposer.ts similarity index 98% rename from Clava-JS/src-api/clava/code/StatementDecomposer.ts rename to Clava-JS/api/clava/code/StatementDecomposer.ts index 00ba26bcaf..675125d501 100644 --- a/Clava-JS/src-api/clava/code/StatementDecomposer.ts +++ b/Clava-JS/api/clava/code/StatementDecomposer.ts @@ -1,4 +1,4 @@ -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; import { BinaryOp, Call, @@ -18,9 +18,9 @@ import { TernaryOp, UnaryOp, Vardecl, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import DecomposeResult from "./DecomposeResult.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import DecomposeResult from "./DecomposeResult.ts"; /** * Decomposes complex statements into several simpler ones. diff --git a/Clava-JS/src-api/clava/gprofer/Gprofer.ts b/Clava-JS/api/clava/gprofer/Gprofer.ts similarity index 93% rename from Clava-JS/src-api/clava/gprofer/Gprofer.ts rename to Clava-JS/api/clava/gprofer/Gprofer.ts index 08761c91d6..35c9988490 100644 --- a/Clava-JS/src-api/clava/gprofer/Gprofer.ts +++ b/Clava-JS/api/clava/gprofer/Gprofer.ts @@ -1,13 +1,13 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Strings from "@specs-feup/lara/api/lara/Strings.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; import JavaTypes, { type JavaClasses, -} from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FileJp, FunctionJp } from "../../Joinpoints.js"; -import Clava from "../Clava.js"; -import CMaker from "../cmake/CMaker.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; +} from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FileJp, FunctionJp } from "../../Joinpoints.ts"; +import Clava from "../Clava.ts"; +import CMaker from "../cmake/CMaker.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; function GproferGetCxxFunction(signature: string) { return Query.search(FunctionJp, { diff --git a/Clava-JS/src-api/clava/graphs/ControlFlowGraph.ts b/Clava-JS/api/clava/graphs/ControlFlowGraph.ts similarity index 93% rename from Clava-JS/src-api/clava/graphs/ControlFlowGraph.ts rename to Clava-JS/api/clava/graphs/ControlFlowGraph.ts index dbc93107a7..335742a988 100644 --- a/Clava-JS/src-api/clava/graphs/ControlFlowGraph.ts +++ b/Clava-JS/api/clava/graphs/ControlFlowGraph.ts @@ -1,7 +1,7 @@ -import Graph from "@specs-feup/lara/api/lara/graphs/Graph.js"; +import Graph from "@specs-feup/lara/api/lara/graphs/Graph.ts"; import cytoscape from "cytoscape"; -import { Statement } from "../../Joinpoints.js"; -import CfgBuilder from "./cfg/CfgBuilder.js"; +import { Statement } from "../../Joinpoints.ts"; +import CfgBuilder from "./cfg/CfgBuilder.ts"; export default class ControlFlowGraph extends Graph { /** diff --git a/Clava-JS/src-api/clava/graphs/StaticCallGraph.ts b/Clava-JS/api/clava/graphs/StaticCallGraph.ts similarity index 87% rename from Clava-JS/src-api/clava/graphs/StaticCallGraph.ts rename to Clava-JS/api/clava/graphs/StaticCallGraph.ts index b28f2edea2..7155ef0868 100644 --- a/Clava-JS/src-api/clava/graphs/StaticCallGraph.ts +++ b/Clava-JS/api/clava/graphs/StaticCallGraph.ts @@ -1,10 +1,10 @@ -import DotFormatter from "@specs-feup/lara/api/lara/graphs/DotFormatter.js"; -import Graph from "@specs-feup/lara/api/lara/graphs/Graph.js"; -import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.js"; +import DotFormatter from "@specs-feup/lara/api/lara/graphs/DotFormatter.ts"; +import Graph from "@specs-feup/lara/api/lara/graphs/Graph.ts"; +import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.ts"; import cytoscape from "cytoscape"; -import { FunctionJp, Joinpoint } from "../../Joinpoints.js"; -import ScgNodeData from "./scg/ScgNodeData.js"; -import StaticCallGraphBuilder from "./scg/StaticCallGraphBuilder.js"; +import { FunctionJp, Joinpoint } from "../../Joinpoints.ts"; +import ScgNodeData from "./scg/ScgNodeData.ts"; +import StaticCallGraphBuilder from "./scg/StaticCallGraphBuilder.ts"; export default class StaticCallGraph extends Graph { private static dotFormatterInstance: DotFormatter | undefined = undefined; diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgBuilder.ts b/Clava-JS/api/clava/graphs/cfg/CfgBuilder.ts similarity index 96% rename from Clava-JS/src-api/clava/graphs/cfg/CfgBuilder.ts rename to Clava-JS/api/clava/graphs/cfg/CfgBuilder.ts index cf8e1a430a..0b279d7724 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/CfgBuilder.ts +++ b/Clava-JS/api/clava/graphs/cfg/CfgBuilder.ts @@ -1,7 +1,7 @@ -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.js"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.ts"; import cytoscape from "cytoscape"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { Break, Continue, @@ -13,25 +13,25 @@ import { Scope, Statement, Switch, -} from "../../../Joinpoints.js"; -import ClavaJoinPoints from "../../ClavaJoinPoints.js"; -import CfgEdge from "./CfgEdge.js"; -import CfgEdgeType from "./CfgEdgeType.js"; -import CfgNodeData from "./CfgNodeData.js"; -import CfgNodeType from "./CfgNodeType.js"; -import CfgUtils from "./CfgUtils.js"; -import NextCfgNode from "./NextCfgNode.js"; -import CaseData from "./nodedata/CaseData.js"; -import DataFactory from "./nodedata/DataFactory.js"; -import HeaderData from "./nodedata/HeaderData.js"; -import IfData from "./nodedata/IfData.js"; -import InstListNodeData from "./nodedata/InstListNodeData.js"; -import LoopData from "./nodedata/LoopData.js"; -import ScopeNodeData from "./nodedata/ScopeNodeData.js"; -import SwitchData from "./nodedata/SwitchData.js"; -import GotoData from "./nodedata/GotoData.js"; -import LabelData from "./nodedata/LabelData.js"; -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; +} from "../../../Joinpoints.ts"; +import ClavaJoinPoints from "../../ClavaJoinPoints.ts"; +import CfgEdge from "./CfgEdge.ts"; +import CfgEdgeType from "./CfgEdgeType.ts"; +import CfgNodeData from "./CfgNodeData.ts"; +import CfgNodeType from "./CfgNodeType.ts"; +import CfgUtils from "./CfgUtils.ts"; +import NextCfgNode from "./NextCfgNode.ts"; +import CaseData from "./nodedata/CaseData.ts"; +import DataFactory from "./nodedata/DataFactory.ts"; +import HeaderData from "./nodedata/HeaderData.ts"; +import IfData from "./nodedata/IfData.ts"; +import InstListNodeData from "./nodedata/InstListNodeData.ts"; +import LoopData from "./nodedata/LoopData.ts"; +import ScopeNodeData from "./nodedata/ScopeNodeData.ts"; +import SwitchData from "./nodedata/SwitchData.ts"; +import GotoData from "./nodedata/GotoData.ts"; +import LabelData from "./nodedata/LabelData.ts"; +import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; export default class CfgBuilder { /** diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgEdge.ts b/Clava-JS/api/clava/graphs/cfg/CfgEdge.ts similarity index 94% rename from Clava-JS/src-api/clava/graphs/cfg/CfgEdge.ts rename to Clava-JS/api/clava/graphs/cfg/CfgEdge.ts index ec0c591218..543a869cb6 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/CfgEdge.ts +++ b/Clava-JS/api/clava/graphs/cfg/CfgEdge.ts @@ -1,5 +1,5 @@ -import EdgeData from "@specs-feup/lara/api/lara/graphs/EdgeData.js"; -import CfgEdgeType from "./CfgEdgeType.js"; +import EdgeData from "@specs-feup/lara/api/lara/graphs/EdgeData.ts"; +import CfgEdgeType from "./CfgEdgeType.ts"; /** * An edge of the CFG diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgEdgeType.ts b/Clava-JS/api/clava/graphs/cfg/CfgEdgeType.ts similarity index 100% rename from Clava-JS/src-api/clava/graphs/cfg/CfgEdgeType.ts rename to Clava-JS/api/clava/graphs/cfg/CfgEdgeType.ts diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgNodeData.ts b/Clava-JS/api/clava/graphs/cfg/CfgNodeData.ts similarity index 95% rename from Clava-JS/src-api/clava/graphs/cfg/CfgNodeData.ts rename to Clava-JS/api/clava/graphs/cfg/CfgNodeData.ts index c35eb7903d..628453511a 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/CfgNodeData.ts +++ b/Clava-JS/api/clava/graphs/cfg/CfgNodeData.ts @@ -1,6 +1,6 @@ -import NodeData from "@specs-feup/lara/api/lara/graphs/NodeData.js"; -import { Statement } from "../../../Joinpoints.js"; -import CfgNodeType from "./CfgNodeType.js"; +import NodeData from "@specs-feup/lara/api/lara/graphs/NodeData.ts"; +import { Statement } from "../../../Joinpoints.ts"; +import CfgNodeType from "./CfgNodeType.ts"; /** * The data of a CFG node. diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgNodeType.ts b/Clava-JS/api/clava/graphs/cfg/CfgNodeType.ts similarity index 100% rename from Clava-JS/src-api/clava/graphs/cfg/CfgNodeType.ts rename to Clava-JS/api/clava/graphs/cfg/CfgNodeType.ts diff --git a/Clava-JS/src-api/clava/graphs/cfg/CfgUtils.ts b/Clava-JS/api/clava/graphs/cfg/CfgUtils.ts similarity index 96% rename from Clava-JS/src-api/clava/graphs/cfg/CfgUtils.ts rename to Clava-JS/api/clava/graphs/cfg/CfgUtils.ts index 02507f6bec..b1e268aab9 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/CfgUtils.ts +++ b/Clava-JS/api/clava/graphs/cfg/CfgUtils.ts @@ -11,10 +11,10 @@ import { Scope, Statement, Switch, -} from "../../../Joinpoints.js"; -import CfgEdge from "./CfgEdge.js"; -import CfgEdgeType from "./CfgEdgeType.js"; -import CfgNodeType from "./CfgNodeType.js"; +} from "../../../Joinpoints.ts"; +import CfgEdge from "./CfgEdge.ts"; +import CfgEdgeType from "./CfgEdgeType.ts"; +import CfgNodeType from "./CfgNodeType.ts"; export default class CfgUtils { /** diff --git a/Clava-JS/src-api/clava/graphs/cfg/NextCfgNode.ts b/Clava-JS/api/clava/graphs/cfg/NextCfgNode.ts similarity index 99% rename from Clava-JS/src-api/clava/graphs/cfg/NextCfgNode.ts rename to Clava-JS/api/clava/graphs/cfg/NextCfgNode.ts index 09b3af62b3..c1981e3957 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/NextCfgNode.ts +++ b/Clava-JS/api/clava/graphs/cfg/NextCfgNode.ts @@ -7,7 +7,7 @@ import { LoopKind, Scope, Statement, -} from "../../../Joinpoints.js"; +} from "../../../Joinpoints.ts"; export default class NextCfgNode { /** diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/CaseData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/CaseData.ts similarity index 77% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/CaseData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/CaseData.ts index a7946bb6fc..0402b0bc69 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/CaseData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/CaseData.ts @@ -1,6 +1,6 @@ -import { Case } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { Case } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class CaseData extends CfgNodeData { constructor($stmt?: Case, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/DataFactory.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/DataFactory.ts similarity index 81% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/DataFactory.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/DataFactory.ts index 3b274059fd..70e59a2fd0 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/DataFactory.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/DataFactory.ts @@ -8,19 +8,19 @@ import { Scope, Statement, Switch, -} from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; -import CaseData from "./CaseData.js"; -import GotoData from "./GotoData.js"; -import HeaderData from "./HeaderData.js"; -import IfData from "./IfData.js"; -import InstListNodeData from "./InstListNodeData.js"; -import LabelData from "./LabelData.js"; -import LoopData from "./LoopData.js"; -import ReturnData from "./ReturnData.js"; -import ScopeNodeData from "./ScopeNodeData.js"; -import SwitchData from "./SwitchData.js"; +} from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; +import CaseData from "./CaseData.ts"; +import GotoData from "./GotoData.ts"; +import HeaderData from "./HeaderData.ts"; +import IfData from "./IfData.ts"; +import InstListNodeData from "./InstListNodeData.ts"; +import LabelData from "./LabelData.ts"; +import LoopData from "./LoopData.ts"; +import ReturnData from "./ReturnData.ts"; +import ScopeNodeData from "./ScopeNodeData.ts"; +import SwitchData from "./SwitchData.ts"; export default class DataFactory { private entryPoint: Statement; diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/GotoData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/GotoData.ts similarity index 69% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/GotoData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/GotoData.ts index 82f9ed8b04..a331483cf3 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/GotoData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/GotoData.ts @@ -1,6 +1,6 @@ -import { GotoStmt } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { GotoStmt } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class GotoData extends CfgNodeData { constructor($stmt?: GotoStmt, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/HeaderData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/HeaderData.ts similarity index 76% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/HeaderData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/HeaderData.ts index 909cd0821d..7c35ed28d5 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/HeaderData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/HeaderData.ts @@ -1,6 +1,6 @@ -import { Statement } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { Statement } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class HeaderData extends CfgNodeData { constructor($stmt: Statement | undefined, nodeType: CfgNodeType, id: string | undefined) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/IfData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/IfData.ts similarity index 72% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/IfData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/IfData.ts index 657dacd09b..492c44980b 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/IfData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/IfData.ts @@ -1,6 +1,6 @@ -import { If } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { If } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class IfData extends CfgNodeData { constructor($stmt?: If, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/InstListNodeData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/InstListNodeData.ts similarity index 89% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/InstListNodeData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/InstListNodeData.ts index 8640504648..f262629f98 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/InstListNodeData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/InstListNodeData.ts @@ -1,7 +1,7 @@ -import { Statement } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; -import CfgUtils from "../CfgUtils.js"; +import { Statement } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; +import CfgUtils from "../CfgUtils.ts"; type T = Statement; diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/LabelData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/LabelData.ts similarity index 69% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/LabelData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/LabelData.ts index 86a6d06853..a9d7d1287b 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/LabelData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/LabelData.ts @@ -1,6 +1,6 @@ -import { LabelStmt } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { LabelStmt } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class LabelData extends CfgNodeData { constructor($stmt?: LabelStmt, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/LoopData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/LoopData.ts similarity index 70% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/LoopData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/LoopData.ts index 876262fe56..26cce07896 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/LoopData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/LoopData.ts @@ -1,6 +1,6 @@ -import { Loop } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { Loop } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class LoopData extends CfgNodeData { constructor($stmt?: Loop, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/ReturnData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/ReturnData.ts similarity index 72% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/ReturnData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/ReturnData.ts index 775b9ef6c7..e57060a73d 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/ReturnData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/ReturnData.ts @@ -1,6 +1,6 @@ -import { ReturnStmt } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { ReturnStmt } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class ReturnData extends CfgNodeData { constructor($stmt?: ReturnStmt, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/ScopeNodeData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/ScopeNodeData.ts similarity index 66% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/ScopeNodeData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/ScopeNodeData.ts index c91d53c4e5..55334b4dba 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/ScopeNodeData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/ScopeNodeData.ts @@ -1,6 +1,6 @@ -import { Scope } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { Scope } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class ScopeNodeData extends CfgNodeData { private scopeStmt; diff --git a/Clava-JS/src-api/clava/graphs/cfg/nodedata/SwitchData.ts b/Clava-JS/api/clava/graphs/cfg/nodedata/SwitchData.ts similarity index 73% rename from Clava-JS/src-api/clava/graphs/cfg/nodedata/SwitchData.ts rename to Clava-JS/api/clava/graphs/cfg/nodedata/SwitchData.ts index 18c71188b2..7b28154c57 100644 --- a/Clava-JS/src-api/clava/graphs/cfg/nodedata/SwitchData.ts +++ b/Clava-JS/api/clava/graphs/cfg/nodedata/SwitchData.ts @@ -1,6 +1,6 @@ -import { Switch } from "../../../../Joinpoints.js"; -import CfgNodeData from "../CfgNodeData.js"; -import CfgNodeType from "../CfgNodeType.js"; +import { Switch } from "../../../../Joinpoints.ts"; +import CfgNodeData from "../CfgNodeData.ts"; +import CfgNodeType from "../CfgNodeType.ts"; export default class SwitchData extends CfgNodeData { constructor($stmt?: Switch, id?: string) { diff --git a/Clava-JS/src-api/clava/graphs/scg/ScgEdgeData.ts b/Clava-JS/api/clava/graphs/scg/ScgEdgeData.ts similarity index 88% rename from Clava-JS/src-api/clava/graphs/scg/ScgEdgeData.ts rename to Clava-JS/api/clava/graphs/scg/ScgEdgeData.ts index 1541821c64..fe08502a18 100644 --- a/Clava-JS/src-api/clava/graphs/scg/ScgEdgeData.ts +++ b/Clava-JS/api/clava/graphs/scg/ScgEdgeData.ts @@ -1,5 +1,5 @@ -import EdgeData from "@specs-feup/lara/api/lara/graphs/EdgeData.js"; -import { Call } from "../../../Joinpoints.js"; +import EdgeData from "@specs-feup/lara/api/lara/graphs/EdgeData.ts"; +import { Call } from "../../../Joinpoints.ts"; export default class ScgEdgeData extends EdgeData { /** diff --git a/Clava-JS/src-api/clava/graphs/scg/ScgNodeData.ts b/Clava-JS/api/clava/graphs/scg/ScgNodeData.ts similarity index 86% rename from Clava-JS/src-api/clava/graphs/scg/ScgNodeData.ts rename to Clava-JS/api/clava/graphs/scg/ScgNodeData.ts index 147227ec2a..042f2d086a 100644 --- a/Clava-JS/src-api/clava/graphs/scg/ScgNodeData.ts +++ b/Clava-JS/api/clava/graphs/scg/ScgNodeData.ts @@ -1,6 +1,6 @@ -import NodeData from "@specs-feup/lara/api/lara/graphs/NodeData.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { Call, FunctionJp } from "../../../Joinpoints.js"; +import NodeData from "@specs-feup/lara/api/lara/graphs/NodeData.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { Call, FunctionJp } from "../../../Joinpoints.ts"; export default class ScgNodeData extends NodeData { /** diff --git a/Clava-JS/src-api/clava/graphs/scg/StaticCallGraphBuilder.ts b/Clava-JS/api/clava/graphs/scg/StaticCallGraphBuilder.ts similarity index 95% rename from Clava-JS/src-api/clava/graphs/scg/StaticCallGraphBuilder.ts rename to Clava-JS/api/clava/graphs/scg/StaticCallGraphBuilder.ts index 8a00b55d35..f22959cbd7 100644 --- a/Clava-JS/src-api/clava/graphs/scg/StaticCallGraphBuilder.ts +++ b/Clava-JS/api/clava/graphs/scg/StaticCallGraphBuilder.ts @@ -1,10 +1,10 @@ -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; -import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.js"; +import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; +import Graphs from "@specs-feup/lara/api/lara/graphs/Graphs.ts"; import cytoscape from "cytoscape"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { Call, FunctionJp, Joinpoint, Program } from "../../../Joinpoints.js"; -import ScgEdgeData from "./ScgEdgeData.js"; -import ScgNodeData from "./ScgNodeData.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { Call, FunctionJp, Joinpoint, Program } from "../../../Joinpoints.ts"; +import ScgEdgeData from "./ScgEdgeData.ts"; +import ScgNodeData from "./ScgNodeData.ts"; export default class StaticCallGraphBuilder { /** diff --git a/Clava-JS/src-api/clava/hdf5/Hdf5.ts b/Clava-JS/api/clava/hdf5/Hdf5.ts similarity index 98% rename from Clava-JS/src-api/clava/hdf5/Hdf5.ts rename to Clava-JS/api/clava/hdf5/Hdf5.ts index 886262e5c3..1a0905f0cb 100644 --- a/Clava-JS/src-api/clava/hdf5/Hdf5.ts +++ b/Clava-JS/api/clava/hdf5/Hdf5.ts @@ -5,9 +5,9 @@ import { RecordJp, TemplateSpecializationType, Type, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import Format from "../Format.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import Format from "../Format.ts"; /** * This is supposed to be an enum, but Node.js v25 does bot support TS' enums, only erasable-syntax. diff --git a/Clava-JS/src-api/clava/liveness/LivenessAnalyser.ts b/Clava-JS/api/clava/liveness/LivenessAnalyser.ts similarity index 96% rename from Clava-JS/src-api/clava/liveness/LivenessAnalyser.ts rename to Clava-JS/api/clava/liveness/LivenessAnalyser.ts index 1267b9aa7d..8ca5928b69 100644 --- a/Clava-JS/src-api/clava/liveness/LivenessAnalyser.ts +++ b/Clava-JS/api/clava/liveness/LivenessAnalyser.ts @@ -1,9 +1,9 @@ import cytoscape from "cytoscape"; -import { Case, Expression, If, Statement, Switch } from "../../Joinpoints.js"; -import ControlFlowGraph from "../graphs/ControlFlowGraph.js"; -import CfgNodeData from "../graphs/cfg/CfgNodeData.js"; -import CfgNodeType from "../graphs/cfg/CfgNodeType.js"; -import LivenessUtils from "./LivenessUtils.js"; +import { Case, Expression, If, Statement, Switch } from "../../Joinpoints.ts"; +import ControlFlowGraph from "../graphs/ControlFlowGraph.ts"; +import CfgNodeData from "../graphs/cfg/CfgNodeData.ts"; +import CfgNodeType from "../graphs/cfg/CfgNodeType.ts"; +import LivenessUtils from "./LivenessUtils.ts"; export default class LivenessAnalyser { /** diff --git a/Clava-JS/src-api/clava/liveness/LivenessAnalysis.ts b/Clava-JS/api/clava/liveness/LivenessAnalysis.ts similarity index 95% rename from Clava-JS/src-api/clava/liveness/LivenessAnalysis.ts rename to Clava-JS/api/clava/liveness/LivenessAnalysis.ts index e2c9ab7263..808cfcb807 100644 --- a/Clava-JS/src-api/clava/liveness/LivenessAnalysis.ts +++ b/Clava-JS/api/clava/liveness/LivenessAnalysis.ts @@ -1,6 +1,6 @@ import cytoscape from "cytoscape"; -import ControlFlowGraph from "../graphs/ControlFlowGraph.js"; -import LivenessAnalyser from "./LivenessAnalyser.js"; +import ControlFlowGraph from "../graphs/ControlFlowGraph.ts"; +import LivenessAnalyser from "./LivenessAnalyser.ts"; export default class LivenessAnalysis { /** diff --git a/Clava-JS/src-api/clava/liveness/LivenessUtils.ts b/Clava-JS/api/clava/liveness/LivenessUtils.ts similarity index 98% rename from Clava-JS/src-api/clava/liveness/LivenessUtils.ts rename to Clava-JS/api/clava/liveness/LivenessUtils.ts index ed65bcb7c0..d2601f36b5 100644 --- a/Clava-JS/src-api/clava/liveness/LivenessUtils.ts +++ b/Clava-JS/api/clava/liveness/LivenessUtils.ts @@ -1,13 +1,13 @@ -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; +import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; import cytoscape from "cytoscape"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { BinaryOp, Expression, Statement, Vardecl, Varref, -} from "../../Joinpoints.js"; +} from "../../Joinpoints.ts"; export default class LivenessUtils { /** diff --git a/Clava-JS/src-api/clava/mpi/MpiAccessPattern.ts b/Clava-JS/api/clava/mpi/MpiAccessPattern.ts similarity index 91% rename from Clava-JS/src-api/clava/mpi/MpiAccessPattern.ts rename to Clava-JS/api/clava/mpi/MpiAccessPattern.ts index 652d7ec288..5573aa6cdb 100644 --- a/Clava-JS/src-api/clava/mpi/MpiAccessPattern.ts +++ b/Clava-JS/api/clava/mpi/MpiAccessPattern.ts @@ -1,4 +1,4 @@ -import { Varref } from "../../Joinpoints.js"; +import { Varref } from "../../Joinpoints.ts"; /** * Represents an MPI access pattern. diff --git a/Clava-JS/src-api/clava/mpi/MpiScatterGatherLoop.ts b/Clava-JS/api/clava/mpi/MpiScatterGatherLoop.ts similarity index 97% rename from Clava-JS/src-api/clava/mpi/MpiScatterGatherLoop.ts rename to Clava-JS/api/clava/mpi/MpiScatterGatherLoop.ts index c92d3e664a..063cfec669 100644 --- a/Clava-JS/src-api/clava/mpi/MpiScatterGatherLoop.ts +++ b/Clava-JS/api/clava/mpi/MpiScatterGatherLoop.ts @@ -1,9 +1,9 @@ -import { FileJp, FunctionJp, Loop, Varref } from "../../Joinpoints.js"; -import ClavaCode from "../ClavaCode.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import MpiAccessPattern from "./MpiAccessPattern.js"; -import MpiUtils from "./MpiUtils.js"; -import MpiAccessPatterns from "./patterns/MpiAccessPatterns.js"; +import { FileJp, FunctionJp, Loop, Varref } from "../../Joinpoints.ts"; +import ClavaCode from "../ClavaCode.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import MpiAccessPattern from "./MpiAccessPattern.ts"; +import MpiUtils from "./MpiUtils.ts"; +import MpiAccessPatterns from "./patterns/MpiAccessPatterns.ts"; /** * Applies an MPI scatter-gather strategy to loops. diff --git a/Clava-JS/src-api/clava/mpi/MpiUtils.ts b/Clava-JS/api/clava/mpi/MpiUtils.ts similarity index 90% rename from Clava-JS/src-api/clava/mpi/MpiUtils.ts rename to Clava-JS/api/clava/mpi/MpiUtils.ts index d57f4600f8..43c1950e77 100644 --- a/Clava-JS/src-api/clava/mpi/MpiUtils.ts +++ b/Clava-JS/api/clava/mpi/MpiUtils.ts @@ -1,4 +1,4 @@ -import { BuiltinType, Type } from "../../Joinpoints.js"; +import { BuiltinType, Type } from "../../Joinpoints.ts"; /** * Utility methods related to MPI. diff --git a/Clava-JS/src-api/clava/mpi/patterns/IterationVariablePattern.ts b/Clava-JS/api/clava/mpi/patterns/IterationVariablePattern.ts similarity index 97% rename from Clava-JS/src-api/clava/mpi/patterns/IterationVariablePattern.ts rename to Clava-JS/api/clava/mpi/patterns/IterationVariablePattern.ts index 49fb0b3683..2c49e27ba6 100644 --- a/Clava-JS/src-api/clava/mpi/patterns/IterationVariablePattern.ts +++ b/Clava-JS/api/clava/mpi/patterns/IterationVariablePattern.ts @@ -1,7 +1,7 @@ -import MpiAccessPattern from "../MpiAccessPattern.js"; -import MpiUtils from "../MpiUtils.js"; -import ClavaJoinPoints from "../../ClavaJoinPoints.js"; -import { ArrayType, PointerType, Type, Varref } from "../../../Joinpoints.js"; +import MpiAccessPattern from "../MpiAccessPattern.ts"; +import MpiUtils from "../MpiUtils.ts"; +import ClavaJoinPoints from "../../ClavaJoinPoints.ts"; +import { ArrayType, PointerType, Type, Varref } from "../../../Joinpoints.ts"; /** * Array that is accessed using only the iteration variable directly, without modifications. diff --git a/Clava-JS/src-api/clava/mpi/patterns/MpiAccessPatterns.ts b/Clava-JS/api/clava/mpi/patterns/MpiAccessPatterns.ts similarity index 88% rename from Clava-JS/src-api/clava/mpi/patterns/MpiAccessPatterns.ts rename to Clava-JS/api/clava/mpi/patterns/MpiAccessPatterns.ts index b7197d827b..ef50b8e1d6 100644 --- a/Clava-JS/src-api/clava/mpi/patterns/MpiAccessPatterns.ts +++ b/Clava-JS/api/clava/mpi/patterns/MpiAccessPatterns.ts @@ -1,5 +1,5 @@ -import ScalarPattern from "./ScalarPattern.js"; -import IterationVariablePattern from "./IterationVariablePattern.js"; +import ScalarPattern from "./ScalarPattern.ts"; +import IterationVariablePattern from "./IterationVariablePattern.ts"; /** diff --git a/Clava-JS/src-api/clava/mpi/patterns/ScalarPattern.ts b/Clava-JS/api/clava/mpi/patterns/ScalarPattern.ts similarity index 85% rename from Clava-JS/src-api/clava/mpi/patterns/ScalarPattern.ts rename to Clava-JS/api/clava/mpi/patterns/ScalarPattern.ts index ad0216d2d7..b6d4aa0622 100644 --- a/Clava-JS/src-api/clava/mpi/patterns/ScalarPattern.ts +++ b/Clava-JS/api/clava/mpi/patterns/ScalarPattern.ts @@ -1,5 +1,5 @@ -import { Varref } from '../../../Joinpoints.js'; -import MpiAccessPattern from '../MpiAccessPattern.js'; +import { Varref } from '../../../Joinpoints.ts'; +import MpiAccessPattern from '../MpiAccessPattern.ts'; /** * Access to a scalar variable. diff --git a/Clava-JS/src-api/clava/opencl/KernelReplacer.ts b/Clava-JS/api/clava/opencl/KernelReplacer.ts similarity index 98% rename from Clava-JS/src-api/clava/opencl/KernelReplacer.ts rename to Clava-JS/api/clava/opencl/KernelReplacer.ts index bed6f67381..1197165aba 100644 --- a/Clava-JS/src-api/clava/opencl/KernelReplacer.ts +++ b/Clava-JS/api/clava/opencl/KernelReplacer.ts @@ -1,5 +1,5 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Strings from "@specs-feup/lara/api/lara/Strings.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; import { BuiltinType, Call, @@ -7,8 +7,8 @@ import { FunctionJp, Statement, Type, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; export interface OpenClKernelReplacerConfiguration { kernelName: string; diff --git a/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts b/Clava-JS/api/clava/opencl/KernelReplacerAuto.ts similarity index 83% rename from Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts rename to Clava-JS/api/clava/opencl/KernelReplacerAuto.ts index a27bfc7c4b..5e75dd15b1 100644 --- a/Clava-JS/src-api/clava/opencl/KernelReplacerAuto.ts +++ b/Clava-JS/api/clava/opencl/KernelReplacerAuto.ts @@ -1,10 +1,10 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Strings from "@specs-feup/lara/api/lara/Strings.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { Call, FileJp, Pragma } from "../../Joinpoints.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { Call, FileJp, Pragma } from "../../Joinpoints.ts"; import KernelReplacer, { type OpenClKernelReplacerConfiguration, -} from "./KernelReplacer.js"; +} from "./KernelReplacer.ts"; // This aspect can be included in a library, imported and // called by a user, since it needs no configuration/parameterization diff --git a/Clava-JS/src-api/clava/opencl/OpenCLCall.ts b/Clava-JS/api/clava/opencl/OpenCLCall.ts similarity index 92% rename from Clava-JS/src-api/clava/opencl/OpenCLCall.ts rename to Clava-JS/api/clava/opencl/OpenCLCall.ts index ee33f6d8c6..2fd5779552 100644 --- a/Clava-JS/src-api/clava/opencl/OpenCLCall.ts +++ b/Clava-JS/api/clava/opencl/OpenCLCall.ts @@ -1,8 +1,8 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Platforms from "@specs-feup/lara/api/lara/Platforms.js"; -import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.js"; -import { Call, FileJp, FunctionJp } from "../../Joinpoints.js"; -import OpenCLCallVariables from "./OpenCLCallVariables.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Platforms from "@specs-feup/lara/api/lara/Platforms.ts"; +import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.ts"; +import { Call, FileJp, FunctionJp } from "../../Joinpoints.ts"; +import OpenCLCallVariables from "./OpenCLCallVariables.ts"; export default class OpenCLCall { $kernel: FunctionJp | undefined = undefined; diff --git a/Clava-JS/src-api/clava/opencl/OpenCLCallVariables.ts b/Clava-JS/api/clava/opencl/OpenCLCallVariables.ts similarity index 100% rename from Clava-JS/src-api/clava/opencl/OpenCLCallVariables.ts rename to Clava-JS/api/clava/opencl/OpenCLCallVariables.ts diff --git a/Clava-JS/src-api/clava/opt/Inlining.ts b/Clava-JS/api/clava/opt/Inlining.ts similarity index 74% rename from Clava-JS/src-api/clava/opt/Inlining.ts rename to Clava-JS/api/clava/opt/Inlining.ts index 0815cd4b61..f1c113c539 100644 --- a/Clava-JS/src-api/clava/opt/Inlining.ts +++ b/Clava-JS/api/clava/opt/Inlining.ts @@ -1,8 +1,8 @@ -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { FunctionJp, Joinpoint } from "../../Joinpoints.js"; -import Inliner from "../code/Inliner.js"; -import NormalizeToSubset from "./NormalizeToSubset.js"; -import PrepareForInlining from "./PrepareForInlining.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { FunctionJp, Joinpoint } from "../../Joinpoints.ts"; +import Inliner from "../code/Inliner.ts"; +import NormalizeToSubset from "./NormalizeToSubset.ts"; +import PrepareForInlining from "./PrepareForInlining.ts"; /** * diff --git a/Clava-JS/src-api/clava/opt/NormalizeToSubset.ts b/Clava-JS/api/clava/opt/NormalizeToSubset.ts similarity index 67% rename from Clava-JS/src-api/clava/opt/NormalizeToSubset.ts rename to Clava-JS/api/clava/opt/NormalizeToSubset.ts index 9d190a9adc..e1745d90d2 100644 --- a/Clava-JS/src-api/clava/opt/NormalizeToSubset.ts +++ b/Clava-JS/api/clava/opt/NormalizeToSubset.ts @@ -1,14 +1,13 @@ -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { BinaryOp, Joinpoint } from "../../Joinpoints.js"; -import SimplifyAssignment from "../code/SimplifyAssignment.js"; -import StatementDecomposer from "../code/StatementDecomposer.js"; -import DecomposeDeclStmt from "../pass/DecomposeDeclStmt.js"; -import DecomposeVarDeclarations from "../pass/DecomposeVarDeclarations.js"; -import LocalStaticToGlobal from "../pass/LocalStaticToGlobal.js"; -import SimplifyLoops from "../pass/SimplifyLoops.js"; -import SimplifyReturnStmts from "../pass/SimplifyReturnStmts.js"; -import SimplifySelectionStmts from "../pass/SimplifySelectionStmts.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { BinaryOp, Joinpoint } from "../../Joinpoints.ts"; +import SimplifyAssignment from "../code/SimplifyAssignment.ts"; +import StatementDecomposer from "../code/StatementDecomposer.ts"; +import DecomposeDeclStmt from "../pass/DecomposeDeclStmt.ts"; +import DecomposeVarDeclarations from "../pass/DecomposeVarDeclarations.ts"; +import LocalStaticToGlobal from "../pass/LocalStaticToGlobal.ts"; +import SimplifyLoops from "../pass/SimplifyLoops.ts"; +import SimplifyReturnStmts from "../pass/SimplifyReturnStmts.ts"; +import SimplifySelectionStmts from "../pass/SimplifySelectionStmts.ts"; /** * diff --git a/Clava-JS/api/clava/opt/PrepareForInlining.ts b/Clava-JS/api/clava/opt/PrepareForInlining.ts new file mode 100644 index 0000000000..8c504edc79 --- /dev/null +++ b/Clava-JS/api/clava/opt/PrepareForInlining.ts @@ -0,0 +1,8 @@ +import { FunctionJp } from "../../Joinpoints.ts"; +import RemoveShadowing from "../code/RemoveShadowing.ts"; +import SingleReturnFunction from "../pass/SingleReturnFunction.ts"; + +export default function PrepareForInlining($function: FunctionJp) { + new SingleReturnFunction().apply($function); + RemoveShadowing($function); +} diff --git a/Clava-JS/src-api/clava/parser/BatchParser.ts b/Clava-JS/api/clava/parser/BatchParser.ts similarity index 91% rename from Clava-JS/src-api/clava/parser/BatchParser.ts rename to Clava-JS/api/clava/parser/BatchParser.ts index 69301fe23e..7abd05ce59 100644 --- a/Clava-JS/src-api/clava/parser/BatchParser.ts +++ b/Clava-JS/api/clava/parser/BatchParser.ts @@ -1,12 +1,12 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import Check from "@specs-feup/lara/api/lara/Check.js"; -import System from "@specs-feup/lara/api/lara/System.js"; -import Strings from "@specs-feup/lara/api/lara/Strings.js"; -import Clava from "../Clava.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { FileJp } from "../../Joinpoints.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import Check from "@specs-feup/lara/api/lara/Check.ts"; +import System from "@specs-feup/lara/api/lara/System.ts"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; +import Clava from "../Clava.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { FileJp } from "../../Joinpoints.ts"; /** * Parses C/C++ files. diff --git a/Clava-JS/src-api/clava/pass/DecomposeDeclStmt.ts b/Clava-JS/api/clava/pass/DecomposeDeclStmt.ts similarity index 89% rename from Clava-JS/src-api/clava/pass/DecomposeDeclStmt.ts rename to Clava-JS/api/clava/pass/DecomposeDeclStmt.ts index 4835cbe815..f23aaae5c4 100644 --- a/Clava-JS/src-api/clava/pass/DecomposeDeclStmt.ts +++ b/Clava-JS/api/clava/pass/DecomposeDeclStmt.ts @@ -1,7 +1,7 @@ -import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import { DeclStmt, Joinpoint } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; +import { DeclStmt, Joinpoint } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Decomposes composite declaration statements into separate statements for each variable. diff --git a/Clava-JS/src-api/clava/pass/DecomposeVarDeclarations.ts b/Clava-JS/api/clava/pass/DecomposeVarDeclarations.ts similarity index 94% rename from Clava-JS/src-api/clava/pass/DecomposeVarDeclarations.ts rename to Clava-JS/api/clava/pass/DecomposeVarDeclarations.ts index d83cf5929a..46703b2d90 100644 --- a/Clava-JS/src-api/clava/pass/DecomposeVarDeclarations.ts +++ b/Clava-JS/api/clava/pass/DecomposeVarDeclarations.ts @@ -1,12 +1,12 @@ -import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; +import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; import { ArrayType, Joinpoint, UndefinedType, Vardecl, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Decomposes the vardecl nodes that are reachable from the given join point. diff --git a/Clava-JS/src-api/clava/pass/LocalStaticToGlobal.ts b/Clava-JS/api/clava/pass/LocalStaticToGlobal.ts similarity index 93% rename from Clava-JS/src-api/clava/pass/LocalStaticToGlobal.ts rename to Clava-JS/api/clava/pass/LocalStaticToGlobal.ts index d7663524d5..205e431aed 100644 --- a/Clava-JS/src-api/clava/pass/LocalStaticToGlobal.ts +++ b/Clava-JS/api/clava/pass/LocalStaticToGlobal.ts @@ -1,14 +1,14 @@ -import PassTransformationError from "@specs-feup/lara/api/lara/pass/PassTransformationError.js"; -import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; +import PassTransformationError from "@specs-feup/lara/api/lara/pass/PassTransformationError.ts"; +import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; import { DeclStmt, FunctionJp, Joinpoint, StorageClass, Vardecl, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; /** * Transforms local static variables into global variables. diff --git a/Clava-JS/src-api/clava/pass/SimplifyLoops.ts b/Clava-JS/api/clava/pass/SimplifyLoops.ts similarity index 88% rename from Clava-JS/src-api/clava/pass/SimplifyLoops.ts rename to Clava-JS/api/clava/pass/SimplifyLoops.ts index c2da23b91a..cdf38e7088 100644 --- a/Clava-JS/src-api/clava/pass/SimplifyLoops.ts +++ b/Clava-JS/api/clava/pass/SimplifyLoops.ts @@ -1,10 +1,10 @@ -import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import { DeclStmt, ExprStmt, Joinpoint, Loop, LoopKind } from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import DoToWhileStmt from "../code/DoToWhileStmt.js"; -import ForToWhileStmt from "../code/ForToWhileStmt.js"; -import StatementDecomposer from "../code/StatementDecomposer.js"; +import Pass from "@specs-feup/lara/api/lara/pass/Pass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; +import { DeclStmt, ExprStmt, Joinpoint, Loop, LoopKind } from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import DoToWhileStmt from "../code/DoToWhileStmt.ts"; +import ForToWhileStmt from "../code/ForToWhileStmt.ts"; +import StatementDecomposer from "../code/StatementDecomposer.ts"; export default class SimplifyLoops extends Pass { protected _name = "SimplifyLoops"; diff --git a/Clava-JS/src-api/clava/pass/SimplifyReturnStmts.ts b/Clava-JS/api/clava/pass/SimplifyReturnStmts.ts similarity index 83% rename from Clava-JS/src-api/clava/pass/SimplifyReturnStmts.ts rename to Clava-JS/api/clava/pass/SimplifyReturnStmts.ts index d217f68a0d..c587d15467 100644 --- a/Clava-JS/src-api/clava/pass/SimplifyReturnStmts.ts +++ b/Clava-JS/api/clava/pass/SimplifyReturnStmts.ts @@ -1,8 +1,8 @@ -import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { Joinpoint, ReturnStmt } from "../../Joinpoints.js"; -import StatementDecomposer from "../code/StatementDecomposer.js"; +import Pass from "@specs-feup/lara/api/lara/pass/Pass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { Joinpoint, ReturnStmt } from "../../Joinpoints.ts"; +import StatementDecomposer from "../code/StatementDecomposer.ts"; // TODO: Refactor to use the SimplePass pattern export default class SimplifyReturnStmts extends Pass { diff --git a/Clava-JS/src-api/clava/pass/SimplifySelectionStmts.ts b/Clava-JS/api/clava/pass/SimplifySelectionStmts.ts similarity index 82% rename from Clava-JS/src-api/clava/pass/SimplifySelectionStmts.ts rename to Clava-JS/api/clava/pass/SimplifySelectionStmts.ts index 4f5d434c45..24c04f89d1 100644 --- a/Clava-JS/src-api/clava/pass/SimplifySelectionStmts.ts +++ b/Clava-JS/api/clava/pass/SimplifySelectionStmts.ts @@ -1,8 +1,8 @@ -import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import { If, Joinpoint } from "../../Joinpoints.js"; -import StatementDecomposer from "../code/StatementDecomposer.js"; +import Pass from "@specs-feup/lara/api/lara/pass/Pass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import { If, Joinpoint } from "../../Joinpoints.ts"; +import StatementDecomposer from "../code/StatementDecomposer.ts"; // TODO: Refactor to use the SimplePass pattern export default class SimplifySelectionStmts extends Pass { diff --git a/Clava-JS/src-api/clava/pass/SingleReturnFunction.ts b/Clava-JS/api/clava/pass/SingleReturnFunction.ts similarity index 91% rename from Clava-JS/src-api/clava/pass/SingleReturnFunction.ts rename to Clava-JS/api/clava/pass/SingleReturnFunction.ts index 3420317885..f3b892f932 100644 --- a/Clava-JS/src-api/clava/pass/SingleReturnFunction.ts +++ b/Clava-JS/api/clava/pass/SingleReturnFunction.ts @@ -1,15 +1,15 @@ -import Pass from "@specs-feup/lara/api/lara/pass/Pass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import Pass from "@specs-feup/lara/api/lara/pass/Pass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { BuiltinType, FunctionJp, Joinpoint, ReturnStmt, Vardecl, -} from "../../Joinpoints.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import DecomposeVarDeclarations from "./DecomposeVarDeclarations.js"; +} from "../../Joinpoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import DecomposeVarDeclarations from "./DecomposeVarDeclarations.ts"; export default class SingleReturnFunction extends Pass { protected _name = "SingleReturnFunctions"; diff --git a/Clava-JS/src-api/clava/pass/TransformSwitchToIf.ts b/Clava-JS/api/clava/pass/TransformSwitchToIf.ts similarity index 97% rename from Clava-JS/src-api/clava/pass/TransformSwitchToIf.ts rename to Clava-JS/api/clava/pass/TransformSwitchToIf.ts index c0d6df7fee..6a4cd85534 100644 --- a/Clava-JS/src-api/clava/pass/TransformSwitchToIf.ts +++ b/Clava-JS/api/clava/pass/TransformSwitchToIf.ts @@ -1,7 +1,7 @@ -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.js"; -import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.js"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import SimplePass from "@specs-feup/lara/api/lara/pass/SimplePass.ts"; +import PassResult from "@specs-feup/lara/api/lara/pass/results/PassResult.ts"; import { Break, Case, @@ -11,8 +11,8 @@ import { OpKind, Statement, Switch, -} from "../../Joinpoints.js"; -import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.js"; +} from "../../Joinpoints.ts"; +import { LaraJoinPoint } from "@specs-feup/lara/api/LaraJoinPoint.ts"; /** * Transforms a switch statement into an if statement. diff --git a/Clava-JS/src-api/clava/stats/OpsBlock.ts b/Clava-JS/api/clava/stats/OpsBlock.ts similarity index 87% rename from Clava-JS/src-api/clava/stats/OpsBlock.ts rename to Clava-JS/api/clava/stats/OpsBlock.ts index ee7380138e..1f121d23ef 100644 --- a/Clava-JS/src-api/clava/stats/OpsBlock.ts +++ b/Clava-JS/api/clava/stats/OpsBlock.ts @@ -1,4 +1,4 @@ -import OpsCost from "./OpsCost.js"; +import OpsCost from "./OpsCost.ts"; export default class OpsBlock { diff --git a/Clava-JS/src-api/clava/stats/OpsCost.ts b/Clava-JS/api/clava/stats/OpsCost.ts similarity index 100% rename from Clava-JS/src-api/clava/stats/OpsCost.ts rename to Clava-JS/api/clava/stats/OpsCost.ts diff --git a/Clava-JS/src-api/clava/stats/OpsCounter.ts b/Clava-JS/api/clava/stats/OpsCounter.ts similarity index 95% rename from Clava-JS/src-api/clava/stats/OpsCounter.ts rename to Clava-JS/api/clava/stats/OpsCounter.ts index 8d3eccaf7b..ba22221e17 100644 --- a/Clava-JS/src-api/clava/stats/OpsCounter.ts +++ b/Clava-JS/api/clava/stats/OpsCounter.ts @@ -1,8 +1,8 @@ -import ClavaJoinPoints from "../ClavaJoinPoints.js"; -import GlobalVariable from "../code/GlobalVariable.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.js"; -import Logger from "../../lara/code/Logger.js"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; +import GlobalVariable from "../code/GlobalVariable.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.ts"; +import Logger from "../../lara/code/Logger.ts"; import { BuiltinType, Call, @@ -10,7 +10,7 @@ import { Joinpoint, Op, Type, -} from "../../Joinpoints.js"; +} from "../../Joinpoints.ts"; /** * Instruments an application so that it counts total operations in a region of code. diff --git a/Clava-JS/src-api/clava/stats/StaticOpsCounter.ts b/Clava-JS/api/clava/stats/StaticOpsCounter.ts similarity index 98% rename from Clava-JS/src-api/clava/stats/StaticOpsCounter.ts rename to Clava-JS/api/clava/stats/StaticOpsCounter.ts index 4a4ebd9fbe..e8842ffa25 100644 --- a/Clava-JS/src-api/clava/stats/StaticOpsCounter.ts +++ b/Clava-JS/api/clava/stats/StaticOpsCounter.ts @@ -1,5 +1,5 @@ -import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; +import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; import { BinaryOp, BuiltinType, @@ -17,8 +17,8 @@ import { Type, Vardecl, Varref, -} from "../../Joinpoints.js"; -import OpsBlock from "./OpsBlock.js"; +} from "../../Joinpoints.ts"; +import OpsBlock from "./OpsBlock.ts"; export default class StaticOpsCounter { // Whitelist of ops diff --git a/Clava-JS/src-api/clava/util/ClavaDataStore.ts b/Clava-JS/api/clava/util/ClavaDataStore.ts similarity index 93% rename from Clava-JS/src-api/clava/util/ClavaDataStore.ts rename to Clava-JS/api/clava/util/ClavaDataStore.ts index ed672b53a3..e8972a740f 100644 --- a/Clava-JS/src-api/clava/util/ClavaDataStore.ts +++ b/Clava-JS/api/clava/util/ClavaDataStore.ts @@ -1,11 +1,11 @@ -import WeaverDataStore from "@specs-feup/lara/api/weaver/util/WeaverDataStore.js"; -import ClavaJavaTypes from "../ClavaJavaTypes.js"; +import WeaverDataStore from "@specs-feup/lara/api/weaver/util/WeaverDataStore.ts"; +import ClavaJavaTypes from "../ClavaJavaTypes.ts"; import JavaTypes, { type JavaClasses, -} from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Io from "@specs-feup/lara/api/lara/Io.js"; -import DataStore from "@specs-feup/lara/api/lara/util/DataStore.js"; -import { arrayFromArgs } from "@specs-feup/lara/api/lara/core/LaraCore.js"; +} from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import DataStore from "@specs-feup/lara/api/lara/util/DataStore.ts"; +import { arrayFromArgs } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; /** * DataStore used in Clava. diff --git a/Clava-JS/src-api/clava/util/CodeInserter.ts b/Clava-JS/api/clava/util/CodeInserter.ts similarity index 93% rename from Clava-JS/src-api/clava/util/CodeInserter.ts rename to Clava-JS/api/clava/util/CodeInserter.ts index f37b0c912b..b3aa88a6b6 100644 --- a/Clava-JS/src-api/clava/util/CodeInserter.ts +++ b/Clava-JS/api/clava/util/CodeInserter.ts @@ -1,7 +1,7 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import LineInserter from "@specs-feup/lara/api/lara/util/LineInserter.js"; -import { FileJp } from "../../Joinpoints.js"; -import Clava from "../Clava.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import LineInserter from "@specs-feup/lara/api/lara/util/LineInserter.ts"; +import { FileJp } from "../../Joinpoints.ts"; +import Clava from "../Clava.ts"; /** * Writes the original code of the application, with the possibility of inserting new lines of code. diff --git a/Clava-JS/src-api/clava/util/FileIterator.ts b/Clava-JS/api/clava/util/FileIterator.ts similarity index 95% rename from Clava-JS/src-api/clava/util/FileIterator.ts rename to Clava-JS/api/clava/util/FileIterator.ts index 9333de784a..592fbf70ba 100644 --- a/Clava-JS/src-api/clava/util/FileIterator.ts +++ b/Clava-JS/api/clava/util/FileIterator.ts @@ -1,8 +1,8 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import { FileJp } from "../../Joinpoints.js"; -import Clava from "../Clava.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import { debug } from "@specs-feup/lara/api/lara/core/LaraCore.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import { FileJp } from "../../Joinpoints.ts"; +import Clava from "../Clava.ts"; /** * Given a folder, collects sources in that folder, parses and returns one each time next() is called. diff --git a/Clava-JS/src-api/jest.config.js b/Clava-JS/api/jest.config.js similarity index 79% rename from Clava-JS/src-api/jest.config.js rename to Clava-JS/api/jest.config.js index c5e1ae31c2..0f0e072b60 100644 --- a/Clava-JS/src-api/jest.config.js +++ b/Clava-JS/api/jest.config.js @@ -1,4 +1,4 @@ -import { weaverConfig } from "../code/WeaverConfiguration.js"; +import { weaverConfig } from "../code/WeaverConfiguration.ts"; const config = { preset: "ts-jest/presets/default-esm", @@ -8,7 +8,6 @@ const config = { setupFiles: ["@specs-feup/lara/jest/setupFiles/sharedJavaModule.js"], setupFilesAfterEnv: ["@specs-feup/lara/jest/setupFiles/importSideEffects.js"], moduleNameMapper: { - "@specs-feup/clava/api/(.+).js": "@specs-feup/clava/src-api/$1", "(.+)\\.js": "$1", }, testEnvironmentOptions: { diff --git a/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts b/Clava-JS/api/lara/benchmark/ClavaBenchmarkInstance.ts similarity index 89% rename from Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts rename to Clava-JS/api/lara/benchmark/ClavaBenchmarkInstance.ts index b31d487e58..66de5f2603 100644 --- a/Clava-JS/src-api/lara/benchmark/ClavaBenchmarkInstance.ts +++ b/Clava-JS/api/lara/benchmark/ClavaBenchmarkInstance.ts @@ -1,11 +1,11 @@ -import Io from "@specs-feup/lara/api/lara/Io.js"; -import BenchmarkInstance from "@specs-feup/lara/api/lara/benchmark/BenchmarkInstance.js"; -import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Query from "@specs-feup/lara/api/weaver/Query.js"; -import Clava from "../..//clava/Clava.js"; -import { Pragma } from "../../Joinpoints.js"; -import CMaker from "../../clava/cmake/CMaker.js"; -import ClavaJoinPoints from "../../clava/ClavaJoinPoints.js"; +import Io from "@specs-feup/lara/api/lara/Io.ts"; +import BenchmarkInstance from "@specs-feup/lara/api/lara/benchmark/BenchmarkInstance.ts"; +import { type JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Query from "@specs-feup/lara/api/weaver/Query.ts"; +import Clava from "../..//clava/Clava.ts"; +import { Pragma } from "../../Joinpoints.ts"; +import CMaker from "../../clava/cmake/CMaker.ts"; +import ClavaJoinPoints from "../../clava/ClavaJoinPoints.ts"; /** * Instance of a Clava benchmark. diff --git a/Clava-JS/src-api/lara/code/Energy.ts b/Clava-JS/api/lara/code/Energy.ts similarity index 93% rename from Clava-JS/src-api/lara/code/Energy.ts rename to Clava-JS/api/lara/code/Energy.ts index 2fe4d6199f..02ce672fca 100644 --- a/Clava-JS/src-api/lara/code/Energy.ts +++ b/Clava-JS/api/lara/code/Energy.ts @@ -1,12 +1,12 @@ -import EnergyBase from "@specs-feup/lara/api/lara/code/EnergyBase.js"; +import EnergyBase from "@specs-feup/lara/api/lara/code/EnergyBase.ts"; -import Clava from "../../clava/Clava.js"; -import Logger from "./Logger.js"; +import Clava from "../../clava/Clava.ts"; +import Logger from "./Logger.ts"; -import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.js"; -import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.js"; -import { FileJp, Joinpoint } from "../../Joinpoints.js"; -import { InsertPosition } from "@specs-feup/lara/api/LaraJoinPoint.js"; +import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.ts"; +import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.ts"; +import { FileJp, Joinpoint } from "../../Joinpoints.ts"; +import { InsertPosition } from "@specs-feup/lara/api/LaraJoinPoint.ts"; export default class Energy extends EnergyBase { /** diff --git a/Clava-JS/src-api/lara/code/Logger.ts b/Clava-JS/api/lara/code/Logger.ts similarity index 99% rename from Clava-JS/src-api/lara/code/Logger.ts rename to Clava-JS/api/lara/code/Logger.ts index 415a0ce678..96544fe6c8 100644 --- a/Clava-JS/src-api/lara/code/Logger.ts +++ b/Clava-JS/api/lara/code/Logger.ts @@ -1,14 +1,14 @@ -import LoggerBase from "@specs-feup/lara/api/lara/code/LoggerBase.js"; -import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.js"; -import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.js"; +import LoggerBase from "@specs-feup/lara/api/lara/code/LoggerBase.ts"; +import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.ts"; +import PrintOnce from "@specs-feup/lara/api/lara/util/PrintOnce.ts"; import { Expression, FileJp, FunctionJp, Joinpoint, Scope, -} from "../../Joinpoints.js"; -import { InsertPosition } from "@specs-feup/lara/api/LaraJoinPoint.js"; +} from "../../Joinpoints.ts"; +import { InsertPosition } from "@specs-feup/lara/api/LaraJoinPoint.ts"; export default class Logger extends LoggerBase { private _useSpecsLogger: boolean; diff --git a/Clava-JS/src-api/lara/code/Timer.ts b/Clava-JS/api/lara/code/Timer.ts similarity index 97% rename from Clava-JS/src-api/lara/code/Timer.ts rename to Clava-JS/api/lara/code/Timer.ts index d224445929..a5bc93ee67 100644 --- a/Clava-JS/src-api/lara/code/Timer.ts +++ b/Clava-JS/api/lara/code/Timer.ts @@ -1,11 +1,11 @@ -import Platforms from "@specs-feup/lara/api/lara/Platforms.js"; -import TimerBase from "@specs-feup/lara/api/lara/code/TimerBase.js"; -import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.js"; -import { TimerUnit } from "@specs-feup/lara/api/lara/util/TimeUnits.js"; -import { FileJp, Joinpoint, Scope } from "../../Joinpoints.js"; -import Clava from "../../clava/Clava.js"; -import ClavaJoinPoints from "../../clava/ClavaJoinPoints.js"; -import Logger from "./Logger.js"; +import Platforms from "@specs-feup/lara/api/lara/Platforms.ts"; +import TimerBase from "@specs-feup/lara/api/lara/code/TimerBase.ts"; +import IdGenerator from "@specs-feup/lara/api/lara/util/IdGenerator.ts"; +import { TimerUnit } from "@specs-feup/lara/api/lara/util/TimeUnits.ts"; +import { FileJp, Joinpoint, Scope } from "../../Joinpoints.ts"; +import Clava from "../../clava/Clava.ts"; +import ClavaJoinPoints from "../../clava/ClavaJoinPoints.ts"; +import Logger from "./Logger.ts"; export default class Timer extends TimerBase { addedDefines: Set = new Set(); diff --git a/Clava-JS/src-api/lara/metrics/EnergyMetric.ts b/Clava-JS/api/lara/metrics/EnergyMetric.ts similarity index 82% rename from Clava-JS/src-api/lara/metrics/EnergyMetric.ts rename to Clava-JS/api/lara/metrics/EnergyMetric.ts index b049f001d1..ed14821d90 100644 --- a/Clava-JS/src-api/lara/metrics/EnergyMetric.ts +++ b/Clava-JS/api/lara/metrics/EnergyMetric.ts @@ -1,9 +1,9 @@ -import Strings from "@specs-feup/lara/api/lara/Strings.js"; -import Metric from "@specs-feup/lara/api/lara/metrics/Metric.js"; -import MetricResult from "@specs-feup/lara/api/lara/metrics/MetricResult.js"; -import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.js"; -import { Joinpoint } from "../../Joinpoints.js"; -import Energy from "../code/Energy.js"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; +import Metric from "@specs-feup/lara/api/lara/metrics/Metric.ts"; +import MetricResult from "@specs-feup/lara/api/lara/metrics/MetricResult.ts"; +import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.ts"; +import { Joinpoint } from "../../Joinpoints.ts"; +import Energy from "../code/Energy.ts"; /** * Measures energy consumed during an application. diff --git a/Clava-JS/src-api/lara/metrics/ExecutionTimeMetric.ts b/Clava-JS/api/lara/metrics/ExecutionTimeMetric.ts similarity index 82% rename from Clava-JS/src-api/lara/metrics/ExecutionTimeMetric.ts rename to Clava-JS/api/lara/metrics/ExecutionTimeMetric.ts index 1fa7e319d4..055e7e0a5a 100644 --- a/Clava-JS/src-api/lara/metrics/ExecutionTimeMetric.ts +++ b/Clava-JS/api/lara/metrics/ExecutionTimeMetric.ts @@ -1,10 +1,10 @@ -import Strings from "@specs-feup/lara/api/lara/Strings.js"; -import Metric from "@specs-feup/lara/api/lara/metrics/Metric.js"; -import MetricResult from "@specs-feup/lara/api/lara/metrics/MetricResult.js"; -import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.js"; -import { TimerUnit } from "@specs-feup/lara/api/lara/util/TimeUnits.js"; -import { Joinpoint } from "../../Joinpoints.js"; -import Timer from "../code/Timer.js"; +import Strings from "@specs-feup/lara/api/lara/Strings.ts"; +import Metric from "@specs-feup/lara/api/lara/metrics/Metric.ts"; +import MetricResult from "@specs-feup/lara/api/lara/metrics/MetricResult.ts"; +import ProcessExecutor from "@specs-feup/lara/api/lara/util/ProcessExecutor.ts"; +import { TimerUnit } from "@specs-feup/lara/api/lara/util/TimeUnits.ts"; +import { Joinpoint } from "../../Joinpoints.ts"; +import Timer from "../code/Timer.ts"; /** * Measures execution time of an application. diff --git a/Clava-JS/src-code/tsconfig.json b/Clava-JS/api/tsconfig.json similarity index 65% rename from Clava-JS/src-code/tsconfig.json rename to Clava-JS/api/tsconfig.json index 62a2028ceb..c72c84e90d 100644 --- a/Clava-JS/src-code/tsconfig.json +++ b/Clava-JS/api/tsconfig.json @@ -1,9 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "rootDir": ".", - "outDir": "../code", - "composite": true + "rootDir": "." }, "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] } diff --git a/Clava-JS/src-api/weaver/WeaverLauncher.ts b/Clava-JS/api/weaver/WeaverLauncher.ts similarity index 77% rename from Clava-JS/src-api/weaver/WeaverLauncher.ts rename to Clava-JS/api/weaver/WeaverLauncher.ts index 1faee2abae..dc7587324c 100644 --- a/Clava-JS/src-api/weaver/WeaverLauncher.ts +++ b/Clava-JS/api/weaver/WeaverLauncher.ts @@ -1,5 +1,5 @@ -import WeaverLauncherBase from "@specs-feup/lara/api/weaver/WeaverLauncherBase.js"; -import Clava from "../clava/Clava.js"; +import WeaverLauncherBase from "@specs-feup/lara/api/weaver/WeaverLauncherBase.ts"; +import Clava from "../clava/Clava.ts"; export default class WeaverLauncher extends WeaverLauncherBase { execute(args: string | any[]) { diff --git a/Clava-JS/src-code/ClangPlugin/ClangPlugin.test.ts b/Clava-JS/code/ClangPlugin/ClangPlugin.test.ts similarity index 98% rename from Clava-JS/src-code/ClangPlugin/ClangPlugin.test.ts rename to Clava-JS/code/ClangPlugin/ClangPlugin.test.ts index 4eabe5a4b9..376983f398 100644 --- a/Clava-JS/src-code/ClangPlugin/ClangPlugin.test.ts +++ b/Clava-JS/code/ClangPlugin/ClangPlugin.test.ts @@ -2,7 +2,7 @@ import { jest } from "@jest/globals"; import fs from "fs"; import path from "path"; -import ClangPlugin from "./ClangPlugin.js"; +import ClangPlugin from "./ClangPlugin.ts"; describe("ClangPlugin", () => { describe("validateClangExecutable", () => { diff --git a/Clava-JS/src-code/ClangPlugin/ClangPlugin.ts b/Clava-JS/code/ClangPlugin/ClangPlugin.ts similarity index 99% rename from Clava-JS/src-code/ClangPlugin/ClangPlugin.ts rename to Clava-JS/code/ClangPlugin/ClangPlugin.ts index 7ca3bdfd2b..4dc0c00abf 100644 --- a/Clava-JS/src-code/ClangPlugin/ClangPlugin.ts +++ b/Clava-JS/code/ClangPlugin/ClangPlugin.ts @@ -1,6 +1,6 @@ import fs from "fs"; import path from "path"; -import Sandbox from "../Sandbox.js"; +import Sandbox from "../Sandbox.ts"; import { fileURLToPath } from "url"; export default class ClangPlugin { diff --git a/Clava-JS/src-code/Dumper/AbstractDumper.ts b/Clava-JS/code/Dumper/AbstractDumper.ts similarity index 100% rename from Clava-JS/src-code/Dumper/AbstractDumper.ts rename to Clava-JS/code/Dumper/AbstractDumper.ts diff --git a/Clava-JS/src-code/Dumper/ClangJSONDumper.ts b/Clava-JS/code/Dumper/ClangJSONDumper.ts similarity index 92% rename from Clava-JS/src-code/Dumper/ClangJSONDumper.ts rename to Clava-JS/code/Dumper/ClangJSONDumper.ts index 879a4042a6..0808680984 100644 --- a/Clava-JS/src-code/Dumper/ClangJSONDumper.ts +++ b/Clava-JS/code/Dumper/ClangJSONDumper.ts @@ -1,4 +1,4 @@ -import type AbstractDumper from "./AbstractDumper.js"; +import type AbstractDumper from "./AbstractDumper.ts"; import { spawn } from "child_process"; diff --git a/Clava-JS/src-code/Sandbox.test.ts b/Clava-JS/code/Sandbox.test.ts similarity index 98% rename from Clava-JS/src-code/Sandbox.test.ts rename to Clava-JS/code/Sandbox.test.ts index e05dcc03a6..5e49d52cb9 100644 --- a/Clava-JS/src-code/Sandbox.test.ts +++ b/Clava-JS/code/Sandbox.test.ts @@ -1,4 +1,4 @@ -import Sandbox from "./Sandbox.js"; +import Sandbox from "./Sandbox.ts"; describe("Sandbox", () => { describe("sanitizeCommand", () => { diff --git a/Clava-JS/src-code/Sandbox.ts b/Clava-JS/code/Sandbox.ts similarity index 99% rename from Clava-JS/src-code/Sandbox.ts rename to Clava-JS/code/Sandbox.ts index 50b423cf0a..5025f5803c 100644 --- a/Clava-JS/src-code/Sandbox.ts +++ b/Clava-JS/code/Sandbox.ts @@ -1,5 +1,5 @@ import { ChildProcess, spawn, spawnSync } from "child_process"; -import { addActiveChildProcess } from "@specs-feup/lara/code/ChildProcessHandling.js"; +import { addActiveChildProcess } from "@specs-feup/lara/code/ChildProcessHandling.ts"; export default class Sandbox { /** diff --git a/Clava-JS/src-code/WeaverConfiguration.ts b/Clava-JS/code/WeaverConfiguration.ts similarity index 69% rename from Clava-JS/src-code/WeaverConfiguration.ts rename to Clava-JS/code/WeaverConfiguration.ts index 2db66bf3b7..f003327e0c 100644 --- a/Clava-JS/src-code/WeaverConfiguration.ts +++ b/Clava-JS/code/WeaverConfiguration.ts @@ -1,15 +1,15 @@ -import type WeaverConfiguration from "@specs-feup/lara/code/WeaverConfiguration.js"; +import type WeaverConfiguration from "@specs-feup/lara/code/WeaverConfiguration.ts"; import path from "path"; import { fileURLToPath } from "url"; export const weaverConfig: WeaverConfiguration = { weaverName: "clava", weaverPrettyName: "Clava", - weaverFileName: "@specs-feup/lara/code/Weaver.js", + weaverFileName: "@specs-feup/lara/code/Weaver.ts", jarPath: path.join( path.dirname(path.dirname(fileURLToPath(import.meta.url))), "./java-binaries/" ), javaWeaverQualifiedName: "pt.up.fe.specs.clava.weaver.CxxWeaver", - importForSideEffects: ["@specs-feup/clava/api/Joinpoints.js", "@specs-feup/clava/code/sideEffects.js"], + importForSideEffects: ["@specs-feup/clava/api/Joinpoints.ts", "@specs-feup/clava/code/sideEffects.ts"], }; diff --git a/Clava-JS/src-code/index.ts b/Clava-JS/code/index.ts old mode 100644 new mode 100755 similarity index 73% rename from Clava-JS/src-code/index.ts rename to Clava-JS/code/index.ts index c9782c286c..bdf002b8a8 --- a/Clava-JS/src-code/index.ts +++ b/Clava-JS/code/index.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node -import WeaverLauncher from "@specs-feup/lara/code/WeaverLauncher.js"; -import { weaverConfig } from "./WeaverConfiguration.js"; +import WeaverLauncher from "@specs-feup/lara/code/WeaverLauncher.ts"; +import { weaverConfig } from "./WeaverConfiguration.ts"; const weaverLauncher = new WeaverLauncher(weaverConfig); diff --git a/Clava-JS/src-code/jest.config.js b/Clava-JS/code/jest.config.js similarity index 100% rename from Clava-JS/src-code/jest.config.js rename to Clava-JS/code/jest.config.js diff --git a/Clava-JS/src-code/sideEffects.ts b/Clava-JS/code/sideEffects.ts similarity index 94% rename from Clava-JS/src-code/sideEffects.ts rename to Clava-JS/code/sideEffects.ts index c62eac57fa..59d7bf76ff 100644 --- a/Clava-JS/src-code/sideEffects.ts +++ b/Clava-JS/code/sideEffects.ts @@ -1,5 +1,5 @@ -import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.js"; -import Weaver from "@specs-feup/lara/api/weaver/Weaver.js"; +import JavaTypes from "@specs-feup/lara/api/lara/util/JavaTypes.ts"; +import Weaver from "@specs-feup/lara/api/weaver/Weaver.ts"; import path from "node:path"; import os from "node:os"; diff --git a/Clava-JS/code/tsconfig.json b/Clava-JS/code/tsconfig.json new file mode 100644 index 0000000000..c72c84e90d --- /dev/null +++ b/Clava-JS/code/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": "." + }, + "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] +} diff --git a/Clava-JS/jest.config.js b/Clava-JS/jest.config.js index ea4524bfa8..ec1e566d57 100644 --- a/Clava-JS/jest.config.js +++ b/Clava-JS/jest.config.js @@ -12,7 +12,7 @@ const config = { moduleNameMapper: { "(.+)\\.js": "$1", }, - projects: ["src-api", "src-code"], + projects: ["api", "code"], }; export default config; diff --git a/Clava-JS/jest/ClavaLegacyTester.ts b/Clava-JS/jest/ClavaLegacyTester.ts index 8ee73374fb..a57c0c07e6 100644 --- a/Clava-JS/jest/ClavaLegacyTester.ts +++ b/Clava-JS/jest/ClavaLegacyTester.ts @@ -1,8 +1,8 @@ import ClavaJavaTypes, { type ClavaJavaClasses, -} from "@specs-feup/clava/api/clava/ClavaJavaTypes.js"; +} from "../api/clava/ClavaJavaTypes.ts"; -import { WeaverLegacyTester } from "@specs-feup/lara/jest/WeaverLegacyTester.js"; +import { WeaverLegacyTester } from "@specs-feup/lara/jest/WeaverLegacyTester.ts"; export class ClavaLegacyTester extends WeaverLegacyTester { protected readonly WORK_FOLDER: string = "cxx_weaver_output"; diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 81ca3f9f90..471286435b 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -6,8 +6,6 @@ "files": [ "api", "code", - "src-api", - "src-code", "java-binaries", ".gitignore", "eslint.config.js", @@ -20,21 +18,21 @@ "typedoc.config.js" ], "bin": { - "clava": "./code/index.js" + "clava": "./code/index.ts" }, "scripts": { - "run": "node ./code/index.js", - "build": "tsc -b src-api src-code", - "build:api": "tsc -b src-api", - "build:code": "tsc -b src-code", + "run": "node ./code/index.ts", + "build": "tsc -b api code", + "build:api": "tsc -b api", + "build:code": "tsc -b code", "build:watch": "npm run build -- --watch", "lint": "eslint .", "test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --detectOpenHandles --forceExit", - "test:api": "npm run test -- src-api", - "test:code": "npm run test -- src-code", + "test:api": "npm run test -- api", + "test:code": "npm run test -- code", "test:cov": "npm run test -- --coverage", "test:watch": "npm run test -- --watch", - "build-interfaces": "npx lara-build-interfaces --input ../ClavaWeaver/src/pt/up/fe/specs/clava/weaver/CxxWeaver.json --lara @specs-feup/lara/LaraJoinPointSpecification.json --output src-api/Joinpoints.ts" + "build-interfaces": "npx lara-build-interfaces --input ../ClavaWeaver/src/pt/up/fe/specs/clava/weaver/CxxWeaver.json --lara @specs-feup/lara/LaraJoinPointSpecification.json --output api/Joinpoints.ts" }, "repository": { "type": "git", diff --git a/Clava-JS/src-api/clava/opt/PrepareForInlining.ts b/Clava-JS/src-api/clava/opt/PrepareForInlining.ts deleted file mode 100644 index 2ee5f63d11..0000000000 --- a/Clava-JS/src-api/clava/opt/PrepareForInlining.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { FunctionJp } from "../../Joinpoints.js"; -import RemoveShadowing from "../code/RemoveShadowing.js"; -import SingleReturnFunction from "../pass/SingleReturnFunction.js"; - -export default function PrepareForInlining($function: FunctionJp) { - new SingleReturnFunction().apply($function); - RemoveShadowing($function); -} diff --git a/Clava-JS/src-api/tsconfig.json b/Clava-JS/src-api/tsconfig.json deleted file mode 100644 index 0607bd620a..0000000000 --- a/Clava-JS/src-api/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "rootDir": ".", - "outDir": "../api" - }, - "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"], - "references": [{ "path": "../src-code" }] -} diff --git a/Clava-JS/tsconfig.json b/Clava-JS/tsconfig.json index dfabb45eff..a9ba43705b 100644 --- a/Clava-JS/tsconfig.json +++ b/Clava-JS/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - //"noEmit": true, + "noEmit": true, "module": "NodeNext", "isolatedModules": true, "declaration": true, diff --git a/Clava-JS/typedoc.config.js b/Clava-JS/typedoc.config.js index b000de5443..527bc0db70 100644 --- a/Clava-JS/typedoc.config.js +++ b/Clava-JS/typedoc.config.js @@ -4,6 +4,6 @@ export default { extends: [ fileURLToPath(import.meta.resolve("@specs-feup/lara/typedoc.base.json")), ], - entryPoints: ["src-api/"], - tsconfig: "src-api/tsconfig.json", + entryPoints: ["api/"], + tsconfig: "api/tsconfig.json", }; diff --git a/README.md b/README.md index c7ea3845f6..0d7ae5a8fe 100644 --- a/README.md +++ b/README.md @@ -80,16 +80,16 @@ This is a non-exhaustive list of Clava documentation, usage examples and feature * [CMake integration](https://github.com/specs-feup/clava/tree/master/CMake) - Allows Clava to be used in CMake-centered compilation flows * Code transformations: * [Automatic insertion of OpenMP pragmas](https://github.com/specs-feup/clava/blob/master/ClavaLaraApi/src-lara-clava/clava/clava/autopar/Parallelize.lara) - * [Function inlining](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/opt/Inlining.ts) - * [Normalizing code](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/opt/NormalizeToSubset.ts) to a subset of the language, including: - * [Decomposition of complex statements into several, simpler statements](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/StatementDecomposer.ts) - * [Converting static local variables to static global variables](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/pass/LocalStaticToGlobal.ts) - * [Conversion of switch statements to ifs](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/pass/TransformSwitchToIf.ts) - * Loop conversion ([for to while](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/ForToWhileStmt.ts), [do to while](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/DoToWhileStmt.ts)) - * [Ensure there is a single return in a function](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/pass/SingleReturnFunction.ts) - * [Remove variable shadowing](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/RemoveShadowing.ts) - * [Simplify ternary operator](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/SimplifyTernaryOp.ts) - * [Simplify compound assignments](https://github.com/specs-feup/clava/blob/master/Clava-JS/src-api/clava/code/SimplifyAssignment.ts) + * [Function inlining](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/opt/Inlining.ts) + * [Normalizing code](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/opt/NormalizeToSubset.ts) to a subset of the language, including: + * [Decomposition of complex statements into several, simpler statements](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/StatementDecomposer.ts) + * [Converting static local variables to static global variables](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/pass/LocalStaticToGlobal.ts) + * [Conversion of switch statements to ifs](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/pass/TransformSwitchToIf.ts) + * Loop conversion ([for to while](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/ForToWhileStmt.ts), [do to while](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/DoToWhileStmt.ts)) + * [Ensure there is a single return in a function](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/pass/SingleReturnFunction.ts) + * [Remove variable shadowing](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/RemoveShadowing.ts) + * [Simplify ternary operator](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/SimplifyTernaryOp.ts) + * [Simplify compound assignments](https://github.com/specs-feup/clava/blob/master/Clava-JS/api/clava/code/SimplifyAssignment.ts) * Clava [NPM libraries](https://www.npmjs.com/org/specs-feup) (not supported by the JAR file legacy distribution): Library | Description | Installation From 6ad501282e8bb8e3b42ee01a0a44a695a9d4e522 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Mon, 8 Jun 2026 22:51:42 +0100 Subject: [PATCH 03/12] Clava-JS: Run new TS version of the LARA helper scripts --- Clava-JS/api/Joinpoints.ts | 2 +- Clava-JS/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Clava-JS/api/Joinpoints.ts b/Clava-JS/api/Joinpoints.ts index b1ab847a0c..659971877f 100644 --- a/Clava-JS/api/Joinpoints.ts +++ b/Clava-JS/api/Joinpoints.ts @@ -1,5 +1,5 @@ /////////////////////////////////////////////////// -// This file is generated by build-interfaces.js // +// This file is generated by build-interfaces.ts // /////////////////////////////////////////////////// import { diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 471286435b..0789666764 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -32,7 +32,7 @@ "test:code": "npm run test -- code", "test:cov": "npm run test -- --coverage", "test:watch": "npm run test -- --watch", - "build-interfaces": "npx lara-build-interfaces --input ../ClavaWeaver/src/pt/up/fe/specs/clava/weaver/CxxWeaver.json --lara @specs-feup/lara/LaraJoinPointSpecification.json --output api/Joinpoints.ts" + "build-interfaces": "lara-build-interfaces --input ../ClavaWeaver/src/pt/up/fe/specs/clava/weaver/CxxWeaver.json --lara @specs-feup/lara/LaraJoinPointSpecification.json --output api/Joinpoints.ts" }, "repository": { "type": "git", From f1a74d28cc12b4f45061c66029aa2b50e6b95ae6 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Mon, 8 Jun 2026 23:21:22 +0100 Subject: [PATCH 04/12] Clava-JS: Convert Jest configuration files to Typescript --- Clava-JS/api/{jest.config.js => jest.config.ts} | 17 ++++++++--------- Clava-JS/api/tsconfig.json | 2 +- .../code/{jest.config.js => jest.config.ts} | 8 ++++---- Clava-JS/{jest.config.js => jest.config.ts} | 8 ++++---- 4 files changed, 17 insertions(+), 18 deletions(-) rename Clava-JS/api/{jest.config.js => jest.config.ts} (54%) rename Clava-JS/code/{jest.config.js => jest.config.ts} (62%) rename Clava-JS/{jest.config.js => jest.config.ts} (84%) diff --git a/Clava-JS/api/jest.config.js b/Clava-JS/api/jest.config.ts similarity index 54% rename from Clava-JS/api/jest.config.js rename to Clava-JS/api/jest.config.ts index 0f0e072b60..64b53490b5 100644 --- a/Clava-JS/api/jest.config.js +++ b/Clava-JS/api/jest.config.ts @@ -1,18 +1,17 @@ +import { defineConfig } from "jest"; import { weaverConfig } from "../code/WeaverConfiguration.ts"; -const config = { +export default defineConfig({ preset: "ts-jest/presets/default-esm", - testEnvironment: "@specs-feup/lara/jest/jestEnvironment.js", - globalSetup: "@specs-feup/lara/jest/jestGlobalSetup.js", - globalTeardown: "@specs-feup/lara/jest/jestGlobalTeardown.js", - setupFiles: ["@specs-feup/lara/jest/setupFiles/sharedJavaModule.js"], - setupFilesAfterEnv: ["@specs-feup/lara/jest/setupFiles/importSideEffects.js"], + testEnvironment: "@specs-feup/lara/jest/jestEnvironment.ts", + globalSetup: "@specs-feup/lara/jest/jestGlobalSetup.ts", + globalTeardown: "@specs-feup/lara/jest/jestGlobalTeardown.ts", + setupFiles: ["@specs-feup/lara/jest/setupFiles/sharedJavaModule.ts"], + setupFilesAfterEnv: ["@specs-feup/lara/jest/setupFiles/importSideEffects.ts"], moduleNameMapper: { "(.+)\\.js": "$1", }, testEnvironmentOptions: { weaverConfig, }, -}; - -export default config; +}); diff --git a/Clava-JS/api/tsconfig.json b/Clava-JS/api/tsconfig.json index c72c84e90d..daa710f888 100644 --- a/Clava-JS/api/tsconfig.json +++ b/Clava-JS/api/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "rootDir": "." + "rootDirs": [".", "../code"], }, "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] } diff --git a/Clava-JS/code/jest.config.js b/Clava-JS/code/jest.config.ts similarity index 62% rename from Clava-JS/code/jest.config.js rename to Clava-JS/code/jest.config.ts index f8502043b2..76873b4a20 100644 --- a/Clava-JS/code/jest.config.js +++ b/Clava-JS/code/jest.config.ts @@ -1,9 +1,9 @@ -const config = { +import { defineConfig } from "jest"; + +export default defineConfig({ preset: "ts-jest/presets/default-esm", testEnvironment: "node", moduleNameMapper: { "(.+)\\.js": "$1", }, -}; - -export default config; +}); diff --git a/Clava-JS/jest.config.js b/Clava-JS/jest.config.ts similarity index 84% rename from Clava-JS/jest.config.js rename to Clava-JS/jest.config.ts index ec1e566d57..cfa242603e 100644 --- a/Clava-JS/jest.config.js +++ b/Clava-JS/jest.config.ts @@ -1,4 +1,6 @@ -const config = { +import { defineConfig } from "jest"; + +export default defineConfig({ preset: "ts-jest/presets/default-esm", testEnvironment: "node", notify: true, @@ -13,6 +15,4 @@ const config = { "(.+)\\.js": "$1", }, projects: ["api", "code"], -}; - -export default config; +}); From 38c94ba07276a7874d3473aada39373fbf468f37 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Mon, 8 Jun 2026 23:41:38 +0100 Subject: [PATCH 05/12] Clava-JS: Remove unused TypeScript configuration files and simplify build script in package.json --- Clava-JS/api/clava/analysis/AnalyserResult.test.ts | 2 +- Clava-JS/api/tsconfig.json | 7 ------- Clava-JS/code/tsconfig.json | 7 ------- Clava-JS/package.json | 4 +--- 4 files changed, 2 insertions(+), 18 deletions(-) delete mode 100644 Clava-JS/api/tsconfig.json delete mode 100644 Clava-JS/code/tsconfig.json diff --git a/Clava-JS/api/clava/analysis/AnalyserResult.test.ts b/Clava-JS/api/clava/analysis/AnalyserResult.test.ts index 61870b1325..990414af42 100644 --- a/Clava-JS/api/clava/analysis/AnalyserResult.test.ts +++ b/Clava-JS/api/clava/analysis/AnalyserResult.test.ts @@ -1,5 +1,5 @@ import AnalyserResult from "./AnalyserResult.ts"; -import ClavaJoinPoints from "@specs-feup/clava/api/clava/ClavaJoinPoints.ts"; +import ClavaJoinPoints from "../ClavaJoinPoints.ts"; describe("AnalyserResult", () => { describe("getName", () => { diff --git a/Clava-JS/api/tsconfig.json b/Clava-JS/api/tsconfig.json deleted file mode 100644 index daa710f888..0000000000 --- a/Clava-JS/api/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "rootDirs": [".", "../code"], - }, - "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] -} diff --git a/Clava-JS/code/tsconfig.json b/Clava-JS/code/tsconfig.json deleted file mode 100644 index c72c84e90d..0000000000 --- a/Clava-JS/code/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "rootDir": "." - }, - "exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] -} diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 0789666764..81f74921d7 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -22,9 +22,7 @@ }, "scripts": { "run": "node ./code/index.ts", - "build": "tsc -b api code", - "build:api": "tsc -b api", - "build:code": "tsc -b code", + "build": "tsc", "build:watch": "npm run build -- --watch", "lint": "eslint .", "test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --detectOpenHandles --forceExit", From 44a9c00ab617ea38ce34c57811fd83c557242c36 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 9 Jun 2026 00:15:48 +0100 Subject: [PATCH 06/12] Clava-JS: Fix the linter configuration --- Clava-JS/eslint.config.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Clava-JS/eslint.config.js b/Clava-JS/eslint.config.js index 2273574c58..414d082210 100644 --- a/Clava-JS/eslint.config.js +++ b/Clava-JS/eslint.config.js @@ -13,9 +13,6 @@ export default [ js.configs.recommended, eslintConfigPrettier, ...typescriptEslint.configs.recommended, - { - ignores: ["**/*.d.ts", "**/*.config.js"], - }, { plugins: { "@typescript-eslint": typescriptEslint.plugin, @@ -28,7 +25,7 @@ export default [ sourceType: "script", parserOptions: { - project: ["./*/tsconfig.json", "./tsconfig.*.json"], + project: ["./tsconfig.json", "./tsconfig.*.json"], tsconfigRootDir: __dirname, }, }, @@ -37,10 +34,6 @@ export default [ "tsdoc/syntax": "warn", }, }, - { - ...typescriptEslint.configs.disableTypeChecked, - files: ["scripts/**/*.js"], - }, { ...jest.configs["flat/recommended"], files: ["**/*.spec.ts", "**/*.test.ts"], From 2aab56cd5cf1ad3ab382e36304eb340b48c53cd9 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 9 Jun 2026 00:43:26 +0100 Subject: [PATCH 07/12] Clava-JS: Convert ESLint configuration to TypeScript --- Clava-JS/{eslint.config.js => eslint.config.ts} | 15 ++++++++------- Clava-JS/package.json | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) rename Clava-JS/{eslint.config.js => eslint.config.ts} (93%) diff --git a/Clava-JS/eslint.config.js b/Clava-JS/eslint.config.ts similarity index 93% rename from Clava-JS/eslint.config.js rename to Clava-JS/eslint.config.ts index 414d082210..7df9bdcf0e 100644 --- a/Clava-JS/eslint.config.js +++ b/Clava-JS/eslint.config.ts @@ -1,15 +1,16 @@ -import { fileURLToPath } from "url"; -import { dirname } from "path"; -import typescriptEslint from "typescript-eslint"; -import tsdoc from "eslint-plugin-tsdoc"; -import jest from "eslint-plugin-jest"; import js from "@eslint/js"; import eslintConfigPrettier from "eslint-config-prettier"; +import jest from "eslint-plugin-jest"; +import tsdoc from "eslint-plugin-tsdoc"; +import { defineConfig } from "eslint/config"; +import { dirname } from "path"; +import typescriptEslint from "typescript-eslint"; +import { fileURLToPath } from "url"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); -export default [ +export default defineConfig([ js.configs.recommended, eslintConfigPrettier, ...typescriptEslint.configs.recommended, @@ -48,4 +49,4 @@ export default [ }, }, }, -]; +]); diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 81f74921d7..7b52c598c6 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -24,7 +24,7 @@ "run": "node ./code/index.ts", "build": "tsc", "build:watch": "npm run build -- --watch", - "lint": "eslint .", + "lint": "eslint --flag unstable_native_nodejs_ts_config .", "test": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --detectOpenHandles --forceExit", "test:api": "npm run test -- api", "test:code": "npm run test -- code", From 39abb8ba0c6c7a5e8925c320c66f2c8e20b250ce Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 9 Jun 2026 03:27:28 +0100 Subject: [PATCH 08/12] Clava-JS: Update Typedoc configuration --- Clava-JS/tsconfig.jest.json | 5 ----- Clava-JS/typedoc.config.js | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 Clava-JS/tsconfig.jest.json diff --git a/Clava-JS/tsconfig.jest.json b/Clava-JS/tsconfig.jest.json deleted file mode 100644 index dd7eedda34..0000000000 --- a/Clava-JS/tsconfig.jest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["**/*.spec.ts", "**/*.test.ts"], - "exclude": ["node_modules"] -} diff --git a/Clava-JS/typedoc.config.js b/Clava-JS/typedoc.config.js index 527bc0db70..357b6153bc 100644 --- a/Clava-JS/typedoc.config.js +++ b/Clava-JS/typedoc.config.js @@ -5,5 +5,5 @@ export default { fileURLToPath(import.meta.resolve("@specs-feup/lara/typedoc.base.json")), ], entryPoints: ["api/"], - tsconfig: "api/tsconfig.json", + tsconfig: "tsconfig.json", }; From 141aeb7be767215675ca045cfd21248ee0cd5539 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 9 Jun 2026 16:45:11 +0100 Subject: [PATCH 09/12] Clava-JS: Add proper exports to the package and cleanup tsconfig --- Clava-JS/package.json | 21 +++++++++++++++------ Clava-JS/tsconfig.json | 7 +------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 7b52c598c6..8a3f3bf4bb 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -3,23 +3,32 @@ "version": "3.5.1", "description": "A C/C++ source-to-source compiler written in Typescript", "type": "module", + "bin": { + "clava": "./code/index.ts" + }, + "exports": { + "./api/*.test.ts": null, + "./api/*.config.ts": null, + "./api/*": "./api/*.ts", + "./api/*.ts": "./api/*.ts", + "./code/*.test.ts": null, + "./code/*.config.ts": null, + "./code/*": "./code/*.ts", + "./code/*.ts": "./code/*.ts" + }, "files": [ "api", "code", "java-binaries", ".gitignore", - "eslint.config.js", - "jest.config.js", + "eslint.config.ts", + "jest.config.ts", "LICENSE", "package.json", "README.md", - "tsconfig.jest.json", "tsconfig.json", "typedoc.config.js" ], - "bin": { - "clava": "./code/index.ts" - }, "scripts": { "run": "node ./code/index.ts", "build": "tsc", diff --git a/Clava-JS/tsconfig.json b/Clava-JS/tsconfig.json index a9ba43705b..45c2114568 100644 --- a/Clava-JS/tsconfig.json +++ b/Clava-JS/tsconfig.json @@ -2,15 +2,10 @@ "compilerOptions": { "noEmit": true, "module": "NodeNext", - "isolatedModules": true, "declaration": true, "strict": true, - //"allowJs": true, - //"checkJs": true, - "sourceMap": true, - "declarationMap": true, + "isolatedModules": true, "allowSyntheticDefaultImports": true, - //"esModuleInterop": true "types": ["node", "jest"], "rewriteRelativeImportExtensions": true, "erasableSyntaxOnly": true, From e917ba36775de625c9127c751c1963aa26fca924 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 30 Jun 2026 03:55:41 +0100 Subject: [PATCH 10/12] Update Node.js supported versions --- .github/workflows/nightly.yml | 4 ++-- Clava-JS/README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 1ad36291e4..e1223a4382 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -156,7 +156,7 @@ jobs: fail-fast: false matrix: #node-version: ['latest', '22.x', '20.x'] - node-version: ['22.x', '20.x'] + node-version: ['25.x', '24.x'] os: [ubuntu-latest, windows-latest, macos-latest] runs-on: ${{ matrix.os }} @@ -223,7 +223,7 @@ jobs: # Only on ubuntu-latest - name: Publish JS - if: matrix.os == 'ubuntu-latest' && matrix.node-version == '22.x' + if: matrix.os == 'ubuntu-latest' && matrix.node-version == '25.x' run: | cd clava/Clava-JS npm whoami diff --git a/Clava-JS/README.md b/Clava-JS/README.md index 0dd99989b4..0182411ffa 100644 --- a/Clava-JS/README.md +++ b/Clava-JS/README.md @@ -2,7 +2,7 @@ Clava source-to-source compiler running on top of Node.js. -Current version only works on Node 20 and 22. +Current version works on Node >=24. To test Clava-JS you can try the [Clava project template](https://github.com/specs-feup/clava-project-template). From 5d71fdb8d317c87884848f99bf8f75ed7b7b4091 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 30 Jun 2026 04:43:49 +0100 Subject: [PATCH 11/12] Fix JS CI workflow setup --- .github/workflows/nightly.yml | 23 ++++++----------------- README.md | 4 ++-- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e1223a4382..98915e2b03 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -197,7 +197,7 @@ jobs: - name: Setup js workspace run: | - echo '{ "name": "SPeCS Workspace", "type": "module", "workspaces": [ "clava/Clava-JS", "lara-framework/Lara-JS" ] }' > package.json + echo '{ "name": "SPeCS Workspace", "type": "module", "workspaces": [ "clava/Clava-JS", "lara-framework/Lara-JS" ], "overrides": { "node-gyp": "^12.1.0" } }' > package.json npm install - name: Build Lara-JS @@ -223,25 +223,14 @@ jobs: # Only on ubuntu-latest - name: Publish JS - if: matrix.os == 'ubuntu-latest' && matrix.node-version == '25.x' + if: github.event_name == 'push' && github.ref == 'refs/heads/staging' && matrix.os == 'ubuntu-latest' && matrix.node-version == '25.x' run: | cd clava/Clava-JS npm whoami echo "Attempt to publish while running on ${{ matrix.os }} and Node.js ${{matrix.node-version}}" - if [[ "${{ github.event_name }}" == "push" ]]; then - if [ "${{ github.ref }}" == "refs/heads/staging" ]; then - echo "Publishing from staging, creating timestamped prerelease and updating tag 'staging'" - TIMESTAMP=$(date +"%Y%m%d%H%M") - npm version prerelease --preid="$TIMESTAMP" - npm publish --tag staging --access public - elif [ "${{ github.ref }}" == "refs/heads/master" ]; then - echo "Publishing from main, assumes version was changed before publishing" - npm publish - else - echo "Not master or staging branches, not publishing even if it is a push event" - fi - else - echo "Not a push event, skipping publish." - fi + echo "Publishing from staging, creating timestamped prerelease and updating tag 'staging'" + TIMESTAMP=$(date +"%Y%m%d%H%M") + npm version prerelease --preid="$TIMESTAMP" + npm publish --tag staging --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/README.md b/README.md index 0d7ae5a8fe..31d2ce60d5 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ There are three distributions of Clava: ### NPM distribution (recommended) -Clava is currently distributed as an [NPM package](https://www.npmjs.com/package/@specs-feup/clava). It requires Node.js 20 or 22, and Java 17 or higher. Different OSses have different ways of installing these dependencies, but on Ubuntu you can run this: +Clava is currently distributed as an [NPM package](https://www.npmjs.com/package/@specs-feup/clava). It requires Node.js 24 or higher, and Java 17 or higher. Different OSses have different ways of installing these dependencies, but on Ubuntu you can run this: ```bash apt-get update && apt-get install -y curl openjdk-17-jdk -curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs +curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs ``` Now, you have two options: From a8c215e87b3621ff770603ab3c17473b15d552b0 Mon Sep 17 00:00:00 2001 From: "L. Sousa" Date: Tue, 14 Jul 2026 16:52:43 +0100 Subject: [PATCH 12/12] Upgrade Clava-JS to TypeScript 7 --- Clava-JS/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Clava-JS/package.json b/Clava-JS/package.json index 8a3f3bf4bb..519ef567c8 100644 --- a/Clava-JS/package.json +++ b/Clava-JS/package.json @@ -78,7 +78,7 @@ "jest": "^30.2.0", "node-notifier": "^10.0.1", "ts-jest": "^29.4.6", - "typescript": "^6.0.3", + "typescript": "^7.0.2", "typescript-eslint": "^8.52.0" } }