@rcrsr/rill 0.8.6 → 0.10.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 (191) hide show
  1. package/dist/ast-nodes.d.ts +189 -49
  2. package/dist/ast-nodes.d.ts.map +1 -1
  3. package/dist/ast-unions.d.ts +1 -1
  4. package/dist/ast-unions.d.ts.map +1 -1
  5. package/dist/constants.d.ts +14 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +30 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/error-classes.d.ts +3 -1
  10. package/dist/error-classes.d.ts.map +1 -1
  11. package/dist/error-classes.js +11 -5
  12. package/dist/error-classes.js.map +1 -1
  13. package/dist/error-registry.d.ts.map +1 -1
  14. package/dist/error-registry.js +313 -11
  15. package/dist/error-registry.js.map +1 -1
  16. package/dist/ext/crypto/index.d.ts +2 -1
  17. package/dist/ext/crypto/index.d.ts.map +1 -1
  18. package/dist/ext/crypto/index.js +7 -0
  19. package/dist/ext/crypto/index.js.map +1 -1
  20. package/dist/ext/exec/index.d.ts +2 -1
  21. package/dist/ext/exec/index.d.ts.map +1 -1
  22. package/dist/ext/exec/index.js +6 -0
  23. package/dist/ext/exec/index.js.map +1 -1
  24. package/dist/ext/fetch/index.d.ts +2 -1
  25. package/dist/ext/fetch/index.d.ts.map +1 -1
  26. package/dist/ext/fetch/index.js +6 -0
  27. package/dist/ext/fetch/index.js.map +1 -1
  28. package/dist/ext/fs/index.d.ts +2 -1
  29. package/dist/ext/fs/index.d.ts.map +1 -1
  30. package/dist/ext/fs/index.js +3 -0
  31. package/dist/ext/fs/index.js.map +1 -1
  32. package/dist/ext/kv/index.d.ts +2 -1
  33. package/dist/ext/kv/index.d.ts.map +1 -1
  34. package/dist/ext/kv/index.js +5 -1
  35. package/dist/ext/kv/index.js.map +1 -1
  36. package/dist/generated/introspection-data.d.ts +1 -1
  37. package/dist/generated/introspection-data.d.ts.map +1 -1
  38. package/dist/generated/introspection-data.js +194 -185
  39. package/dist/generated/introspection-data.js.map +1 -1
  40. package/dist/generated/version-data.d.ts +1 -1
  41. package/dist/generated/version-data.d.ts.map +1 -1
  42. package/dist/generated/version-data.js +3 -3
  43. package/dist/generated/version-data.js.map +1 -1
  44. package/dist/highlight-map.d.ts.map +1 -1
  45. package/dist/highlight-map.js +8 -2
  46. package/dist/highlight-map.js.map +1 -1
  47. package/dist/index.d.ts +2 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/lexer/operators.d.ts.map +1 -1
  52. package/dist/lexer/operators.js +0 -2
  53. package/dist/lexer/operators.js.map +1 -1
  54. package/dist/lexer/readers.d.ts +18 -1
  55. package/dist/lexer/readers.d.ts.map +1 -1
  56. package/dist/lexer/readers.js +55 -0
  57. package/dist/lexer/readers.js.map +1 -1
  58. package/dist/parser/helpers.d.ts +8 -13
  59. package/dist/parser/helpers.d.ts.map +1 -1
  60. package/dist/parser/helpers.js +42 -35
  61. package/dist/parser/helpers.js.map +1 -1
  62. package/dist/parser/index.d.ts +1 -0
  63. package/dist/parser/index.d.ts.map +1 -1
  64. package/dist/parser/index.js +1 -0
  65. package/dist/parser/index.js.map +1 -1
  66. package/dist/parser/parser-collect.d.ts.map +1 -1
  67. package/dist/parser/parser-collect.js +34 -5
  68. package/dist/parser/parser-collect.js.map +1 -1
  69. package/dist/parser/parser-control.d.ts +1 -1
  70. package/dist/parser/parser-control.d.ts.map +1 -1
  71. package/dist/parser/parser-control.js +11 -2
  72. package/dist/parser/parser-control.js.map +1 -1
  73. package/dist/parser/parser-expr.d.ts +3 -1
  74. package/dist/parser/parser-expr.d.ts.map +1 -1
  75. package/dist/parser/parser-expr.js +377 -100
  76. package/dist/parser/parser-expr.js.map +1 -1
  77. package/dist/parser/parser-extract.d.ts +3 -5
  78. package/dist/parser/parser-extract.d.ts.map +1 -1
  79. package/dist/parser/parser-extract.js +37 -69
  80. package/dist/parser/parser-extract.js.map +1 -1
  81. package/dist/parser/parser-functions.d.ts +2 -2
  82. package/dist/parser/parser-functions.d.ts.map +1 -1
  83. package/dist/parser/parser-functions.js +112 -36
  84. package/dist/parser/parser-functions.js.map +1 -1
  85. package/dist/parser/parser-literals.d.ts +5 -4
  86. package/dist/parser/parser-literals.d.ts.map +1 -1
  87. package/dist/parser/parser-literals.js +316 -47
  88. package/dist/parser/parser-literals.js.map +1 -1
  89. package/dist/parser/parser-script.d.ts.map +1 -1
  90. package/dist/parser/parser-script.js +25 -12
  91. package/dist/parser/parser-script.js.map +1 -1
  92. package/dist/parser/parser-shape.d.ts +13 -0
  93. package/dist/parser/parser-shape.d.ts.map +1 -0
  94. package/dist/parser/parser-shape.js +72 -0
  95. package/dist/parser/parser-shape.js.map +1 -0
  96. package/dist/parser/parser-types.d.ts +31 -0
  97. package/dist/parser/parser-types.d.ts.map +1 -0
  98. package/dist/parser/parser-types.js +78 -0
  99. package/dist/parser/parser-types.js.map +1 -0
  100. package/dist/parser/parser-variables.d.ts.map +1 -1
  101. package/dist/parser/parser-variables.js +10 -1
  102. package/dist/parser/parser-variables.js.map +1 -1
  103. package/dist/runtime/core/callable.d.ts +27 -22
  104. package/dist/runtime/core/callable.d.ts.map +1 -1
  105. package/dist/runtime/core/callable.js +30 -26
  106. package/dist/runtime/core/callable.js.map +1 -1
  107. package/dist/runtime/core/context.d.ts.map +1 -1
  108. package/dist/runtime/core/context.js +8 -8
  109. package/dist/runtime/core/context.js.map +1 -1
  110. package/dist/runtime/core/equals.d.ts.map +1 -1
  111. package/dist/runtime/core/equals.js +179 -30
  112. package/dist/runtime/core/equals.js.map +1 -1
  113. package/dist/runtime/core/eval/base.d.ts +2 -2
  114. package/dist/runtime/core/eval/base.d.ts.map +1 -1
  115. package/dist/runtime/core/eval/evaluator.d.ts.map +1 -1
  116. package/dist/runtime/core/eval/evaluator.js +3 -1
  117. package/dist/runtime/core/eval/evaluator.js.map +1 -1
  118. package/dist/runtime/core/eval/index.d.ts +18 -3
  119. package/dist/runtime/core/eval/index.d.ts.map +1 -1
  120. package/dist/runtime/core/eval/index.js +22 -2
  121. package/dist/runtime/core/eval/index.js.map +1 -1
  122. package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -1
  123. package/dist/runtime/core/eval/mixins/annotations.js +14 -8
  124. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -1
  125. package/dist/runtime/core/eval/mixins/closures.d.ts +0 -2
  126. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -1
  127. package/dist/runtime/core/eval/mixins/closures.js +341 -105
  128. package/dist/runtime/core/eval/mixins/closures.js.map +1 -1
  129. package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -1
  130. package/dist/runtime/core/eval/mixins/collections.js +65 -25
  131. package/dist/runtime/core/eval/mixins/collections.js.map +1 -1
  132. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -1
  133. package/dist/runtime/core/eval/mixins/control-flow.js +21 -17
  134. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -1
  135. package/dist/runtime/core/eval/mixins/conversion.d.ts +30 -0
  136. package/dist/runtime/core/eval/mixins/conversion.d.ts.map +1 -0
  137. package/dist/runtime/core/eval/mixins/conversion.js +212 -0
  138. package/dist/runtime/core/eval/mixins/conversion.js.map +1 -0
  139. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -1
  140. package/dist/runtime/core/eval/mixins/core.js +101 -32
  141. package/dist/runtime/core/eval/mixins/core.js.map +1 -1
  142. package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -1
  143. package/dist/runtime/core/eval/mixins/extraction.js +136 -30
  144. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -1
  145. package/dist/runtime/core/eval/mixins/list-dispatch.d.ts +17 -0
  146. package/dist/runtime/core/eval/mixins/list-dispatch.d.ts.map +1 -0
  147. package/dist/runtime/core/eval/mixins/list-dispatch.js +97 -0
  148. package/dist/runtime/core/eval/mixins/list-dispatch.js.map +1 -0
  149. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -1
  150. package/dist/runtime/core/eval/mixins/literals.js +73 -83
  151. package/dist/runtime/core/eval/mixins/literals.js.map +1 -1
  152. package/dist/runtime/core/eval/mixins/types.d.ts +4 -0
  153. package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -1
  154. package/dist/runtime/core/eval/mixins/types.js +323 -3
  155. package/dist/runtime/core/eval/mixins/types.js.map +1 -1
  156. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -1
  157. package/dist/runtime/core/eval/mixins/variables.js +45 -7
  158. package/dist/runtime/core/eval/mixins/variables.js.map +1 -1
  159. package/dist/runtime/core/execute.d.ts.map +1 -1
  160. package/dist/runtime/core/execute.js +3 -16
  161. package/dist/runtime/core/execute.js.map +1 -1
  162. package/dist/runtime/core/field-descriptor.d.ts +29 -0
  163. package/dist/runtime/core/field-descriptor.d.ts.map +1 -0
  164. package/dist/runtime/core/field-descriptor.js +27 -0
  165. package/dist/runtime/core/field-descriptor.js.map +1 -0
  166. package/dist/runtime/core/types.d.ts +15 -6
  167. package/dist/runtime/core/types.d.ts.map +1 -1
  168. package/dist/runtime/core/types.js.map +1 -1
  169. package/dist/runtime/core/values.d.ts +114 -9
  170. package/dist/runtime/core/values.d.ts.map +1 -1
  171. package/dist/runtime/core/values.js +529 -43
  172. package/dist/runtime/core/values.js.map +1 -1
  173. package/dist/runtime/ext/builtins.d.ts.map +1 -1
  174. package/dist/runtime/ext/builtins.js +47 -107
  175. package/dist/runtime/ext/builtins.js.map +1 -1
  176. package/dist/runtime/ext/extensions.d.ts +21 -2
  177. package/dist/runtime/ext/extensions.d.ts.map +1 -1
  178. package/dist/runtime/ext/extensions.js.map +1 -1
  179. package/dist/runtime/index.d.ts +6 -4
  180. package/dist/runtime/index.d.ts.map +1 -1
  181. package/dist/runtime/index.js +7 -2
  182. package/dist/runtime/index.js.map +1 -1
  183. package/dist/token-types.d.ts +7 -2
  184. package/dist/token-types.d.ts.map +1 -1
  185. package/dist/token-types.js +9 -2
  186. package/dist/token-types.js.map +1 -1
  187. package/dist/value-types.d.ts +32 -1
  188. package/dist/value-types.d.ts.map +1 -1
  189. package/dist/value-types.js +1 -1
  190. package/dist/value-types.js.map +1 -1
  191. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parser-script.d.ts","sourceRoot":"","sources":["../../src/parser/parser-script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,EAEf,UAAU,EAEV,aAAa,EACd,MAAM,aAAa,CAAC;AAcrB,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,MAAM;QACd,WAAW,IAAI,UAAU,CAAC;QAC1B,gBAAgB,IAAI,eAAe,CAAC;QACpC,cAAc,IAAI,aAAa,GAAG,sBAAsB,CAAC;QACzD,uBAAuB,IAAI,sBAAsB,CAAC;QAClD,mBAAmB,IAAI,aAAa,EAAE,CAAC;QACvC,kBAAkB,IAAI,aAAa,CAAC;QACpC,sBAAsB,CACpB,aAAa,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAC/D,OAAO,EAAE,MAAM,GACd,iBAAiB,CAAC;KACtB;CACF"}
