aurora-langium 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cjs/cli/index.cjs +131198 -0
  2. package/dist/cjs/cli/index.cjs.map +7 -0
  3. package/dist/cjs/src/cli/cli-util.js.map +1 -1
  4. package/dist/cjs/src/cli/index.js +17 -0
  5. package/dist/cjs/src/cli/index.js.map +1 -0
  6. package/dist/cjs/src/cli/main.js +3 -0
  7. package/dist/cjs/src/cli/main.js.map +1 -1
  8. package/dist/cjs/test/aurora-arith/arith-parser-multi.test.js +57 -0
  9. package/dist/cjs/test/aurora-arith/arith-parser-multi.test.js.map +1 -0
  10. package/dist/cjs/test/aurora-arith/arith-parser-ternary.test.js +61 -0
  11. package/dist/cjs/test/aurora-arith/arith-parser-ternary.test.js.map +1 -0
  12. package/dist/cjs/test/aurora-arith/arith-parser.test.js +61 -0
  13. package/dist/cjs/test/aurora-arith/arith-parser.test.js.map +1 -0
  14. package/dist/esm/cli/main.js +134876 -0
  15. package/dist/esm/cli/main.js.map +7 -0
  16. package/dist/esm/extension/langclientconfig.js +20967 -0
  17. package/dist/esm/extension/langclientconfig.js.map +7 -0
  18. package/dist/esm/src/cli/cli-util.js.map +1 -1
  19. package/dist/esm/src/cli/index.js +12 -0
  20. package/dist/esm/src/cli/index.js.map +1 -0
  21. package/dist/esm/src/cli/main.js +3 -0
  22. package/dist/esm/src/cli/main.js.map +1 -1
  23. package/dist/esm/test/aurora-arith/arith-parser-multi.test.js +52 -0
  24. package/dist/esm/test/aurora-arith/arith-parser-multi.test.js.map +1 -0
  25. package/dist/esm/test/aurora-arith/arith-parser-ternary.test.js +56 -0
  26. package/dist/esm/test/aurora-arith/arith-parser-ternary.test.js.map +1 -0
  27. package/dist/esm/test/aurora-arith/arith-parser.test.js +56 -0
  28. package/dist/esm/test/aurora-arith/arith-parser.test.js.map +1 -0
  29. package/dist/types/src/cli/index.d.ts +6 -0
  30. package/dist/types/test/aurora-arith/arith-parser-multi.test.d.ts +1 -0
  31. package/dist/types/test/aurora-arith/arith-parser-ternary.test.d.ts +1 -0
  32. package/dist/types/test/aurora-arith/arith-parser.test.d.ts +1 -0
  33. package/package.json +7 -1
  34. package/src/cli/cli-util.ts +3 -0
  35. package/src/cli/index.ts +16 -0
  36. package/src/cli/main.ts +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../../../src/cli/cli-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,gDAAkC;AAClC,4CAA8B;AAC9B,qCAA8B;AAEvB,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,QAA6B;;IACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sDAAsD,UAAU,GAAG,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,aAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAExF,MAAM,gBAAgB,GAAG,CAAC,MAAA,QAAQ,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CACnB,QAAQ,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,eAAe,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CACvI,CAAC,CAAC;SACN;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AA3BD,0CA2BC;AAEM,KAAK,UAAU,cAAc,CAAoB,QAAgB,EAAE,QAA6B;;IACnG,OAAO,MAAA,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,0CAAE,KAAU,CAAC;AAC/E,CAAC;AAFD,wCAEC;AAOD,SAAgB,yBAAyB,CAAC,QAAgB,EAAE,WAA+B;IACvF,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO;QACH,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAC1E,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAChC,CAAC;AACN,CAAC;AAND,8DAMC"}
