semantifold 0.10.0 → 0.12.0

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 (56) hide show
  1. package/README.md +2 -2
  2. package/build/src/backends/c.d.ts +2 -1
  3. package/build/src/backends/c.d.ts.map +1 -1
  4. package/build/src/backends/c.js +26 -5
  5. package/build/src/backends/cpp.js +3 -1
  6. package/build/src/backends/kotlin.d.ts +1 -1
  7. package/build/src/backends/kotlin.js +2 -2
  8. package/build/src/backends/ordered-expressions.d.ts +19 -7
  9. package/build/src/backends/ordered-expressions.d.ts.map +1 -1
  10. package/build/src/backends/ordered-expressions.js +46 -11
  11. package/build/src/backends/shared.d.ts.map +1 -1
  12. package/build/src/backends/shared.js +30 -2
  13. package/build/src/frontends/c.d.ts +34 -1
  14. package/build/src/frontends/c.d.ts.map +1 -1
  15. package/build/src/frontends/c.js +128 -21
  16. package/build/src/frontends/java.d.ts.map +1 -1
  17. package/build/src/frontends/java.js +23 -1
  18. package/build/src/frontends/javascript-typescript.d.ts.map +1 -1
  19. package/build/src/frontends/javascript-typescript.js +45 -4
  20. package/build/src/frontends/php.d.ts.map +1 -1
  21. package/build/src/frontends/php.js +54 -3
  22. package/build/src/frontends/ruby.d.ts.map +1 -1
  23. package/build/src/frontends/ruby.js +55 -5
  24. package/build/src/language-registry.d.ts.map +1 -1
  25. package/build/src/language-registry.js +33 -6
  26. package/build/src/semantic/effects.js +3 -1
  27. package/build/src/semantic/provenance.d.ts.map +1 -1
  28. package/build/src/semantic/provenance.js +11 -1
  29. package/build/src/semantic/types.d.ts +52 -2
  30. package/build/src/semantic/types.d.ts.map +1 -1
  31. package/build/src/semantic/types.js +14 -2
  32. package/build/src/semantic/validate.js +19 -2
  33. package/build/src/toolchains.js +3 -3
  34. package/docs/adr-expression-breadth.md +186 -0
  35. package/docs/c.md +1 -1
  36. package/docs/kotlin.md +2 -2
  37. package/docs/language-support.md +14 -5
  38. package/docs/parser-qualification.md +1 -1
  39. package/docs/testing.md +5 -4
  40. package/package.json +1 -1
  41. package/src/backends/c.js +23 -4
  42. package/src/backends/cpp.js +1 -0
  43. package/src/backends/kotlin.js +1 -1
  44. package/src/backends/ordered-expressions.js +46 -10
  45. package/src/backends/shared.js +31 -1
  46. package/src/frontends/c.js +135 -19
  47. package/src/frontends/java.js +24 -0
  48. package/src/frontends/javascript-typescript.js +49 -2
  49. package/src/frontends/php.js +61 -2
  50. package/src/frontends/ruby.js +62 -2
  51. package/src/language-registry.js +32 -5
  52. package/src/semantic/effects.js +1 -0
  53. package/src/semantic/provenance.js +8 -0
  54. package/src/semantic/types.js +14 -1
  55. package/src/semantic/validate.js +27 -1
  56. package/src/toolchains.js +2 -2
@@ -20,7 +20,16 @@ export declare class CReader {
20
20
  type: string;
21
21
  }>;
22
22
  /** @type {Set<string>} */
23
- declaredFunctions: Set<string>;
23
+ declaredFunctionNames: Set<string>;
24
+ /** @type {{name: string, node: CstNode, parameterTypes: string[], returnType: string}[]} */
25
+ prototypes: {
26
+ name: string;
27
+ node: CstNode;
28
+ parameterTypes: string[];
29
+ returnType: string;
30
+ }[];
31
+ /** @type {boolean} */
32
+ voidFunction: boolean;
24
33
  /**
25
34
  * Owns source content and its coordinate index, never native parser handles.
26
35
  * @param {string} filename - Original filename.
@@ -143,6 +152,30 @@ export declare class CReader {
143
152
  * @returns {import("../semantic/types.js").FunctionDeclaration} Semantic function.
144
153
  */
145
154
  function(node: CstNode): import("../semantic/types.js").FunctionDeclaration;
155
+ /**
156
+ * Validates one exact required positional parameter list and converts it in source order.
157
+ * @param {CstNode} parameters - Parameter list node.
158
+ * @returns {import("../semantic/types.js").Parameter[]} Converted parameters.
159
+ */
160
+ parameterList(parameters: CstNode): import("../semantic/types.js").Parameter[];
161
+ /**
162
+ * Recognizes a file-local function prototype declaration without descending further.
163
+ * @param {CstNode} node - Candidate translation-unit member.
164
+ * @returns {boolean} Whether this is a function prototype.
165
+ */
166
+ isPrototype(node: CstNode): boolean;
167
+ /**
168
+ * Records one exact static prototype signature before any body conversion.
169
+ * @param {CstNode} node - Prototype declaration.
170
+ * @returns {void}
171
+ */
172
+ recordPrototype(node: CstNode): void;
173
+ /**
174
+ * Confirms every recorded prototype agrees with its unique function definition.
175
+ * @param {import("../semantic/types.js").FunctionDeclaration[]} functions - Converted definitions.
176
+ * @returns {void}
177
+ */
178
+ validatePrototypes(functions: import("../semantic/types.js").FunctionDeclaration[]): void;
146
179
  /**
147
180
  * Removes only the exact main cleanup and status scaffolding.
148
181
  * @param {CstNode} node - Entry definition.
@@ -1 +1 @@
1
- {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/frontends/c.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c.d.ts","sourceRoot":"","sources":["../../../src/frontends/c.js"],"names":[],"mappings":"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"}