@lionweb/validation 0.6.1-beta.0 → 0.6.1-beta.1

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 (160) hide show
  1. package/dist/diff/LionWebJsonDiff.d.ts.map +1 -1
  2. package/dist/diff/LionWebJsonDiff.js +18 -23
  3. package/dist/diff/LionWebJsonDiff.js.map +1 -1
  4. package/dist/diff/changes/ContainmentChange.d.ts +2 -2
  5. package/dist/diff/changes/ContainmentChange.d.ts.map +1 -1
  6. package/dist/diff/changes/ContainmentChange.js.map +1 -1
  7. package/dist/diff/changes/ReferenceChange.d.ts +3 -3
  8. package/dist/diff/changes/ReferenceChange.d.ts.map +1 -1
  9. package/dist/diff/changes/ReferenceChange.js.map +1 -1
  10. package/dist/index.d.ts +2 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/issues/LanguageIssues.d.ts +37 -13
  15. package/dist/issues/LanguageIssues.d.ts.map +1 -1
  16. package/dist/issues/LanguageIssues.js +49 -13
  17. package/dist/issues/LanguageIssues.js.map +1 -1
  18. package/dist/issues/ReferenceIssues.d.ts +6 -6
  19. package/dist/issues/ReferenceIssues.d.ts.map +1 -1
  20. package/dist/issues/ReferenceIssues.js +6 -6
  21. package/dist/issues/ReferenceIssues.js.map +1 -1
  22. package/dist/issues/SyntaxIssues.d.ts +9 -9
  23. package/dist/issues/SyntaxIssues.d.ts.map +1 -1
  24. package/dist/issues/SyntaxIssues.js +9 -9
  25. package/dist/issues/SyntaxIssues.js.map +1 -1
  26. package/dist/issues/ValidationIssue.d.ts +7 -1
  27. package/dist/issues/ValidationIssue.d.ts.map +1 -1
  28. package/dist/issues/ValidationIssue.js +9 -1
  29. package/dist/issues/ValidationIssue.js.map +1 -1
  30. package/dist/json/LionWebJson.d.ts +1 -14
  31. package/dist/json/LionWebJson.d.ts.map +1 -1
  32. package/dist/json/LionWebJson.js +4 -14
  33. package/dist/json/LionWebJson.js.map +1 -1
  34. package/dist/json/LionWebJsonChunkWrapper.d.ts +20 -8
  35. package/dist/json/LionWebJsonChunkWrapper.d.ts.map +1 -1
  36. package/dist/json/LionWebJsonChunkWrapper.js +50 -22
  37. package/dist/json/LionWebJsonChunkWrapper.js.map +1 -1
  38. package/dist/json/M3definitions.d.ts +176 -0
  39. package/dist/json/M3definitions.d.ts.map +1 -0
  40. package/dist/json/M3definitions.js +174 -0
  41. package/dist/json/M3definitions.js.map +1 -0
  42. package/dist/json/NodeUtils.d.ts +3 -9
  43. package/dist/json/NodeUtils.d.ts.map +1 -1
  44. package/dist/json/NodeUtils.js +18 -31
  45. package/dist/json/NodeUtils.js.map +1 -1
  46. package/dist/json/index.d.ts +1 -2
  47. package/dist/json/index.d.ts.map +1 -1
  48. package/dist/json/index.js +1 -2
  49. package/dist/json/index.js.map +1 -1
  50. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts +24 -0
  51. package/dist/languages/CompositeLionWebLanguageWrapper.d.ts.map +1 -0
  52. package/dist/languages/CompositeLionWebLanguageWrapper.js +56 -0
  53. package/dist/languages/CompositeLionWebLanguageWrapper.js.map +1 -0
  54. package/dist/languages/LanguageRegistry.d.ts +19 -0
  55. package/dist/languages/LanguageRegistry.d.ts.map +1 -0
  56. package/dist/languages/LanguageRegistry.js +37 -0
  57. package/dist/languages/LanguageRegistry.js.map +1 -0
  58. package/dist/languages/LanguageUtils.d.ts +35 -0
  59. package/dist/languages/LanguageUtils.d.ts.map +1 -0
  60. package/dist/languages/LanguageUtils.js +52 -0
  61. package/dist/languages/LanguageUtils.js.map +1 -0
  62. package/dist/languages/LionCore-M3.json +2356 -0
  63. package/{src/json/std-builtins-copy.json → dist/languages/LionCore-builtins.json} +57 -52
  64. package/dist/languages/LionWebLanguageWrapper.d.ts +31 -0
  65. package/dist/languages/LionWebLanguageWrapper.d.ts.map +1 -0
  66. package/dist/languages/LionWebLanguageWrapper.js +69 -0
  67. package/dist/languages/LionWebLanguageWrapper.js.map +1 -0
  68. package/dist/languages/MetaPointerMap.d.ts +11 -0
  69. package/dist/languages/MetaPointerMap.d.ts.map +1 -0
  70. package/dist/languages/MetaPointerMap.js +39 -0
  71. package/dist/languages/MetaPointerMap.js.map +1 -0
  72. package/dist/languages/index.d.ts +3 -0
  73. package/dist/languages/index.d.ts.map +1 -0
  74. package/dist/languages/index.js +3 -0
  75. package/dist/languages/index.js.map +1 -0
  76. package/dist/runners/FileUtils.d.ts +4 -4
  77. package/dist/runners/FileUtils.d.ts.map +1 -1
  78. package/dist/runners/FileUtils.js +8 -32
  79. package/dist/runners/FileUtils.js.map +1 -1
  80. package/dist/runners/RunCheckFolder.js +3 -1
  81. package/dist/runners/RunCheckFolder.js.map +1 -1
  82. package/dist/runners/RunCheckFolderWithLanguage.js +7 -3
  83. package/dist/runners/RunCheckFolderWithLanguage.js.map +1 -1
  84. package/dist/runners/RunCheckOneFile.js +3 -1
  85. package/dist/runners/RunCheckOneFile.js.map +1 -1
  86. package/dist/runners/RunCheckOneFileWithLanguage.js +12 -3
  87. package/dist/runners/RunCheckOneFileWithLanguage.js.map +1 -1
  88. package/dist/runners/Utils.d.ts.map +1 -1
  89. package/dist/runners/Utils.js +0 -1
  90. package/dist/runners/Utils.js.map +1 -1
  91. package/dist/util/graphs.d.ts +18 -0
  92. package/dist/util/graphs.d.ts.map +1 -0
  93. package/dist/util/graphs.js +27 -0
  94. package/dist/util/graphs.js.map +1 -0
  95. package/dist/validators/LionWebLanguageReferenceValidator.d.ts +5 -4
  96. package/dist/validators/LionWebLanguageReferenceValidator.d.ts.map +1 -1
  97. package/dist/validators/LionWebLanguageReferenceValidator.js +96 -34
  98. package/dist/validators/LionWebLanguageReferenceValidator.js.map +1 -1
  99. package/dist/validators/LionWebLanguageValidator.d.ts +15 -3
  100. package/dist/validators/LionWebLanguageValidator.d.ts.map +1 -1
  101. package/dist/validators/LionWebLanguageValidator.js +54 -21
  102. package/dist/validators/LionWebLanguageValidator.js.map +1 -1
  103. package/dist/validators/LionWebReferenceValidator.d.ts.map +1 -1
  104. package/dist/validators/LionWebReferenceValidator.js +0 -5
  105. package/dist/validators/LionWebReferenceValidator.js.map +1 -1
  106. package/dist/validators/LionWebSyntaxValidator.d.ts +1 -1
  107. package/dist/validators/LionWebSyntaxValidator.js +1 -1
  108. package/dist/validators/LionWebValidator.d.ts +3 -3
  109. package/dist/validators/LionWebValidator.d.ts.map +1 -1
  110. package/dist/validators/LionWebValidator.js +5 -8
  111. package/dist/validators/LionWebValidator.js.map +1 -1
  112. package/package.json +5 -5
  113. package/src/diff/LionWebJsonDiff.ts +18 -23
  114. package/src/diff/changes/ContainmentChange.ts +1 -1
  115. package/src/diff/changes/ReferenceChange.ts +2 -2
  116. package/src/index.ts +2 -0
  117. package/src/issues/LanguageIssues.ts +49 -14
  118. package/src/issues/ReferenceIssues.ts +6 -6
  119. package/src/issues/SyntaxIssues.ts +9 -9
  120. package/src/issues/ValidationIssue.ts +12 -2
  121. package/src/json/LionCore_M3.json +2320 -0
  122. package/src/json/LionCore_builtins.json +231 -0
  123. package/src/json/LionWebJson.ts +5 -14
  124. package/src/json/LionWebJsonChunkWrapper.ts +59 -30
  125. package/src/json/M3definitions.ts +177 -0
  126. package/src/json/NodeUtils.ts +21 -39
  127. package/src/json/index.ts +1 -2
  128. package/src/languages/CompositeLionWebLanguageWrapper.ts +57 -0
  129. package/src/languages/LanguageRegistry.ts +44 -0
  130. package/src/languages/LanguageUtils.ts +61 -0
  131. package/src/languages/LionCore-M3.json +2356 -0
  132. package/src/languages/LionCore-builtins.json +372 -0
  133. package/src/languages/LionWebLanguageWrapper.ts +95 -0
  134. package/src/languages/MetaPointerMap.ts +40 -0
  135. package/src/languages/index.ts +2 -0
  136. package/src/runners/FileUtils.ts +9 -36
  137. package/src/runners/RunCheckFolder.ts +3 -1
  138. package/src/runners/RunCheckFolderWithLanguage.ts +7 -7
  139. package/src/runners/RunCheckOneFile.ts +3 -1
  140. package/src/runners/RunCheckOneFileWithLanguage.ts +12 -7
  141. package/src/runners/Utils.ts +0 -1
  142. package/src/tmp.json +574 -0
  143. package/src/tryout.js +21 -0
  144. package/src/util/graphs.ts +36 -0
  145. package/src/validators/LionWebLanguageReferenceValidator.ts +110 -48
  146. package/src/validators/LionWebLanguageValidator.ts +62 -21
  147. package/src/validators/LionWebReferenceValidator.ts +0 -5
  148. package/src/validators/LionWebSyntaxValidator.ts +2 -2
  149. package/src/validators/LionWebValidator.ts +5 -9
  150. package/structure.puml +25 -0
  151. package/dist/json/LanguageUtils.d.ts +0 -9
  152. package/dist/json/LanguageUtils.d.ts.map +0 -1
  153. package/dist/json/LanguageUtils.js +0 -30
  154. package/dist/json/LanguageUtils.js.map +0 -1
  155. package/dist/json/LionWebLanguageDefinition.d.ts +0 -48
  156. package/dist/json/LionWebLanguageDefinition.d.ts.map +0 -1
  157. package/dist/json/LionWebLanguageDefinition.js +0 -126
  158. package/dist/json/LionWebLanguageDefinition.js.map +0 -1
  159. package/src/json/LanguageUtils.ts +0 -52
  160. package/src/json/LionWebLanguageDefinition.ts +0 -144
