grammar-well 1.1.2 → 1.1.4

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 (63) hide show
  1. package/build/compiler/compiler.d.ts +49 -49
  2. package/build/compiler/compiler.js +227 -227
  3. package/build/compiler/generator.d.ts +23 -23
  4. package/build/compiler/generator.js +213 -212
  5. package/build/compiler/generator.js.map +1 -1
  6. package/build/compiler/import-resolver.d.ts +15 -15
  7. package/build/compiler/import-resolver.js +36 -36
  8. package/build/compiler/outputs/javascript.d.ts +3 -3
  9. package/build/compiler/outputs/javascript.js +14 -14
  10. package/build/compiler/outputs/json.d.ts +2 -2
  11. package/build/compiler/outputs/json.js +7 -7
  12. package/build/compiler/outputs/typescript.d.ts +2 -2
  13. package/build/compiler/outputs/typescript.js +9 -8
  14. package/build/compiler/outputs/typescript.js.map +1 -1
  15. package/build/grammars/gwell.d.ts +1023 -997
  16. package/build/grammars/gwell.js +540 -536
  17. package/build/grammars/gwell.js.map +1 -1
  18. package/build/grammars/json.d.ts +151 -151
  19. package/build/grammars/json.js +111 -111
  20. package/build/grammars/number.d.ts +239 -239
  21. package/build/grammars/number.js +114 -114
  22. package/build/grammars/number.json +1 -1
  23. package/build/grammars/string.d.ts +116 -116
  24. package/build/grammars/string.js +49 -49
  25. package/build/grammars/string.json +1 -1
  26. package/build/grammars/whitespace.d.ts +51 -51
  27. package/build/grammars/whitespace.js +29 -29
  28. package/build/grammars/whitespace.json +1 -1
  29. package/build/index.d.ts +4 -4
  30. package/build/index.js +20 -20
  31. package/build/lexers/character-lexer.d.ts +27 -27
  32. package/build/lexers/character-lexer.js +70 -70
  33. package/build/lexers/stateful-lexer.d.ts +48 -48
  34. package/build/lexers/stateful-lexer.js +308 -308
  35. package/build/lexers/token-buffer.d.ts +32 -32
  36. package/build/lexers/token-buffer.js +91 -91
  37. package/build/parser/algorithms/cyk.d.ts +16 -16
  38. package/build/parser/algorithms/cyk.js +57 -57
  39. package/build/parser/algorithms/earley.d.ts +48 -48
  40. package/build/parser/algorithms/earley.js +157 -157
  41. package/build/parser/algorithms/lr.d.ts +10 -10
  42. package/build/parser/algorithms/lr.js +33 -33
  43. package/build/parser/parser.d.ts +26 -26
  44. package/build/parser/parser.js +73 -73
  45. package/build/typings.d.ts +199 -198
  46. package/build/typings.js +2 -2
  47. package/build/utility/general.d.ts +55 -55
  48. package/build/utility/general.js +175 -165
  49. package/build/utility/general.js.map +1 -1
  50. package/build/utility/lint.d.ts +2 -2
  51. package/build/utility/lint.js +27 -27
  52. package/build/utility/lr.d.ts +52 -52
  53. package/build/utility/lr.js +129 -129
  54. package/build/utility/text-format.d.ts +11 -11
  55. package/build/utility/text-format.js +83 -83
  56. package/package.json +1 -1
  57. package/src/compiler/generator.ts +1 -0
  58. package/src/compiler/outputs/typescript.ts +2 -1
  59. package/src/grammars/gwell.gwell +15 -13
  60. package/src/grammars/gwell.js +17 -13
  61. package/src/grammars/gwell.json +1 -1
  62. package/src/typings.ts +1 -0
  63. package/src/utility/general.ts +31 -19
