@forthix/forthic 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/forthic/interpreter.js +2 -0
- package/dist/cjs/forthic/interpreter.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/array_module.d.ts +17 -7
- package/dist/cjs/forthic/modules/standard/array_module.js +326 -78
- package/dist/cjs/forthic/modules/standard/array_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/boolean_module.d.ts +5 -6
- package/dist/cjs/forthic/modules/standard/boolean_module.js +43 -60
- package/dist/cjs/forthic/modules/standard/boolean_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/core_module.d.ts +11 -14
- package/dist/cjs/forthic/modules/standard/core_module.js +91 -97
- package/dist/cjs/forthic/modules/standard/core_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/datetime_module.d.ts +4 -2
- package/dist/cjs/forthic/modules/standard/datetime_module.js +39 -20
- package/dist/cjs/forthic/modules/standard/datetime_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/json_module.d.ts +0 -1
- package/dist/cjs/forthic/modules/standard/json_module.js +0 -15
- package/dist/cjs/forthic/modules/standard/json_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/math_module.d.ts +7 -12
- package/dist/cjs/forthic/modules/standard/math_module.js +76 -137
- package/dist/cjs/forthic/modules/standard/math_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/record_module.d.ts +15 -4
- package/dist/cjs/forthic/modules/standard/record_module.js +311 -45
- package/dist/cjs/forthic/modules/standard/record_module.js.map +1 -1
- package/dist/cjs/forthic/modules/standard/string_module.d.ts +14 -6
- package/dist/cjs/forthic/modules/standard/string_module.js +183 -60
- package/dist/cjs/forthic/modules/standard/string_module.js.map +1 -1
- package/dist/cjs/forthic/tokenizer.js +29 -1
- package/dist/cjs/forthic/tokenizer.js.map +1 -1
- package/dist/esm/forthic/interpreter.js +2 -0
- package/dist/esm/forthic/interpreter.js.map +1 -1
- package/dist/esm/forthic/modules/standard/array_module.d.ts +17 -7
- package/dist/esm/forthic/modules/standard/array_module.js +293 -72
- package/dist/esm/forthic/modules/standard/array_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/boolean_module.d.ts +5 -6
- package/dist/esm/forthic/modules/standard/boolean_module.js +38 -54
- package/dist/esm/forthic/modules/standard/boolean_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/core_module.d.ts +11 -14
- package/dist/esm/forthic/modules/standard/core_module.js +76 -82
- package/dist/esm/forthic/modules/standard/core_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/datetime_module.d.ts +4 -2
- package/dist/esm/forthic/modules/standard/datetime_module.js +30 -17
- package/dist/esm/forthic/modules/standard/datetime_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/json_module.d.ts +0 -1
- package/dist/esm/forthic/modules/standard/json_module.js +0 -12
- package/dist/esm/forthic/modules/standard/json_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/math_module.d.ts +7 -12
- package/dist/esm/forthic/modules/standard/math_module.js +69 -117
- package/dist/esm/forthic/modules/standard/math_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/record_module.d.ts +15 -4
- package/dist/esm/forthic/modules/standard/record_module.js +292 -44
- package/dist/esm/forthic/modules/standard/record_module.js.map +1 -1
- package/dist/esm/forthic/modules/standard/string_module.d.ts +14 -6
- package/dist/esm/forthic/modules/standard/string_module.js +151 -54
- package/dist/esm/forthic/modules/standard/string_module.js.map +1 -1
- package/dist/esm/forthic/tokenizer.js +29 -1
- package/dist/esm/forthic/tokenizer.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,14 +19,13 @@ class CoreModule extends word_js_1.DecoratedModule {
|
|
|
19
19
|
Essential interpreter operations for stack manipulation, variables, control flow, and module system.
|
|
20
20
|
|
|
21
21
|
## Categories
|
|
22
|
-
- Stack:
|
|
22
|
+
- Stack: DROP, DUP, SWAP
|
|
23
23
|
- Variables: VARIABLES, !, @, !@
|
|
24
|
-
- Module:
|
|
25
|
-
- Execution:
|
|
26
|
-
- Control:
|
|
24
|
+
- Module: USE-MODULES
|
|
25
|
+
- Execution: RUN
|
|
26
|
+
- Control: NOP, DEFAULT, DEFAULT-RUN, NULL, IF, IF-RUN, WHEN
|
|
27
|
+
- Predicates: ARRAY?, NULL?, EMPTY?, STRING?, NUMBER?, RECORD?
|
|
27
28
|
- Options: ~> (converts array to WordOptions)
|
|
28
|
-
- Profiling: PROFILE-START, PROFILE-TIMESTAMP, PROFILE-END, PROFILE-DATA
|
|
29
|
-
- Logging: START-LOG, END-LOG
|
|
30
29
|
- String: INTERPOLATE, PRINT
|
|
31
30
|
- Debug: PEEK!, STACK!
|
|
32
31
|
|
|
@@ -71,7 +70,7 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
71
70
|
}
|
|
72
71
|
return variable;
|
|
73
72
|
}
|
|
74
|
-
async
|
|
73
|
+
async DROP(_a) {
|
|
75
74
|
// No return = push nothing
|
|
76
75
|
}
|
|
77
76
|
async DUP(a) {
|
|
@@ -137,22 +136,32 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
137
136
|
var_obj.set_value(value);
|
|
138
137
|
return var_obj.get_value();
|
|
139
138
|
}
|
|
140
|
-
async
|
|
139
|
+
async RUN(forthic) {
|
|
141
140
|
const string_location = this.interp.get_string_location();
|
|
142
|
-
if (
|
|
143
|
-
await this.interp.run(
|
|
141
|
+
if (forthic)
|
|
142
|
+
await this.interp.run(forthic, string_location);
|
|
144
143
|
}
|
|
145
|
-
async
|
|
146
|
-
|
|
144
|
+
async IF(bool, then_value, else_value) {
|
|
145
|
+
return bool ? then_value : else_value;
|
|
146
|
+
}
|
|
147
|
+
async IF_RUN(bool, then_forthic, else_forthic) {
|
|
148
|
+
const branch = bool ? then_forthic : else_forthic;
|
|
149
|
+
if (branch) {
|
|
150
|
+
const string_location = this.interp.get_string_location();
|
|
151
|
+
await this.interp.run(branch, string_location);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async WHEN(bool, forthic) {
|
|
155
|
+
if (bool && forthic) {
|
|
156
|
+
const string_location = this.interp.get_string_location();
|
|
157
|
+
await this.interp.run(forthic, string_location);
|
|
158
|
+
}
|
|
147
159
|
}
|
|
148
160
|
async USE_MODULES(names, options) {
|
|
149
161
|
if (!names)
|
|
150
162
|
return;
|
|
151
163
|
this.interp.use_modules(names, options);
|
|
152
164
|
}
|
|
153
|
-
async IDENTITY() {
|
|
154
|
-
// No-op
|
|
155
|
-
}
|
|
156
165
|
async NOP() {
|
|
157
166
|
// No-op
|
|
158
167
|
}
|
|
@@ -162,16 +171,39 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
162
171
|
async ["ARRAY?"](value) {
|
|
163
172
|
return value instanceof Array;
|
|
164
173
|
}
|
|
174
|
+
async ["NULL?"](value) {
|
|
175
|
+
return value === null || value === undefined;
|
|
176
|
+
}
|
|
177
|
+
async ["EMPTY?"](value) {
|
|
178
|
+
if (value === null || value === undefined)
|
|
179
|
+
return true;
|
|
180
|
+
if (typeof value === "string")
|
|
181
|
+
return value.length === 0;
|
|
182
|
+
if (Array.isArray(value))
|
|
183
|
+
return value.length === 0;
|
|
184
|
+
if (typeof value === "object")
|
|
185
|
+
return Object.keys(value).length === 0;
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
async ["STRING?"](value) {
|
|
189
|
+
return typeof value === "string";
|
|
190
|
+
}
|
|
191
|
+
async ["NUMBER?"](value) {
|
|
192
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
193
|
+
}
|
|
194
|
+
async ["RECORD?"](value) {
|
|
195
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
196
|
+
}
|
|
165
197
|
async DEFAULT(value, default_value) {
|
|
166
198
|
if (value === undefined || value === null || value === "") {
|
|
167
199
|
return default_value;
|
|
168
200
|
}
|
|
169
201
|
return value;
|
|
170
202
|
}
|
|
171
|
-
async
|
|
203
|
+
async DEFAULT_RUN(value, forthic) {
|
|
172
204
|
if (value === undefined || value === null || value === "") {
|
|
173
205
|
const string_location = this.interp.get_string_location();
|
|
174
|
-
await this.interp.run(
|
|
206
|
+
await this.interp.run(forthic, string_location);
|
|
175
207
|
return this.interp.stack_pop();
|
|
176
208
|
}
|
|
177
209
|
return value;
|
|
@@ -179,44 +211,6 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
179
211
|
async ["~>"](array) {
|
|
180
212
|
return new word_options_js_1.WordOptions(array);
|
|
181
213
|
}
|
|
182
|
-
async ["PROFILE-START"]() {
|
|
183
|
-
this.interp.start_profiling();
|
|
184
|
-
}
|
|
185
|
-
async ["PROFILE-END"]() {
|
|
186
|
-
this.interp.stop_profiling();
|
|
187
|
-
}
|
|
188
|
-
async ["PROFILE-TIMESTAMP"](label) {
|
|
189
|
-
this.interp.add_timestamp(label);
|
|
190
|
-
}
|
|
191
|
-
async ["PROFILE-DATA"]() {
|
|
192
|
-
const histogram = this.interp.word_histogram();
|
|
193
|
-
const timestamps = this.interp.profile_timestamps();
|
|
194
|
-
const result = {
|
|
195
|
-
word_counts: [],
|
|
196
|
-
timestamps: [],
|
|
197
|
-
};
|
|
198
|
-
histogram.forEach((val) => {
|
|
199
|
-
const rec = { word: val["word"], count: val["count"] };
|
|
200
|
-
result["word_counts"].push(rec);
|
|
201
|
-
});
|
|
202
|
-
let prev_time = 0.0;
|
|
203
|
-
timestamps.forEach((t) => {
|
|
204
|
-
const rec = {
|
|
205
|
-
label: t["label"],
|
|
206
|
-
time_ms: t["time_ms"],
|
|
207
|
-
delta: t["time_ms"] - prev_time,
|
|
208
|
-
};
|
|
209
|
-
prev_time = t["time_ms"];
|
|
210
|
-
result["timestamps"].push(rec);
|
|
211
|
-
});
|
|
212
|
-
return result;
|
|
213
|
-
}
|
|
214
|
-
async START_LOG() {
|
|
215
|
-
this.interp.startStream();
|
|
216
|
-
}
|
|
217
|
-
async END_LOG() {
|
|
218
|
-
this.interp.endStream();
|
|
219
|
-
}
|
|
220
214
|
async INTERPOLATE(string, options) {
|
|
221
215
|
const separator = options.separator ?? ", ";
|
|
222
216
|
const null_text = options.null_text ?? "null";
|
|
@@ -270,7 +264,7 @@ __decorate([
|
|
|
270
264
|
__metadata("design:type", Function),
|
|
271
265
|
__metadata("design:paramtypes", [Object]),
|
|
272
266
|
__metadata("design:returntype", Promise)
|
|
273
|
-
], CoreModule.prototype, "
|
|
267
|
+
], CoreModule.prototype, "DROP", null);
|
|
274
268
|
__decorate([
|
|
275
269
|
(0, word_js_1.ForthicWord)("( a:any -- a:any a:any )", "Duplicates top stack item"),
|
|
276
270
|
__metadata("design:type", Function),
|
|
@@ -320,29 +314,35 @@ __decorate([
|
|
|
320
314
|
__metadata("design:returntype", Promise)
|
|
321
315
|
], CoreModule.prototype, "!@", null);
|
|
322
316
|
__decorate([
|
|
323
|
-
(0, word_js_1.ForthicWord)("(
|
|
317
|
+
(0, word_js_1.ForthicWord)("( forthic:string -- ? )", "Run a Forthic string in the current context. Whatever the forthic produces is left on the stack.", "RUN"),
|
|
324
318
|
__metadata("design:type", Function),
|
|
325
319
|
__metadata("design:paramtypes", [String]),
|
|
326
320
|
__metadata("design:returntype", Promise)
|
|
327
|
-
], CoreModule.prototype, "
|
|
321
|
+
], CoreModule.prototype, "RUN", null);
|
|
328
322
|
__decorate([
|
|
329
|
-
(0, word_js_1.ForthicWord)("(
|
|
323
|
+
(0, word_js_1.ForthicWord)("( bool:boolean then_value:any else_value:any -- chosen:any )", "Pure value selection: push then_value if bool is truthy, else push else_value. For lazy code execution use IF-RUN; for one-sided side effects use WHEN."),
|
|
330
324
|
__metadata("design:type", Function),
|
|
331
|
-
__metadata("design:paramtypes", [
|
|
325
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
332
326
|
__metadata("design:returntype", Promise)
|
|
333
|
-
], CoreModule.prototype, "
|
|
327
|
+
], CoreModule.prototype, "IF", null);
|
|
334
328
|
__decorate([
|
|
335
|
-
(0, word_js_1.ForthicWord)("(
|
|
329
|
+
(0, word_js_1.ForthicWord)("( bool:boolean then_forthic:string else_forthic:string -- ? )", "Conditional code execution: if bool is truthy run then_forthic, otherwise run else_forthic. Branches are Forthic strings.", "IF-RUN"),
|
|
336
330
|
__metadata("design:type", Function),
|
|
337
|
-
__metadata("design:paramtypes", [
|
|
331
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
338
332
|
__metadata("design:returntype", Promise)
|
|
339
|
-
], CoreModule.prototype, "
|
|
333
|
+
], CoreModule.prototype, "IF_RUN", null);
|
|
340
334
|
__decorate([
|
|
341
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
335
|
+
(0, word_js_1.ForthicWord)("( bool:boolean forthic:string -- ? )", "If bool is truthy run forthic, otherwise do nothing. The forthic argument is always treated as code (executed in current context)."),
|
|
342
336
|
__metadata("design:type", Function),
|
|
343
|
-
__metadata("design:paramtypes", []),
|
|
337
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
338
|
+
__metadata("design:returntype", Promise)
|
|
339
|
+
], CoreModule.prototype, "WHEN", null);
|
|
340
|
+
__decorate([
|
|
341
|
+
(0, word_js_1.ForthicWord)("( names:string[] [options:WordOptions] -- )", "Imports modules by name", "USE-MODULES"),
|
|
342
|
+
__metadata("design:type", Function),
|
|
343
|
+
__metadata("design:paramtypes", [Array, Object]),
|
|
344
344
|
__metadata("design:returntype", Promise)
|
|
345
|
-
], CoreModule.prototype, "
|
|
345
|
+
], CoreModule.prototype, "USE_MODULES", null);
|
|
346
346
|
__decorate([
|
|
347
347
|
(0, word_js_1.ForthicWord)("( -- )", "Does nothing (no operation)"),
|
|
348
348
|
__metadata("design:type", Function),
|
|
@@ -362,59 +362,53 @@ __decorate([
|
|
|
362
362
|
__metadata("design:returntype", Promise)
|
|
363
363
|
], CoreModule.prototype, "ARRAY?", null);
|
|
364
364
|
__decorate([
|
|
365
|
-
(0, word_js_1.ForthicWord)("( value:any
|
|
366
|
-
__metadata("design:type", Function),
|
|
367
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
368
|
-
__metadata("design:returntype", Promise)
|
|
369
|
-
], CoreModule.prototype, "DEFAULT", null);
|
|
370
|
-
__decorate([
|
|
371
|
-
(0, word_js_1.ForthicWord)("( value:any default_forthic:string -- result:any )", "Returns value or executes Forthic if value is null/undefined/empty string"),
|
|
365
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is null or undefined"),
|
|
372
366
|
__metadata("design:type", Function),
|
|
373
|
-
__metadata("design:paramtypes", [Object
|
|
367
|
+
__metadata("design:paramtypes", [Object]),
|
|
374
368
|
__metadata("design:returntype", Promise)
|
|
375
|
-
], CoreModule.prototype, "
|
|
369
|
+
], CoreModule.prototype, "NULL?", null);
|
|
376
370
|
__decorate([
|
|
377
|
-
(0, word_js_1.ForthicWord)("(
|
|
371
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is null/undefined, an empty string, or a container (array/record) with no entries"),
|
|
378
372
|
__metadata("design:type", Function),
|
|
379
|
-
__metadata("design:paramtypes", [
|
|
373
|
+
__metadata("design:paramtypes", [Object]),
|
|
380
374
|
__metadata("design:returntype", Promise)
|
|
381
|
-
], CoreModule.prototype, "
|
|
375
|
+
], CoreModule.prototype, "EMPTY?", null);
|
|
382
376
|
__decorate([
|
|
383
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
377
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a string"),
|
|
384
378
|
__metadata("design:type", Function),
|
|
385
|
-
__metadata("design:paramtypes", []),
|
|
379
|
+
__metadata("design:paramtypes", [Object]),
|
|
386
380
|
__metadata("design:returntype", Promise)
|
|
387
|
-
], CoreModule.prototype, "
|
|
381
|
+
], CoreModule.prototype, "STRING?", null);
|
|
388
382
|
__decorate([
|
|
389
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
383
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a finite number"),
|
|
390
384
|
__metadata("design:type", Function),
|
|
391
|
-
__metadata("design:paramtypes", []),
|
|
385
|
+
__metadata("design:paramtypes", [Object]),
|
|
392
386
|
__metadata("design:returntype", Promise)
|
|
393
|
-
], CoreModule.prototype, "
|
|
387
|
+
], CoreModule.prototype, "NUMBER?", null);
|
|
394
388
|
__decorate([
|
|
395
|
-
(0, word_js_1.ForthicWord)("(
|
|
389
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a plain record (object that is not an array and not null)"),
|
|
396
390
|
__metadata("design:type", Function),
|
|
397
|
-
__metadata("design:paramtypes", [
|
|
391
|
+
__metadata("design:paramtypes", [Object]),
|
|
398
392
|
__metadata("design:returntype", Promise)
|
|
399
|
-
], CoreModule.prototype, "
|
|
393
|
+
], CoreModule.prototype, "RECORD?", null);
|
|
400
394
|
__decorate([
|
|
401
|
-
(0, word_js_1.ForthicWord)("( --
|
|
395
|
+
(0, word_js_1.ForthicWord)("( value:any default_value:any -- result:any )", "Returns value or default if value is null/undefined/empty string"),
|
|
402
396
|
__metadata("design:type", Function),
|
|
403
|
-
__metadata("design:paramtypes", []),
|
|
397
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
404
398
|
__metadata("design:returntype", Promise)
|
|
405
|
-
], CoreModule.prototype, "
|
|
399
|
+
], CoreModule.prototype, "DEFAULT", null);
|
|
406
400
|
__decorate([
|
|
407
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
401
|
+
(0, word_js_1.ForthicWord)("( value:any forthic:string -- result:any )", "Lazy default: returns value if non-empty, otherwise runs forthic and uses its result. The forthic is only evaluated when needed.", "DEFAULT-RUN"),
|
|
408
402
|
__metadata("design:type", Function),
|
|
409
|
-
__metadata("design:paramtypes", []),
|
|
403
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
410
404
|
__metadata("design:returntype", Promise)
|
|
411
|
-
], CoreModule.prototype, "
|
|
405
|
+
], CoreModule.prototype, "DEFAULT_RUN", null);
|
|
412
406
|
__decorate([
|
|
413
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
407
|
+
(0, word_js_1.ForthicWord)("( array:any[] -- options:WordOptions )", "Convert options array to WordOptions. Format: [.key1 val1 .key2 val2]"),
|
|
414
408
|
__metadata("design:type", Function),
|
|
415
|
-
__metadata("design:paramtypes", []),
|
|
409
|
+
__metadata("design:paramtypes", [Array]),
|
|
416
410
|
__metadata("design:returntype", Promise)
|
|
417
|
-
], CoreModule.prototype, "
|
|
411
|
+
], CoreModule.prototype, "~>", null);
|
|
418
412
|
__decorate([
|
|
419
413
|
(0, word_js_1.ForthicWord)("( string:string [options:WordOptions] -- result:string )", "Interpolate variables (.name) and return result string. Use \\. to escape literal dots."),
|
|
420
414
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,+CAAuG;AACvG,sDAA2F;AAC3F,2DAAoD;AAEpD,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE
|
|
1
|
+
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,11 @@ export declare class DateTimeModule extends DecoratedModule {
|
|
|
12
12
|
AT(interp: Interpreter): Promise<void>;
|
|
13
13
|
TIME_to_STR(time: any): Promise<string>;
|
|
14
14
|
DATE_to_STR(date: any): Promise<any>;
|
|
15
|
-
DATE_to_INT(date: any): Promise<number>;
|
|
16
15
|
to_TIMESTAMP(interp: Interpreter): Promise<void>;
|
|
17
16
|
TIMESTAMP_to_DATETIME(interp: Interpreter): Promise<void>;
|
|
18
17
|
ADD_DAYS(date: any, num_days: number): Promise<any>;
|
|
19
|
-
|
|
18
|
+
DAYS_BETWEEN(date1: any, date2: any): Promise<any>;
|
|
19
|
+
YEAR(date: any): Promise<any>;
|
|
20
|
+
MONTH(date: any): Promise<any>;
|
|
21
|
+
DAY_OF_WEEK(date: any): Promise<any>;
|
|
20
22
|
}
|
|
@@ -21,9 +21,10 @@ Date and time operations using the Temporal API for timezone-aware datetime mani
|
|
|
21
21
|
- Current: TODAY, NOW
|
|
22
22
|
- Time adjustment: AM, PM
|
|
23
23
|
- Conversion to: >TIME, >DATE, >DATETIME, AT
|
|
24
|
-
- Conversion from: TIME>STR, DATE>STR
|
|
24
|
+
- Conversion from: TIME>STR, DATE>STR
|
|
25
|
+
- Getters: YEAR, MONTH, DAY-OF-WEEK
|
|
25
26
|
- Timestamps: >TIMESTAMP, TIMESTAMP>DATETIME
|
|
26
|
-
- Date math: ADD-DAYS,
|
|
27
|
+
- Date math: ADD-DAYS, DAYS-BETWEEN
|
|
27
28
|
|
|
28
29
|
## Examples
|
|
29
30
|
TODAY
|
|
@@ -206,15 +207,6 @@ TODAY 7 ADD-DAYS
|
|
|
206
207
|
}
|
|
207
208
|
return date.toString();
|
|
208
209
|
}
|
|
209
|
-
async DATE_to_INT(date) {
|
|
210
|
-
if (!date || typeof date.year !== "number") {
|
|
211
|
-
return null;
|
|
212
|
-
}
|
|
213
|
-
const year = date.year;
|
|
214
|
-
const month = String(date.month).padStart(2, "0");
|
|
215
|
-
const day = String(date.day).padStart(2, "0");
|
|
216
|
-
return parseInt(`${year}${month}${day}`, 10);
|
|
217
|
-
}
|
|
218
210
|
async to_TIMESTAMP(interp) {
|
|
219
211
|
const datetime = interp.stack_pop();
|
|
220
212
|
if (!datetime) {
|
|
@@ -261,7 +253,7 @@ TODAY 7 ADD-DAYS
|
|
|
261
253
|
return date.add({ days: num_days });
|
|
262
254
|
}
|
|
263
255
|
// ( date1 date2 -- num_days )
|
|
264
|
-
async
|
|
256
|
+
async DAYS_BETWEEN(date1, date2) {
|
|
265
257
|
if (!date1 || !date2 || typeof date1.year !== "number" || typeof date2.year !== "number") {
|
|
266
258
|
return null;
|
|
267
259
|
}
|
|
@@ -270,6 +262,21 @@ TODAY 7 ADD-DAYS
|
|
|
270
262
|
const duration = date2.until(date1, { largestUnit: "days" });
|
|
271
263
|
return duration.days;
|
|
272
264
|
}
|
|
265
|
+
async YEAR(date) {
|
|
266
|
+
if (!date || typeof date.year !== "number")
|
|
267
|
+
return null;
|
|
268
|
+
return date.year;
|
|
269
|
+
}
|
|
270
|
+
async MONTH(date) {
|
|
271
|
+
if (!date || typeof date.month !== "number")
|
|
272
|
+
return null;
|
|
273
|
+
return date.month;
|
|
274
|
+
}
|
|
275
|
+
async DAY_OF_WEEK(date) {
|
|
276
|
+
if (!date || typeof date.dayOfWeek !== "number")
|
|
277
|
+
return null;
|
|
278
|
+
return date.dayOfWeek;
|
|
279
|
+
}
|
|
273
280
|
}
|
|
274
281
|
exports.DateTimeModule = DateTimeModule;
|
|
275
282
|
__decorate([
|
|
@@ -332,12 +339,6 @@ __decorate([
|
|
|
332
339
|
__metadata("design:paramtypes", [Object]),
|
|
333
340
|
__metadata("design:returntype", Promise)
|
|
334
341
|
], DateTimeModule.prototype, "DATE_to_STR", null);
|
|
335
|
-
__decorate([
|
|
336
|
-
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- int:number )", "Convert date to integer (YYYYMMDD)", "DATE>INT"),
|
|
337
|
-
__metadata("design:type", Function),
|
|
338
|
-
__metadata("design:paramtypes", [Object]),
|
|
339
|
-
__metadata("design:returntype", Promise)
|
|
340
|
-
], DateTimeModule.prototype, "DATE_to_INT", null);
|
|
341
342
|
__decorate([
|
|
342
343
|
(0, word_js_1.ForthicDirectWord)("( datetime:Temporal.ZonedDateTime -- timestamp:number )", "Convert datetime to Unix timestamp (seconds)", ">TIMESTAMP"),
|
|
343
344
|
__metadata("design:type", Function),
|
|
@@ -357,9 +358,27 @@ __decorate([
|
|
|
357
358
|
__metadata("design:returntype", Promise)
|
|
358
359
|
], DateTimeModule.prototype, "ADD_DAYS", null);
|
|
359
360
|
__decorate([
|
|
360
|
-
(0, word_js_1.ForthicWord)("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get
|
|
361
|
+
(0, word_js_1.ForthicWord)("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get number of days between two dates (date1 - date2)", "DAYS-BETWEEN"),
|
|
361
362
|
__metadata("design:type", Function),
|
|
362
363
|
__metadata("design:paramtypes", [Object, Object]),
|
|
363
364
|
__metadata("design:returntype", Promise)
|
|
364
|
-
], DateTimeModule.prototype, "
|
|
365
|
+
], DateTimeModule.prototype, "DAYS_BETWEEN", null);
|
|
366
|
+
__decorate([
|
|
367
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- year:number )", "Get the calendar year of a date.", "YEAR"),
|
|
368
|
+
__metadata("design:type", Function),
|
|
369
|
+
__metadata("design:paramtypes", [Object]),
|
|
370
|
+
__metadata("design:returntype", Promise)
|
|
371
|
+
], DateTimeModule.prototype, "YEAR", null);
|
|
372
|
+
__decorate([
|
|
373
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- month:number )", "Get the calendar month of a date (1=January, 12=December).", "MONTH"),
|
|
374
|
+
__metadata("design:type", Function),
|
|
375
|
+
__metadata("design:paramtypes", [Object]),
|
|
376
|
+
__metadata("design:returntype", Promise)
|
|
377
|
+
], DateTimeModule.prototype, "MONTH", null);
|
|
378
|
+
__decorate([
|
|
379
|
+
(0, word_js_1.ForthicWord)("( date:Temporal.PlainDate -- day:number )", "Get the day-of-week (1=Monday, 7=Sunday, ISO 8601).", "DAY-OF-WEEK"),
|
|
380
|
+
__metadata("design:type", Function),
|
|
381
|
+
__metadata("design:paramtypes", [Object]),
|
|
382
|
+
__metadata("design:returntype", Promise)
|
|
383
|
+
], DateTimeModule.prototype, "DAY_OF_WEEK", null);
|
|
365
384
|
//# sourceMappingURL=datetime_module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/datetime_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAmD;AACnD,sDAA8G;AAE9G,MAAa,cAAe,SAAQ,yBAAe;IACjD;QACE,IAAA,2BAAiB,EAAC,cAAc,EAAE
|
|
1
|
+
{"version":3,"file":"datetime_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/datetime_module.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,12 +18,10 @@ JSON serialization, parsing, and formatting operations.
|
|
|
18
18
|
|
|
19
19
|
## Categories
|
|
20
20
|
- Conversion: >JSON, JSON>
|
|
21
|
-
- Formatting: JSON-PRETTIFY
|
|
22
21
|
|
|
23
22
|
## Examples
|
|
24
23
|
{name: "Alice", age: 30} >JSON
|
|
25
24
|
'{"name":"Alice"}' JSON>
|
|
26
|
-
'{"a":1}' JSON-PRETTIFY
|
|
27
25
|
`);
|
|
28
26
|
}
|
|
29
27
|
constructor() {
|
|
@@ -41,13 +39,6 @@ JSON serialization, parsing, and formatting operations.
|
|
|
41
39
|
}
|
|
42
40
|
return JSON.parse(json);
|
|
43
41
|
}
|
|
44
|
-
async JSON_PRETTIFY(json) {
|
|
45
|
-
if (!json || json.trim() === "") {
|
|
46
|
-
return "";
|
|
47
|
-
}
|
|
48
|
-
const obj = JSON.parse(json);
|
|
49
|
-
return JSON.stringify(obj, null, 2);
|
|
50
|
-
}
|
|
51
42
|
}
|
|
52
43
|
exports.JsonModule = JsonModule;
|
|
53
44
|
__decorate([
|
|
@@ -62,10 +53,4 @@ __decorate([
|
|
|
62
53
|
__metadata("design:paramtypes", [String]),
|
|
63
54
|
__metadata("design:returntype", Promise)
|
|
64
55
|
], JsonModule.prototype, "from_JSON", null);
|
|
65
|
-
__decorate([
|
|
66
|
-
(0, word_js_1.ForthicWord)("( json:string -- pretty:string )", "Format JSON with 2-space indentation", "JSON-PRETTIFY"),
|
|
67
|
-
__metadata("design:type", Function),
|
|
68
|
-
__metadata("design:paramtypes", [String]),
|
|
69
|
-
__metadata("design:returntype", Promise)
|
|
70
|
-
], JsonModule.prototype, "JSON_PRETTIFY", null);
|
|
71
56
|
//# sourceMappingURL=json_module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/json_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAA2F;AAE3F,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE
|
|
1
|
+
{"version":3,"file":"json_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/json_module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAA2F;AAE3F,MAAa,UAAW,SAAQ,yBAAe;IAC7C;QACE,IAAA,2BAAiB,EAAC,UAAU,EAAE;;;;;;;;;CASjC,CAAC,CAAC;IACD,CAAC;IAED;QACE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAC,MAAW;QACvB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAEF;AAlCD,gCAkCC;AAfO;IADL,IAAA,qBAAW,EAAC,+BAA+B,EAAE,+BAA+B,EAAE,OAAO,CAAC;;;;yCAMtF;AAGK;IADL,IAAA,qBAAW,EAAC,+BAA+B,EAAE,6BAA6B,EAAE,OAAO,CAAC;;;;2CAMpF"}
|
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import { Interpreter } from "../../interpreter.js";
|
|
2
1
|
import { DecoratedModule } from "../../decorators/word.js";
|
|
3
2
|
export declare class MathModule extends DecoratedModule {
|
|
4
3
|
constructor();
|
|
5
|
-
plus(
|
|
6
|
-
plus_ADD(interp: Interpreter): Promise<void>;
|
|
4
|
+
plus(a: any, b: any): Promise<any>;
|
|
7
5
|
minus(a: number, b: number): Promise<number>;
|
|
8
|
-
|
|
9
|
-
times(interp: Interpreter): Promise<void>;
|
|
10
|
-
times_MULTIPLY(interp: Interpreter): Promise<void>;
|
|
6
|
+
times(a: any, b: any): Promise<number>;
|
|
11
7
|
divide_by(a: number, b: number): Promise<number>;
|
|
12
|
-
divide_by_DIVIDE(a: number, b: number): Promise<number>;
|
|
13
8
|
MOD(m: number, n: number): Promise<number>;
|
|
9
|
+
RANGE(start: number, end: number): Promise<number[]>;
|
|
14
10
|
MEAN(items: any): Promise<any>;
|
|
15
|
-
MAX(
|
|
16
|
-
MIN(
|
|
11
|
+
MAX(numbers: any): Promise<number>;
|
|
12
|
+
MIN(numbers: any): Promise<number>;
|
|
13
|
+
PRODUCT(numbers: number[]): Promise<number>;
|
|
17
14
|
SUM(numbers: number[]): Promise<number>;
|
|
18
15
|
[">INT"](a: any): Promise<number>;
|
|
19
16
|
[">FLOAT"](a: any): Promise<number>;
|
|
20
|
-
|
|
17
|
+
FORMAT_FIXED(num: number, digits: number): Promise<string>;
|
|
21
18
|
ROUND(num: number): Promise<number>;
|
|
22
|
-
INFINITY(): Promise<number>;
|
|
23
|
-
["UNIFORM-RANDOM"](low: number, high: number): Promise<number>;
|
|
24
19
|
ABS(n: number): Promise<number>;
|
|
25
20
|
SQRT(n: number): Promise<number>;
|
|
26
21
|
FLOOR(n: number): Promise<number>;
|