@rcrsr/rill 0.1.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 (295) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +187 -0
  3. package/dist/cli.d.ts +11 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +69 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/demo.d.ts +6 -0
  8. package/dist/demo.d.ts.map +1 -0
  9. package/dist/demo.js +121 -0
  10. package/dist/demo.js.map +1 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +9 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/lexer/errors.d.ts +9 -0
  16. package/dist/lexer/errors.d.ts.map +1 -0
  17. package/dist/lexer/errors.js +12 -0
  18. package/dist/lexer/errors.js.map +1 -0
  19. package/dist/lexer/helpers.d.ts +14 -0
  20. package/dist/lexer/helpers.d.ts.map +1 -0
  21. package/dist/lexer/helpers.js +30 -0
  22. package/dist/lexer/helpers.js.map +1 -0
  23. package/dist/lexer/index.d.ts +8 -0
  24. package/dist/lexer/index.d.ts.map +1 -0
  25. package/dist/lexer/index.js +8 -0
  26. package/dist/lexer/index.js.map +1 -0
  27. package/dist/lexer/operators.d.ts +11 -0
  28. package/dist/lexer/operators.d.ts.map +1 -0
  29. package/dist/lexer/operators.js +58 -0
  30. package/dist/lexer/operators.js.map +1 -0
  31. package/dist/lexer/readers.d.ts +12 -0
  32. package/dist/lexer/readers.d.ts.map +1 -0
  33. package/dist/lexer/readers.js +144 -0
  34. package/dist/lexer/readers.js.map +1 -0
  35. package/dist/lexer/state.d.ts +18 -0
  36. package/dist/lexer/state.d.ts.map +1 -0
  37. package/dist/lexer/state.js +37 -0
  38. package/dist/lexer/state.js.map +1 -0
  39. package/dist/lexer/tokenizer.d.ts +9 -0
  40. package/dist/lexer/tokenizer.d.ts.map +1 -0
  41. package/dist/lexer/tokenizer.js +100 -0
  42. package/dist/lexer/tokenizer.js.map +1 -0
  43. package/dist/lexer.d.ts +19 -0
  44. package/dist/lexer.d.ts.map +1 -0
  45. package/dist/lexer.js +344 -0
  46. package/dist/lexer.js.map +1 -0
  47. package/dist/parser/arithmetic.d.ts +16 -0
  48. package/dist/parser/arithmetic.d.ts.map +1 -0
  49. package/dist/parser/arithmetic.js +128 -0
  50. package/dist/parser/arithmetic.js.map +1 -0
  51. package/dist/parser/boolean.d.ts +15 -0
  52. package/dist/parser/boolean.d.ts.map +1 -0
  53. package/dist/parser/boolean.js +20 -0
  54. package/dist/parser/boolean.js.map +1 -0
  55. package/dist/parser/control-flow.d.ts +56 -0
  56. package/dist/parser/control-flow.d.ts.map +1 -0
  57. package/dist/parser/control-flow.js +167 -0
  58. package/dist/parser/control-flow.js.map +1 -0
  59. package/dist/parser/expressions.d.ts +23 -0
  60. package/dist/parser/expressions.d.ts.map +1 -0
  61. package/dist/parser/expressions.js +950 -0
  62. package/dist/parser/expressions.js.map +1 -0
  63. package/dist/parser/extraction.d.ts +48 -0
  64. package/dist/parser/extraction.d.ts.map +1 -0
  65. package/dist/parser/extraction.js +279 -0
  66. package/dist/parser/extraction.js.map +1 -0
  67. package/dist/parser/functions.d.ts +20 -0
  68. package/dist/parser/functions.d.ts.map +1 -0
  69. package/dist/parser/functions.js +96 -0
  70. package/dist/parser/functions.js.map +1 -0
  71. package/dist/parser/helpers.d.ts +94 -0
  72. package/dist/parser/helpers.d.ts.map +1 -0
  73. package/dist/parser/helpers.js +225 -0
  74. package/dist/parser/helpers.js.map +1 -0
  75. package/dist/parser/index.d.ts +49 -0
  76. package/dist/parser/index.d.ts.map +1 -0
  77. package/dist/parser/index.js +73 -0
  78. package/dist/parser/index.js.map +1 -0
  79. package/dist/parser/literals.d.ts +37 -0
  80. package/dist/parser/literals.d.ts.map +1 -0
  81. package/dist/parser/literals.js +373 -0
  82. package/dist/parser/literals.js.map +1 -0
  83. package/dist/parser/parser-collect.d.ts +16 -0
  84. package/dist/parser/parser-collect.d.ts.map +1 -0
  85. package/dist/parser/parser-collect.js +125 -0
  86. package/dist/parser/parser-collect.js.map +1 -0
  87. package/dist/parser/parser-control.d.ts +20 -0
  88. package/dist/parser/parser-control.d.ts.map +1 -0
  89. package/dist/parser/parser-control.js +120 -0
  90. package/dist/parser/parser-control.js.map +1 -0
  91. package/dist/parser/parser-expr.d.ts +37 -0
  92. package/dist/parser/parser-expr.d.ts.map +1 -0
  93. package/dist/parser/parser-expr.js +639 -0
  94. package/dist/parser/parser-expr.js.map +1 -0
  95. package/dist/parser/parser-extract.d.ts +17 -0
  96. package/dist/parser/parser-extract.d.ts.map +1 -0
  97. package/dist/parser/parser-extract.js +222 -0
  98. package/dist/parser/parser-extract.js.map +1 -0
  99. package/dist/parser/parser-functions.d.ts +21 -0
  100. package/dist/parser/parser-functions.d.ts.map +1 -0
  101. package/dist/parser/parser-functions.js +155 -0
  102. package/dist/parser/parser-functions.js.map +1 -0
  103. package/dist/parser/parser-literals.d.ts +22 -0
  104. package/dist/parser/parser-literals.d.ts.map +1 -0
  105. package/dist/parser/parser-literals.js +288 -0
  106. package/dist/parser/parser-literals.js.map +1 -0
  107. package/dist/parser/parser-script.d.ts +21 -0
  108. package/dist/parser/parser-script.d.ts.map +1 -0
  109. package/dist/parser/parser-script.js +174 -0
  110. package/dist/parser/parser-script.js.map +1 -0
  111. package/dist/parser/parser-variables.d.ts +20 -0
  112. package/dist/parser/parser-variables.d.ts.map +1 -0
  113. package/dist/parser/parser-variables.js +146 -0
  114. package/dist/parser/parser-variables.js.map +1 -0
  115. package/dist/parser/parser.d.ts +49 -0
  116. package/dist/parser/parser.d.ts.map +1 -0
  117. package/dist/parser/parser.js +54 -0
  118. package/dist/parser/parser.js.map +1 -0
  119. package/dist/parser/script.d.ts +14 -0
  120. package/dist/parser/script.d.ts.map +1 -0
  121. package/dist/parser/script.js +196 -0
  122. package/dist/parser/script.js.map +1 -0
  123. package/dist/parser/state.d.ts +40 -0
  124. package/dist/parser/state.d.ts.map +1 -0
  125. package/dist/parser/state.js +129 -0
  126. package/dist/parser/state.js.map +1 -0
  127. package/dist/parser/variables.d.ts +10 -0
  128. package/dist/parser/variables.d.ts.map +1 -0
  129. package/dist/parser/variables.js +215 -0
  130. package/dist/parser/variables.js.map +1 -0
  131. package/dist/runtime/ast-equals.d.ts +13 -0
  132. package/dist/runtime/ast-equals.d.ts.map +1 -0
  133. package/dist/runtime/ast-equals.js +447 -0
  134. package/dist/runtime/ast-equals.js.map +1 -0
  135. package/dist/runtime/builtins.d.ts +13 -0
  136. package/dist/runtime/builtins.d.ts.map +1 -0
  137. package/dist/runtime/builtins.js +180 -0
  138. package/dist/runtime/builtins.js.map +1 -0
  139. package/dist/runtime/callable.d.ts +88 -0
  140. package/dist/runtime/callable.d.ts.map +1 -0
  141. package/dist/runtime/callable.js +98 -0
  142. package/dist/runtime/callable.js.map +1 -0
  143. package/dist/runtime/context.d.ts +13 -0
  144. package/dist/runtime/context.d.ts.map +1 -0
  145. package/dist/runtime/context.js +73 -0
  146. package/dist/runtime/context.js.map +1 -0
  147. package/dist/runtime/core/callable.d.ts +171 -0
  148. package/dist/runtime/core/callable.d.ts.map +1 -0
  149. package/dist/runtime/core/callable.js +246 -0
  150. package/dist/runtime/core/callable.js.map +1 -0
  151. package/dist/runtime/core/context.d.ts +29 -0
  152. package/dist/runtime/core/context.d.ts.map +1 -0
  153. package/dist/runtime/core/context.js +154 -0
  154. package/dist/runtime/core/context.js.map +1 -0
  155. package/dist/runtime/core/equals.d.ts +9 -0
  156. package/dist/runtime/core/equals.d.ts.map +1 -0
  157. package/dist/runtime/core/equals.js +381 -0
  158. package/dist/runtime/core/equals.js.map +1 -0
  159. package/dist/runtime/core/eval/base.d.ts +65 -0
  160. package/dist/runtime/core/eval/base.d.ts.map +1 -0
  161. package/dist/runtime/core/eval/base.js +112 -0
  162. package/dist/runtime/core/eval/base.js.map +1 -0
  163. package/dist/runtime/core/eval/evaluator.d.ts +47 -0
  164. package/dist/runtime/core/eval/evaluator.d.ts.map +1 -0
  165. package/dist/runtime/core/eval/evaluator.js +73 -0
  166. package/dist/runtime/core/eval/evaluator.js.map +1 -0
  167. package/dist/runtime/core/eval/index.d.ts +57 -0
  168. package/dist/runtime/core/eval/index.d.ts.map +1 -0
  169. package/dist/runtime/core/eval/index.js +95 -0
  170. package/dist/runtime/core/eval/index.js.map +1 -0
  171. package/dist/runtime/core/eval/mixins/annotations.d.ts +19 -0
  172. package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -0
  173. package/dist/runtime/core/eval/mixins/annotations.js +146 -0
  174. package/dist/runtime/core/eval/mixins/annotations.js.map +1 -0
  175. package/dist/runtime/core/eval/mixins/closures.d.ts +49 -0
  176. package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -0
  177. package/dist/runtime/core/eval/mixins/closures.js +479 -0
  178. package/dist/runtime/core/eval/mixins/closures.js.map +1 -0
  179. package/dist/runtime/core/eval/mixins/collections.d.ts +24 -0
  180. package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -0
  181. package/dist/runtime/core/eval/mixins/collections.js +466 -0
  182. package/dist/runtime/core/eval/mixins/collections.js.map +1 -0
  183. package/dist/runtime/core/eval/mixins/control-flow.d.ts +27 -0
  184. package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -0
  185. package/dist/runtime/core/eval/mixins/control-flow.js +369 -0
  186. package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -0
  187. package/dist/runtime/core/eval/mixins/core.d.ts +24 -0
  188. package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -0
  189. package/dist/runtime/core/eval/mixins/core.js +335 -0
  190. package/dist/runtime/core/eval/mixins/core.js.map +1 -0
  191. package/dist/runtime/core/eval/mixins/expressions.d.ts +19 -0
  192. package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -0
  193. package/dist/runtime/core/eval/mixins/expressions.js +202 -0
  194. package/dist/runtime/core/eval/mixins/expressions.js.map +1 -0
  195. package/dist/runtime/core/eval/mixins/extraction.d.ts +10 -0
  196. package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -0
  197. package/dist/runtime/core/eval/mixins/extraction.js +250 -0
  198. package/dist/runtime/core/eval/mixins/extraction.js.map +1 -0
  199. package/dist/runtime/core/eval/mixins/literals.d.ts +23 -0
  200. package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -0
  201. package/dist/runtime/core/eval/mixins/literals.js +180 -0
  202. package/dist/runtime/core/eval/mixins/literals.js.map +1 -0
  203. package/dist/runtime/core/eval/mixins/types.d.ts +20 -0
  204. package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -0
  205. package/dist/runtime/core/eval/mixins/types.js +109 -0
  206. package/dist/runtime/core/eval/mixins/types.js.map +1 -0
  207. package/dist/runtime/core/eval/mixins/variables.d.ts +34 -0
  208. package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -0
  209. package/dist/runtime/core/eval/mixins/variables.js +247 -0
  210. package/dist/runtime/core/eval/mixins/variables.js.map +1 -0
  211. package/dist/runtime/core/eval/types.d.ts +41 -0
  212. package/dist/runtime/core/eval/types.d.ts.map +1 -0
  213. package/dist/runtime/core/eval/types.js +10 -0
  214. package/dist/runtime/core/eval/types.js.map +1 -0
  215. package/dist/runtime/core/evaluate.d.ts +42 -0
  216. package/dist/runtime/core/evaluate.d.ts.map +1 -0
  217. package/dist/runtime/core/evaluate.debug.js +1251 -0
  218. package/dist/runtime/core/evaluate.js +1913 -0
  219. package/dist/runtime/core/evaluate.js.map +1 -0
  220. package/dist/runtime/core/execute.d.ts +26 -0
  221. package/dist/runtime/core/execute.d.ts.map +1 -0
  222. package/dist/runtime/core/execute.js +177 -0
  223. package/dist/runtime/core/execute.js.map +1 -0
  224. package/dist/runtime/core/signals.d.ts +19 -0
  225. package/dist/runtime/core/signals.d.ts.map +1 -0
  226. package/dist/runtime/core/signals.js +26 -0
  227. package/dist/runtime/core/signals.js.map +1 -0
  228. package/dist/runtime/core/types.d.ts +177 -0
  229. package/dist/runtime/core/types.d.ts.map +1 -0
  230. package/dist/runtime/core/types.js +50 -0
  231. package/dist/runtime/core/types.js.map +1 -0
  232. package/dist/runtime/core/values.d.ts +66 -0
  233. package/dist/runtime/core/values.d.ts.map +1 -0
  234. package/dist/runtime/core/values.js +240 -0
  235. package/dist/runtime/core/values.js.map +1 -0
  236. package/dist/runtime/evaluate.d.ts +32 -0
  237. package/dist/runtime/evaluate.d.ts.map +1 -0
  238. package/dist/runtime/evaluate.js +1111 -0
  239. package/dist/runtime/evaluate.js.map +1 -0
  240. package/dist/runtime/execute.d.ts +26 -0
  241. package/dist/runtime/execute.d.ts.map +1 -0
  242. package/dist/runtime/execute.js +121 -0
  243. package/dist/runtime/execute.js.map +1 -0
  244. package/dist/runtime/ext/builtins.d.ts +16 -0
  245. package/dist/runtime/ext/builtins.d.ts.map +1 -0
  246. package/dist/runtime/ext/builtins.js +528 -0
  247. package/dist/runtime/ext/builtins.js.map +1 -0
  248. package/dist/runtime/ext/content-parser.d.ts +83 -0
  249. package/dist/runtime/ext/content-parser.d.ts.map +1 -0
  250. package/dist/runtime/ext/content-parser.js +536 -0
  251. package/dist/runtime/ext/content-parser.js.map +1 -0
  252. package/dist/runtime/index.d.ts +28 -0
  253. package/dist/runtime/index.d.ts.map +1 -0
  254. package/dist/runtime/index.js +34 -0
  255. package/dist/runtime/index.js.map +1 -0
  256. package/dist/runtime/signals.d.ts +19 -0
  257. package/dist/runtime/signals.d.ts.map +1 -0
  258. package/dist/runtime/signals.js +26 -0
  259. package/dist/runtime/signals.js.map +1 -0
  260. package/dist/runtime/types.d.ts +169 -0
  261. package/dist/runtime/types.d.ts.map +1 -0
  262. package/dist/runtime/types.js +50 -0
  263. package/dist/runtime/types.js.map +1 -0
  264. package/dist/runtime/values.d.ts +50 -0
  265. package/dist/runtime/values.d.ts.map +1 -0
  266. package/dist/runtime/values.js +209 -0
  267. package/dist/runtime/values.js.map +1 -0
  268. package/dist/runtime.d.ts +254 -0
  269. package/dist/runtime.d.ts.map +1 -0
  270. package/dist/runtime.js +2014 -0
  271. package/dist/runtime.js.map +1 -0
  272. package/dist/types.d.ts +752 -0
  273. package/dist/types.d.ts.map +1 -0
  274. package/dist/types.js +189 -0
  275. package/dist/types.js.map +1 -0
  276. package/docs/00_INDEX.md +65 -0
  277. package/docs/01_guide.md +390 -0
  278. package/docs/02_types.md +399 -0
  279. package/docs/03_variables.md +314 -0
  280. package/docs/04_operators.md +551 -0
  281. package/docs/05_control-flow.md +350 -0
  282. package/docs/06_closures.md +353 -0
  283. package/docs/07_collections.md +686 -0
  284. package/docs/08_iterators.md +330 -0
  285. package/docs/09_strings.md +205 -0
  286. package/docs/10_parsing.md +366 -0
  287. package/docs/11_reference.md +350 -0
  288. package/docs/12_examples.md +771 -0
  289. package/docs/13_modules.md +519 -0
  290. package/docs/14_host-integration.md +826 -0
  291. package/docs/15_grammar.ebnf +693 -0
  292. package/docs/16_conventions.md +696 -0
  293. package/docs/99_llm-reference.txt +300 -0
  294. package/docs/assets/logo.png +0 -0
  295. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Rill AST Types
