@forthix/forthic 0.11.0 → 0.13.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 +13 -14
- package/dist/cjs/forthic/modules/standard/core_module.js +101 -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 +23 -4
- package/dist/cjs/forthic/modules/standard/record_module.js +319 -58
- 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 +13 -14
- package/dist/esm/forthic/modules/standard/core_module.js +83 -83
- 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 +23 -4
- package/dist/esm/forthic/modules/standard/record_module.js +300 -57
- 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
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CoreModule = void 0;
|
|
13
|
+
const interpreter_js_1 = require("../../interpreter.js");
|
|
13
14
|
const errors_js_1 = require("../../errors.js");
|
|
14
15
|
const word_js_1 = require("../../decorators/word.js");
|
|
15
16
|
const word_options_js_1 = require("../../word_options.js");
|
|
@@ -19,14 +20,13 @@ class CoreModule extends word_js_1.DecoratedModule {
|
|
|
19
20
|
Essential interpreter operations for stack manipulation, variables, control flow, and module system.
|
|
20
21
|
|
|
21
22
|
## Categories
|
|
22
|
-
- Stack:
|
|
23
|
+
- Stack: DROP, DUP, SWAP
|
|
23
24
|
- Variables: VARIABLES, !, @, !@
|
|
24
|
-
- Module:
|
|
25
|
-
- Execution:
|
|
26
|
-
- Control:
|
|
25
|
+
- Module: USE-MODULES
|
|
26
|
+
- Execution: RUN
|
|
27
|
+
- Control: NOP, DEFAULT, DEFAULT-RUN, NULL, IF, IF-RUN, WHEN
|
|
28
|
+
- Predicates: ARRAY?, NULL?, EMPTY?, STRING?, NUMBER?, RECORD?
|
|
27
29
|
- Options: ~> (converts array to WordOptions)
|
|
28
|
-
- Profiling: PROFILE-START, PROFILE-TIMESTAMP, PROFILE-END, PROFILE-DATA
|
|
29
|
-
- Logging: START-LOG, END-LOG
|
|
30
30
|
- String: INTERPOLATE, PRINT
|
|
31
31
|
- Debug: PEEK!, STACK!
|
|
32
32
|
|
|
@@ -71,7 +71,7 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
71
71
|
}
|
|
72
72
|
return variable;
|
|
73
73
|
}
|
|
74
|
-
async
|
|
74
|
+
async DROP(_a) {
|
|
75
75
|
// No return = push nothing
|
|
76
76
|
}
|
|
77
77
|
async DUP(a) {
|
|
@@ -137,41 +137,77 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
137
137
|
var_obj.set_value(value);
|
|
138
138
|
return var_obj.get_value();
|
|
139
139
|
}
|
|
140
|
-
async
|
|
140
|
+
async RUN(forthic) {
|
|
141
141
|
const string_location = this.interp.get_string_location();
|
|
142
|
-
if (
|
|
143
|
-
await this.interp.run(
|
|
142
|
+
if (forthic)
|
|
143
|
+
await this.interp.run(forthic, string_location);
|
|
144
144
|
}
|
|
145
|
-
async
|
|
146
|
-
|
|
145
|
+
async IF(bool, then_value, else_value) {
|
|
146
|
+
return bool ? then_value : else_value;
|
|
147
|
+
}
|
|
148
|
+
async IF_RUN(bool, then_forthic, else_forthic) {
|
|
149
|
+
const branch = bool ? then_forthic : else_forthic;
|
|
150
|
+
if (branch) {
|
|
151
|
+
const string_location = this.interp.get_string_location();
|
|
152
|
+
await this.interp.run(branch, string_location);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async WHEN(bool, forthic) {
|
|
156
|
+
if (bool && forthic) {
|
|
157
|
+
const string_location = this.interp.get_string_location();
|
|
158
|
+
await this.interp.run(forthic, string_location);
|
|
159
|
+
}
|
|
147
160
|
}
|
|
148
161
|
async USE_MODULES(names, options) {
|
|
149
162
|
if (!names)
|
|
150
163
|
return;
|
|
151
164
|
this.interp.use_modules(names, options);
|
|
152
165
|
}
|
|
153
|
-
async IDENTITY() {
|
|
154
|
-
// No-op
|
|
155
|
-
}
|
|
156
166
|
async NOP() {
|
|
157
167
|
// No-op
|
|
158
168
|
}
|
|
159
169
|
async NULL() {
|
|
160
170
|
return null;
|
|
161
171
|
}
|
|
172
|
+
async UNDEFINED(interp) {
|
|
173
|
+
interp.stack_push(undefined);
|
|
174
|
+
}
|
|
162
175
|
async ["ARRAY?"](value) {
|
|
163
176
|
return value instanceof Array;
|
|
164
177
|
}
|
|
178
|
+
async ["NULL?"](value) {
|
|
179
|
+
return value === null || value === undefined;
|
|
180
|
+
}
|
|
181
|
+
async ["EMPTY?"](value) {
|
|
182
|
+
if (value === null || value === undefined)
|
|
183
|
+
return true;
|
|
184
|
+
if (typeof value === "string")
|
|
185
|
+
return value.length === 0;
|
|
186
|
+
if (Array.isArray(value))
|
|
187
|
+
return value.length === 0;
|
|
188
|
+
if (typeof value === "object")
|
|
189
|
+
return Object.keys(value).length === 0;
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
async ["STRING?"](value) {
|
|
193
|
+
return typeof value === "string";
|
|
194
|
+
}
|
|
195
|
+
async ["NUMBER?"](value) {
|
|
196
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
197
|
+
}
|
|
198
|
+
async ["RECORD?"](value) {
|
|
199
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
200
|
+
}
|
|
165
201
|
async DEFAULT(value, default_value) {
|
|
166
202
|
if (value === undefined || value === null || value === "") {
|
|
167
203
|
return default_value;
|
|
168
204
|
}
|
|
169
205
|
return value;
|
|
170
206
|
}
|
|
171
|
-
async
|
|
207
|
+
async DEFAULT_RUN(value, forthic) {
|
|
172
208
|
if (value === undefined || value === null || value === "") {
|
|
173
209
|
const string_location = this.interp.get_string_location();
|
|
174
|
-
await this.interp.run(
|
|
210
|
+
await this.interp.run(forthic, string_location);
|
|
175
211
|
return this.interp.stack_pop();
|
|
176
212
|
}
|
|
177
213
|
return value;
|
|
@@ -179,44 +215,6 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
179
215
|
async ["~>"](array) {
|
|
180
216
|
return new word_options_js_1.WordOptions(array);
|
|
181
217
|
}
|
|
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
218
|
async INTERPOLATE(string, options) {
|
|
221
219
|
const separator = options.separator ?? ", ";
|
|
222
220
|
const null_text = options.null_text ?? "null";
|
|
@@ -270,7 +268,7 @@ __decorate([
|
|
|
270
268
|
__metadata("design:type", Function),
|
|
271
269
|
__metadata("design:paramtypes", [Object]),
|
|
272
270
|
__metadata("design:returntype", Promise)
|
|
273
|
-
], CoreModule.prototype, "
|
|
271
|
+
], CoreModule.prototype, "DROP", null);
|
|
274
272
|
__decorate([
|
|
275
273
|
(0, word_js_1.ForthicWord)("( a:any -- a:any a:any )", "Duplicates top stack item"),
|
|
276
274
|
__metadata("design:type", Function),
|
|
@@ -320,29 +318,35 @@ __decorate([
|
|
|
320
318
|
__metadata("design:returntype", Promise)
|
|
321
319
|
], CoreModule.prototype, "!@", null);
|
|
322
320
|
__decorate([
|
|
323
|
-
(0, word_js_1.ForthicWord)("(
|
|
321
|
+
(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
322
|
__metadata("design:type", Function),
|
|
325
323
|
__metadata("design:paramtypes", [String]),
|
|
326
324
|
__metadata("design:returntype", Promise)
|
|
327
|
-
], CoreModule.prototype, "
|
|
325
|
+
], CoreModule.prototype, "RUN", null);
|
|
328
326
|
__decorate([
|
|
329
|
-
(0, word_js_1.ForthicWord)("(
|
|
327
|
+
(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
328
|
__metadata("design:type", Function),
|
|
331
|
-
__metadata("design:paramtypes", [
|
|
329
|
+
__metadata("design:paramtypes", [Object, Object, Object]),
|
|
332
330
|
__metadata("design:returntype", Promise)
|
|
333
|
-
], CoreModule.prototype, "
|
|
331
|
+
], CoreModule.prototype, "IF", null);
|
|
334
332
|
__decorate([
|
|
335
|
-
(0, word_js_1.ForthicWord)("(
|
|
333
|
+
(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
334
|
__metadata("design:type", Function),
|
|
337
|
-
__metadata("design:paramtypes", [
|
|
335
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
338
336
|
__metadata("design:returntype", Promise)
|
|
339
|
-
], CoreModule.prototype, "
|
|
337
|
+
], CoreModule.prototype, "IF_RUN", null);
|
|
340
338
|
__decorate([
|
|
341
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
339
|
+
(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
340
|
__metadata("design:type", Function),
|
|
343
|
-
__metadata("design:paramtypes", []),
|
|
341
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
342
|
+
__metadata("design:returntype", Promise)
|
|
343
|
+
], CoreModule.prototype, "WHEN", null);
|
|
344
|
+
__decorate([
|
|
345
|
+
(0, word_js_1.ForthicWord)("( names:string[] [options:WordOptions] -- )", "Imports modules by name", "USE-MODULES"),
|
|
346
|
+
__metadata("design:type", Function),
|
|
347
|
+
__metadata("design:paramtypes", [Array, Object]),
|
|
344
348
|
__metadata("design:returntype", Promise)
|
|
345
|
-
], CoreModule.prototype, "
|
|
349
|
+
], CoreModule.prototype, "USE_MODULES", null);
|
|
346
350
|
__decorate([
|
|
347
351
|
(0, word_js_1.ForthicWord)("( -- )", "Does nothing (no operation)"),
|
|
348
352
|
__metadata("design:type", Function),
|
|
@@ -356,65 +360,65 @@ __decorate([
|
|
|
356
360
|
__metadata("design:returntype", Promise)
|
|
357
361
|
], CoreModule.prototype, "NULL", null);
|
|
358
362
|
__decorate([
|
|
359
|
-
(0, word_js_1.
|
|
363
|
+
(0, word_js_1.ForthicDirectWord)("( -- undefined:undefined )", "Pushes undefined onto stack", "UNDEFINED"),
|
|
360
364
|
__metadata("design:type", Function),
|
|
361
|
-
__metadata("design:paramtypes", [
|
|
365
|
+
__metadata("design:paramtypes", [interpreter_js_1.Interpreter]),
|
|
362
366
|
__metadata("design:returntype", Promise)
|
|
363
|
-
], CoreModule.prototype, "
|
|
367
|
+
], CoreModule.prototype, "UNDEFINED", null);
|
|
364
368
|
__decorate([
|
|
365
|
-
(0, word_js_1.ForthicWord)("( value:any
|
|
369
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is an array"),
|
|
366
370
|
__metadata("design:type", Function),
|
|
367
|
-
__metadata("design:paramtypes", [Object
|
|
371
|
+
__metadata("design:paramtypes", [Object]),
|
|
368
372
|
__metadata("design:returntype", Promise)
|
|
369
|
-
], CoreModule.prototype, "
|
|
373
|
+
], CoreModule.prototype, "ARRAY?", null);
|
|
370
374
|
__decorate([
|
|
371
|
-
(0, word_js_1.ForthicWord)("( value:any
|
|
375
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is null or undefined"),
|
|
372
376
|
__metadata("design:type", Function),
|
|
373
|
-
__metadata("design:paramtypes", [Object
|
|
377
|
+
__metadata("design:paramtypes", [Object]),
|
|
374
378
|
__metadata("design:returntype", Promise)
|
|
375
|
-
], CoreModule.prototype, "
|
|
379
|
+
], CoreModule.prototype, "NULL?", null);
|
|
376
380
|
__decorate([
|
|
377
|
-
(0, word_js_1.ForthicWord)("(
|
|
381
|
+
(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
382
|
__metadata("design:type", Function),
|
|
379
|
-
__metadata("design:paramtypes", [
|
|
383
|
+
__metadata("design:paramtypes", [Object]),
|
|
380
384
|
__metadata("design:returntype", Promise)
|
|
381
|
-
], CoreModule.prototype, "
|
|
385
|
+
], CoreModule.prototype, "EMPTY?", null);
|
|
382
386
|
__decorate([
|
|
383
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
387
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a string"),
|
|
384
388
|
__metadata("design:type", Function),
|
|
385
|
-
__metadata("design:paramtypes", []),
|
|
389
|
+
__metadata("design:paramtypes", [Object]),
|
|
386
390
|
__metadata("design:returntype", Promise)
|
|
387
|
-
], CoreModule.prototype, "
|
|
391
|
+
], CoreModule.prototype, "STRING?", null);
|
|
388
392
|
__decorate([
|
|
389
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
393
|
+
(0, word_js_1.ForthicWord)("( value:any -- boolean:boolean )", "Returns true if value is a finite number"),
|
|
390
394
|
__metadata("design:type", Function),
|
|
391
|
-
__metadata("design:paramtypes", []),
|
|
395
|
+
__metadata("design:paramtypes", [Object]),
|
|
392
396
|
__metadata("design:returntype", Promise)
|
|
393
|
-
], CoreModule.prototype, "
|
|
397
|
+
], CoreModule.prototype, "NUMBER?", null);
|
|
394
398
|
__decorate([
|
|
395
|
-
(0, word_js_1.ForthicWord)("(
|
|
399
|
+
(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
400
|
__metadata("design:type", Function),
|
|
397
|
-
__metadata("design:paramtypes", [
|
|
401
|
+
__metadata("design:paramtypes", [Object]),
|
|
398
402
|
__metadata("design:returntype", Promise)
|
|
399
|
-
], CoreModule.prototype, "
|
|
403
|
+
], CoreModule.prototype, "RECORD?", null);
|
|
400
404
|
__decorate([
|
|
401
|
-
(0, word_js_1.ForthicWord)("( --
|
|
405
|
+
(0, word_js_1.ForthicWord)("( value:any default_value:any -- result:any )", "Returns value or default if value is null/undefined/empty string"),
|
|
402
406
|
__metadata("design:type", Function),
|
|
403
|
-
__metadata("design:paramtypes", []),
|
|
407
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
404
408
|
__metadata("design:returntype", Promise)
|
|
405
|
-
], CoreModule.prototype, "
|
|
409
|
+
], CoreModule.prototype, "DEFAULT", null);
|
|
406
410
|
__decorate([
|
|
407
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
411
|
+
(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
412
|
__metadata("design:type", Function),
|
|
409
|
-
__metadata("design:paramtypes", []),
|
|
413
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
410
414
|
__metadata("design:returntype", Promise)
|
|
411
|
-
], CoreModule.prototype, "
|
|
415
|
+
], CoreModule.prototype, "DEFAULT_RUN", null);
|
|
412
416
|
__decorate([
|
|
413
|
-
(0, word_js_1.ForthicWord)("( -- )", "
|
|
417
|
+
(0, word_js_1.ForthicWord)("( array:any[] -- options:WordOptions )", "Convert options array to WordOptions. Format: [.key1 val1 .key2 val2]"),
|
|
414
418
|
__metadata("design:type", Function),
|
|
415
|
-
__metadata("design:paramtypes", []),
|
|
419
|
+
__metadata("design:paramtypes", [Array]),
|
|
416
420
|
__metadata("design:returntype", Promise)
|
|
417
|
-
], CoreModule.prototype, "
|
|
421
|
+
], CoreModule.prototype, "~>", null);
|
|
418
422
|
__decorate([
|
|
419
423
|
(0, word_js_1.ForthicWord)("( string:string [options:WordOptions] -- result:string )", "Interpolate variables (.name) and return result string. Use \\. to escape literal dots."),
|
|
420
424
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
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>;
|