1
+ {"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../../../src/cli/cli-util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,gDAAkC;AAClC,4CAA8B;AAC9B,qCAA8B;AAKvB,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,QAA6B;;IACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,MAAM,CAAC,sDAAsD,UAAU,GAAG,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,QAAQ,kBAAkB,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,aAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACxH,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAExF,MAAM,gBAAgB,GAAG,CAAC,MAAA,QAAQ,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;IACpF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzD,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CACnB,QAAQ,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,eAAe,CAAC,OAAO,KAAK,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CACvI,CAAC,CAAC;SACN;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AA3BD,0CA2BC;AAEM,KAAK,UAAU,cAAc,CAAoB,QAAgB,EAAE,QAA6B;;IACnG,OAAO,MAAA,CAAC,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,0CAAE,KAAU,CAAC;AAC/E,CAAC;AAFD,wCAEC;AAOD,SAAgB,yBAAyB,CAAC,QAAgB,EAAE,WAA+B;IACvF,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO;QACH,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;QAC1E,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAChC,CAAC;AACN,CAAC;AAND,8DAMC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parse = exports.AstUtils = exports.CstUtils = void 0;
4
+ const aurora_module_js_1 = require("../language/aurora-module.js");
5
+ const cli_util_js_1 = require("./cli-util.js");
6
+ const node_1 = require("langium/node");
7
+ const langium_1 = require("langium");
8
+ Object.defineProperty(exports, "CstUtils", { enumerable: true, get: function () { return langium_1.CstUtils; } });
9
+ Object.defineProperty(exports, "AstUtils", { enumerable: true, get: function () { return langium_1.AstUtils; } });
10
+ /** utility function parse a filename to PCM */
11
+ const parse = async (fileName) => {
12
+ const services = (0, aurora_module_js_1.createAuroraServices)(node_1.NodeFileSystem).Aurora;
13
+ const module = await (0, cli_util_js_1.extractAstNode)(fileName, services);
14
+ return module;
15
+ };
16
+ exports.parse = parse;
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,mEAAoE;AACpE,+CAA+C;AAC/C,uCAA8C;AAE9C,qCAA0C;AAClC,yFADC,kBAAQ,OACD;AAAC,yFADC,kBAAQ,OACD;AACzB,+CAA+C;AACxC,MAAM,KAAK,GAAG,KAAK,EAAE,QAAgB,EAAgB,EAAE;IAC1D,MAAM,QAAQ,GAAG,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAc,EAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE7D,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
@@ -36,6 +36,9 @@ const generator_js_1 = require("./generator.js");
36
36
  const node_1 = require("langium/node");
37
37
  const fs = __importStar(require("node:fs/promises"));
38
38
  const path = __importStar(require("node:path"));
39
+ /**the stuff below merely finds the package.json to find the version number so the command line can know this.
40
+ * this is not important right now
41
+ */
39
42
  const __dirname = path.resolve();
40
43
  const packagePath = path.resolve(__dirname, '..', '..', 'package.json');
41
44
  async function loadPackageContent() {
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,yCAAoC;AACpC,+DAAyE;AACzE,mEAAoE;AACpE,+CAA+C;AAC/C,iDAAoD;AACpD,uCAA8C;AAC9C,qDAAuC;AACvC,gDAAkC;AAElC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAExE,KAAK,UAAU,kBAAkB;IAC7B,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAEM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,IAAqB,EAAiB,EAAE;IAC3F,MAAM,QAAQ,GAAG,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAc,EAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAA,iCAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAMF,KAAK,UAAU,IAAI;IACf,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAElD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,kCAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,QAAQ,EAAE,0CAA0C,cAAc,GAAG,CAAC;SAC/E,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;SACxE,WAAW,CAAC,2FAA2F,CAAC;SACxG,MAAM,CAAC,sBAAc,CAAC,CAAC;IAE5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/cli/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,yCAAoC;AACpC,+DAAyE;AACzE,mEAAoE;AACpE,+CAA+C;AAC/C,iDAAoD;AACpD,uCAA8C;AAC9C,qDAAuC;AACvC,gDAAkC;AAGlC;;GAEG;AACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAExE,KAAK,UAAU,kBAAkB;IAC7B,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAEM,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IACxC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,CAAC;IAC7E,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAE,IAAqB,EAAiB,EAAE;IAC3F,MAAM,QAAQ,GAAG,IAAA,uCAAoB,EAAC,qBAAc,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,IAAA,4BAAc,EAAM,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAA,iCAAkB,EAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,2CAA2C,iBAAiB,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAMF,KAAK,UAAU,IAAI;IACf,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAElD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,kCAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,OAAO;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,QAAQ,CAAC,QAAQ,EAAE,0CAA0C,cAAc,GAAG,CAAC;SAC/E,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;SACxE,WAAW,CAAC,2FAA2F,CAAC;SACxG,MAAM,CAAC,sBAAc,CAAC,CAAC;IAE5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const aurora_arith_evaluator_js_1 = require("../../src/language/aurora-arith-evaluator.js");
10
+ const index_js_1 = require("../../src/cli/index.js");
11
+ const __dirname = path_1.default.relative(process.cwd(), path_1.default.dirname(__filename)); // Relative to the current working directory
12
+ (0, vitest_1.test)('ArithParserMultiTest: multiexpressions file works', async () => {
13
+ try {
14
+ const filePath = path_1.default.resolve(__dirname, 'resources', 'math3.aurora');
15
+ const fileContent = fs_1.default.readFileSync(filePath, 'utf-8');
16
+ const module = await (0, index_js_1.parse)(filePath);
17
+ const arithModule = module.elements.find(el => el.$type === "Arith_Module");
18
+ (0, vitest_1.expect)(arithModule.name).toBe('multiexpressions');
19
+ const results = (0, aurora_arith_evaluator_js_1.interpretEvaluations)(module);
20
+ const evaluations = arithModule.statements.filter(s => s.$type === 'Evaluation');
21
+ (0, vitest_1.expect)(results.size).toBe(evaluations.length);
22
+ const testCases = [];
23
+ results.forEach((computedValue, evaluation) => {
24
+ var _a, _b;
25
+ const exprText = extractExpressionText(fileContent, ((_a = evaluation.expression.$cstNode) === null || _a === void 0 ? void 0 : _a.offset) || 0, ((_b = evaluation.expression.$cstNode) === null || _b === void 0 ? void 0 : _b.length) || 0);
26
+ const expected = safeEvaluate(exprText);
27
+ testCases.push({
28
+ expression: exprText,
29
+ computed: Number(computedValue),
30
+ expected: Number(expected)
31
+ });
32
+ });
33
+ testCases.forEach(({ expression, computed, expected }) => {
34
+ console.log(`Testing: ${expression} → Computed: ${computed}, Expected: ${expected}`);
35
+ (0, vitest_1.expect)(computed, `Mismatch in expression: ${expression}`).toBe(expected);
36
+ });
37
+ }
38
+ catch (e) {
39
+ console.error('Test failed:', e);
40
+ throw e;
41
+ }
42
+ });
43
+ function extractExpressionText(content, offset, length) {
44
+ return content.slice(offset, offset + length).trim();
45
+ }
46
+ function safeEvaluate(expression) {
47
+ const jsExpression = expression
48
+ .replace(/\^/g, '**')
49
+ .replace(/;/g, '');
50
+ try {
51
+ return Function(`"use strict"; return (${jsExpression})`)();
52
+ }
53
+ catch (error) {
54
+ throw new Error(`Evaluation failed for: ${expression} - ${error}`);
55
+ }
56
+ }
57
+ //# sourceMappingURL=arith-parser-multi.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arith-parser-multi.test.js","sourceRoot":"","sources":["../../../../test/aurora-arith/arith-parser-multi.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const aurora_arith_evaluator_js_1 = require("../../src/language/aurora-arith-evaluator.js");
10
+ const index_js_1 = require("../../src/cli/index.js");
11
+ const __dirname = path_1.default.relative(process.cwd(), path_1.default.dirname(__filename)); // Relative to the current working directory
12
+ (0, vitest_1.test)('ArithParserTernaryTest: ternaryexpressions file works', async () => {
13
+ try {
14
+ const filePath = path_1.default.resolve(__dirname, 'resources', 'math2.aurora');
15
+ const fileContent = fs_1.default.readFileSync(filePath, 'utf-8');
16
+ const module = await (0, index_js_1.parse)(filePath);
17
+ const arithModule = module.elements.find(el => el.$type === "Arith_Module");
18
+ (0, vitest_1.expect)(arithModule.name).toBe('ternaryexpressions');
19
+ const results = (0, aurora_arith_evaluator_js_1.interpretEvaluations)(module);
20
+ const lines = fileContent.split('{')
21
+ .map(line => line.trim())
22
+ .filter(line => (line.length > 0 && !line.startsWith('arith_module')));
23
+ const eval_lines = lines.reverse()[0].split('}')[0].split(';').map(line => line.trim()).filter(line => line.length > 0);
24
+ (0, vitest_1.expect)(results.size).toBe(eval_lines.length);
25
+ const testCases = [];
26
+ let index = 0;
27
+ results.forEach((computedValue, evaluation) => {
28
+ const originalExpression = eval_lines[index];
29
+ const computed = Number(computedValue);
30
+ const expected = safeEvaluate(originalExpression);
31
+ testCases.push({
32
+ expression: originalExpression,
33
+ computed,
34
+ expected
35
+ });
36
+ index++;
37
+ });
38
+ testCases.forEach(({ expression, computed, expected }) => {
39
+ console.log(`Testing: ${expression} → Computed: ${computed}, Expected: ${expected}`);
40
+ (0, vitest_1.expect)(computed, `Mismatch in expression: ${expression}`).toBe(expected);
41
+ });
42
+ }
43
+ catch (e) {
44
+ console.error('Test failed:', e);
45
+ throw e;
46
+ }
47
+ });
48
+ function safeEvaluate(expression) {
49
+ const jsExpression = expression
50
+ .replace(/\^/g, '**')
51
+ .replace(/%/g, '%')
52
+ .replace(/\//g, '/')
53
+ .replace(/\*/g, '*');
54
+ try {
55
+ return Function(`"use strict"; return (${jsExpression})`)();
56
+ }
57
+ catch (error) {
58
+ throw new Error(`Failed to evaluate expression: ${expression} - ${error}`);
59
+ }
60
+ }
61
+ //# sourceMappingURL=arith-parser-ternary.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arith-parser-ternary.test.js","sourceRoot":"","sources":["../../../../test/aurora-arith/arith-parser-ternary.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const aurora_arith_evaluator_js_1 = require("../../src/language/aurora-arith-evaluator.js");
10
+ const index_js_1 = require("../../src/cli/index.js");
11
+ const __dirname = path_1.default.relative(process.cwd(), path_1.default.dirname(__filename)); // Relative to the current working directory
12
+ (0, vitest_1.test)('ArithParserTest: binaryexpressions file works', async () => {
13
+ try {
14
+ const filePath = path_1.default.resolve(__dirname, 'resources', 'math1.aurora');
15
+ const fileContent = fs_1.default.readFileSync(filePath, 'utf-8');
16
+ const module = await (0, index_js_1.parse)(filePath);
17
+ const arithModule = module.elements.find(el => el.$type === "Arith_Module");
18
+ (0, vitest_1.expect)(arithModule.name).toBe('binaryexpressions');
19
+ const results = (0, aurora_arith_evaluator_js_1.interpretEvaluations)(module);
20
+ (0, vitest_1.expect)(results.size).toBe(6);
21
+ const testCases = [];
22
+ let processedCount = 0;
23
+ results.forEach((computedValue, evaluation) => {
24
+ const expr = evaluation.expression;
25
+ const source = fileContent.split('\n')[processedCount + 1].trim().replace(';', '');
26
+ if (expr.$type === 'BinaryExpression') {
27
+ const left = expr.left.value;
28
+ const right = expr.right.value;
29
+ const operator = expr.operator;
30
+ const expected = calculateExpected(left, operator, right);
31
+ testCases.push({
32
+ expression: source,
33
+ computed: Number(computedValue),
34
+ expected: Number(expected)
35
+ });
36
+ processedCount++;
37
+ }
38
+ });
39
+ (0, vitest_1.expect)(processedCount).toBe(6);
40
+ testCases.forEach(({ expression, computed, expected }) => {
41
+ console.log(`Testing: ${expression} → Computed: ${computed}, Expected: ${expected}`);
42
+ (0, vitest_1.expect)(computed, `Mismatch in expression: ${expression}`).toBe(expected);
43
+ });
44
+ }
45
+ catch (e) {
46
+ console.error('Test failed:', e);
47
+ throw e;
48
+ }
49
+ });
50
+ function calculateExpected(left, operator, right) {
51
+ switch (operator) {
52
+ case '+': return left + right;
53
+ case '-': return left - right;
54
+ case '*': return left * right;
55
+ case '/': return left / right;
56
+ case '^': return Math.pow(left, right);
57
+ case '%': return left % right;
58
+ default: throw new Error(`Unknown operator: ${operator}`);
59
+ }
60
+ }
61
+ //# sourceMappingURL=arith-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arith-parser.test.js","sourceRoot":"","sources":["../../../../test/aurora-arith/arith-parser.test.ts"],"names":[],"mappings":"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"}