1
+ {"version":3,"file":"parser-script.d.ts","sourceRoot":"","sources":["../../src/parser/parser-script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,eAAe,EAEf,UAAU,EAEV,aAAa,EACd,MAAM,aAAa,CAAC;AAgBrB,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,MAAM;QACd,WAAW,IAAI,UAAU,CAAC;QAC1B,gBAAgB,IAAI,eAAe,CAAC;QACpC,cAAc,IAAI,aAAa,GAAG,sBAAsB,CAAC;QACzD,uBAAuB,IAAI,sBAAsB,CAAC;QAClD,mBAAmB,IAAI,aAAa,EAAE,CAAC;QACvC,kBAAkB,IAAI,aAAa,CAAC;QACpC,sBAAsB,CACpB,aAAa,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAC/D,OAAO,EAAE,MAAM,GACd,iBAAiB,CAAC;KACtB;CACF"}
@@ -6,6 +6,7 @@ import { Parser } from './parser.js';
6
6
  import { ParseError, TOKEN_TYPES } from '../types.js';
7
7
  import { LexerError } from '../lexer/index.js';
8
8
  import { check, advance, expect, current, isAtEnd, skipNewlines, makeSpan, } from './state.js';
9
+ const RESERVED_ANNOTATION_KEYS = ['type', 'input', 'output'];
9
10
  // ============================================================
10
11
  // SCRIPT PARSING
11
12
  // ============================================================
@@ -166,20 +167,19 @@ Parser.prototype.parseAnnotatedStatement = function () {
166
167
  expect(this.state, TOKEN_TYPES.LPAREN, 'Expected (');
167
168
  const annotations = this.parseAnnotationArgs();
168
169
  expect(this.state, TOKEN_TYPES.RPAREN, 'Expected )', 'RILL-P005');
170
+ skipNewlines(this.state);
169
171
  // Parse the inner statement (which could also be annotated)
170
172
  const statement = this.parseStatement();
171
- // If inner is annotated, wrap it; otherwise use directly
172
- const innerStatement = statement.type === 'AnnotatedStatement'
173
- ? {
174
- type: 'Statement',
175
- expression: statement.statement.expression,
176
- span: statement.span,
177
- }
178
- : statement;
173
+ // If inner is already annotated, return it unchanged.
174
+ // BC-2: The immediately-preceding annotation attaches to the closure;
175
+ // the outer annotation is discarded.
176
+ if (statement.type === 'AnnotatedStatement') {
177
+ return statement;
178
+ }
179
179
  return {
180
180
  type: 'AnnotatedStatement',
181
181
  annotations,
182
- statement: innerStatement,
182
+ statement,
183
183
  span: makeSpan(start, current(this.state).span.end),
184
184
  };
185
185
  };
@@ -199,9 +199,9 @@ Parser.prototype.parseAnnotationArgs = function () {
199
199
  };
200
200
  Parser.prototype.parseAnnotationArg = function () {
201
201
  const start = current(this.state).span.start;
202
- // Spread argument: *expr
203
- if (check(this.state, TOKEN_TYPES.STAR)) {
204
- advance(this.state); // consume *
202
+ // Spread argument: ...expr
203
+ if (check(this.state, TOKEN_TYPES.ELLIPSIS)) {
204
+ advance(this.state); // consume ...
205
205
  const expression = this.parseExpression();
206
206
  return {
207
207
  type: 'SpreadArg',
@@ -209,8 +209,21 @@ Parser.prototype.parseAnnotationArg = function () {
209
209
  span: makeSpan(start, current(this.state).span.end),
210
210
  };
211
211
  }
212
+ // Description shorthand: bare string expands to description: <string>
213
+ if (check(this.state, TOKEN_TYPES.STRING)) {
214
+ const value = this.parseExpression();
215
+ return {
216
+ type: 'NamedArg',
217
+ name: 'description',
218
+ value,
219
+ span: makeSpan(start, current(this.state).span.end),
220
+ };
221
+ }
212
222
  // Named argument: key: value
213
223
  const nameToken = expect(this.state, TOKEN_TYPES.IDENTIFIER, 'Expected annotation name');
224
+ if (RESERVED_ANNOTATION_KEYS.includes(nameToken.value)) {
225
+ throw new ParseError('RILL-P001', `Annotation key "${nameToken.value}" is reserved`, nameToken.span.start);
226
+ }
214
227
  expect(this.state, TOKEN_TYPES.COLON, 'Expected :');
215
228
  const value = this.parseExpression();
216
229
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parser-script.js","sourceRoot":"","sources":["../../src/parser/parser-script.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser-script.js","sourceRoot":"","sources":["../../src/parser/parser-script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Parser Extension: Type Constructor Parsing
3
+ * type-constructor = ("list" | "dict" | "tuple" | "ordered") "(" [type-arg-list] ")" ;
4
+ * type-arg-list = type-arg ("," type-arg)* [","] ;
5
+ * type-arg = identifier ":" expression | expression ;
6
+ */
7
+ import type { TypeConstructorNode } from '../types.js';
8
+ declare module './parser.js' {
9
+ interface Parser {
10
+ parseTypeConstructor(constructorName: string): TypeConstructorNode;
11
+ }
12
+ }
13
+ //# sourceMappingURL=parser-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-shape.d.ts","sourceRoot":"","sources":["../../src/parser/parser-shape.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAarB,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,MAAM;QACd,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,mBAAmB,CAAC;KACpE;CACF"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Parser Extension: Type Constructor Parsing
3
+ * type-constructor = ("list" | "dict" | "tuple" | "ordered") "(" [type-arg-list] ")" ;
4
+ * type-arg-list = type-arg ("," type-arg)* [","] ;
5
+ * type-arg = identifier ":" expression | expression ;
6
+ */
7
+ import { Parser } from './parser.js';
8
+ import { ParseError, TOKEN_TYPES } from '../types.js';
9
+ import { check, advance, expect, current, skipNewlines, makeSpan, peek, } from './state.js';
10
+ // ============================================================
11
+ // TYPE CONSTRUCTOR PARSING
12
+ // ============================================================
13
+ /**
14
+ * Parse a type constructor: list(args), dict(k: T, ...), tuple(T...), ordered(k: T, ...).
15
+ * Called when current identifier is in ['list', 'dict', 'tuple', 'ordered'] and next token is LPAREN.
16
+ * Consumes: constructorName "(" [type-arg-list] ")"
17
+ * Produces TypeConstructorNode.
18
+ */
19
+ Parser.prototype.parseTypeConstructor = function (constructorName) {
20
+ const validNames = ['list', 'dict', 'tuple', 'ordered'];
21
+ if (!validNames.includes(constructorName)) {
22
+ throw new ParseError('RILL-P001', `Expected type constructor name (list, dict, tuple, ordered), got: ${constructorName}`, current(this.state).span.start);
23
+ }
24
+ const start = current(this.state).span.start;
25
+ // Consume the constructor name identifier token
26
+ advance(this.state);
27
+ expect(this.state, TOKEN_TYPES.LPAREN, 'Expected (');
28
+ skipNewlines(this.state);
29
+ const args = [];
30
+ if (!check(this.state, TOKEN_TYPES.RPAREN)) {
31
+ args.push(parseTypeArg(this));
32
+ skipNewlines(this.state);
33
+ while (check(this.state, TOKEN_TYPES.COMMA)) {
34
+ advance(this.state);
35
+ skipNewlines(this.state);
36
+ if (check(this.state, TOKEN_TYPES.RPAREN))
37
+ break; // trailing comma
38
+ args.push(parseTypeArg(this));
39
+ skipNewlines(this.state);
40
+ }
41
+ }
42
+ const rparen = expect(this.state, TOKEN_TYPES.RPAREN, 'Expected )', 'RILL-P005');
43
+ return {
44
+ type: 'TypeConstructor',
45
+ constructorName: constructorName,
46
+ args,
47
+ span: makeSpan(start, rparen.span.end),
48
+ };
49
+ };
50
+ // ============================================================
51
+ // TYPE ARG PARSING (internal)
52
+ // ============================================================
53
+ /**
54
+ * Parse a single type argument: `identifier ":" expression` (named) or `expression` (positional).
55
+ * Lookahead: if current is IDENTIFIER and next is COLON, parse as named arg.
56
+ * Otherwise parse as positional.
57
+ */
58
+ function parseTypeArg(parser) {
59
+ // Named arg: identifier ":" expression
60
+ if (check(parser.state, TOKEN_TYPES.IDENTIFIER) &&
61
+ peek(parser.state, 1).type === TOKEN_TYPES.COLON) {
62
+ const nameToken = advance(parser.state); // consume identifier
63
+ advance(parser.state); // consume ':'
64
+ skipNewlines(parser.state);
65
+ const value = parser.parseExpression();
66
+ return { kind: 'named', name: nameToken.value, value };
67
+ }
68
+ // Positional arg: expression
69
+ const value = parser.parseExpression();
70
+ return { kind: 'positional', value };
71
+ }
72
+ //# sourceMappingURL=parser-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-shape.js","sourceRoot":"","sources":["../../src/parser/parser-shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Parser Utility: Type Reference Parsing
3
+ * Parses a type-ref production: either a static type name (optionally
4
+ * parameterized) or a dynamic $variable.
5
+ * @internal
6
+ */
7
+ import { type TypeRef } from '../types.js';
8
+ import { type ParserState } from './state.js';
9
+ /**
10
+ * Parse a type reference from the current position in the token stream.
11
+ *
12
+ * Grammar:
13
+ * ```
14
+ * type-ref = type-name [ "(" type-ref-arg-list ")" ] | "$" identifier
15
+ * type-ref-arg-list = type-ref-arg { "," type-ref-arg } [ "," ]
16
+ * type-ref-arg = identifier ":" type-ref | type-ref
17
+ * ```
18
+ *
19
+ * - `$identifier` → `{ kind: 'dynamic', varName: identifier }`
20
+ * - `type-name` → `{ kind: 'static', typeName }`
21
+ * - `type-name(arg, ...)` → `{ kind: 'static', typeName, args: [...] }`
22
+ *
23
+ * Dynamic refs do not accept parameterization — `$T(...)` is not valid.
24
+ *
25
+ * Throws ParseError (EC-13) if neither a `$identifier` nor a valid type name
26
+ * is found. Throws ParseError (EC-14) if the arg list is malformed.
27
+ *
28
+ * @internal
29
+ */
30
+ export declare function parseTypeRef(state: ParserState): TypeRef;
31
+ //# sourceMappingURL=parser-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-types.d.ts","sourceRoot":"","sources":["../../src/parser/parser-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,OAAO,EAIb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,WAAW,EAAmC,MAAM,YAAY,CAAC;AAG/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAkExD"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Parser Utility: Type Reference Parsing
3
+ * Parses a type-ref production: either a static type name (optionally
4
+ * parameterized) or a dynamic $variable.
5
+ * @internal
6
+ */
7
+ import { TOKEN_TYPES, ParseError, } from '../types.js';
8
+ import { check, advance, expect, current } from './state.js';
9
+ import { VALID_TYPE_NAMES, parseTypeName } from './helpers.js';
10
+ /**
11
+ * Parse a type reference from the current position in the token stream.
12
+ *
13
+ * Grammar:
14
+ * ```
15
+ * type-ref = type-name [ "(" type-ref-arg-list ")" ] | "$" identifier
16
+ * type-ref-arg-list = type-ref-arg { "," type-ref-arg } [ "," ]
17
+ * type-ref-arg = identifier ":" type-ref | type-ref
18
+ * ```
19
+ *
20
+ * - `$identifier` → `{ kind: 'dynamic', varName: identifier }`
21
+ * - `type-name` → `{ kind: 'static', typeName }`
22
+ * - `type-name(arg, ...)` → `{ kind: 'static', typeName, args: [...] }`
23
+ *
24
+ * Dynamic refs do not accept parameterization — `$T(...)` is not valid.
25
+ *
26
+ * Throws ParseError (EC-13) if neither a `$identifier` nor a valid type name
27
+ * is found. Throws ParseError (EC-14) if the arg list is malformed.
28
+ *
29
+ * @internal
30
+ */
31
+ export function parseTypeRef(state) {
32
+ if (check(state, TOKEN_TYPES.DOLLAR)) {
33
+ advance(state); // consume $
34
+ const nameToken = expect(state, TOKEN_TYPES.IDENTIFIER, 'Expected variable name after $');
35
+ return { kind: 'dynamic', varName: nameToken.value };
36
+ }
37
+ const typeName = parseTypeName(state, VALID_TYPE_NAMES);
38
+ // Check for parameterized form: type-name "(" type-ref-arg-list ")"
39
+ if (!check(state, TOKEN_TYPES.LPAREN)) {
40
+ return { kind: 'static', typeName };
41
+ }
42
+ advance(state); // consume "("
43
+ const args = [];
44
+ // Parse arg list: allow empty "()" and trailing commas
45
+ while (!check(state, TOKEN_TYPES.RPAREN)) {
46
+ // Check for named arg: identifier ":" type-ref
47
+ // Lookahead: current is IDENTIFIER and next is COLON
48
+ const tok = current(state);
49
+ if (tok.type === TOKEN_TYPES.IDENTIFIER &&
50
+ state.tokens[state.pos + 1]?.type === TOKEN_TYPES.COLON) {
51
+ const name = tok.value;
52
+ advance(state); // consume identifier
53
+ advance(state); // consume ":"
54
+ const ref = parseTypeRef(state);
55
+ args.push({ name, ref });
56
+ }
57
+ else {
58
+ // Positional arg: type-ref
59
+ const ref = parseTypeRef(state);
60
+ args.push({ ref });
61
+ }
62
+ // Consume trailing or separating comma
63
+ if (check(state, TOKEN_TYPES.COMMA)) {
64
+ advance(state);
65
+ }
66
+ else if (!check(state, TOKEN_TYPES.RPAREN)) {
67
+ // Neither comma nor closing paren — malformed arg list (EC-14)
68
+ throw new ParseError('RILL-P014', "Expected ',' or ')' in type argument list", current(state).span.start);
69
+ }
70
+ }
71
+ // Consume ")"
72
+ if (!check(state, TOKEN_TYPES.RPAREN)) {
73
+ throw new ParseError('RILL-P014', "Expected ')' to close type argument list", current(state).span.start);
74
+ }
75
+ advance(state); // consume ")"
76
+ return { kind: 'static', typeName, args };
77
+ }
78
+ //# sourceMappingURL=parser-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser-types.js","sourceRoot":"","sources":["../../src/parser/parser-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser-variables.d.ts","sourceRoot":"","sources":["../../src/parser/parser-variables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AAUrB,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,MAAM;QACd,aAAa,IAAI,YAAY,CAAC;QAC9B,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,cAAc,GACpB,YAAY,CAAC;QAChB,gBAAgB,IAAI;YAClB,WAAW,EAAE,cAAc,EAAE,CAAC;YAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;SACvC,CAAC;QACF,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;QACxE,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;QACrE,oBAAoB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC;QACxC,iBAAiB,IAAI,QAAQ,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"parser-variables.d.ts","sourceRoot":"","sources":["../../src/parser/parser-variables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AAiBrB,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,MAAM;QACd,aAAa,IAAI,YAAY,CAAC;QAC9B,sBAAsB,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,cAAc,GACpB,YAAY,CAAC;QAChB,gBAAgB,IAAI;YAClB,WAAW,EAAE,cAAc,EAAE,CAAC;YAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;SACvC,CAAC;QACF,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;QACxE,2BAA2B,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;QACrE,oBAAoB,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC;QACxC,iBAAiB,IAAI,QAAQ,CAAC;KAC/B;CACF"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { Parser } from './parser.js';
6
6
  import { TOKEN_TYPES, ParseError } from '../types.js';
7
- import { check, advance, expect, makeSpan, current } from './state.js';
7
+ import { check, advance, expect, makeSpan, current, skipNewlinesIfFollowedBy, } from './state.js';
8
8
  import { isMethodCallWithArgs, VALID_TYPE_NAMES, parseTypeName, } from './helpers.js';
9
9
  // ============================================================
10
10
  // VARIABLE PARSING
@@ -52,6 +52,9 @@ Parser.prototype.makeVariableWithAccess = function (name, isPipeVar, start) {
52
52
  Parser.prototype.parseAccessChain = function () {
53
53
  const accessChain = [];
54
54
  let existenceCheck = null;
55
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT);
56
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT_QUESTION);
57
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.LBRACKET);
55
58
  while (check(this.state, TOKEN_TYPES.DOT, TOKEN_TYPES.DOT_QUESTION, TOKEN_TYPES.LBRACKET)) {
56
59
  if (check(this.state, TOKEN_TYPES.DOT) &&
57
60
  isMethodCallWithArgs(this.state)) {
@@ -63,6 +66,9 @@ Parser.prototype.parseAccessChain = function () {
63
66
  const closeBracket = expect(this.state, TOKEN_TYPES.RBRACKET, 'Expected ] after index expression', 'RILL-P005');
64
67
  const span = makeSpan(openBracket.span.start, closeBracket.span.end);
65
68
  accessChain.push({ accessKind: 'bracket', expression, span });
69
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT);
70
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT_QUESTION);
71
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.LBRACKET);
66
72
  continue;
67
73
  }
68
74
  if (check(this.state, TOKEN_TYPES.DOT_QUESTION)) {
@@ -85,6 +91,9 @@ Parser.prototype.parseAccessChain = function () {
85
91
  break;
86
92
  }
87
93
  accessChain.push(access);
94
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT);
95
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.DOT_QUESTION);
96
+ skipNewlinesIfFollowedBy(this.state, TOKEN_TYPES.LBRACKET);
88
97
  }