@@ -1,166 +1,176 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Unflatten = exports.Flatten = exports.Matrix = exports.SymbolCollection = exports.Collection = void 0;
4
- class Collection {
5
- categorized = {};
6
- uncategorized = new Map();
7
- items = [];
8
- constructor(ref = []) {
9
- for (const s of ref) {
10
- this.encode(s);
11
- }
12
- }
13
- encode(ref) {
14
- const c = this.resolve(ref);
15
- if (c)
16
- return this.addCategorized(c.category, c.key, ref);
17
- return this.addUncategorized(ref);
18
- }
19
- decode(id) {
20
- return this.items[typeof id == 'string' ? parseInt(id) : id];
21
- }
22
- has(ref) {
23
- const c = this.resolve(ref);
24
- if (c)
25
- return (c.key in this.categorized[c.category]);
26
- return this.uncategorized.has(ref);
27
- }
28
- redirect(source, target) {
29
- this.items[this.encode(source)] = target;
30
- }
31
- resolve(_) { }
32
- addCategorized(category, key, ref) {
33
- if (!(key in this.categorized[category])) {
34
- this.categorized[category][key] = this.items.length;
35
- this.items.push(ref);
36
- }
37
- return this.categorized[category][key];
38
- }
39
- addUncategorized(ref) {
40
- if (!this.uncategorized.has(ref)) {
41
- this.uncategorized.set(ref, this.items.length);
42
- this.items.push(ref);
43
- }
44
- return this.uncategorized.get(ref);
45
- }
46
- }
47
- exports.Collection = Collection;
48
- class SymbolCollection extends Collection {
49
- categorized = {
50
- nonTerminal: {},
51
- literalI: {},
52
- literalS: {},
53
- token: {},
54
- regex: {},
55
- function: {},
56
- };
57
- resolve(symbol) {
58
- if (typeof symbol == 'string') {
59
- return { category: 'nonTerminal', key: symbol };
60
- }
61
- else if ('literal' in symbol) {
62
- if (symbol.insensitive)
63
- return { category: 'literalI', key: symbol.literal };
64
- return { category: 'literalS', key: symbol.literal };
65
- }
66
- else if ('token' in symbol) {
67
- return { category: 'token', key: symbol.token };
68
- }
69
- else if (symbol instanceof RegExp) {
70
- return { category: 'regex', key: symbol.toString() };
71
- }
72
- else if (typeof symbol == 'function') {
73
- return { category: 'function', key: symbol.toString() };
74
- }
75
- }
76
- }
77
- exports.SymbolCollection = SymbolCollection;
78
- class Matrix {
79
- initial;
80
- $x = 0;
81
- $y = 0;
82
- get x() { return this.$x; }
83
- set x(x) { x != this.$x && this.resize(x, this.y); }
84
- get y() { return this.$y; }
85
- set y(y) { y != this.$y && this.resize(this.x, y); }
86
- matrix = [];
87
- constructor(x, y, initial) {
88
- this.initial = initial;
89
- this.resize(x, y);
90
- }
91
- get(x, y) {
92
- return this.matrix[x][y];
93
- }
94
- set(x, y, value) {
95
- return this.matrix[x][y] = value;
96
- }
97
- resize(x, y) {
98
- if (x < this.x) {
99
- this.matrix.splice(x);
100
- this.$x = x;
101
- }
102
- if (y > this.y) {
103
- this.matrix.forEach(a => a.push(...Matrix.Array(y - a.length, this.initial)));
104
- this.$y = y;
105
- }
106
- else if (y < this.y) {
107
- this.matrix.forEach(a => a.splice(y + 1));
108
- this.$y = y;
109
- }
110
- if (x > this.x) {
111
- const ext = Matrix.Array(x - this.x, () => Matrix.Array(this.y, this.initial));
112
- this.matrix.push(...ext);
113
- this.$x = x;
114
- }
115
- }
116
- static Array(length, initial) {
117
- return Array.from({ length }, (typeof initial == 'function' ? initial : () => initial));
118
- }
119
- }
120
- exports.Matrix = Matrix;
121
- function Flatten(obj) {
122
- const collection = new Collection();
123
- function Traverse(ref) {
124
- if (collection.has(ref)) {
125
- return collection.encode(ref);
126
- }
127
- if (Array.isArray(ref)) {
128
- collection.redirect(ref, ref.map(v => Traverse(v)));
129
- }
130
- else if (typeof ref === 'object') {
131
- const o = {};
132
- for (const k in ref) {
133
- o[k] = Traverse(ref[k]);
134
- }
135
- collection.redirect(ref, o);
136
- }
137
- else if (typeof ref === 'function') {
138
- return collection.encode(ref.toString());
139
- }
140
- return collection.encode(ref);
141
- }
142
- Traverse(obj);
143
- return collection.items;
144
- }
145
- exports.Flatten = Flatten;
146
- function Unflatten(items) {
147
- const visited = new Set();
148
- function Traverse(id) {
149
- if (visited.has(id)) {
150
- return items[id];
151
- }
152
- visited.add(id);
153
- if (Array.isArray(items[id])) {
154
- return items[id].map(v => Traverse(id));
155
- }
156
- else if (typeof items[id] === 'object') {
157
- for (const k in items[id]) {
158
- items[id][k] = Traverse(id[k]);
159
- }
160
- }
161
- return items[id];
162
- }
163
- return Traverse(0);
164
- }
165
- exports.Unflatten = Unflatten;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Unflatten = exports.Flatten = exports.Matrix = exports.SymbolCollection = exports.Collection = void 0;
4
+ class Collection {
5
+ categorized = {};
6
+ uncategorized = new Map();
7
+ items = [];
8
+ constructor(ref = []) {
9
+ for (const s of ref) {
10
+ this.encode(s);
11
+ }
12
+ }
13
+ encode(ref) {
14
+ const c = this.resolve(ref);
15
+ if (c)
16
+ return this.addCategorized(c.category, c.key, ref);
17
+ return this.addUncategorized(ref);
18
+ }
19
+ decode(id) {
20
+ return this.items[typeof id == 'string' ? parseInt(id) : id];
21
+ }
22
+ has(ref) {
23
+ const c = this.resolve(ref);
24
+ if (c)
25
+ return (c.key in this.categorized[c.category]);
26
+ return this.uncategorized.has(ref);
27
+ }
28
+ redirect(source, target) {
29
+ this.items[this.encode(source)] = target;
30
+ }
31
+ resolve(_) { }
32
+ addCategorized(category, key, ref) {
33
+ if (!(key in this.categorized[category])) {
34
+ this.categorized[category][key] = this.items.length;
35
+ this.items.push(ref);
36
+ }
37
+ return this.categorized[category][key];
38
+ }
39
+ addUncategorized(ref) {
40
+ if (!this.uncategorized.has(ref)) {
41
+ this.uncategorized.set(ref, this.items.length);
42
+ this.items.push(ref);
43
+ }
44
+ return this.uncategorized.get(ref);
45
+ }
46
+ }
47
+ exports.Collection = Collection;
48
+ class SymbolCollection extends Collection {
49
+ categorized = {
50
+ nonTerminal: {},
51
+ literalI: {},
52
+ literalS: {},
53
+ token: {},
54
+ regex: {},
55
+ function: {},
56
+ };
57
+ resolve(symbol) {
58
+ if (typeof symbol == 'string') {
59
+ return { category: 'nonTerminal', key: symbol };
60
+ }
61
+ else if ('literal' in symbol) {
62
+ if (symbol.insensitive)
63
+ return { category: 'literalI', key: symbol.literal };
64
+ return { category: 'literalS', key: symbol.literal };
65
+ }
66
+ else if ('token' in symbol) {
67
+ return { category: 'token', key: symbol.token };
68
+ }
69
+ else if (symbol instanceof RegExp) {
70
+ return { category: 'regex', key: symbol.toString() };
71
+ }
72
+ else if (typeof symbol == 'function') {
73
+ return { category: 'function', key: symbol.toString() };
74
+ }
75
+ }
76
+ }
77
+ exports.SymbolCollection = SymbolCollection;
78
+ class Matrix {
79
+ initial;
80
+ $x = 0;
81
+ $y = 0;
82
+ get x() { return this.$x; }
83
+ set x(x) { x != this.$x && this.resize(x, this.y); }
84
+ get y() { return this.$y; }
85
+ set y(y) { y != this.$y && this.resize(this.x, y); }
86
+ matrix = [];
87
+ constructor(x, y, initial) {
88
+ this.initial = initial;
89
+ this.resize(x, y);
90
+ }
91
+ get(x, y) {
92
+ return this.matrix[x][y];
93
+ }
94
+ set(x, y, value) {
95
+ return this.matrix[x][y] = value;
96
+ }
97
+ resize(x, y) {
98
+ if (x < this.x) {
99
+ this.matrix.splice(x);
100
+ this.$x = x;
101
+ }
102
+ if (y > this.y) {
103
+ this.matrix.forEach(a => a.push(...Matrix.Array(y - a.length, this.initial)));
104
+ this.$y = y;
105
+ }
106
+ else if (y < this.y) {
107
+ this.matrix.forEach(a => a.splice(y + 1));
108
+ this.$y = y;
109
+ }
110
+ if (x > this.x) {
111
+ const ext = Matrix.Array(x - this.x, () => Matrix.Array(this.y, this.initial));
112
+ this.matrix.push(...ext);
113
+ this.$x = x;
114
+ }
115
+ }
116
+ static Array(length, initial) {
117
+ return Array.from({ length }, (typeof initial == 'function' ? initial : () => initial));
118
+ }
119
+ }
120
+ exports.Matrix = Matrix;
121
+ function Flatten(obj) {
122
+ const collection = new Collection();
123
+ const $null = Symbol();
124
+ function Traverse(src) {
125
+ if (src == null) {
126
+ src = $null;
127
+ }
128
+ if (collection.has(src)) {
129
+ return collection.encode(src);
130
+ }
131
+ collection.encode(src);
132
+ if (Array.isArray(src)) {
133
+ collection.redirect(src, src.map(v => Traverse(v)));
134
+ }
135
+ else if (typeof src === 'object') {
136
+ const o = {};
137
+ for (const k in src) {
138
+ o[k] = Traverse(src[k]);
139
+ }
140
+ collection.redirect(src, o);
141
+ }
142
+ else if (typeof src === 'function') {
143
+ return collection.redirect(src, src.toString());
144
+ }
145
+ return collection.encode(src);
146
+ }
147
+ Traverse(obj);
148
+ collection.redirect($null, null);
149
+ return collection.items;
150
+ }
151
+ exports.Flatten = Flatten;
152
+ function Unflatten(items) {
153
+ const visited = new Set();
154
+ function Traverse(id) {
155
+ if (visited.has(id)) {
156
+ return items[id];
157
+ }
158
+ visited.add(id);
159
+ const obj = items[id];
160
+ if (Array.isArray(obj)) {
161
+ for (let i = 0; i < obj.length; i++) {
162
+ const ii = obj[i];
163
+ obj[i] = Traverse(ii);
164
+ }
165
+ }
166
+ else if (typeof obj === 'object') {
167
+ for (const k in obj) {
168
+ obj[k] = Traverse(obj[k]);
169
+ }
170
+ }
171
+ return obj;
172
+ }
173
+ return Traverse(0);
174
+ }
175
+ exports.Unflatten = Unflatten;
166
176
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/utility/general.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/utility/general.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { LanguageDefinition, GrammarRuleSymbol } from "../typings";
2
- export declare function LintGrammarSymbols(language: LanguageDefinition): GrammarRuleSymbol[];
1
+ import { LanguageDefinition, GrammarRuleSymbol } from "../typings";
2
+ export declare function LintGrammarSymbols(language: LanguageDefinition): GrammarRuleSymbol[];
@@ -1,28 +1,28 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LintGrammarSymbols = void 0;
4
- function LintGrammarSymbols(language) {
5
- const unused = new Set();
6
- const { rules, start } = language.grammar;
7
- for (const rule in rules) {
8
- unused.add(rule);
9
- }
10
- TraverseRule(start, rules, unused);
11
- return Array.from(unused);
12
- }
13
- exports.LintGrammarSymbols = LintGrammarSymbols;
14
- function TraverseRule(name, rules, unvisited) {
15
- if (!unvisited.has(name)) {
16
- return;
17
- }
18
- unvisited.add(name);
19
- const n = rules[name];
20
- for (const { symbols } of n) {
21
- for (const symbol of symbols) {
22
- if (typeof symbol == 'string') {
23
- TraverseRule(symbol, rules, unvisited);
24
- }
25
- }
26
- }
27
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LintGrammarSymbols = void 0;
4
+ function LintGrammarSymbols(language) {
5
+ const unused = new Set();
6
+ const { rules, start } = language.grammar;
7
+ for (const rule in rules) {
8
+ unused.add(rule);
9
+ }
10
+ TraverseRule(start, rules, unused);
11
+ return Array.from(unused);
12
+ }
13
+ exports.LintGrammarSymbols = LintGrammarSymbols;
14
+ function TraverseRule(name, rules, unvisited) {
15
+ if (!unvisited.has(name)) {
16
+ return;
17
+ }
18
+ unvisited.add(name);
19
+ const n = rules[name];
20
+ for (const { symbols } of n) {
21
+ for (const symbol of symbols) {
22
+ if (typeof symbol == 'string') {
23
+ TraverseRule(symbol, rules, unvisited);
24
+ }
25
+ }
26
+ }
27
+ }
28
28
  //# sourceMappingURL=lint.js.map
@@ -1,52 +1,52 @@
1
- import { Dictionary, GrammarRule, GrammarRuleSymbol, LanguageDefinition } from "../typings";
2
- import { Collection, SymbolCollection } from "./general";
3
- export declare class CanonicalCollection {
4
- grammar: LanguageGrammar;
5
- rules: Collection<GrammarRule>;
6
- states: {
7
- [key: string]: State;
8
- };
9
- symbols: SymbolCollection;
10
- constructor(grammar: LanguageGrammar);
11
- addState(seed: StateItem[]): State;
12
- encodeRule(rule: GrammarRule, dot: number): string;
13
- encodeStateItems(seed: StateItem[]): string;
14
- }
15
- declare class State {
16
- private collection;
17
- isFinal: boolean;
18
- outputs: StateOut;
19
- queue: {
20
- [key: string]: StateItem[];
21
- };
22
- actions: Map<GrammarRuleSymbol, string>;
23
- goto: Map<GrammarRuleSymbol, string>;
24
- reduce?: GrammarRule;
25
- constructor(collection: CanonicalCollection, items: StateItem[]);
26
- private closure;
27
- }
28
- export declare class LRStack {
29
- stack: LRStackItem[];
30
- get current(): LRStackItem;
31
- get previous(): LRStackItem;
32
- shift(state: State): void;
33
- reduce(rule: GrammarRule): void;
34
- add(symbol: GrammarRuleSymbol): void;
35
- }
36
- declare class LRStackItem {
37
- children: LRStackItem[];
38
- state: State;
39
- symbol: GrammarRuleSymbol;
40
- rule: GrammarRule;
41
- value: any;
42
- }
43
- type LanguageGrammar = LanguageDefinition['grammar'];
44
- type StateItem = {
45
- rule: GrammarRule;
46
- dot: number;
47
- };
48
- interface StateOut {
49
- action: Dictionary<StateItem[]>;
50
- goto: Dictionary<StateItem[]>;
51
- }
52
- export {};
1
+ import { Dictionary, GrammarRule, GrammarRuleSymbol, LanguageDefinition } from "../typings";
2
+ import { Collection, SymbolCollection } from "./general";
3
+ export declare class CanonicalCollection {
4
+ grammar: LanguageGrammar;
5
+ rules: Collection<GrammarRule>;
6
+ states: {
7
+ [key: string]: State;
8
+ };
9
+ symbols: SymbolCollection;
10
+ constructor(grammar: LanguageGrammar);
11
+ addState(seed: StateItem[]): State;
12
+ encodeRule(rule: GrammarRule, dot: number): string;
13
+ encodeStateItems(seed: StateItem[]): string;
14
+ }
15
+ declare class State {
16
+ private collection;
17
+ isFinal: boolean;
18
+ outputs: StateOut;
19
+ queue: {
20
+ [key: string]: StateItem[];
21
+ };
22
+ actions: Map<GrammarRuleSymbol, string>;
23
+ goto: Map<GrammarRuleSymbol, string>;
24
+ reduce?: GrammarRule;
25
+ constructor(collection: CanonicalCollection, items: StateItem[]);
26
+ private closure;
27
+ }
28
+ export declare class LRStack {
29
+ stack: LRStackItem[];
30
+ get current(): LRStackItem;
31
+ get previous(): LRStackItem;
32
+ shift(state: State): void;
33
+ reduce(rule: GrammarRule): void;
34
+ add(symbol: GrammarRuleSymbol): void;
35
+ }
36
+ declare class LRStackItem {
37
+ children: LRStackItem[];
38
+ state: State;
39
+ symbol: GrammarRuleSymbol;
40
+ rule: GrammarRule;
41
+ value: any;
42
+ }
43
+ type LanguageGrammar = LanguageDefinition['grammar'];
44
+ type StateItem = {
45
+ rule: GrammarRule;
46
+ dot: number;
47
+ };
48
+ interface StateOut {
49
+ action: Dictionary<StateItem[]>;
50
+ goto: Dictionary<StateItem[]>;
51
+ }
52
+ export {};