@@ -1,57 +1,33 @@
1
1
  import fs from "fs";
2
- import { LionWebJsonChunkWrapper, LionWebLanguageDefinition } from "../json/index.js";
3
2
  import { LionWebValidator } from "../validators/LionWebValidator.js";
4
3
  import { ValidationResult } from "../validators/ValidationResult.js";
5
4
  import { getFilesRecursive, printIssues } from "./Utils.js";
6
- export function validateFile(file) {
7
- const result = validateFileResult(file);
5
+ export function validateFile(file, registry) {
6
+ const result = validateFileResult(file, false, registry);
8
7
  printIssues(result);
9
8
  }
10
- export function validateFileResult(file) {
9
+ export function validateFileResult(file, validateAgainstLanguage, registry) {
11
10
  if (file !== null) {
12
11
  const jsonString1 = fs.readFileSync(file, "utf-8");
13
12
  const json1 = JSON.parse(jsonString1);
14
- const validator = new LionWebValidator(json1, null);
13
+ const validator = new LionWebValidator(json1, registry);
15
14
  validator.validateSyntax();
16
15
  validator.validateReferences();
17
- validator.validateForLanguage();
18
- return validator.validationResult;
19
- }
20
- return new ValidationResult();
21
- }
22
- export function validateFileResultWithLanguage(file, languageFile) {
23
- let langDef = null;
24
- if (languageFile !== undefined && languageFile !== null) {
25
- const jsonString1 = fs.readFileSync(file, "utf-8");
26
- const languageJson = JSON.parse(jsonString1);
27
- const validator = new LionWebValidator(languageJson, null);
28
- validator.validateSyntax();
29
- validator.validateReferences();
30
- validator.validateForLanguage();
31
- if (validator.validationResult.hasErrors()) {
32
- return validator.validationResult;
16
+ if (validateAgainstLanguage) {
17
+ validator.validateForLanguage();
33
18
  }
34
- langDef = new LionWebLanguageDefinition(new LionWebJsonChunkWrapper(languageJson));
35
- }
36
- if (file !== null) {
37
- const fileString = fs.readFileSync(file, "utf-8");
38
- const fileJson = JSON.parse(fileString);
39
- const validator = new LionWebValidator(fileJson, langDef);
40
- validator.validateSyntax();
41
- validator.validateReferences();
42
- validator.validateForLanguage();
43
19
  return validator.validationResult;
44
20
  }
45
21
  return new ValidationResult();
46
22
  }
47
- export function validateFolder(folder) {
23
+ export function validateFolder(folder, registry) {
48
24
  let totalErrors = 0;
49
25
  let totalSucceed = 0;
50
26
  let totalFailed = 0;
51
27
  for (const f of getFilesRecursive(folder, [])) {
52
28
  const jsonString1 = fs.readFileSync(f, "utf-8");
53
29
  const json1 = JSON.parse(jsonString1);
54
- const validator = new LionWebValidator(json1, null);
30
+ const validator = new LionWebValidator(json1, registry);
55
31
  try {
56
32
  validator.validateAll();
57
33
  if (!validator.validationResult.hasErrors()) {
@@ -1 +1 @@
1
- {"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/runners/FileUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/runners/FileUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAA0B;IACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACxD,WAAW,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,uBAAgC,EAAE,QAA0B;IACzG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEvD,SAAS,CAAC,cAAc,EAAE,CAAA;QAC1B,SAAS,CAAC,kBAAkB,EAAE,CAAA;QAC9B,IAAI,uBAAuB,EAAE,CAAC;YAC1B,SAAS,CAAC,mBAAmB,EAAE,CAAA;QACnC,CAAC;QACD,OAAO,SAAS,CAAC,gBAAgB,CAAA;IACrC,CAAC;IACD,OAAO,IAAI,gBAAgB,EAAE,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,QAA0B;IACrE,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACrC,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEvD,IAAI,CAAC;YACD,SAAS,CAAC,WAAW,EAAE,CAAA;YAEvB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC1C,YAAY,IAAI,CAAC,CAAA;gBACjB,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAA;gBAC5B,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACJ,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAC1C,WAAW,IAAI,CAAC,CAAA;gBAChB,WAAW,IAAI,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAA;YAC3D,CAAC;QACL,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAA;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAI,CAAW,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,WAAW,CAAC,CAAA;AACzD,CAAC"}
@@ -1,4 +1,6 @@
1
+ import { LanguageRegistry } from "../languages/index.js";
1
2
  import { validateFolder } from "./FileUtils.js";
2
3
  const folder = process.argv[2];
3
- validateFolder(folder);
4
+ const registry = new LanguageRegistry();
5
+ validateFolder(folder, registry);
4
6
  //# sourceMappingURL=RunCheckFolder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunCheckFolder.js","sourceRoot":"","sources":["../../src/runners/RunCheckFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE9B,cAAc,CAAC,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"RunCheckFolder.js","sourceRoot":"","sources":["../../src/runners/RunCheckFolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE9B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;AACvC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA"}
@@ -1,14 +1,18 @@
1
1
  import fs from "fs";
2
- import { LionWebLanguageDefinition } from "../json/LionWebLanguageDefinition.js";
2
+ import { LanguageRegistry } from "../languages/index.js";
3
+ import { LionWebLanguageWrapper } from "../languages/LionWebLanguageWrapper.js";
3
4
  import { LionWebValidator } from "../validators/LionWebValidator.js";
4
5
  import { getFilesRecursive, printIssues } from "./Utils.js";
5
6
  const folder = process.argv[2];
6
7
  const language = process.argv[3];
7
8
  let totalSucceed = 0;
8
9
  let totalFailed = 0;
10
+ const registry = new LanguageRegistry();
9
11
  const languageString = fs.readFileSync(language, "utf-8");
10
12
  const languageJson = JSON.parse(languageString);
11
- const languageValidator = new LionWebValidator(languageJson, null);
13
+ const languageValidator = new LionWebValidator(languageJson, registry);
14
+ registry.addLanguage(new LionWebLanguageWrapper(languageJson));
15
+ console.log("Language is " + language);
12
16
  languageValidator.validateSyntax();
13
17
  languageValidator.validateReferences();
14
18
  if (languageValidator.validationResult.hasErrors()) {
@@ -19,7 +23,7 @@ if (languageValidator.validationResult.hasErrors()) {
19
23
  for (const modelFile of getFilesRecursive(folder, [])) {
20
24
  const jsonString1 = fs.readFileSync(modelFile, "utf-8");
21
25
  const jsonModel = JSON.parse(jsonString1);
22
- const modelValidator = new LionWebValidator(jsonModel, new LionWebLanguageDefinition(languageValidator.chunk));
26
+ const modelValidator = new LionWebValidator(jsonModel, registry);
23
27
  modelValidator.validateAll();
24
28
  if (modelValidator.validationResult.hasErrors()) {
25
29
  totalFailed++;
@@ -1 +1 @@
1
- {"version":3,"file":"RunCheckFolderWithLanguage.js","sourceRoot":"","sources":["../../src/runners/RunCheckFolderWithLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAI,YAAY,GAAG,CAAC,CAAA;AACpB,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AAC/C,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAElE,iBAAiB,CAAC,cAAc,EAAE,CAAA;AAClC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;AACtC,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5D,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,IAAI,gBAAgB,CACvC,SAAS,EACT,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,KAAgC,CAAC,CACpF,CAAA;IAED,cAAc,CAAC,WAAW,EAAE,CAAA;IAC5B,IAAI,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;QAC9C,WAAW,EAAE,CAAA;QACb,sCAAsC;QACtC,WAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;QACtC,YAAY,EAAE,CAAA;IAClB,CAAC;AACL,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC,CAAA;AACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC,CAAA"}
1
+ {"version":3,"file":"RunCheckFolderWithLanguage.js","sourceRoot":"","sources":["../../src/runners/RunCheckFolderWithLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAI,YAAY,GAAG,CAAC,CAAA;AACpB,IAAI,WAAW,GAAG,CAAC,CAAA;AAEnB,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;AACvC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;AACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AAC/C,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;AACtE,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;AAE9D,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAA;AACtC,iBAAiB,CAAC,cAAc,EAAE,CAAA;AAClC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;AACtC,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5D,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnB,CAAC;AAED,KAAK,MAAM,SAAS,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACpD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAE,CAAA;IAEjE,cAAc,CAAC,WAAW,EAAE,CAAA;IAC5B,IAAI,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,CAAC;QAC9C,WAAW,EAAE,CAAA;QACb,sCAAsC;QACtC,WAAW,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,SAAS,CAAC,CAAA;QACtC,YAAY,EAAE,CAAA;IAClB,CAAC;AACL,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,YAAY,CAAC,CAAA;AACpD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,WAAW,CAAC,CAAA"}
@@ -1,4 +1,6 @@
1
+ import { LanguageRegistry } from "../languages/index.js";
1
2
  import { validateFile } from "./FileUtils.js";
2
3
  const file1 = process.argv[2];
3
- validateFile(file1);
4
+ const registry = new LanguageRegistry();
5
+ validateFile(file1, registry);
4
6
  //# sourceMappingURL=RunCheckOneFile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RunCheckOneFile.js","sourceRoot":"","sources":["../../src/runners/RunCheckOneFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE7B,YAAY,CAAC,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"RunCheckOneFile.js","sourceRoot":"","sources":["../../src/runners/RunCheckOneFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE7B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;AACvC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import fs from "fs";
2
- import { LionWebLanguageDefinition } from "../json/LionWebLanguageDefinition.js";
2
+ import { LanguageRegistry } from "../languages/index.js";
3
+ import { LionWebLanguageWrapper } from "../languages/LionWebLanguageWrapper.js";
3
4
  import { LionWebValidator } from "../validators/LionWebValidator.js";
4
5
  import { printIssues } from "./Utils.js";
5
6
  const modelFile = process.argv[2];
@@ -9,12 +10,20 @@ if (modelFile !== null) {
9
10
  const jsonModel = JSON.parse(jsonString1);
10
11
  const languageString = fs.readFileSync(language, "utf-8");
11
12
  const languageJson = JSON.parse(languageString);
12
- const languageValidator = new LionWebValidator(languageJson, null);
13
+ const m3String = fs.readFileSync("src/json/LionCore_M3.json", "utf-8");
14
+ const m3Json = JSON.parse(m3String);
15
+ const builtinString = fs.readFileSync("src/json/LionCore_builtins.json", "utf-8");
16
+ const builtinJson = JSON.parse(builtinString);
17
+ const registry = new LanguageRegistry();
18
+ registry.addLanguage(new LionWebLanguageWrapper(m3Json));
19
+ registry.addLanguage(new LionWebLanguageWrapper(builtinJson));
20
+ registry.addLanguage(new LionWebLanguageWrapper(languageJson));
21
+ const languageValidator = new LionWebValidator(languageJson, registry);
13
22
  languageValidator.validateSyntax();
14
23
  languageValidator.validateReferences();
15
24
  console.log("===== Language errors ======");
16
25
  printIssues(languageValidator.validationResult);
17
- const modelValidator = new LionWebValidator(jsonModel, new LionWebLanguageDefinition(languageValidator.chunk));
26
+ const modelValidator = new LionWebValidator(jsonModel, registry);
18
27
  modelValidator.validateAll();
19
28
  console.log("===== Model errors ======");
20
29
  printIssues(modelValidator.validationResult);
@@ -1 +1 @@
1
- {"version":3,"file":"RunCheckOneFileWithLanguage.js","sourceRoot":"","sources":["../../src/runners/RunCheckOneFileWithLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAE/C,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IAElE,iBAAiB,CAAC,cAAc,EAAE,CAAA;IAClC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAE/C,MAAM,cAAc,GAAG,IAAI,gBAAgB,CACvC,SAAS,EACT,IAAI,yBAAyB,CAAC,iBAAiB,CAAC,KAAgC,CAAC,CACpF,CAAA;IACD,cAAc,CAAC,WAAW,EAAE,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxC,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"RunCheckOneFileWithLanguage.js","sourceRoot":"","sources":["../../src/runners/RunCheckOneFileWithLanguage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEhC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACzC,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnC,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,iCAAiC,EAAE,OAAO,CAAC,CAAA;IACjF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAA;IACxD,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAA;IAC7D,QAAQ,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAA;IAE9D,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAEtE,iBAAiB,CAAC,cAAc,EAAE,CAAA;IAClC,iBAAiB,CAAC,kBAAkB,EAAE,CAAA;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,WAAW,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IAE/C,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAChE,cAAc,CAAC,WAAW,EAAE,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;IACxC,WAAW,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAaxE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAUrE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAavE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAEpE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAYxE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAUrE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAavE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E"}
@@ -6,7 +6,6 @@ export function getFilesRecursive(dirPath, arrayOfFiles) {
6
6
  files.forEach(function (file) {
7
7
  if (fs.statSync(dirPath + "/" + file).isDirectory()) {
8
8
  arrayOfFiles = getFilesRecursive(dirPath + "/" + file, arrayOfFiles);
9
- // arrayOfFiles.push(path.join(dirPath, "/", file));
10
9
  }
11
10
  else {
12
11
  arrayOfFiles.push(path.join(dirPath, "/", file));
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,YAAsB;IACrE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClD,YAAY,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAA;YACpE,oDAAoD;QACxD,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,YAAsB;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,WAAqB;IACpE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,WAAW,GAAG,WAAW,IAAI,EAAE,CAAA;IAE/B,KAAK,CAAC,OAAO,CAAC,UAAU,IAAe;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,WAAW,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;YACvE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACJ,eAAe;QACnB,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAwB,EAAE,IAAa;IAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC/G,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAyB,EAAE,IAAa;IACnE,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAClH,OAAO,MAAM,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/runners/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,YAAsB;IACrE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClD,YAAY,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAA;QACxE,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,YAAsB;IAClE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACrC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAA;IAEjC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAY;QAChC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,WAAqB;IACpE,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,WAAW,GAAG,WAAW,IAAI,EAAE,CAAA;IAE/B,KAAK,CAAC,OAAO,CAAC,UAAU,IAAe;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,WAAW,GAAG,iBAAiB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;YACvE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;aAAM,CAAC;YACJ,eAAe;QACnB,CAAC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAwB,EAAE,IAAa;IAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC/G,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAyB,EAAE,IAAa;IACnE,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAClH,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Type def. of a generic "flatMap" function.
3
+ */
4
+ export type ResultMapper<T, R> = (t: T) => R[];
5
+ /**
6
+ * Returns a function that performs a "flatMap" on a graph that's specified as a start vertex. and a function that computes (outgoing) edges.
7
+ * The "flatMap" is performed depth-first, and doesn't loop on cycles.
8
+ *
9
+ * @param mapper The function that calculates the result values
10
+ * @param nextVertices The function that calculates the next edges to visit.
11
+ * @returns A function that takes a starting vertex and resursively calculates the result values for each vertex visited.
12
+ */
13
+ export declare const visitAndMap: <T, R>(mapper: ResultMapper<T, R>, nextVertices: (t: T) => T[]) => ResultMapper<T, R>;
14
+ /**
15
+ * A mapper function that returns the node itself as result
16
+ */
17
+ export declare const selfMapper: <T>(t: T) => T[];
18
+ //# sourceMappingURL=graphs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphs.d.ts","sourceRoot":"","sources":["../../src/util/graphs.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,uFAenB,CAAA;AAEL;;GAEG;AACH,eAAO,MAAM,UAAU,kBAAmB,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Returns a function that performs a "flatMap" on a graph that's specified as a start vertex. and a function that computes (outgoing) edges.
3
+ * The "flatMap" is performed depth-first, and doesn't loop on cycles.
4
+ *
5
+ * @param mapper The function that calculates the result values
6
+ * @param nextVertices The function that calculates the next edges to visit.
7
+ * @returns A function that takes a starting vertex and resursively calculates the result values for each vertex visited.
8
+ */
9
+ export const visitAndMap = (mapper, nextVertices) => (startVertex) => {
10
+ const visited = [];
11
+ const rs = [];
12
+ const recurse = (t) => {
13
+ if (visited.indexOf(t) > -1) {
14
+ return;
15
+ }
16
+ visited.push(t);
17
+ rs.push(...mapper(t));
18
+ nextVertices(t).forEach(recurse);
19
+ };
20
+ recurse(startVertex);
21
+ return rs;
22
+ };
23
+ /**
24
+ * A mapper function that returns the node itself as result
25
+ */
26
+ export const selfMapper = (t) => [t];
27
+ //# sourceMappingURL=graphs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphs.js","sourceRoot":"","sources":["../../src/util/graphs.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,WAAW,GACpB,CAAO,MAA0B,EAAE,YAA2B,EAAsB,EAAE,CACtF,CAAC,WAAc,EAAO,EAAE;IACpB,MAAM,OAAO,GAAQ,EAAE,CAAA;IACvB,MAAM,EAAE,GAAQ,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,CAAC,CAAI,EAAE,EAAE;QACrB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAM;QACV,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACrB,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC,CAAA;IACD,OAAO,CAAC,WAAW,CAAC,CAAA;IACpB,OAAO,EAAE,CAAA;AACb,CAAC,CAAA;AAEL;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAI,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -1,17 +1,18 @@
1
+ import { LionWebJsonNode } from "../json/index.js";
1
2
  import { JsonContext } from "../json/JsonContext.js";
2
3
  import { LionWebJsonProperty } from "../json/LionWebJson.js";
3
4
  import { LionWebJsonChunkWrapper } from "../json/LionWebJsonChunkWrapper.js";
4
- import { LionWebLanguageDefinition } from "../json/LionWebLanguageDefinition.js";
5
+ import { LanguageRegistry } from "../languages/index.js";
5
6
  import { SimpleFieldValidator } from "./SimpleFieldValidator.js";
6
7
  import { ValidationResult } from "./ValidationResult.js";
7
8
  /**
8
9
  * Check against the language definition
9
10
  */
10
11
  export declare class LionWebLanguageReferenceValidator {
12
+ private registry;
11
13
  validationResult: ValidationResult;
12
- language: LionWebLanguageDefinition;
13
14
  simpleFieldValidator: SimpleFieldValidator;
14
- constructor(validationResult: ValidationResult, lang: LionWebLanguageDefinition);
15
+ constructor(validationResult: ValidationResult, registry: LanguageRegistry);
15
16
  validate(obj: LionWebJsonChunkWrapper): void;
16
17
  private validateContainment;
17
18
  private validateReference;
@@ -19,6 +20,6 @@ export declare class LionWebLanguageReferenceValidator {
19
20
  * Checks wwhether the value of `prop1` is correct in relation with its property definition in the referred language.
20
21
  * @param prop
21
22
  */
22
- validateProperty(prop: LionWebJsonProperty, context: JsonContext): void;
23
+ validateProperty(node: LionWebJsonNode, nodeConcept: LionWebJsonNode | undefined, prop: LionWebJsonProperty, context: JsonContext): void;
23
24
  }
24
25
  //# sourceMappingURL=LionWebLanguageReferenceValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebLanguageReferenceValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAOH,mBAAmB,EAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAIH,yBAAyB,EAC5B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;GAEG;AACH,qBAAa,iCAAiC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,QAAQ,EAAE,yBAAyB,CAAA;IACnC,oBAAoB,EAAE,oBAAoB,CAAA;gBAE9B,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,yBAAyB;IAW/E,QAAQ,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAuB5C,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;CAuC1E"}
1
+ {"version":3,"file":"LionWebLanguageReferenceValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"AAYA,OAAO,EAAsB,eAAe,EAA2B,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAEH,mBAAmB,EAEtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAY5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;GAEG;AACH,qBAAa,iCAAiC;IAIM,OAAO,CAAC,QAAQ;IAHhE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,oBAAoB,EAAE,oBAAoB,CAAA;gBAE9B,gBAAgB,EAAE,gBAAgB,EAAU,QAAQ,EAAE,gBAAgB;IAUlF,QAAQ,CAAC,GAAG,EAAE,uBAAuB,GAAG,IAAI;IAoB5C,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,iBAAiB;IAwBzB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI;CAqF3I"}
@@ -1,15 +1,19 @@
1
- import { Language_IncorrectContainmentMetaPointer_Issue, Language_IncorrectPropertyMetaPointer_Issue, Language_IncorrectReferenceMetaPointer_Issue, Language_UnknownConcept_Issue, Language_UnknownContainment_Issue, Language_UnknownProperty_Issue, Language_UnknownReference_Issue, } from "../issues/LanguageIssues.js";
1
+ import { Language_ContainmentMetaPointerNotInClass_Issue, Language_IncorrectPropertyMetaPointer_Issue, Language_PropertyMetaPointerNotInClass_Issue, Language_PropertyValue_Issue, Language_ReferenceMetaPointerNotInClass_Issue, Language_UnknownConcept_Issue } from "../issues/index.js";
2
+ import { Language_IncorrectContainmentMetaPointer_Issue, Language_IncorrectReferenceMetaPointer_Issue, Language_UnknownContainment_Issue, Language_UnknownProperty_Issue, Language_UnknownReference_Issue } from "../issues/LanguageIssues.js";
3
+ import { isEqualMetaPointer, MetaPointers, NodeUtils } from "../json/index.js";
2
4
  import { JsonContext } from "../json/JsonContext.js";
3
- import { LION_CORE_BUILTINS_INAMED_NAME, LIONWEB_BOOLEAN_TYPE, LIONWEB_INTEGER_TYPE, LIONWEB_JSON_TYPE, LIONWEB_STRING_TYPE, } from "../json/LionWebJson.js";
4
- import { LIONWEB_M3_CONCEPT_KEY, LIONWEB_M3_PROPERTY_KEY, LIONWEB_M3_PROPERTY_TYPE_KEY, } from "../json/LionWebLanguageDefinition.js";
5
+ // import {
6
+ // KnownLanguages, LanguageRegistry
7
+ // } from "../languages/LanguageRegistry.js"
8
+ import { LION_CORE_BUILTINS_INAMED_NAME, LIONWEB_BOOLEAN_TYPE, LIONWEB_INTEGER_TYPE, LIONWEB_JSON_TYPE, LIONWEB_STRING_TYPE, M3_Keys } from "../json/M3definitions.js";
5
9
  import { SimpleFieldValidator } from "./SimpleFieldValidator.js";
6
10
  /**
7
11
  * Check against the language definition
8
12
  */
9
13
  export class LionWebLanguageReferenceValidator {
10
- constructor(validationResult, lang) {
14
+ constructor(validationResult, registry) {
15
+ this.registry = registry;
11
16
  this.validationResult = validationResult;
12
- this.language = lang;
13
17
  this.simpleFieldValidator = new SimpleFieldValidator(this.validationResult);
14
18
  }
15
19
  // reset() {
@@ -17,76 +21,95 @@ export class LionWebLanguageReferenceValidator {
17
21
  // }
18
22
  // TODO test reference and children implementation
19
23
  validate(obj) {
20
- if (this.language === undefined || this.language === null) {
21
- return;
22
- }
23
24
  obj.jsonChunk.nodes.forEach((node, nodeIndex) => {
24
25
  const nodeContext = new JsonContext(null, ["node", nodeIndex]);
25
- const jsonConcept = this.language.getNodeByMetaPointer(node.classifier);
26
- if (jsonConcept === null || jsonConcept === undefined) {
26
+ const nodeConcept = this.registry.getNodeByMetaPointer(node.classifier);
27
+ if (nodeConcept === undefined && nodeContext !== undefined) {
27
28
  this.validationResult.issue(new Language_UnknownConcept_Issue(nodeContext, node.classifier));
28
29
  return;
29
30
  }
30
31
  node.properties.forEach((property, propIndex) => {
31
- this.validateProperty(property, nodeContext.concat("properties", propIndex));
32
+ this.validateProperty(node, nodeConcept, property, nodeContext.concat("properties", propIndex));
32
33
  });
33
34
  node.containments.forEach((containment, childIndex) => {
34
- this.validateContainment(containment, nodeContext.concat("containments", childIndex));
35
+ this.validateContainment(node, nodeConcept, containment, nodeContext.concat("containments", childIndex));
35
36
  });
36
37
  node.references.forEach((reference, refIndex) => {
37
- this.validateReference(reference, nodeContext.concat("references", refIndex));
38
+ this.validateReference(node, nodeConcept, reference, nodeContext.concat("references", refIndex));
38
39
  });
39
40
  });
40
41
  }
41
- validateContainment(child, context) {
42
- const type = this.language.getNodeByMetaPointer(child.containment);
43
- if (type === null || type === undefined) {
44
- this.validationResult.issue(new Language_UnknownContainment_Issue(context, child.containment));
42
+ validateContainment(node, nodeConcept, containment, context) {
43
+ const metaConcept = this.registry.getNodeByMetaPointer(containment.containment);
44
+ if (metaConcept === null || metaConcept === undefined) {
45
+ this.validationResult.issue(new Language_UnknownContainment_Issue(context, containment.containment));
45
46
  return;
46
47
  }
47
- if (type.classifier.key !== LIONWEB_M3_CONCEPT_KEY) {
48
- this.validationResult.issue(new Language_IncorrectContainmentMetaPointer_Issue(context, child.containment, type.classifier.key));
48
+ if (metaConcept.classifier.key !== M3_Keys.Containment) {
49
+ this.validationResult.issue(new Language_IncorrectContainmentMetaPointer_Issue(context, containment.containment, metaConcept.classifier.key));
50
+ }
51
+ if (nodeConcept !== undefined) {
52
+ const cons = this.registry.languages.allContainments(nodeConcept);
53
+ if (!cons.includes(metaConcept)) {
54
+ this.validationResult.issue(new Language_ContainmentMetaPointerNotInClass_Issue(context, containment.containment, nodeConcept));
55
+ return;
56
+ }
49
57
  }
50
58
  // TODO check type of children
51
59
  }
52
- validateReference(ref, context) {
53
- const type = this.language.getNodeByMetaPointer(ref.reference);
54
- if (type === null || type === undefined) {
60
+ validateReference(node, nodeConcept, ref, context) {
61
+ const referenceDefinition = this.registry.getNodeByMetaPointer(ref.reference);
62
+ if (referenceDefinition === null || referenceDefinition === undefined) {
55
63
  this.validationResult.issue(new Language_UnknownReference_Issue(context, ref.reference));
56
64
  return;
57
65
  }
58
- if (type.classifier.key !== LIONWEB_M3_CONCEPT_KEY) {
59
- this.validationResult.issue(new Language_IncorrectReferenceMetaPointer_Issue(context, ref.reference, type.classifier.key));
66
+ if (referenceDefinition.classifier.key !== M3_Keys.Reference) {
67
+ this.validationResult.issue(new Language_IncorrectReferenceMetaPointer_Issue(context, ref.reference, referenceDefinition.classifier.key));
68
+ }
69
+ if (nodeConcept !== undefined) {
70
+ const refs = this.registry.languages.allReferenceDefinitions(nodeConcept);
71
+ if (!refs.includes(referenceDefinition)) {
72
+ this.validationResult.issue(new Language_ReferenceMetaPointerNotInClass_Issue(context, ref.reference, nodeConcept));
73
+ return;
74
+ }
60
75
  }
61
76
  // TODO Check type of reference (if possible)
62
77
  // TODO Check for duplicate targets?
78
+ // No, already done without language check
63
79
  // If so, what to check because there can be either or both a `resolveInfo` and a `reference`
64
80
  }
65
81
  /**
66
82
  * Checks wwhether the value of `prop1` is correct in relation with its property definition in the referred language.
67
83
  * @param prop
68
84
  */
69
- validateProperty(prop, context) {
85
+ validateProperty(node, nodeConcept, prop, context) {
70
86
  if (prop.value === null) {
71
87
  return;
72
88
  }
73
- const type = this.language.getNodeByMetaPointer(prop.property);
74
- if (type === null || type === undefined) {
89
+ const propertyDefinition = this.registry.getNodeByMetaPointer(prop.property);
90
+ if (propertyDefinition === undefined) {
75
91
  this.validationResult.issue(new Language_UnknownProperty_Issue(context, prop.property));
76
92
  return;
77
93
  }
78
- if (type.classifier.key !== LIONWEB_M3_PROPERTY_KEY) {
79
- this.validationResult.issue(new Language_IncorrectPropertyMetaPointer_Issue(context, prop.property, type.classifier.key));
94
+ if (propertyDefinition.classifier.key !== M3_Keys.Property) {
95
+ this.validationResult.issue(new Language_IncorrectPropertyMetaPointer_Issue(context, prop.property, propertyDefinition.classifier.key));
80
96
  return;
81
97
  }
82
- // TODO check for property to exist inside the concept in the language
83
- // Need to find inherited and implemented properties as well: complex!
84
- const refType = type.references.find(ref => ref.reference.key === LIONWEB_M3_PROPERTY_TYPE_KEY);
85
- const propertyName = type.properties.find(p => p.property.key === LION_CORE_BUILTINS_INAMED_NAME)?.value;
98
+ if (nodeConcept !== undefined) {
99
+ const props = this.registry.languages.allProperties(nodeConcept);
100
+ if (!props.includes(propertyDefinition)) {
101
+ this.validationResult.issue(new Language_PropertyMetaPointerNotInClass_Issue(context, prop.property, nodeConcept));
102
+ return;
103
+ }
104
+ }
105
+ const refType = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType);
106
+ // const refType = propertyDefinition.references.find(ref => isEqualMetaPointer(ref.reference, MetaPointers.PropertyType))
107
+ const propertyName = propertyDefinition.properties.find(p => p.property.key === LION_CORE_BUILTINS_INAMED_NAME)?.value;
86
108
  // console.log("Fount type should be " + refType.targets[0].reference);
87
109
  if (propertyName !== undefined) {
88
110
  if (refType !== null && refType !== undefined) {
89
- switch (refType.targets[0].reference) {
111
+ const typeReferenceId = refType.targets[0].reference;
112
+ switch (typeReferenceId) {
90
113
  case LIONWEB_BOOLEAN_TYPE:
91
114
  this.simpleFieldValidator.validateBoolean(prop, propertyName, context);
92
115
  break;
@@ -94,10 +117,49 @@ export class LionWebLanguageReferenceValidator {
94
117
  this.simpleFieldValidator.validateInteger(prop, propertyName, context);
95
118
  break;
96
119
  case LIONWEB_STRING_TYPE:
120
+ // Each string is correct and having another JSOn type is already captured
97
121
  break;
98
122
  case LIONWEB_JSON_TYPE:
99
123
  this.simpleFieldValidator.validateJSON(prop, propertyName, context);
100
124
  break;
125
+ default: {
126
+ // Check for enumeration
127
+ // console.log("validateProperty: 0")
128
+ const propTypeReference = NodeUtils.findReference(propertyDefinition, MetaPointers.PropertyType);
129
+ if (propTypeReference === undefined) {
130
+ // console.log("validateProperty: 1")
131
+ break;
132
+ }
133
+ const propType = this.registry.findNode(propTypeReference.targets[0].reference);
134
+ if (propType === undefined) {
135
+ // console.log("validateProperty: 1.4 for " + prop.value + " ==> " + propTypeReference.targets[0].reference)
136
+ break;
137
+ }
138
+ let match = false;
139
+ if (isEqualMetaPointer(propType.classifier, MetaPointers.Enumeration)) {
140
+ const literalsContainment = NodeUtils.findContainment(propType, MetaPointers.EnumerationLiterals);
141
+ if (literalsContainment === undefined) {
142
+ // console.log("validateProperty: 2")
143
+ break;
144
+ }
145
+ const literals = literalsContainment.children.map(child => this.registry.findNode(child));
146
+ match = literals.some(lit => {
147
+ if (lit === undefined) {
148
+ // console.log("validateProperty: 3")
149
+ return false;
150
+ }
151
+ const litKeyProp = NodeUtils.findProperty(lit, MetaPointers.IKeyedKey);
152
+ if (litKeyProp === undefined) {
153
+ // console.log("validateProperty: 4")
154
+ return false;
155
+ }
156
+ return prop.value === litKeyProp.value;
157
+ });
158
+ }
159
+ if (!match) {
160
+ this.validationResult.issue(new Language_PropertyValue_Issue(context, prop.property.key, prop.value, propType.classifier.key));
161
+ }
162
+ }
101
163
  }
102
164
  }
103
165
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebLanguageReferenceValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,8CAA8C,EAC9C,2CAA2C,EAC3C,4CAA4C,EAC5C,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,GAClC,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EACH,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GAItB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,4BAA4B,GAE/B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAGhE;;GAEG;AACH,MAAM,OAAO,iCAAiC;IAK1C,YAAY,gBAAkC,EAAE,IAA+B;QAC3E,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC/E,CAAC;IAED,YAAY;IACZ,qCAAqC;IACrC,IAAI;IAEJ,kDAAkD;IAClD,QAAQ,CAAC,GAA4B;QACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACxD,OAAM;QACV,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACvE,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACpD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,6BAA6B,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC5F,OAAM;YACV,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;gBAC5C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAA;YAChF,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;gBAClD,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAA;YACzF,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAA;YACjF,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,mBAAmB,CAAC,KAA6B,EAAE,OAAoB;QAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAClE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,iCAAiC,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;YAC9F,OAAM;QACV,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,sBAAsB,EAAE,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,8CAA8C,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACpI,CAAC;QACD,8BAA8B;IAClC,CAAC;IAEO,iBAAiB,CAAC,GAAyB,EAAE,OAAoB;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC9D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,+BAA+B,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;YACxF,OAAM;QACV,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,sBAAsB,EAAE,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,4CAA4C,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9H,CAAC;QACD,6CAA6C;QAE7C,oCAAoC;QACpC,6FAA6F;IACjG,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAyB,EAAE,OAAoB;QAC5D,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACtB,OAAM;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,8BAA8B,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;YACvF,OAAM;QACV,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,uBAAuB,EAAE,CAAC;YAClD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,2CAA2C,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;YACzH,OAAM;QACV,CAAC;QACD,sEAAsE;QACtE,2EAA2E;QAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAA;QAC/F,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,8BAA8B,CAAC,EAAE,KAAK,CAAA;QACxG,uEAAuE;QACvE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;oBACnC,KAAK,oBAAoB;wBACrB,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;wBACtE,MAAK;oBACT,KAAK,oBAAoB;wBACrB,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;wBACtE,MAAK;oBACT,KAAK,mBAAmB;wBACpB,MAAK;oBACT,KAAK,iBAAiB;wBAClB,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;wBACnE,MAAK;gBACb,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,8BAA8B;YAClC,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"LionWebLanguageReferenceValidator.js","sourceRoot":"","sources":["../../src/validators/LionWebLanguageReferenceValidator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,24 @@
1
+ import { LionWebJsonNode } from "../json/index.js";
1
2
  import { LionWebJsonChunk } from "../json/LionWebJson.js";
3
+ import { LionWebJsonChunkWrapper } from "../json/LionWebJsonChunkWrapper.js";
4
+ import { LanguageRegistry } from "../languages/index.js";
2
5
  import { ValidationResult } from "./ValidationResult.js";
6
+ /**
7
+ * Validates whether a chunk is a valid language definition
8
+ */
3
9
  export declare class LionWebLanguageValidator {
10
+ private registry;
4
11
  validationResult: ValidationResult;
5
- constructor();
12
+ chunkWrapper: LionWebJsonChunkWrapper | undefined;
13
+ constructor(validationResult: ValidationResult, registry: LanguageRegistry);
6
14
  /**
7
- * check JSON as in `check`, but also check whether the metamoddel is a Language.
15
+ * Check whether the metamodel is a Language.
16
+ * Assumption is that _chunk_ is already validated as a correct :LionWebJsonChunk
8
17
  * @param obj
9
18
  */
10
- checkLanguage(chunk: LionWebJsonChunk): void;
19
+ validateLanguage(chunk: LionWebJsonChunk): void;
20
+ validateConcept(node: LionWebJsonNode): void;
21
+ validateNode(node: LionWebJsonNode): void;
22
+ validateProperties(node: LionWebJsonNode, classifier: LionWebJsonNode): void;
11
23
  }
12
24
  //# sourceMappingURL=LionWebLanguageValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LionWebLanguageValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,qBAAa,wBAAwB;IACjC,gBAAgB,EAAE,gBAAgB,CAAA;;IAMlC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,gBAAgB;CAqBxC"}
1
+ {"version":3,"file":"LionWebLanguageValidator.d.ts","sourceRoot":"","sources":["../../src/validators/LionWebLanguageValidator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,eAAe,EAAgB,MAAM,kBAAkB,CAAA;AAEpF,OAAO,EAAuB,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAC5E,OAAO,EAAa,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD;;GAEG;AACH,qBAAa,wBAAwB;IAKe,OAAO,CAAC,QAAQ;IAJhE,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,YAAY,EAAE,uBAAuB,GAAG,SAAS,CAAA;gBAGrC,gBAAgB,EAAE,gBAAgB,EAAU,QAAQ,EAAE,gBAAgB;IAKlF;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,gBAAgB;IAqBxC,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAS5C,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAWzC,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;CAW/E"}