89
98
  return { accessChain, existenceCheck };
90
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"parser-variables.js","sourceRoot":"","sources":["../../src/parser/parser-variables.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser-variables.js","sourceRoot":"","sources":["../../src/parser/parser-variables.ts"],"names":[],"mappings":"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"}
@@ -24,12 +24,14 @@
24
24
  * - Per spec algorithm: "Apply default values for missing arguments before validation"
25
25
  * - Mutation occurs before host function receives args, maintaining immutability contract
26
26
  */
27
- import type { BodyNode, SourceLocation } from '../../types.js';
28
- import type { RillValue } from './values.js';
27
+ import type { BodyNode, RillFunctionReturnType, RillTypeName, SourceLocation } from '../../types.js';
28
+ export type { RillFunctionReturnType } from '../../types.js';
29
+ import type { RillStructuralType, RillTypeValue, RillValue } from './values.js';
29
30
  interface RuntimeContextLike {
30
31
  readonly parent?: RuntimeContextLike | undefined;
31
32
  readonly variables: Map<string, RillValue>;
32
33
  pipeValue: RillValue;
34
+ readonly metadata?: Record<string, string> | undefined;
33
35
  }
34
36
  /**
35
37
  * Callable function signature.
@@ -44,18 +46,15 @@ export type CallableFn = (args: RillValue[], ctx: RuntimeContextLike, location?:
44
46
  */
