@forthic/interp 0.19.1 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +10 -0
  2. package/dist/cjs/forthic/interpreter.d.ts +4 -4
  3. package/dist/cjs/forthic/interpreter.js +13 -13
  4. package/dist/cjs/forthic/interpreter.js.map +1 -1
  5. package/dist/esm/forthic/interpreter.d.ts +4 -4
  6. package/dist/esm/forthic/interpreter.js +13 -13
  7. package/dist/esm/forthic/interpreter.js.map +1 -1
  8. package/package.json +5 -5
  9. package/dist/cjs/forthic/module-flag-manager.d.ts +0 -53
  10. package/dist/cjs/forthic/module-flag-manager.js +0 -87
  11. package/dist/cjs/forthic/module-flag-manager.js.map +0 -1
  12. package/dist/cjs/forthic/profiling-manager.d.ts +0 -39
  13. package/dist/cjs/forthic/profiling-manager.js +0 -77
  14. package/dist/cjs/forthic/profiling-manager.js.map +0 -1
  15. package/dist/cjs/forthic/streaming-manager.d.ts +0 -46
  16. package/dist/cjs/forthic/streaming-manager.js +0 -123
  17. package/dist/cjs/forthic/streaming-manager.js.map +0 -1
  18. package/dist/cjs/forthic/types.d.ts +0 -21
  19. package/dist/cjs/forthic/types.js +0 -6
  20. package/dist/cjs/forthic/types.js.map +0 -1
  21. package/dist/esm/forthic/module-flag-manager.d.ts +0 -53
  22. package/dist/esm/forthic/module-flag-manager.js +0 -83
  23. package/dist/esm/forthic/module-flag-manager.js.map +0 -1
  24. package/dist/esm/forthic/profiling-manager.d.ts +0 -39
  25. package/dist/esm/forthic/profiling-manager.js +0 -73
  26. package/dist/esm/forthic/profiling-manager.js.map +0 -1
  27. package/dist/esm/forthic/streaming-manager.d.ts +0 -46
  28. package/dist/esm/forthic/streaming-manager.js +0 -119
  29. package/dist/esm/forthic/streaming-manager.js.map +0 -1
  30. package/dist/esm/forthic/types.d.ts +0 -21
  31. package/dist/esm/forthic/types.js +0 -5
  32. package/dist/esm/forthic/types.js.map +0 -1
@@ -1,119 +0,0 @@
1
- import { TokenType, Tokenizer } from "./tokenizer";
2
- /**
3
- * Manages streaming execution functionality for the Forthic interpreter
4
- */
5
- export class StreamingManager {
6
- streaming_token_index = 0;
7
- stream = false;
8
- previous_delta_length = 0;
9
- /**
10
- * Start streaming mode
11
- */
12
- startStream() {
13
- this.stream = true;
14
- this.previous_delta_length = 0;
15
- this.streaming_token_index = 0;
16
- }
17
- /**
18
- * End streaming mode
19
- */
20
- endStream() {
21
- this.stream = false;
22
- this.previous_delta_length = 0;
23
- this.streaming_token_index = 0;
24
- }
25
- /**
26
- * Check if streaming is currently active
27
- */
28
- isStreaming() {
29
- return this.stream;
30
- }
31
- /**
32
- * Get current streaming token index
33
- */
34
- getStreamingTokenIndex() {
35
- return this.streaming_token_index;
36
- }
37
- /**
38
- * Set streaming token index
39
- */
40
- setStreamingTokenIndex(index) {
41
- this.streaming_token_index = index;
42
- }
43
- /**
44
- * Get previous delta length
45
- */
46
- getPreviousDeltaLength() {
47
- return this.previous_delta_length;
48
- }
49
- /**
50
- * Set previous delta length
51
- */
52
- setPreviousDeltaLength(length) {
53
- this.previous_delta_length = length;
54
- }
55
- /**
56
- * Process streaming execution and yield tokens/deltas
57
- */
58
- async *processStreamingExecution(codeStream, done, reference_location, tokenHandler) {
59
- // Create a new Tokenizer for the full string.
60
- const tokenizer = new Tokenizer(codeStream, reference_location, done ? false : true);
61
- const tokens = [];
62
- let eosFound = false;
63
- // Gather tokens from the beginning.
64
- while (true) {
65
- const token = tokenizer.next_token();
66
- if (!token) {
67
- break;
68
- }
69
- // If we hit an EOS token then push it and break.
70
- if (token.type === TokenType.EOS) {
71
- tokens.push(token);
72
- eosFound = true;
73
- break;
74
- }
75
- tokens.push(token);
76
- }
77
- const delta = eosFound ? "" : tokenizer.get_string_delta();
78
- let newStop = this.findLastWordOrEOS(tokens);
79
- if (eosFound && !done) {
80
- newStop--;
81
- }
82
- if (!eosFound && !done) {
83
- newStop++;
84
- }
85
- // Execute only tokens we have not executed previously.
86
- for (let i = this.streaming_token_index; i < newStop; i++) {
87
- const token = tokens[i];
88
- if (!token) {
89
- continue;
90
- }
91
- await tokenHandler(token);
92
- if (this.stream &&
93
- (token.type !== TokenType.WORD || token.string !== "START_LOG")) {
94
- yield token.string;
95
- }
96
- }
97
- if (this.stream && !eosFound) {
98
- // Yield string delta if we're streaming and tokenizer has a delta
99
- const newPortion = delta?.substring(this.previous_delta_length) || "";
100
- if (newPortion) {
101
- yield { stringDelta: newPortion };
102
- }
103
- this.previous_delta_length = delta?.length || 0;
104
- }
105
- if (done) {
106
- this.endStream();
107
- return;
108
- }
109
- // Update our pointer and reset if done
110
- this.streaming_token_index = newStop;
111
- }
112
- /**
113
- * Find the last word or EOS token in the tokens array
114
- */
115
- findLastWordOrEOS(tokens) {
116
- return tokens.findLastIndex((token) => token.type === TokenType.WORD || token.type === TokenType.EOS);
117
- }
118
- }
119
- //# sourceMappingURL=streaming-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streaming-manager.js","sourceRoot":"","sources":["../../../src/forthic/streaming-manager.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Type definitions for the Forthic interpreter
3
- */
4
- export interface ModuleFlags {
5
- [key: string]: unknown;
6
- }
7
- export interface ScreenData {
8
- [key: string]: string;
9
- }
10
- export interface WordCount {
11
- word: string;
12
- count: number;
13
- }
14
- export interface ProfileTimestamp {
15
- label: string;
16
- time_ms: number;
17
- }
18
- export type ModuleImportSpec = string | [string, string];
19
- export interface StringDelta {
20
- stringDelta: string;
21
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Type definitions for the Forthic interpreter
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/forthic/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}