3
+ * Based on docs/grammar.ebnf
4
+ */
5
+ // ============================================================
6
+ // ERROR HIERARCHY
7
+ // ============================================================
8
+ /** Error codes for programmatic handling */
9
+ export const RILL_ERROR_CODES = {
10
+ // Parse errors
11
+ PARSE_UNEXPECTED_TOKEN: 'PARSE_UNEXPECTED_TOKEN',
12
+ PARSE_INVALID_SYNTAX: 'PARSE_INVALID_SYNTAX',
13
+ PARSE_INVALID_TYPE: 'PARSE_INVALID_TYPE',
14
+ // Runtime errors
15
+ RUNTIME_UNDEFINED_VARIABLE: 'RUNTIME_UNDEFINED_VARIABLE',
16
+ RUNTIME_UNDEFINED_FUNCTION: 'RUNTIME_UNDEFINED_FUNCTION',
17
+ RUNTIME_UNDEFINED_METHOD: 'RUNTIME_UNDEFINED_METHOD',
18
+ RUNTIME_TYPE_ERROR: 'RUNTIME_TYPE_ERROR',
19
+ RUNTIME_TIMEOUT: 'RUNTIME_TIMEOUT',
20
+ RUNTIME_INVALID_PATTERN: 'RUNTIME_INVALID_PATTERN',
21
+ RUNTIME_AUTO_EXCEPTION: 'RUNTIME_AUTO_EXCEPTION',
22
+ RUNTIME_ABORTED: 'RUNTIME_ABORTED',
23
+ RUNTIME_PROPERTY_NOT_FOUND: 'RUNTIME_PROPERTY_NOT_FOUND',
24
+ RUNTIME_LIMIT_EXCEEDED: 'RUNTIME_LIMIT_EXCEEDED',
25
+ };
26
+ /**
27
+ * Base error class for all Rill errors.
28
+ * Provides structured data for host applications to format as needed.
29
+ */
30
+ export class RillError extends Error {
31
+ code;
32
+ location;
33
+ context;
34
+ constructor(data) {
35
+ const locationStr = data.location
36
+ ? ` at ${data.location.line}:${data.location.column}`
37
+ : '';
38
+ super(`${data.message}${locationStr}`);
39
+ this.name = 'RillError';
40
+ this.code = data.code;
41
+ this.location = data.location;
42
+ this.context = data.context;
43
+ }
44
+ /** Get structured error data for custom formatting */
45
+ toData() {
46
+ return {
47
+ code: this.code,
48
+ message: this.message.replace(/ at \d+:\d+$/, ''), // Strip location suffix
49
+ location: this.location,
50
+ context: this.context,
51
+ };
52
+ }
53
+ /** Format error for display (can be overridden by host) */
54
+ format(formatter) {
55
+ if (formatter)
56
+ return formatter(this.toData());
57
+ return this.message;
58
+ }
59
+ }
60
+ /** Parse-time errors */
61
+ export class ParseError extends RillError {
62
+ constructor(message, location, context) {
63
+ super({
64
+ code: RILL_ERROR_CODES.PARSE_INVALID_SYNTAX,
65
+ message,
66
+ location,
67
+ context,
68
+ });
69
+ this.name = 'ParseError';
70
+ }
71
+ }
72
+ /** Runtime execution errors */
73
+ export class RuntimeError extends RillError {
74
+ constructor(code, message, location, context) {
75
+ super({ code, message, location, context });
76
+ this.name = 'RuntimeError';
77
+ }
78
+ /** Create from an AST node */
79
+ static fromNode(code, message, node, context) {
80
+ return new RuntimeError(code, message, node?.span.start, context);
81
+ }
82
+ }
83
+ /** Timeout errors */
84
+ export class TimeoutError extends RuntimeError {
85
+ functionName;
86
+ timeoutMs;
87
+ constructor(functionName, timeoutMs, location) {
88
+ super(RILL_ERROR_CODES.RUNTIME_TIMEOUT, `Function '${functionName}' timed out after ${timeoutMs}ms`, location, { functionName, timeoutMs });
89
+ this.name = 'TimeoutError';
90
+ this.functionName = functionName;
91
+ this.timeoutMs = timeoutMs;
92
+ }
93
+ }
94
+ /** Auto-exception errors (when $_ matches a pattern) */
95
+ export class AutoExceptionError extends RuntimeError {
96
+ pattern;
97
+ matchedValue;
98
+ constructor(pattern, matchedValue, location) {
99
+ super(RILL_ERROR_CODES.RUNTIME_AUTO_EXCEPTION, `Auto-exception triggered: pattern '${pattern}' matched`, location, { pattern, matchedValue });
100
+ this.name = 'AutoExceptionError';
101
+ this.pattern = pattern;
102
+ this.matchedValue = matchedValue;
103
+ }
104
+ }
105
+ /** Abort errors (when execution is cancelled via AbortSignal) */
106
+ export class AbortError extends RuntimeError {
107
+ constructor(location) {
108
+ super(RILL_ERROR_CODES.RUNTIME_ABORTED, 'Execution aborted', location, {});
109
+ this.name = 'AbortError';
110
+ }
111
+ }
112
+ // ============================================================
113
+ // TOKEN TYPES
114
+ // ============================================================
115
+ export const TOKEN_TYPES = {
116
+ // Literals
117
+ STRING: 'STRING',
118
+ NUMBER: 'NUMBER',
119
+ TRUE: 'TRUE',
120
+ FALSE: 'FALSE',
121
+ // Identifiers
122
+ IDENTIFIER: 'IDENTIFIER',
123
+ // Variables
124
+ DOLLAR: 'DOLLAR', // $
125
+ PIPE_VAR: 'PIPE_VAR', // $ (lone dollar sign)
126
+ // Operators
127
+ ARROW: 'ARROW', // ->
128
+ CAPTURE_ARROW: 'CAPTURE_ARROW', // :>
129
+ DOT: 'DOT', // .
130
+ QUESTION: 'QUESTION', // ?
131
+ AT: 'AT', // @
132
+ CARET: 'CARET', // ^ (annotation prefix)
133
+ COLON: 'COLON', // :
134
+ DOUBLE_COLON: 'DOUBLE_COLON', // :: (namespace separator)
135
+ COMMA: 'COMMA', // ,
136
+ // Boolean operators
137
+ BANG: 'BANG', // !
138
+ AND: 'AND', // &&
139
+ OR: 'OR', // ||
140
+ // Null-coalescing and existence
141
+ NULLISH_COALESCE: 'NULLISH_COALESCE', // ??
142
+ DOT_QUESTION: 'DOT_QUESTION', // .?
143
+ AMPERSAND: 'AMPERSAND', // &
144
+ // Assignment
145
+ ASSIGN: 'ASSIGN', // =
146
+ // Comparison operators
147
+ EQ: 'EQ', // ==
148
+ NE: 'NE', // !=
149
+ LT: 'LT', // <
150
+ GT: 'GT', // >
151
+ LE: 'LE', // <=
152
+ GE: 'GE', // >=
153
+ // Extraction operators
154
+ STAR_LT: 'STAR_LT', // *< (destructure)
155
+ SLASH_LT: 'SLASH_LT', // /< (slice)
156
+ UNDERSCORE: 'UNDERSCORE', // _ (skip in destructure)
157
+ // Arithmetic operators
158
+ PIPE_BAR: 'PIPE_BAR', // |
159
+ PLUS: 'PLUS', // +
160
+ MINUS: 'MINUS', // -
161
+ STAR: 'STAR', // *
162
+ SLASH: 'SLASH', // /
163
+ PERCENT: 'PERCENT', // %
164
+ // Delimiters
165
+ LPAREN: 'LPAREN', // (
166
+ RPAREN: 'RPAREN', // )
167
+ LBRACE: 'LBRACE', // {
168
+ RBRACE: 'RBRACE', // }
169
+ LBRACKET: 'LBRACKET', // [
170
+ RBRACKET: 'RBRACKET', // ]
171
+ // Keywords
172
+ BREAK: 'BREAK',
173
+ RETURN: 'RETURN',
174
+ EACH: 'EACH',
175
+ MAP: 'MAP',
176
+ FOLD: 'FOLD',
177
+ FILTER: 'FILTER',
178
+ // Frontmatter
179
+ FRONTMATTER_DELIM: 'FRONTMATTER_DELIM', // ---
180
+ // Heredoc
181
+ HEREDOC_START: 'HEREDOC_START', // <<DELIMITER
182
+ HEREDOC_BODY: 'HEREDOC_BODY',
183
+ HEREDOC_END: 'HEREDOC_END',
184
+ // Special
185
+ NEWLINE: 'NEWLINE',
186
+ COMMENT: 'COMMENT',
187
+ EOF: 'EOF',
188
+ };
189
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ # rill Documentation
2
+
3
+ *Pipe-based scripting for workflow orchestration*
4
+
5
+ > **Experimental (v0.1.0).** Active development. Breaking changes until v1.0.
6
+
7
+ ## Quick Links
8
+
9
+ | Document | Description |
10
+ |----------|-------------|
11
+ | [Guide](01_guide.md) | Beginner-friendly introduction to rill |
12
+ | [Reference](11_reference.md) | Core language specification |
13
+ | [Examples](12_examples.md) | Workflow patterns and use cases |
14
+
15
+ ## Language Topics
16
+
17
+ | Topic | Description |
18
+ |-------|-------------|
19
+ | [Types](02_types.md) | Primitives, tuples, dicts, type assertions |
20
+ | [Variables](03_variables.md) | Declaration, scope rules, `$` binding |
21
+ | [Control Flow](05_control-flow.md) | Conditionals, loops, break/return |
22
+ | [Operators](04_operators.md) | Arithmetic, comparison, spread, extraction |
23
+ | [Closures](06_closures.md) | Late binding, dict-bound closures |
24
+
25
+ ## Data & Collections
26
+
27
+ | Topic | Description |
28
+ |-------|-------------|
29
+ | [Collections](07_collections.md) | `each`, `map`, `filter`, `fold` operators |
30
+ | [Iterators](08_iterators.md) | Lazy sequences with `range`, `repeat`, `.first()` |
31
+ | [Strings](09_strings.md) | String methods for text manipulation |
32
+ | [Parsing](10_parsing.md) | Extract structured data from text and LLM output |
33
+
34
+ ## Integration
35
+
36
+ | Topic | Description |
37
+ |-------|-------------|
38
+ | [Host Integration](14_host-integration.md) | Embedding rill in applications |
39
+ | [Modules](13_modules.md) | Convention for host-provided module systems |
40
+
41
+ ## Grammar
42
+
43
+ The formal EBNF grammar is in [grammar.ebnf](15_grammar.ebnf).
44
+
45
+ ## Style
46
+
47
+ | Topic | Description |
48
+ |-------|-------------|
49
+ | [Conventions](16_conventions.md) | Naming, idioms, best practices |
50
+
51
+ ## Learning Path
52
+
53
+ 1. **New to rill?** Start with the [Guide](01_guide.md) for core concepts
54
+ 2. **Building workflows?** See [Examples](12_examples.md) for patterns
55
+ 3. **Need specifics?** Check the [Reference](11_reference.md) for syntax details
56
+ 4. **Embedding rill?** Read [Host Integration](14_host-integration.md)
57
+
58
+ ## Design Principles
59
+
60
+ 1. **Pipes over assignment** — Data flows via `->`. No `=` operator.
61
+ 2. **Type-safe** — No implicit coercion. `"5" + 1` errors, not `"51"` or `6`.
62
+ 3. **No null/undefined** — Empty values are valid, but "no value" cannot be represented.
63
+ 4. **Value-based** — All copies are deep, all comparisons are by value.
64
+ 5. **Singular control flow** — No exceptions. Errors halt execution.
65
+ 6. **Vanilla language** — Host provides all domain functions.
@@ -0,0 +1,390 @@
1
+ # rill Getting Started Guide
2
+
3
+ *A beginner-friendly introduction to pipe-based scripting*
4
+
5
+ ## What is rill?
6
+
7
+ rill is a scripting language where data flows through pipes. Instead of assigning values to variables and then using them, you pipe data from one operation to the next.
8
+
9
+ ```rill
10
+ "hello" -> .len
11
+ # Result: 5
12
+ ```
13
+
14
+ rill is designed for orchestrating workflows—sequences of operations where each step transforms or acts on data from the previous step.
15
+
16
+ ## Your First Script
17
+
18
+ The simplest rill script is just a value:
19
+
20
+ ```rill
21
+ "Hello, world!"
22
+ ```
23
+
24
+ This evaluates to `"Hello, world!"`. The last value in a script is its result.
25
+
26
+ ## Pipes: The Core Concept
27
+
28
+ The `->` operator pipes a value to the next operation:
29
+
30
+ ```rill
31
+ "hello" -> .trim
32
+ # Result: "hello"
33
+
34
+ 42 -> ($ + 8)
35
+ # Result: 50
36
+ ```
37
+
38
+ The special variable `$` refers to the current piped value. Inside a pipe chain, `$` holds whatever was piped in.
39
+
40
+ When you write `.trim` without an explicit receiver, it's syntactic sugar for `$.trim()`. The method is called on the current pipe value. Parentheses can be omitted when a method takes no arguments.
41
+
42
+ ### Chaining Operations
43
+
44
+ Pipes chain naturally:
45
+
46
+ ```rill
47
+ " hello world " -> .trim -> .split(" ")
48
+ # Result: ["hello", "world"]
49
+ ```
50
+
51
+ Methods can also chain directly without `->`:
52
+
53
+ ```rill
54
+ " hello world ".trim.split(" ")
55
+ # Result: ["hello", "world"]
56
+ ```
57
+
58
+ Each `->` passes its left side to its right side. The result flows through the chain.
59
+
60
+ ## Variables
61
+
62
+ Capture values into named variables with `:> $name`:
63
+
64
+ ```rill
65
+ "hello" :> $greeting
66
+ $greeting -> .len :> $length
67
+ $length
68
+ # Result: 5
69
+ ```
70
+
71
+ Variables start with `$` and hold any value type.
72
+
73
+ ## Data Types
74
+
75
+ rill has seven value types:
76
+
77
+ | Type | Example |
78
+ |------|---------|
79
+ | String | `"hello"` |
80
+ | Number | `42`, `3.14`, `-7` |
81
+ | Boolean | `true`, `false` |
82
+ | List | `[1, 2, 3]` |
83
+ | Dict | `[name: "alice", age: 30]` |
84
+ | Tuple | `*[1, 2, 3]` |
85
+ | Closure | `\|x\|($x + 1)` |
86
+
87
+ ### Strings
88
+
89
+ Strings support interpolation with `{expression}`. Any valid expression works:
90
+
91
+ ```rill
92
+ "alice" :> $name
93
+ 3 :> $a
94
+ 5 :> $b
95
+ 10 :> $count
96
+ true :> $ok
97
+ "Hello, {$name}!" # Variable interpolation
98
+ "sum: {$a + $b}" # Arithmetic
99
+ "valid: {$count > 0}" # Comparison
100
+ "status: {$ok ? \"yes\" ! \"no\"}" # Conditional
101
+ "upper: {$name -> .upper}" # Method chain
102
+ ```
103
+
104
+ Use `{{` and `}}` for literal braces:
105
+
106
+ ```rill
107
+ "JSON: {{\"key\": \"value\"}}" # Produces: JSON: {"key": "value"}
108
+ ```
109
+
110
+ Multiline strings use heredoc syntax (also supports interpolation):
111
+
112
+ ```rill
113
+ "World" :> $name
114
+ <<EOF
115
+ Hello, {$name}!
116
+ Line two
117
+ EOF
118
+ ```
119
+
120
+ ### Lists and Dicts
121
+
122
+ Lists hold ordered values:
123
+
124
+ ```rill
125
+ [1, 2, 3] :> $nums
126
+ $nums[0] # 1
127
+ $nums[-1] # 3 (last element)
128
+ $nums -> .len # 3
129
+ ```
130
+
131
+ Dicts hold key-value pairs:
132
+
133
+ ```rill
134
+ [name: "alice", age: 30] :> $person
135
+ $person.name # "alice"
136
+ $person.age # 30
137
+ ```
138
+
139
+ ## Methods
140
+
141
+ Methods are called with `.name()` syntax. The pipe value becomes the implicit first argument:
142
+
143
+ ```rill
144
+ "hello world" -> .split(" ")
145
+ # Result: ["hello", "world"]
146
+
147
+ "hello" -> .contains("ell")
148
+ # Result: true
149
+
150
+ [1, 2, 3] -> map |x|($x * 2)
151
+ # Result: [2, 4, 6]
152
+ ```
153
+
154
+ Common string methods: `.len`, `.trim`, `.split()`, `.contains()`, `.match()`, `.is_match()`, `.lower`, `.upper`, `.replace()`, `.replace_all()`
155
+
156
+ Common list operations: `.len`, `.head`, `.tail`, `.at()`, `.join()`, `map $fn`, `filter { }`
157
+
158
+ ## Conditionals
159
+
160
+ Use `?` for if-else decisions:
161
+
162
+ ```rill
163
+ # condition ? then-branch ! else-branch
164
+ true ? "yes" ! "no"
165
+ # Result: "yes"
166
+
167
+ 5 -> ($ > 3) ? "big" ! "small"
168
+ # Result: "big"
169
+ ```
170
+
171
+ The else branch (`! ...`) is optional:
172
+
173
+ ```rill
174
+ # Only runs then-branch if true
175
+ true ? "executed"
176
+ ```
177
+
178
+ ### Piped Conditionals
179
+
180
+ When you pipe into `?`, the pipe value becomes the condition:
181
+
182
+ ```rill
183
+ "hello" -> .contains("ell") ? "found it"
184
+ # Result: "found it"
185
+
186
+ "" -> .empty ? "nothing here" ! "has content"
187
+ # Result: "nothing here"
188
+ ```
189
+
190
+ ## Loops
191
+
192
+ ### For-Each Loop
193
+
194
+ Iterate over a list with `each { body }`:
195
+
196
+ ```rill
197
+ [1, 2, 3] -> each { $ * 2 }
198
+ # Result: [2, 4, 6]
199
+ ```
200
+
201
+ Inside the loop body, `$` is the current element. The loop collects all body results into a new list.
202
+
203
+ ### While Loop
204
+
205
+ When the left side of `@` is a boolean, it's a while loop. Use `$` as the accumulator:
206
+
207
+ ```rill
208
+ 0 -> ($ < 5) @ { $ + 1 }
209
+ # Result: 5
210
+ ```
211
+
212
+ The body's result becomes the next iteration's `$`. The loop exits when the condition becomes false.
213
+
214
+ **Note:** Variables created inside the loop body exist only within that iteration (block scoping). Use `$` for accumulation.
215
+
216
+ ### Breaking Out
217
+
218
+ Use `break` to exit a loop early:
219
+
220
+ ```rill
221
+ [1, 2, 3, 4, 5] -> each {
222
+ ($ == 3) ? break
223
+ $
224
+ }
225
+ # Result: 3
226
+ ```
227
+
228
+ ## Closures (Functions)
229
+
230
+ Define reusable logic with closure syntax `|params| body`. See [Closures](06_closures.md) for advanced patterns including late binding and dict-bound closures.
231
+
232
+ ```rill
233
+ |x|($x * 2) :> $double
234
+
235
+ 5 -> $double()
236
+ # Result: 10
237
+
238
+ [1, 2, 3] -> map $double
239
+ # Result: [2, 4, 6]
240
+ ```
241
+
242
+ ### Multiple Parameters
243
+
244
+ ```rill
245
+ |a, b|($a + $b) :> $add
246
+
247
+ $add(3, 4)
248
+ # Result: 7
249
+ ```
250
+
251
+ ### Type Annotations
252
+
253
+ Optional type hints help catch errors:
254
+
255
+ ```rill
256
+ |name: string, age: number| "Name: {$name}, Age: {$age}"
257
+ ```
258
+
259
+ ## Property Access
260
+
261
+ Access dict fields and list indices:
262
+
263
+ ```rill
264
+ [name: "alice", scores: [85, 92, 78]] :> $data
265
+
266
+ $data.name # "alice"
267
+ $data.scores[0] # 85
268
+ $data.scores[-1] # 78 (last)
269
+ ```
270
+
271
+ ### Safe Access
272
+
273
+ Use `??` for default values when a field might be missing:
274
+
275
+ ```rill
276
+ $data.nickname ?? "anonymous"
277
+ # Result: "anonymous" (if no nickname field)
278
+ ```
279
+
280
+ Use `.?` to check existence:
281
+
282
+ ```rill
283
+ $data.?nickname # false
284
+ $data.?name # true
285
+ ```
286
+
287
+ ## Blocks
288
+
289
+ Group multiple statements in braces. The last value is the block's result:
290
+
291
+ ```rill
292
+ {
293
+ "hello" :> $greeting
294
+ $greeting -> .upper :> $shouted
295
+ "{$shouted}!"
296
+ }
297
+ # Result: "HELLO!"
298
+ ```
299
+
300
+ Use `return` to exit a block early:
301
+
302
+ ```rill
303
+ {
304
+ 5 :> $x
305
+ ($x > 3) ? ("big" -> return)
306
+ "small"
307
+ }
308
+ # Result: "big"
309
+ ```
310
+
311
+ ## Annotations
312
+
313
+ Annotations modify how statements execute. The most common is `limit` for loops:
314
+
315
+ ```rill
316
+ # Limit loop to 100 iterations max ($ flows through as accumulator)
317
+ ^(limit: 100) false -> ($ == false) @ {
318
+ check_status()
319
+ }
320
+ ```
321
+
322
+ Without a limit, while loops default to 10,000 max iterations.
323
+
324
+ ## Putting It Together
325
+
326
+ Here's a complete example that processes a list of names:
327
+
328
+ ```rill
329
+ ["alice", "bob", "charlie"] :> $names
330
+ $names -> map |name| { "{$name}: {$name -> .len} chars" } :> $descriptions
331
+ $descriptions -> .join(", ")
332
+ ```
333
+
334
+ ## Key Differences from Other Languages
335
+
336
+ 1. **No `=` assignment** — Use `->` to pipe values into variables
337
+ 2. **No null/undefined** — Empty strings and lists are valid; "no value" doesn't exist
338
+ 3. **No exceptions** — Errors halt execution; use conditionals for error handling
339
+ 4. **Immutable types** — Once a variable holds a string, it always holds strings
340
+ 5. **Value semantics** — All comparisons are by value, all copies are deep
341
+
342
+ ## Next Steps
343
+
344
+ - [Reference](11_reference.md) — Complete language specification
345
+ - [Closures](06_closures.md) — Late binding, dict-bound, and invocation patterns
346
+ - [Collections](07_collections.md) — `each`, `map`, `filter`, `fold` operators
347
+ - [Examples](12_examples.md) — Workflow patterns
348
+
349
+ ## Quick Reference Card
350
+
351
+ ```text
352
+ # Pipes
353
+ value -> operation # pipe value to operation
354
+ value :> $var # capture into variable
355
+ $ # current pipe value
356
+
357
+ # Types
358
+ "string" # string
359
+ 42, 3.14 # number
360
+ true, false # boolean
361
+ [1, 2, 3] # list
362
+ [a: 1, b: 2] # dict
363
+ |x|($x + 1) # closure
364
+
365
+ # Conditionals
366
+ cond ? then ! else # if-else
367
+ value -> ? then # piped if (value is condition)
368
+
369
+ # Loops
370
+ list -> each { body } # for-each
371
+ (bool) @ { body } # while
372
+ @ { body } ? cond # do-while
373
+ break # exit loop
374
+ return # exit block
375
+
376
+ # Collection Operators
377
+ -> each { body } # sequential, all results
378
+ -> each(init) { $@ + $ } # with accumulator
379
+ -> map { body } # parallel, all results
380
+ -> fold(init) { $@ + $ } # reduction, final only
381
+
382
+ # Access
383
+ $data.field # dict field
384
+ $list[0] # list index
385
+ $data.field ?? default # with default
386
+ $data.?field # existence check
387
+
388
+ # Annotations
389
+ ^(limit: 100) statement # set iteration limit
390
+ ```