45
47
  export interface CallableParam {
46
48
  readonly name: string;
47
- readonly typeName: 'string' | 'number' | 'bool' | 'list' | 'dict' | 'vector' | 'any' | null;
49
+ readonly typeName: RillTypeName | null;
50
+ /** Full resolved structural type. Absent means bare type (uses typeName only). Present supersedes typeName for structural validation and reflection. */
51
+ readonly typeStructure?: RillStructuralType;
48
52
  readonly defaultValue: RillValue | null;
49
53
  /** Evaluated parameter-level annotations (e.g., ^(cache: true)) */
50
54
  readonly annotations: Record<string, RillValue>;
51
55
  /** Human-readable parameter description (optional, from host functions) */
52
56
  readonly description?: string;
53
57
  }
54
- /**
55
- * Return type declaration for host-provided functions.
56
- * Limited to 6 primitive types plus 'any' (default).
57
- */
58
- export type RillFunctionReturnType = 'string' | 'number' | 'bool' | 'list' | 'dict' | 'vector' | 'any';
59
58
  /**
60
59
  * Parameter metadata for host-provided functions.
61
60
  *
@@ -115,6 +114,10 @@ export interface ScriptCallable extends CallableBase {
115
114
  readonly annotations: Record<string, RillValue>;
116
115
  /** Evaluated parameter annotations keyed by parameter name */
