@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.
- package/LICENSE +21 -0
- package/README.md +187 -0
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +69 -0
- package/dist/cli.js.map +1 -0
- package/dist/demo.d.ts +6 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +121 -0
- package/dist/demo.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer/errors.d.ts +9 -0
- package/dist/lexer/errors.d.ts.map +1 -0
- package/dist/lexer/errors.js +12 -0
- package/dist/lexer/errors.js.map +1 -0
- package/dist/lexer/helpers.d.ts +14 -0
- package/dist/lexer/helpers.d.ts.map +1 -0
- package/dist/lexer/helpers.js +30 -0
- package/dist/lexer/helpers.js.map +1 -0
- package/dist/lexer/index.d.ts +8 -0
- package/dist/lexer/index.d.ts.map +1 -0
- package/dist/lexer/index.js +8 -0
- package/dist/lexer/index.js.map +1 -0
- package/dist/lexer/operators.d.ts +11 -0
- package/dist/lexer/operators.d.ts.map +1 -0
- package/dist/lexer/operators.js +58 -0
- package/dist/lexer/operators.js.map +1 -0
- package/dist/lexer/readers.d.ts +12 -0
- package/dist/lexer/readers.d.ts.map +1 -0
- package/dist/lexer/readers.js +144 -0
- package/dist/lexer/readers.js.map +1 -0
- package/dist/lexer/state.d.ts +18 -0
- package/dist/lexer/state.d.ts.map +1 -0
- package/dist/lexer/state.js +37 -0
- package/dist/lexer/state.js.map +1 -0
- package/dist/lexer/tokenizer.d.ts +9 -0
- package/dist/lexer/tokenizer.d.ts.map +1 -0
- package/dist/lexer/tokenizer.js +100 -0
- package/dist/lexer/tokenizer.js.map +1 -0
- package/dist/lexer.d.ts +19 -0
- package/dist/lexer.d.ts.map +1 -0
- package/dist/lexer.js +344 -0
- package/dist/lexer.js.map +1 -0
- package/dist/parser/arithmetic.d.ts +16 -0
- package/dist/parser/arithmetic.d.ts.map +1 -0
- package/dist/parser/arithmetic.js +128 -0
- package/dist/parser/arithmetic.js.map +1 -0
- package/dist/parser/boolean.d.ts +15 -0
- package/dist/parser/boolean.d.ts.map +1 -0
- package/dist/parser/boolean.js +20 -0
- package/dist/parser/boolean.js.map +1 -0
- package/dist/parser/control-flow.d.ts +56 -0
- package/dist/parser/control-flow.d.ts.map +1 -0
- package/dist/parser/control-flow.js +167 -0
- package/dist/parser/control-flow.js.map +1 -0
- package/dist/parser/expressions.d.ts +23 -0
- package/dist/parser/expressions.d.ts.map +1 -0
- package/dist/parser/expressions.js +950 -0
- package/dist/parser/expressions.js.map +1 -0
- package/dist/parser/extraction.d.ts +48 -0
- package/dist/parser/extraction.d.ts.map +1 -0
- package/dist/parser/extraction.js +279 -0
- package/dist/parser/extraction.js.map +1 -0
- package/dist/parser/functions.d.ts +20 -0
- package/dist/parser/functions.d.ts.map +1 -0
- package/dist/parser/functions.js +96 -0
- package/dist/parser/functions.js.map +1 -0
- package/dist/parser/helpers.d.ts +94 -0
- package/dist/parser/helpers.d.ts.map +1 -0
- package/dist/parser/helpers.js +225 -0
- package/dist/parser/helpers.js.map +1 -0
- package/dist/parser/index.d.ts +49 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +73 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/literals.d.ts +37 -0
- package/dist/parser/literals.d.ts.map +1 -0
- package/dist/parser/literals.js +373 -0
- package/dist/parser/literals.js.map +1 -0
- package/dist/parser/parser-collect.d.ts +16 -0
- package/dist/parser/parser-collect.d.ts.map +1 -0
- package/dist/parser/parser-collect.js +125 -0
- package/dist/parser/parser-collect.js.map +1 -0
- package/dist/parser/parser-control.d.ts +20 -0
- package/dist/parser/parser-control.d.ts.map +1 -0
- package/dist/parser/parser-control.js +120 -0
- package/dist/parser/parser-control.js.map +1 -0
- package/dist/parser/parser-expr.d.ts +37 -0
- package/dist/parser/parser-expr.d.ts.map +1 -0
- package/dist/parser/parser-expr.js +639 -0
- package/dist/parser/parser-expr.js.map +1 -0
- package/dist/parser/parser-extract.d.ts +17 -0
- package/dist/parser/parser-extract.d.ts.map +1 -0
- package/dist/parser/parser-extract.js +222 -0
- package/dist/parser/parser-extract.js.map +1 -0
- package/dist/parser/parser-functions.d.ts +21 -0
- package/dist/parser/parser-functions.d.ts.map +1 -0
- package/dist/parser/parser-functions.js +155 -0
- package/dist/parser/parser-functions.js.map +1 -0
- package/dist/parser/parser-literals.d.ts +22 -0
- package/dist/parser/parser-literals.d.ts.map +1 -0
- package/dist/parser/parser-literals.js +288 -0
- package/dist/parser/parser-literals.js.map +1 -0
- package/dist/parser/parser-script.d.ts +21 -0
- package/dist/parser/parser-script.d.ts.map +1 -0
- package/dist/parser/parser-script.js +174 -0
- package/dist/parser/parser-script.js.map +1 -0
- package/dist/parser/parser-variables.d.ts +20 -0
- package/dist/parser/parser-variables.d.ts.map +1 -0
- package/dist/parser/parser-variables.js +146 -0
- package/dist/parser/parser-variables.js.map +1 -0
- package/dist/parser/parser.d.ts +49 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +54 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/script.d.ts +14 -0
- package/dist/parser/script.d.ts.map +1 -0
- package/dist/parser/script.js +196 -0
- package/dist/parser/script.js.map +1 -0
- package/dist/parser/state.d.ts +40 -0
- package/dist/parser/state.d.ts.map +1 -0
- package/dist/parser/state.js +129 -0
- package/dist/parser/state.js.map +1 -0
- package/dist/parser/variables.d.ts +10 -0
- package/dist/parser/variables.d.ts.map +1 -0
- package/dist/parser/variables.js +215 -0
- package/dist/parser/variables.js.map +1 -0
- package/dist/runtime/ast-equals.d.ts +13 -0
- package/dist/runtime/ast-equals.d.ts.map +1 -0
- package/dist/runtime/ast-equals.js +447 -0
- package/dist/runtime/ast-equals.js.map +1 -0
- package/dist/runtime/builtins.d.ts +13 -0
- package/dist/runtime/builtins.d.ts.map +1 -0
- package/dist/runtime/builtins.js +180 -0
- package/dist/runtime/builtins.js.map +1 -0
- package/dist/runtime/callable.d.ts +88 -0
- package/dist/runtime/callable.d.ts.map +1 -0
- package/dist/runtime/callable.js +98 -0
- package/dist/runtime/callable.js.map +1 -0
- package/dist/runtime/context.d.ts +13 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.js +73 -0
- package/dist/runtime/context.js.map +1 -0
- package/dist/runtime/core/callable.d.ts +171 -0
- package/dist/runtime/core/callable.d.ts.map +1 -0
- package/dist/runtime/core/callable.js +246 -0
- package/dist/runtime/core/callable.js.map +1 -0
- package/dist/runtime/core/context.d.ts +29 -0
- package/dist/runtime/core/context.d.ts.map +1 -0
- package/dist/runtime/core/context.js +154 -0
- package/dist/runtime/core/context.js.map +1 -0
- package/dist/runtime/core/equals.d.ts +9 -0
- package/dist/runtime/core/equals.d.ts.map +1 -0
- package/dist/runtime/core/equals.js +381 -0
- package/dist/runtime/core/equals.js.map +1 -0
- package/dist/runtime/core/eval/base.d.ts +65 -0
- package/dist/runtime/core/eval/base.d.ts.map +1 -0
- package/dist/runtime/core/eval/base.js +112 -0
- package/dist/runtime/core/eval/base.js.map +1 -0
- package/dist/runtime/core/eval/evaluator.d.ts +47 -0
- package/dist/runtime/core/eval/evaluator.d.ts.map +1 -0
- package/dist/runtime/core/eval/evaluator.js +73 -0
- package/dist/runtime/core/eval/evaluator.js.map +1 -0
- package/dist/runtime/core/eval/index.d.ts +57 -0
- package/dist/runtime/core/eval/index.d.ts.map +1 -0
- package/dist/runtime/core/eval/index.js +95 -0
- package/dist/runtime/core/eval/index.js.map +1 -0
- package/dist/runtime/core/eval/mixins/annotations.d.ts +19 -0
- package/dist/runtime/core/eval/mixins/annotations.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/annotations.js +146 -0
- package/dist/runtime/core/eval/mixins/annotations.js.map +1 -0
- package/dist/runtime/core/eval/mixins/closures.d.ts +49 -0
- package/dist/runtime/core/eval/mixins/closures.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/closures.js +479 -0
- package/dist/runtime/core/eval/mixins/closures.js.map +1 -0
- package/dist/runtime/core/eval/mixins/collections.d.ts +24 -0
- package/dist/runtime/core/eval/mixins/collections.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/collections.js +466 -0
- package/dist/runtime/core/eval/mixins/collections.js.map +1 -0
- package/dist/runtime/core/eval/mixins/control-flow.d.ts +27 -0
- package/dist/runtime/core/eval/mixins/control-flow.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/control-flow.js +369 -0
- package/dist/runtime/core/eval/mixins/control-flow.js.map +1 -0
- package/dist/runtime/core/eval/mixins/core.d.ts +24 -0
- package/dist/runtime/core/eval/mixins/core.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/core.js +335 -0
- package/dist/runtime/core/eval/mixins/core.js.map +1 -0
- package/dist/runtime/core/eval/mixins/expressions.d.ts +19 -0
- package/dist/runtime/core/eval/mixins/expressions.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/expressions.js +202 -0
- package/dist/runtime/core/eval/mixins/expressions.js.map +1 -0
- package/dist/runtime/core/eval/mixins/extraction.d.ts +10 -0
- package/dist/runtime/core/eval/mixins/extraction.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/extraction.js +250 -0
- package/dist/runtime/core/eval/mixins/extraction.js.map +1 -0
- package/dist/runtime/core/eval/mixins/literals.d.ts +23 -0
- package/dist/runtime/core/eval/mixins/literals.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/literals.js +180 -0
- package/dist/runtime/core/eval/mixins/literals.js.map +1 -0
- package/dist/runtime/core/eval/mixins/types.d.ts +20 -0
- package/dist/runtime/core/eval/mixins/types.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/types.js +109 -0
- package/dist/runtime/core/eval/mixins/types.js.map +1 -0
- package/dist/runtime/core/eval/mixins/variables.d.ts +34 -0
- package/dist/runtime/core/eval/mixins/variables.d.ts.map +1 -0
- package/dist/runtime/core/eval/mixins/variables.js +247 -0
- package/dist/runtime/core/eval/mixins/variables.js.map +1 -0
- package/dist/runtime/core/eval/types.d.ts +41 -0
- package/dist/runtime/core/eval/types.d.ts.map +1 -0
- package/dist/runtime/core/eval/types.js +10 -0
- package/dist/runtime/core/eval/types.js.map +1 -0
- package/dist/runtime/core/evaluate.d.ts +42 -0
- package/dist/runtime/core/evaluate.d.ts.map +1 -0
- package/dist/runtime/core/evaluate.debug.js +1251 -0
- package/dist/runtime/core/evaluate.js +1913 -0
- package/dist/runtime/core/evaluate.js.map +1 -0
- package/dist/runtime/core/execute.d.ts +26 -0
- package/dist/runtime/core/execute.d.ts.map +1 -0
- package/dist/runtime/core/execute.js +177 -0
- package/dist/runtime/core/execute.js.map +1 -0
- package/dist/runtime/core/signals.d.ts +19 -0
- package/dist/runtime/core/signals.d.ts.map +1 -0
- package/dist/runtime/core/signals.js +26 -0
- package/dist/runtime/core/signals.js.map +1 -0
- package/dist/runtime/core/types.d.ts +177 -0
- package/dist/runtime/core/types.d.ts.map +1 -0
- package/dist/runtime/core/types.js +50 -0
- package/dist/runtime/core/types.js.map +1 -0
- package/dist/runtime/core/values.d.ts +66 -0
- package/dist/runtime/core/values.d.ts.map +1 -0
- package/dist/runtime/core/values.js +240 -0
- package/dist/runtime/core/values.js.map +1 -0
- package/dist/runtime/evaluate.d.ts +32 -0
- package/dist/runtime/evaluate.d.ts.map +1 -0
- package/dist/runtime/evaluate.js +1111 -0
- package/dist/runtime/evaluate.js.map +1 -0
- package/dist/runtime/execute.d.ts +26 -0
- package/dist/runtime/execute.d.ts.map +1 -0
- package/dist/runtime/execute.js +121 -0
- package/dist/runtime/execute.js.map +1 -0
- package/dist/runtime/ext/builtins.d.ts +16 -0
- package/dist/runtime/ext/builtins.d.ts.map +1 -0
- package/dist/runtime/ext/builtins.js +528 -0
- package/dist/runtime/ext/builtins.js.map +1 -0
- package/dist/runtime/ext/content-parser.d.ts +83 -0
- package/dist/runtime/ext/content-parser.d.ts.map +1 -0
- package/dist/runtime/ext/content-parser.js +536 -0
- package/dist/runtime/ext/content-parser.js.map +1 -0
- package/dist/runtime/index.d.ts +28 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +34 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/signals.d.ts +19 -0
- package/dist/runtime/signals.d.ts.map +1 -0
- package/dist/runtime/signals.js +26 -0
- package/dist/runtime/signals.js.map +1 -0
- package/dist/runtime/types.d.ts +169 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +50 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/values.d.ts +50 -0
- package/dist/runtime/values.d.ts.map +1 -0
- package/dist/runtime/values.js +209 -0
- package/dist/runtime/values.js.map +1 -0
- package/dist/runtime.d.ts +254 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2014 -0
- package/dist/runtime.js.map +1 -0
- package/dist/types.d.ts +752 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +189 -0
- package/dist/types.js.map +1 -0
- package/docs/00_INDEX.md +65 -0
- package/docs/01_guide.md +390 -0
- package/docs/02_types.md +399 -0
- package/docs/03_variables.md +314 -0
- package/docs/04_operators.md +551 -0
- package/docs/05_control-flow.md +350 -0
- package/docs/06_closures.md +353 -0
- package/docs/07_collections.md +686 -0
- package/docs/08_iterators.md +330 -0
- package/docs/09_strings.md +205 -0
- package/docs/10_parsing.md +366 -0
- package/docs/11_reference.md +350 -0
- package/docs/12_examples.md +771 -0
- package/docs/13_modules.md +519 -0
- package/docs/14_host-integration.md +826 -0
- package/docs/15_grammar.ebnf +693 -0
- package/docs/16_conventions.md +696 -0
- package/docs/99_llm-reference.txt +300 -0
- package/docs/assets/logo.png +0 -0
- 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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"}
|
package/docs/00_INDEX.md
ADDED
|
@@ -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.
|
package/docs/01_guide.md
ADDED
|
@@ -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
|
+
```
|