@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
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { InvalidVariableNameError, IntentionalStopError, UnknownVariableError } from "../../errors.js";
|
|
8
|
-
import { DecoratedModule, ForthicWord, registerModuleDoc } from "../../decorators/word.js";
|
|
8
|
+
import { DecoratedModule, ForthicWord, ForthicDirectWord, registerModuleDoc } from "../../decorators/word.js";
|
|
9
9
|
import { WordOptions } from "../../word_options.js";
|
|
10
10
|
export class CoreModule extends DecoratedModule {
|
|
11
11
|
static {
|
|
@@ -13,14 +13,13 @@ export class CoreModule extends DecoratedModule {
|
|
|
13
13
|
Essential interpreter operations for stack manipulation, variables, control flow, and module system.
|
|
14
14
|
|
|
15
15
|
## Categories
|
|
16
|
-
- Stack:
|
|
16
|
+
- Stack: DROP, DUP, SWAP
|
|
17
17
|
- Variables: VARIABLES, !, @, !@
|
|
18
|
-
- Module:
|
|
19
|
-
- Execution:
|
|
20
|
-
- Control:
|
|
18
|
+
- Module: USE-MODULES
|
|
19
|
+
- Execution: RUN
|
|
20
|
+
- Control: NOP, DEFAULT, DEFAULT-RUN, NULL, IF, IF-RUN, WHEN
|
|
21
|
+
- Predicates: ARRAY?, NULL?, EMPTY?, STRING?, NUMBER?, RECORD?
|
|
21
22
|
- Options: ~> (converts array to WordOptions)
|
|
22
|
-
- Profiling: PROFILE-START, PROFILE-TIMESTAMP, PROFILE-END, PROFILE-DATA
|
|
23
|
-
- Logging: START-LOG, END-LOG
|
|
24
23
|
- String: INTERPOLATE, PRINT
|
|
25
24
|
- Debug: PEEK!, STACK!
|
|
26
25
|
|
|
@@ -65,7 +64,7 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
65
64
|
}
|
|
66
65
|
return variable;
|
|
67
66
|
}
|
|
68
|
-
async
|
|
67
|
+
async DROP(_a) {
|
|
69
68
|
// No return = push nothing
|
|
70
69
|
}
|
|
71
70
|
async DUP(a) {
|
|
@@ -131,41 +130,77 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
131
130
|
var_obj.set_value(value);
|
|
132
131
|
return var_obj.get_value();
|
|
133
132
|
}
|
|
134
|
-
async
|
|
133
|
+
async RUN(forthic) {
|
|
135
134
|
const string_location = this.interp.get_string_location();
|
|
136
|
-
if (
|
|
137
|
-
await this.interp.run(
|
|
135
|
+
if (forthic)
|
|
136
|
+
await this.interp.run(forthic, string_location);
|
|
138
137
|
}
|
|
139
|
-
async
|
|
140
|
-
|
|
138
|
+
async IF(bool, then_value, else_value) {
|
|
139
|
+
return bool ? then_value : else_value;
|
|
140
|
+
}
|
|
141
|
+
async IF_RUN(bool, then_forthic, else_forthic) {
|
|
142
|
+
const branch = bool ? then_forthic : else_forthic;
|
|
143
|
+
if (branch) {
|
|
144
|
+
const string_location = this.interp.get_string_location();
|
|
145
|
+
await this.interp.run(branch, string_location);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
async WHEN(bool, forthic) {
|
|
149
|
+
if (bool && forthic) {
|
|
150
|
+
const string_location = this.interp.get_string_location();
|
|
151
|
+
await this.interp.run(forthic, string_location);
|
|
152
|
+
}
|
|
141
153
|
}
|
|
142
154
|
async USE_MODULES(names, options) {
|
|
143
155
|
if (!names)
|
|
144
156
|
return;
|
|
145
157
|
this.interp.use_modules(names, options);
|
|
146
158
|
}
|
|
147
|
-
async IDENTITY() {
|
|
148
|
-
// No-op
|
|
149
|
-
}
|
|
150
159
|
async NOP() {
|
|
151
160
|
// No-op
|
|
152
161
|
}
|
|
153
162
|
async NULL() {
|
|
154
163
|
return null;
|
|
155
164
|
}
|
|
165
|
+
async UNDEFINED(interp) {
|
|
166
|
+
interp.stack_push(undefined);
|
|
167
|
+
}
|
|
156
168
|
async ["ARRAY?"](value) {
|
|
157
169
|
return value instanceof Array;
|
|
158
170
|
}
|
|
171
|
+
async ["NULL?"](value) {
|
|
172
|
+
return value === null || value === undefined;
|
|
173
|
+
}
|
|
174
|
+
async ["EMPTY?"](value) {
|
|
175
|
+
if (value === null || value === undefined)
|
|
176
|
+
return true;
|
|
177
|
+
if (typeof value === "string")
|
|
178
|
+
return value.length === 0;
|
|
179
|
+
if (Array.isArray(value))
|
|
180
|
+
return value.length === 0;
|
|
181
|
+
if (typeof value === "object")
|
|
182
|
+
return Object.keys(value).length === 0;
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
async ["STRING?"](value) {
|
|
186
|
+
return typeof value === "string";
|
|
187
|
+
}
|
|
188
|
+
async ["NUMBER?"](value) {
|
|
189
|
+
return typeof value === "number" && !Number.isNaN(value);
|
|
190
|
+
}
|
|
191
|
+
async ["RECORD?"](value) {
|
|
192
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
193
|
+
}
|
|
159
194
|
async DEFAULT(value, default_value) {
|
|
160
195
|
if (value === undefined || value === null || value === "") {
|
|
161
196
|
return default_value;
|
|
162
197
|
}
|
|
163
198
|
return value;
|
|
164
199
|
}
|
|
165
|
-
async
|
|
200
|
+
async DEFAULT_RUN(value, forthic) {
|
|
166
201
|
if (value === undefined || value === null || value === "") {
|
|
167
202
|
const string_location = this.interp.get_string_location();
|
|
168
|
-
await this.interp.run(
|
|
203
|
+
await this.interp.run(forthic, string_location);
|
|
169
204
|
return this.interp.stack_pop();
|
|
170
205
|
}
|
|
171
206
|
return value;
|
|
@@ -173,44 +208,6 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
173
208
|
async ["~>"](array) {
|
|
174
209
|
return new WordOptions(array);
|
|
175
210
|
}
|
|
176
|
-
async ["PROFILE-START"]() {
|
|
177
|
-
this.interp.start_profiling();
|
|
178
|
-
}
|
|
179
|
-
async ["PROFILE-END"]() {
|
|
180
|
-
this.interp.stop_profiling();
|
|
181
|
-
}
|
|
182
|
-
async ["PROFILE-TIMESTAMP"](label) {
|
|
183
|
-
this.interp.add_timestamp(label);
|
|
184
|
-
}
|
|
185
|
-
async ["PROFILE-DATA"]() {
|
|
186
|
-
const histogram = this.interp.word_histogram();
|
|
187
|
-
const timestamps = this.interp.profile_timestamps();
|
|
188
|
-
const result = {
|
|
189
|
-
word_counts: [],
|
|
190
|
-
timestamps: [],
|
|
191
|
-
};
|
|
192
|
-
histogram.forEach((val) => {
|
|
193
|
-
const rec = { word: val["word"], count: val["count"] };
|
|
194
|
-
result["word_counts"].push(rec);
|
|
195
|
-
});
|
|
196
|
-
let prev_time = 0.0;
|
|
197
|
-
timestamps.forEach((t) => {
|
|
198
|
-
const rec = {
|
|
199
|
-
label: t["label"],
|
|
200
|
-
time_ms: t["time_ms"],
|
|
201
|
-
delta: t["time_ms"] - prev_time,
|
|
202
|
-
};
|
|
203
|
-
prev_time = t["time_ms"];
|
|
204
|
-
result["timestamps"].push(rec);
|
|
205
|
-
});
|
|
206
|
-
return result;
|
|
207
|
-
}
|
|
208
|
-
async START_LOG() {
|
|
209
|
-
this.interp.startStream();
|
|
210
|
-
}
|
|
211
|
-
async END_LOG() {
|
|
212
|
-
this.interp.endStream();
|
|
213
|
-
}
|
|
214
211
|
async INTERPOLATE(string, options) {
|
|
215
212
|
const separator = options.separator ?? ", ";
|
|
216
213
|
const null_text = options.null_text ?? "null";
|
|
@@ -260,7 +257,7 @@ INTERPOLATE and PRINT support options via the ~> operator using syntax: [.option
|
|
|
260
257
|
}
|
|
261
258
|
__decorate([
|
|
262
259
|
ForthicWord("( a:any -- )", "Removes top item from stack")
|
|
263
|
-
], CoreModule.prototype, "
|
|
260
|
+
], CoreModule.prototype, "DROP", null);
|
|
264
261
|
__decorate([
|
|
265
262
|
ForthicWord("( a:any -- a:any a:any )", "Duplicates top stack item")
|
|
266
263
|
], CoreModule.prototype, "DUP", null);
|
|
@@ -286,53 +283,56 @@ __decorate([
|
|
|
286
283
|
ForthicWord("( value:any variable:any -- value:any )", "Sets variable and returns value")
|
|
287
284
|
], CoreModule.prototype, "!@", null);
|
|
288
285
|
__decorate([
|
|
289
|
-
ForthicWord("(
|
|
290
|
-
], CoreModule.prototype, "
|
|
286
|
+
ForthicWord("( forthic:string -- ? )", "Run a Forthic string in the current context. Whatever the forthic produces is left on the stack.", "RUN")
|
|
287
|
+
], CoreModule.prototype, "RUN", null);
|
|
288
|
+
__decorate([
|
|
289
|
+
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.")
|
|
290
|
+
], CoreModule.prototype, "IF", null);
|
|
291
291
|
__decorate([
|
|
292
|
-
ForthicWord("(
|
|
293
|
-
], CoreModule.prototype, "
|
|
292
|
+
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")
|
|
293
|
+
], CoreModule.prototype, "IF_RUN", null);
|
|
294
|
+
__decorate([
|
|
295
|
+
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).")
|
|
296
|
+
], CoreModule.prototype, "WHEN", null);
|
|
294
297
|
__decorate([
|
|
295
298
|
ForthicWord("( names:string[] [options:WordOptions] -- )", "Imports modules by name", "USE-MODULES")
|
|
296
299
|
], CoreModule.prototype, "USE_MODULES", null);
|
|
297
|
-
__decorate([
|
|
298
|
-
ForthicWord("( -- )", "Does nothing (identity operation)")
|
|
299
|
-
], CoreModule.prototype, "IDENTITY", null);
|
|
300
300
|
__decorate([
|
|
301
301
|
ForthicWord("( -- )", "Does nothing (no operation)")
|
|
302
302
|
], CoreModule.prototype, "NOP", null);
|
|
303
303
|
__decorate([
|
|
304
304
|
ForthicWord("( -- null:null )", "Pushes null onto stack")
|
|
305
305
|
], CoreModule.prototype, "NULL", null);
|
|
306
|
+
__decorate([
|
|
307
|
+
ForthicDirectWord("( -- undefined:undefined )", "Pushes undefined onto stack", "UNDEFINED")
|
|
308
|
+
], CoreModule.prototype, "UNDEFINED", null);
|
|
306
309
|
__decorate([
|
|
307
310
|
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is an array")
|
|
308
311
|
], CoreModule.prototype, "ARRAY?", null);
|
|
309
312
|
__decorate([
|
|
310
|
-
ForthicWord("( value:any
|
|
311
|
-
], CoreModule.prototype, "
|
|
312
|
-
__decorate([
|
|
313
|
-
ForthicWord("( value:any default_forthic:string -- result:any )", "Returns value or executes Forthic if value is null/undefined/empty string")
|
|
314
|
-
], CoreModule.prototype, "*DEFAULT", null);
|
|
313
|
+
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is null or undefined")
|
|
314
|
+
], CoreModule.prototype, "NULL?", null);
|
|
315
315
|
__decorate([
|
|
316
|
-
ForthicWord("(
|
|
317
|
-
], CoreModule.prototype, "
|
|
316
|
+
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is null/undefined, an empty string, or a container (array/record) with no entries")
|
|
317
|
+
], CoreModule.prototype, "EMPTY?", null);
|
|
318
318
|
__decorate([
|
|
319
|
-
ForthicWord("( -- )", "
|
|
320
|
-
], CoreModule.prototype, "
|
|
319
|
+
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is a string")
|
|
320
|
+
], CoreModule.prototype, "STRING?", null);
|
|
321
321
|
__decorate([
|
|
322
|
-
ForthicWord("( -- )", "
|
|
323
|
-
], CoreModule.prototype, "
|
|
322
|
+
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is a finite number")
|
|
323
|
+
], CoreModule.prototype, "NUMBER?", null);
|
|
324
324
|
__decorate([
|
|
325
|
-
ForthicWord("(
|
|
326
|
-
], CoreModule.prototype, "
|
|
325
|
+
ForthicWord("( value:any -- boolean:boolean )", "Returns true if value is a plain record (object that is not an array and not null)")
|
|
326
|
+
], CoreModule.prototype, "RECORD?", null);
|
|
327
327
|
__decorate([
|
|
328
|
-
ForthicWord("( --
|
|
329
|
-
], CoreModule.prototype, "
|
|
328
|
+
ForthicWord("( value:any default_value:any -- result:any )", "Returns value or default if value is null/undefined/empty string")
|
|
329
|
+
], CoreModule.prototype, "DEFAULT", null);
|
|
330
330
|
__decorate([
|
|
331
|
-
ForthicWord("( -- )", "
|
|
332
|
-
], CoreModule.prototype, "
|
|
331
|
+
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")
|
|
332
|
+
], CoreModule.prototype, "DEFAULT_RUN", null);
|
|
333
333
|
__decorate([
|
|
334
|
-
ForthicWord("( -- )", "
|
|
335
|
-
], CoreModule.prototype, "
|
|
334
|
+
ForthicWord("( array:any[] -- options:WordOptions )", "Convert options array to WordOptions. Format: [.key1 val1 .key2 val2]")
|
|
335
|
+
], CoreModule.prototype, "~>", null);
|
|
336
336
|
__decorate([
|
|
337
337
|
ForthicWord("( string:string [options:WordOptions] -- result:string )", "Interpolate variables (.name) and return result string. Use \\. to escape literal dots.")
|
|
338
338
|
], CoreModule.prototype, "INTERPOLATE", null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/core_module.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
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
|
}
|
|
@@ -14,9 +14,10 @@ Date and time operations using the Temporal API for timezone-aware datetime mani
|
|
|
14
14
|
- Current: TODAY, NOW
|
|
15
15
|
- Time adjustment: AM, PM
|
|
16
16
|
- Conversion to: >TIME, >DATE, >DATETIME, AT
|
|
17
|
-
- Conversion from: TIME>STR, DATE>STR
|
|
17
|
+
- Conversion from: TIME>STR, DATE>STR
|
|
18
|
+
- Getters: YEAR, MONTH, DAY-OF-WEEK
|
|
18
19
|
- Timestamps: >TIMESTAMP, TIMESTAMP>DATETIME
|
|
19
|
-
- Date math: ADD-DAYS,
|
|
20
|
+
- Date math: ADD-DAYS, DAYS-BETWEEN
|
|
20
21
|
|
|
21
22
|
## Examples
|
|
22
23
|
TODAY
|
|
@@ -199,15 +200,6 @@ TODAY 7 ADD-DAYS
|
|
|
199
200
|
}
|
|
200
201
|
return date.toString();
|
|
201
202
|
}
|
|
202
|
-
async DATE_to_INT(date) {
|
|
203
|
-
if (!date || typeof date.year !== "number") {
|
|
204
|
-
return null;
|
|
205
|
-
}
|
|
206
|
-
const year = date.year;
|
|
207
|
-
const month = String(date.month).padStart(2, "0");
|
|
208
|
-
const day = String(date.day).padStart(2, "0");
|
|
209
|
-
return parseInt(`${year}${month}${day}`, 10);
|
|
210
|
-
}
|
|
211
203
|
async to_TIMESTAMP(interp) {
|
|
212
204
|
const datetime = interp.stack_pop();
|
|
213
205
|
if (!datetime) {
|
|
@@ -254,7 +246,7 @@ TODAY 7 ADD-DAYS
|
|
|
254
246
|
return date.add({ days: num_days });
|
|
255
247
|
}
|
|
256
248
|
// ( date1 date2 -- num_days )
|
|
257
|
-
async
|
|
249
|
+
async DAYS_BETWEEN(date1, date2) {
|
|
258
250
|
if (!date1 || !date2 || typeof date1.year !== "number" || typeof date2.year !== "number") {
|
|
259
251
|
return null;
|
|
260
252
|
}
|
|
@@ -263,6 +255,21 @@ TODAY 7 ADD-DAYS
|
|
|
263
255
|
const duration = date2.until(date1, { largestUnit: "days" });
|
|
264
256
|
return duration.days;
|
|
265
257
|
}
|
|
258
|
+
async YEAR(date) {
|
|
259
|
+
if (!date || typeof date.year !== "number")
|
|
260
|
+
return null;
|
|
261
|
+
return date.year;
|
|
262
|
+
}
|
|
263
|
+
async MONTH(date) {
|
|
264
|
+
if (!date || typeof date.month !== "number")
|
|
265
|
+
return null;
|
|
266
|
+
return date.month;
|
|
267
|
+
}
|
|
268
|
+
async DAY_OF_WEEK(date) {
|
|
269
|
+
if (!date || typeof date.dayOfWeek !== "number")
|
|
270
|
+
return null;
|
|
271
|
+
return date.dayOfWeek;
|
|
272
|
+
}
|
|
266
273
|
}
|
|
267
274
|
__decorate([
|
|
268
275
|
ForthicDirectWord("( -- date:Temporal.PlainDate )", "Get current date", "TODAY")
|
|
@@ -294,9 +301,6 @@ __decorate([
|
|
|
294
301
|
__decorate([
|
|
295
302
|
ForthicWord("( date:Temporal.PlainDate -- str:string )", "Convert date to YYYY-MM-DD string", "DATE>STR")
|
|
296
303
|
], DateTimeModule.prototype, "DATE_to_STR", null);
|
|
297
|
-
__decorate([
|
|
298
|
-
ForthicWord("( date:Temporal.PlainDate -- int:number )", "Convert date to integer (YYYYMMDD)", "DATE>INT")
|
|
299
|
-
], DateTimeModule.prototype, "DATE_to_INT", null);
|
|
300
304
|
__decorate([
|
|
301
305
|
ForthicDirectWord("( datetime:Temporal.ZonedDateTime -- timestamp:number )", "Convert datetime to Unix timestamp (seconds)", ">TIMESTAMP")
|
|
302
306
|
], DateTimeModule.prototype, "to_TIMESTAMP", null);
|
|
@@ -307,6 +311,15 @@ __decorate([
|
|
|
307
311
|
ForthicWord("( date:Temporal.PlainDate num_days:number -- date:Temporal.PlainDate )", "Add days to a date", "ADD-DAYS")
|
|
308
312
|
], DateTimeModule.prototype, "ADD_DAYS", null);
|
|
309
313
|
__decorate([
|
|
310
|
-
ForthicWord("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get
|
|
311
|
-
], DateTimeModule.prototype, "
|
|
314
|
+
ForthicWord("( date1:Temporal.PlainDate date2:Temporal.PlainDate -- num_days:number )", "Get number of days between two dates (date1 - date2)", "DAYS-BETWEEN")
|
|
315
|
+
], DateTimeModule.prototype, "DAYS_BETWEEN", null);
|
|
316
|
+
__decorate([
|
|
317
|
+
ForthicWord("( date:Temporal.PlainDate -- year:number )", "Get the calendar year of a date.", "YEAR")
|
|
318
|
+
], DateTimeModule.prototype, "YEAR", null);
|
|
319
|
+
__decorate([
|
|
320
|
+
ForthicWord("( date:Temporal.PlainDate -- month:number )", "Get the calendar month of a date (1=January, 12=December).", "MONTH")
|
|
321
|
+
], DateTimeModule.prototype, "MONTH", null);
|
|
322
|
+
__decorate([
|
|
323
|
+
ForthicWord("( date:Temporal.PlainDate -- day:number )", "Get the day-of-week (1=Monday, 7=Sunday, ISO 8601).", "DAY-OF-WEEK")
|
|
324
|
+
], DateTimeModule.prototype, "DAY_OF_WEEK", null);
|
|
312
325
|
//# 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":";;;;;;AACA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9G,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD;QACE,iBAAiB,CAAC,cAAc,EAAE
|
|
1
|
+
{"version":3,"file":"datetime_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/datetime_module.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,10 @@ JSON serialization, parsing, and formatting operations.
|
|
|
12
12
|
|
|
13
13
|
## Categories
|
|
14
14
|
- Conversion: >JSON, JSON>
|
|
15
|
-
- Formatting: JSON-PRETTIFY
|
|
16
15
|
|
|
17
16
|
## Examples
|
|
18
17
|
{name: "Alice", age: 30} >JSON
|
|
19
18
|
'{"name":"Alice"}' JSON>
|
|
20
|
-
'{"a":1}' JSON-PRETTIFY
|
|
21
19
|
`);
|
|
22
20
|
}
|
|
23
21
|
constructor() {
|
|
@@ -35,13 +33,6 @@ JSON serialization, parsing, and formatting operations.
|
|
|
35
33
|
}
|
|
36
34
|
return JSON.parse(json);
|
|
37
35
|
}
|
|
38
|
-
async JSON_PRETTIFY(json) {
|
|
39
|
-
if (!json || json.trim() === "") {
|
|
40
|
-
return "";
|
|
41
|
-
}
|
|
42
|
-
const obj = JSON.parse(json);
|
|
43
|
-
return JSON.stringify(obj, null, 2);
|
|
44
|
-
}
|
|
45
36
|
}
|
|
46
37
|
__decorate([
|
|
47
38
|
ForthicWord("( object:any -- json:string )", "Convert object to JSON string", ">JSON")
|
|
@@ -49,7 +40,4 @@ __decorate([
|
|
|
49
40
|
__decorate([
|
|
50
41
|
ForthicWord("( json:string -- object:any )", "Parse JSON string to object", "JSON>")
|
|
51
42
|
], JsonModule.prototype, "from_JSON", null);
|
|
52
|
-
__decorate([
|
|
53
|
-
ForthicWord("( json:string -- pretty:string )", "Format JSON with 2-space indentation", "JSON-PRETTIFY")
|
|
54
|
-
], JsonModule.prototype, "JSON_PRETTIFY", null);
|
|
55
43
|
//# 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,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;QACE,iBAAiB,CAAC,UAAU,EAAE
|
|
1
|
+
{"version":3,"file":"json_module.js","sourceRoot":"","sources":["../../../../../src/forthic/modules/standard/json_module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE3F,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;QACE,iBAAiB,CAAC,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;AAfO;IADL,WAAW,CAAC,+BAA+B,EAAE,+BAA+B,EAAE,OAAO,CAAC;yCAMtF;AAGK;IADL,WAAW,CAAC,+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>;
|