117
116
  readonly paramAnnotations: Record<string, Record<string, RillValue>>;
117
+ /** Cached input structural type built from params at creation time — used by `$fn.^input` */
118
+ readonly inputShape: RillStructuralType;
119
+ /** Return type target from `:type-target` syntax — set in Phase 2, undefined until then */
120
+ readonly returnShape?: RillTypeValue | undefined;
118
121
  }
119
122
  /** Runtime callable - Rill's built-in functions (type, log, json, identity) */
120
123
  export interface RuntimeCallable extends CallableBase {
@@ -164,6 +167,20 @@ export declare function formatCallable(callable: RillCallable): string;
164
167
  * 5. Same parameter-level annotations
165
168
  */
166
169
  export declare function callableEquals(a: ScriptCallable, b: ScriptCallable, valueEquals?: (a: RillValue, b: RillValue) => boolean): boolean;
170
+ /**
171
+ * Build a RillStructuralType closure variant from a closure's parameter list.
172
+ *
173
+ * Called at closure creation time to build the structural type for `$fn.^input`.
174
+ * - Typed params map to { type: typeName }
175
+ * - Untyped params (typeName: null) map to { type: 'any' }
176
+ * - Return type is always { type: 'any' }
177
+ *
178
+ * No validation: parser already validates type names.
179
+ *
180
+ * @param params - Closure parameter definitions
181
+ * @returns Frozen RillStructuralType with closure variant
182
+ */
183
+ export declare function paramsToStructuralType(params: CallableParam[]): RillStructuralType;
167
184
  /**
168
185
  * Validate defaultValue type matches declared parameter type.
169
186
  *
@@ -175,17 +192,6 @@ export declare function callableEquals(a: ScriptCallable, b: ScriptCallable, val
175
192
  * @throws Error if defaultValue type doesn't match param.type
176
193
  */
177
194
  export declare function validateDefaultValueType(param: HostFunctionParam, _functionName: string): void;
178
- /**
179
- * Validate returnType is a valid RillFunctionReturnType literal.
180
- *
181
- * Called at registration time to catch configuration errors early.
182
- * Throws Error (not RuntimeError) to indicate registration failure.
183
- *
184
- * @param returnType - Return type value to validate
185
- * @param functionName - Function name for error messages
186
- * @throws Error if returnType is not a valid literal
187
- */
188
- export declare function validateReturnType(returnType: unknown, functionName: string): void;
189
195
  /**
190
196
  * Validate host function arguments against parameter declarations.
191
197
  *
@@ -196,7 +202,7 @@ export declare function validateReturnType(returnType: unknown, functionName: st
196
202
  * @param params - Parameter declarations from function definition
197
203
  * @param functionName - Function name for error messages
198
204
  * @param location - Source location for error reporting
199
- * @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
205
+ * @throws RuntimeError with RILL-R001 on validation failure
200
206
  */
201
207
  export declare function validateHostFunctionArgs(args: RillValue[], params: readonly HostFunctionParam[], functionName: string, location?: SourceLocation): void;
202
208
  /**
@@ -209,8 +215,7 @@ export declare function validateHostFunctionArgs(args: RillValue[], params: read
209
215
  * @param params - Parameter definitions
210
216
  * @param functionName - Function name for error messages
211
217
  * @param location - Source location for error reporting
212
- * @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
218
+ * @throws RuntimeError with RILL-R001 on validation failure
213
219
  */
214
220
  export declare function validateCallableArgs(args: RillValue[], params: readonly CallableParam[], functionName: string, location?: SourceLocation): void;
215
- export {};
216
221
  //# sourceMappingURL=callable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/callable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callable.d.ts","sourceRoot":"","sources":["../../../src/runtime/core/callable.ts"],"names":[],"mappings":"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"}
@@ -154,6 +154,34 @@ export function callableEquals(a, b, valueEquals = (x, y) => formatValue(x) ===
154
154
  }
155
155
  return true;
156
156
  }
157
+ /**
158
+ * Build a RillStructuralType closure variant from a closure's parameter list.
159
+ *
160
+ * Called at closure creation time to build the structural type for `$fn.^input`.
161
+ * - Typed params map to { type: typeName }
162
+ * - Untyped params (typeName: null) map to { type: 'any' }
163
+ * - Return type is always { type: 'any' }
164
+ *
165
+ * No validation: parser already validates type names.
166
+ *
167
+ * @param params - Closure parameter definitions
168
+ * @returns Frozen RillStructuralType with closure variant
169
+ */
170
+ export function paramsToStructuralType(params) {
171
+ const closureParams = params.map((param) => {
172
+ const paramType = param.typeStructure !== undefined
173
+ ? param.typeStructure
174
+ : param.typeName !== null
175
+ ? { type: param.typeName }
176
+ : { type: 'any' };
177
+ return [param.name, paramType];
178
+ });
179
+ return Object.freeze({
180
+ type: 'closure',
181
+ params: closureParams,
182
+ ret: { type: 'any' },
183
+ });
184
+ }
157
185
  /**
158
186
  * Validate defaultValue type matches declared parameter type.
159
187
  *
@@ -176,30 +204,6 @@ export function validateDefaultValueType(param, _functionName) {
176
204
  throw new Error(`Invalid defaultValue for parameter '${param.name}': expected ${expectedType}, got ${actualType}`);
177
205
  }
178
206
  }
179
- /**
180
- * Validate returnType is a valid RillFunctionReturnType literal.
181
- *
182
- * Called at registration time to catch configuration errors early.
183
- * Throws Error (not RuntimeError) to indicate registration failure.
184
- *
185
- * @param returnType - Return type value to validate
186
- * @param functionName - Function name for error messages
187
- * @throws Error if returnType is not a valid literal
188
- */
189
- export function validateReturnType(returnType, functionName) {
190
- const validTypes = [
191
- 'string',
192
- 'number',
193
- 'bool',
194
- 'list',
195
- 'dict',
196
- 'vector',
197
- 'any',
198
- ];
199
- if (!validTypes.includes(returnType)) {
200
- throw new Error(`Invalid returnType for function '${functionName}': expected one of string, number, bool, list, dict, vector, any`);
201
- }
202
- }
203
207
  /**
204
208
  * Validate host function arguments against parameter declarations.
205
209
  *
@@ -210,7 +214,7 @@ export function validateReturnType(returnType, functionName) {
210
214
  * @param params - Parameter declarations from function definition
211
215
  * @param functionName - Function name for error messages
212
216
  * @param location - Source location for error reporting
213
- * @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
217
+ * @throws RuntimeError with RILL-R001 on validation failure
214
218
  */
215
219
  export function validateHostFunctionArgs(args, params, functionName, location) {
216
220
  // Check for excess arguments
@@ -267,7 +271,7 @@ export function validateHostFunctionArgs(args, params, functionName, location) {
267
271
  * @param params - Parameter definitions
268
272
  * @param functionName - Function name for error messages
269
273
  * @param location - Source location for error reporting
270
- * @throws RuntimeError with RUNTIME_TYPE_ERROR on validation failure
274
+ * @throws RuntimeError with RILL-R001 on validation failure
271
275
  */
272
276
  export function validateCallableArgs(args, params, functionName, location) {
273
277
  // Check for excess arguments