grammar-well 1.3.2 → 2.0.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.
Files changed (262) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +76 -560
  3. package/build/generator/artifacts/basic.d.ts +7 -0
  4. package/build/generator/artifacts/basic.js +24 -0
  5. package/build/generator/artifacts/basic.js.map +1 -0
  6. package/build/generator/artifacts/lexer.d.ts +13 -0
  7. package/build/generator/artifacts/lexer.js +204 -0
  8. package/build/generator/artifacts/lexer.js.map +1 -0
  9. package/build/{compiler/generator → generator}/artifacts/lr.d.ts +14 -14
  10. package/build/{compiler/generator → generator}/artifacts/lr.js +18 -22
  11. package/build/generator/artifacts/lr.js.map +1 -0
  12. package/build/generator/builtin/json.d.ts +183 -0
  13. package/build/generator/builtin/json.js +124 -0
  14. package/build/generator/builtin/json.js.map +1 -0
  15. package/build/generator/builtin/registry.json +1 -0
  16. package/build/generator/builtin/whitespace.d.ts +61 -0
  17. package/build/generator/builtin/whitespace.js +37 -0
  18. package/build/generator/builtin/whitespace.js.map +1 -0
  19. package/build/generator/generator.d.ts +38 -0
  20. package/build/generator/generator.js +368 -0
  21. package/build/generator/generator.js.map +1 -0
  22. package/build/generator/grammars/index.d.ts +2 -0
  23. package/build/generator/grammars/index.js +3 -0
  24. package/build/generator/grammars/index.js.map +1 -0
  25. package/build/generator/grammars/v1.d.ts +1190 -0
  26. package/build/generator/grammars/v1.js +614 -0
  27. package/build/generator/grammars/v1.js.map +1 -0
  28. package/build/generator/grammars/v2.d.ts +1367 -0
  29. package/build/generator/grammars/v2.js +695 -0
  30. package/build/generator/grammars/v2.js.map +1 -0
  31. package/build/generator/import-resolvers/auto.d.ts +2 -0
  32. package/build/generator/import-resolvers/auto.js +11 -0
  33. package/build/generator/import-resolvers/auto.js.map +1 -0
  34. package/build/generator/import-resolvers/browser.d.ts +7 -0
  35. package/build/generator/import-resolvers/browser.js +13 -0
  36. package/build/generator/import-resolvers/browser.js.map +1 -0
  37. package/build/generator/import-resolvers/default.d.ts +2 -0
  38. package/build/generator/import-resolvers/default.js +11 -0
  39. package/build/generator/import-resolvers/default.js.map +1 -0
  40. package/build/generator/import-resolvers/filesystem.d.ts +7 -0
  41. package/build/generator/import-resolvers/filesystem.js +15 -0
  42. package/build/generator/import-resolvers/filesystem.js.map +1 -0
  43. package/build/generator/index.d.ts +3 -0
  44. package/build/generator/index.js +4 -0
  45. package/build/generator/index.js.map +1 -0
  46. package/build/generator/state.d.ts +28 -0
  47. package/build/generator/state.js +73 -0
  48. package/build/generator/state.js.map +1 -0
  49. package/build/generator/stringify/common.d.ts +22 -0
  50. package/build/generator/stringify/common.js +83 -0
  51. package/build/generator/stringify/common.js.map +1 -0
  52. package/build/generator/stringify/exports/javascript.d.ts +3 -0
  53. package/build/generator/stringify/exports/javascript.js +26 -0
  54. package/build/generator/stringify/exports/javascript.js.map +1 -0
  55. package/build/generator/stringify/exports/json.d.ts +2 -0
  56. package/build/generator/stringify/exports/json.js +4 -0
  57. package/build/generator/stringify/exports/json.js.map +1 -0
  58. package/build/generator/stringify/exports/registry.d.ts +20 -0
  59. package/build/generator/stringify/exports/registry.js +17 -0
  60. package/build/generator/stringify/exports/registry.js.map +1 -0
  61. package/build/generator/stringify/exports/typescript.d.ts +2 -0
  62. package/build/generator/stringify/exports/typescript.js +16 -0
  63. package/build/generator/stringify/exports/typescript.js.map +1 -0
  64. package/build/generator/stringify/grammar/v2.d.ts +20 -0
  65. package/build/generator/stringify/grammar/v2.js +211 -0
  66. package/build/generator/stringify/grammar/v2.js.map +1 -0
  67. package/build/generator/stringify/javascript.d.ts +13 -0
  68. package/build/generator/stringify/javascript.js +83 -0
  69. package/build/generator/stringify/javascript.js.map +1 -0
  70. package/build/index.d.ts +7 -6
  71. package/build/index.js +7 -24
  72. package/build/index.js.map +1 -1
  73. package/build/lexers/character-lexer.d.ts +2 -2
  74. package/build/lexers/character-lexer.js +1 -5
  75. package/build/lexers/character-lexer.js.map +1 -1
  76. package/build/lexers/stateful-lexer.d.ts +12 -17
  77. package/build/lexers/stateful-lexer.js +38 -186
  78. package/build/lexers/stateful-lexer.js.map +1 -1
  79. package/build/lexers/token-buffer.d.ts +8 -8
  80. package/build/lexers/token-buffer.js +1 -5
  81. package/build/lexers/token-buffer.js.map +1 -1
  82. package/build/parser/algorithms/cyk.d.ts +6 -6
  83. package/build/parser/algorithms/cyk.js +10 -13
  84. package/build/parser/algorithms/cyk.js.map +1 -1
  85. package/build/parser/algorithms/earley.d.ts +7 -7
  86. package/build/parser/algorithms/earley.js +7 -11
  87. package/build/parser/algorithms/earley.js.map +1 -1
  88. package/build/parser/algorithms/lrk/algorithm.d.ts +3 -3
  89. package/build/parser/algorithms/lrk/algorithm.js +10 -13
  90. package/build/parser/algorithms/lrk/algorithm.js.map +1 -1
  91. package/build/parser/algorithms/lrk/bimap.js +1 -5
  92. package/build/parser/algorithms/lrk/bimap.js.map +1 -1
  93. package/build/parser/algorithms/lrk/canonical-collection.d.ts +7 -7
  94. package/build/parser/algorithms/lrk/canonical-collection.js +11 -15
  95. package/build/parser/algorithms/lrk/canonical-collection.js.map +1 -1
  96. package/build/parser/algorithms/lrk/closure.d.ts +3 -3
  97. package/build/parser/algorithms/lrk/closure.js +3 -7
  98. package/build/parser/algorithms/lrk/closure.js.map +1 -1
  99. package/build/parser/algorithms/lrk/stack.d.ts +6 -6
  100. package/build/parser/algorithms/lrk/stack.js +1 -5
  101. package/build/parser/algorithms/lrk/stack.js.map +1 -1
  102. package/build/parser/algorithms/lrk/state.d.ts +5 -5
  103. package/build/parser/algorithms/lrk/state.js +1 -2
  104. package/build/parser/parse.d.ts +10 -0
  105. package/build/parser/parse.js +34 -0
  106. package/build/parser/parse.js.map +1 -0
  107. package/build/parser/parser.d.ts +6 -17
  108. package/build/parser/parser.js +26 -42
  109. package/build/parser/parser.js.map +1 -1
  110. package/build/tsconfig.tsbuildinfo +1 -0
  111. package/build/typings/ast.d.ts +134 -0
  112. package/build/typings/ast.js +3 -0
  113. package/build/typings/ast.js.map +1 -0
  114. package/build/typings/common.d.ts +4 -0
  115. package/build/typings/common.js +2 -0
  116. package/build/typings/common.js.map +1 -0
  117. package/build/typings/generator.d.ts +58 -0
  118. package/build/typings/generator.js +3 -0
  119. package/build/typings/generator.js.map +1 -0
  120. package/build/typings/index.d.ts +43 -0
  121. package/build/typings/index.js +5 -0
  122. package/build/typings/index.js.map +1 -0
  123. package/build/typings/runtime.d.ts +70 -0
  124. package/build/typings/runtime.js +2 -0
  125. package/build/typings/runtime.js.map +1 -0
  126. package/build/utility/format.d.ts +1 -0
  127. package/build/utility/format.js +12 -0
  128. package/build/utility/format.js.map +1 -0
  129. package/build/utility/formatter.d.ts +1 -0
  130. package/build/utility/formatter.js +12 -0
  131. package/build/utility/formatter.js.map +1 -0
  132. package/build/utility/general.d.ts +1 -1
  133. package/build/utility/general.js +5 -13
  134. package/build/utility/general.js.map +1 -1
  135. package/build/utility/index.d.ts +4 -1
  136. package/build/utility/index.js +4 -17
  137. package/build/utility/index.js.map +1 -1
  138. package/build/utility/lint.d.ts +2 -2
  139. package/build/utility/lint.js +2 -6
  140. package/build/utility/lint.js.map +1 -1
  141. package/build/utility/migrate.d.ts +1 -0
  142. package/build/utility/migrate.js +10 -0
  143. package/build/utility/migrate.js.map +1 -0
  144. package/build/utility/monarch.d.ts +2 -2
  145. package/build/utility/monarch.js +33 -38
  146. package/build/utility/monarch.js.map +1 -1
  147. package/build/utility/parsing.d.ts +6 -0
  148. package/build/utility/parsing.js +26 -0
  149. package/build/utility/parsing.js.map +1 -0
  150. package/build/utility/text-format.d.ts +6 -6
  151. package/build/utility/text-format.js +2 -6
  152. package/build/utility/text-format.js.map +1 -1
  153. package/package.json +17 -24
  154. package/src/generator/artifacts/basic.ts +26 -0
  155. package/src/generator/artifacts/lexer.ts +228 -0
  156. package/src/{compiler/generator → generator}/artifacts/lr.ts +25 -24
  157. package/src/generator/builtin/character.well +7 -0
  158. package/src/generator/builtin/json.well +85 -0
  159. package/src/generator/builtin/number.well +21 -0
  160. package/src/generator/builtin/registry.json +1 -0
  161. package/src/generator/builtin/string.well +54 -0
  162. package/src/generator/builtin/whitespace.well +16 -0
  163. package/src/generator/generator.ts +401 -0
  164. package/src/generator/grammars/index.ts +2 -0
  165. package/src/generator/grammars/v1.ts +620 -0
  166. package/src/generator/grammars/v1.well +422 -0
  167. package/src/generator/grammars/v2.ts +701 -0
  168. package/src/generator/grammars/v2.well +413 -0
  169. package/src/generator/import-resolvers/auto.ts +12 -0
  170. package/src/generator/import-resolvers/browser.ts +13 -0
  171. package/src/generator/import-resolvers/filesystem.ts +18 -0
  172. package/src/generator/index.ts +3 -0
  173. package/src/generator/state.ts +89 -0
  174. package/src/generator/stringify/common.ts +90 -0
  175. package/src/generator/stringify/exports/javascript.ts +29 -0
  176. package/src/generator/stringify/exports/json.ts +5 -0
  177. package/src/generator/stringify/exports/registry.ts +20 -0
  178. package/src/generator/stringify/exports/typescript.ts +17 -0
  179. package/src/generator/stringify/grammar/v2.ts +223 -0
  180. package/src/generator/stringify/javascript.ts +94 -0
  181. package/src/index.ts +7 -6
  182. package/src/lexers/character-lexer.ts +2 -2
  183. package/src/lexers/stateful-lexer.ts +46 -203
  184. package/src/lexers/token-buffer.ts +3 -3
  185. package/src/parser/algorithms/cyk.ts +13 -12
  186. package/src/parser/algorithms/earley.ts +10 -10
  187. package/src/parser/algorithms/lrk/algorithm.ts +8 -7
  188. package/src/parser/algorithms/lrk/canonical-collection.ts +14 -14
  189. package/src/parser/algorithms/lrk/closure.ts +6 -6
  190. package/src/parser/algorithms/lrk/stack.ts +6 -6
  191. package/src/parser/algorithms/lrk/state.ts +5 -5
  192. package/src/parser/parse.ts +45 -0
  193. package/src/typings/ast.ts +148 -0
  194. package/src/typings/common.ts +2 -0
  195. package/src/typings/generator.ts +62 -0
  196. package/src/typings/index.ts +38 -0
  197. package/src/typings/runtime.ts +82 -0
  198. package/src/utility/format.ts +12 -0
  199. package/src/utility/general.ts +1 -2
  200. package/src/utility/index.ts +4 -1
  201. package/src/utility/lint.ts +5 -5
  202. package/src/utility/monarch.ts +34 -34
  203. package/src/utility/parsing.ts +30 -0
  204. package/src/utility/text-format.ts +7 -7
  205. package/.eslintrc.cjs +0 -14
  206. package/bootstrap.ts +0 -45
  207. package/build/compiler/builtin.json +0 -1
  208. package/build/compiler/compiler.d.ts +0 -50
  209. package/build/compiler/compiler.js +0 -249
  210. package/build/compiler/compiler.js.map +0 -1
  211. package/build/compiler/generator/artifacts/lr.js.map +0 -1
  212. package/build/compiler/generator/artifacts/standard.d.ts +0 -7
  213. package/build/compiler/generator/artifacts/standard.js +0 -28
  214. package/build/compiler/generator/artifacts/standard.js.map +0 -1
  215. package/build/compiler/generator/generator.d.ts +0 -24
  216. package/build/compiler/generator/generator.js +0 -217
  217. package/build/compiler/generator/generator.js.map +0 -1
  218. package/build/compiler/gwell.d.ts +0 -1112
  219. package/build/compiler/gwell.js +0 -576
  220. package/build/compiler/gwell.js.map +0 -1
  221. package/build/compiler/import-resolver.d.ts +0 -15
  222. package/build/compiler/import-resolver.js +0 -37
  223. package/build/compiler/import-resolver.js.map +0 -1
  224. package/build/compiler/index.d.ts +0 -2
  225. package/build/compiler/index.js +0 -19
  226. package/build/compiler/index.js.map +0 -1
  227. package/build/compiler/outputs/javascript.d.ts +0 -3
  228. package/build/compiler/outputs/javascript.js +0 -29
  229. package/build/compiler/outputs/javascript.js.map +0 -1
  230. package/build/compiler/outputs/json.d.ts +0 -2
  231. package/build/compiler/outputs/json.js +0 -8
  232. package/build/compiler/outputs/json.js.map +0 -1
  233. package/build/compiler/outputs/typescript.d.ts +0 -2
  234. package/build/compiler/outputs/typescript.js +0 -21
  235. package/build/compiler/outputs/typescript.js.map +0 -1
  236. package/build/parser/algorithms/lr.d.ts +0 -7
  237. package/build/parser/algorithms/lr.js +0 -108
  238. package/build/parser/algorithms/lr.js.map +0 -5
  239. package/build/parser/algorithms/lr0.d.ts +0 -7
  240. package/build/parser/algorithms/lr0.js +0 -156
  241. package/build/parser/algorithms/lr0.js.map +0 -1
  242. package/build/typings.d.ts +0 -226
  243. package/build/typings.js +0 -3
  244. package/build/typings.js.map +0 -1
  245. package/src/compiler/builtin/json.gwell +0 -74
  246. package/src/compiler/builtin/number.gwell +0 -20
  247. package/src/compiler/builtin/string.gwell +0 -48
  248. package/src/compiler/builtin/whitespace.gwell +0 -10
  249. package/src/compiler/builtin.json +0 -1
  250. package/src/compiler/compiler.ts +0 -265
  251. package/src/compiler/generator/artifacts/standard.ts +0 -26
  252. package/src/compiler/generator/generator.ts +0 -237
  253. package/src/compiler/gwell.gwell +0 -294
  254. package/src/compiler/gwell.js +0 -578
  255. package/src/compiler/import-resolver.ts +0 -36
  256. package/src/compiler/index.ts +0 -2
  257. package/src/compiler/outputs/javascript.ts +0 -27
  258. package/src/compiler/outputs/json.ts +0 -5
  259. package/src/compiler/outputs/typescript.ts +0 -18
  260. package/src/parser/parser.ts +0 -77
  261. package/src/typings.ts +0 -248
  262. package/testing.ts +0 -18
@@ -0,0 +1,211 @@
1
+ export class V2GrammarString {
2
+ source = '';
3
+ append(directives) {
4
+ directives = Array.isArray(directives) ? directives : [directives];
5
+ for (const directive of directives) {
6
+ if ("lifecycle" in directive) {
7
+ this.appendSection("on:" + directive.lifecycle, directive.js.js.trim());
8
+ }
9
+ else if ("import" in directive) {
10
+ this.appendImportDirective(directive);
11
+ }
12
+ else if ("config" in directive) {
13
+ this.appendConfigDirective(directive);
14
+ }
15
+ else if ("grammar" in directive) {
16
+ this.appendGrammarDirective(directive);
17
+ }
18
+ else if ("lexer" in directive) {
19
+ this.appendLexerDirective(directive);
20
+ }
21
+ }
22
+ }
23
+ appendImportDirective(directive) {
24
+ this.source += `import * from ${directive.path ? JSON.stringify(directive.import) : directive.import};\n`;
25
+ }
26
+ appendConfigDirective(directive) {
27
+ this.appendSection('config', this.formatKV(directive.config, 1));
28
+ }
29
+ appendGrammarDirective(directive) {
30
+ let body = '';
31
+ if (directive.grammar.config) {
32
+ body += this.formatKV(directive.grammar.config, 1);
33
+ }
34
+ if (directive.grammar.rules) {
35
+ for (const rule of directive.grammar.rules) {
36
+ body += this.formatGrammarRule(rule);
37
+ }
38
+ }
39
+ this.appendSection('grammar', body);
40
+ }
41
+ formatGrammarRule(rule) {
42
+ let body = '\n' + this.indent(1, `[${rule.name}]`);
43
+ if (rule.postprocess) {
44
+ body += ` ${this.formatPostProcess(rule.postprocess)}`;
45
+ }
46
+ for (const exp of rule.expressions) {
47
+ body += '\n' + this.indent(2, '| ') + this.formatSymbols(exp.symbols);
48
+ if (exp.postprocess) {
49
+ body += ` ${this.formatPostProcess(exp.postprocess)}`;
50
+ }
51
+ }
52
+ body += '\n';
53
+ return body;
54
+ }
55
+ formatSymbols(exp) {
56
+ return exp.map(v => this.formatSymbol(v) + (v.alias ? "@" + v.alias : '')).join(' ');
57
+ }
58
+ formatSymbol(exp) {
59
+ if (typeof exp == 'string') {
60
+ return JSON.stringify(exp);
61
+ }
62
+ if ('subexpression' in exp) {
63
+ return `(${exp.subexpression.map(v => this.formatSymbols(v.symbols)).join(' | ')})`;
64
+ }
65
+ if ('rule' in exp) {
66
+ return exp.rule;
67
+ }
68
+ if ('literal' in exp) {
69
+ return (exp.insensitive ? '\\i ' : '') + JSON.stringify(exp.literal);
70
+ }
71
+ if ('regex' in exp) {
72
+ let { regex, flags } = exp;
73
+ return `r${flags || ''}:{${regex}}`;
74
+ }
75
+ if ('token' in exp) {
76
+ return `<${exp.token}>`;
77
+ }
78
+ if ('expression' in exp) {
79
+ return this.formatSymbol(exp.expression) + (exp.repeat || '');
80
+ }
81
+ }
82
+ formatPostProcess(postProcess) {
83
+ if ('js' in postProcess) {
84
+ return `=> \${ ${postProcess.js} }`;
85
+ }
86
+ if ('template' in postProcess) {
87
+ const prefix = postProcess.template.slice(0, 1);
88
+ const suffix = postProcess.template.slice(-1);
89
+ return `=> ${prefix} ${postProcess.template.slice(1, -1).trim()} ${suffix}`;
90
+ }
91
+ }
92
+ appendLexerDirective(directive) {
93
+ let body = '';
94
+ if (directive.lexer.start) {
95
+ body += this.formatKV({ start: directive.lexer.start }, 1);
96
+ }
97
+ if (directive.lexer.states) {
98
+ for (const { state, name } of directive.lexer.states) {
99
+ if ('span' in state) {
100
+ body += '\n' + this.indent(1, `[${name}] span {\n`);
101
+ const stateOpen = state.span.find(v => v.name == 'start');
102
+ const stateBody = state.span.find(v => v.name == 'span');
103
+ const stateClose = state.span.find(v => v.name == 'stop');
104
+ if (state.config) {
105
+ body += this.formatKV(state.config, 2);
106
+ }
107
+ if (stateOpen) {
108
+ body += this.formatLexerState('start', stateOpen.state, 2);
109
+ }
110
+ if (stateBody) {
111
+ body += this.formatLexerState('span', stateBody.state, 2);
112
+ }
113
+ if (stateClose) {
114
+ body += this.formatLexerState('stop', stateClose.state, 2);
115
+ }
116
+ body += '\n' + this.indent(1, `}\n`);
117
+ }
118
+ else {
119
+ body += this.formatLexerState(name, state, 1);
120
+ }
121
+ }
122
+ }
123
+ this.appendSection('lexer', body);
124
+ }
125
+ formatLexerState(name, state, depth = 0) {
126
+ let body = '\n' + this.indent(depth, `[${name}]\n`);
127
+ if (state.default) {
128
+ body += this.indent(depth + 1, 'default: ' + this.formatLexerStateRule(state.default) + ';\n');
129
+ }
130
+ if (state.unmatched) {
131
+ body += this.indent(depth + 1, 'unmatched: ' + this.formatLexerStateRule(state.unmatched) + ';\n');
132
+ }
133
+ for (const rule of state.rules) {
134
+ if ('span' in rule)
135
+ continue;
136
+ body += this.indent(depth + 1, '- ' + this.formatLexerStateRule(rule) + '\n');
137
+ }
138
+ return body;
139
+ }
140
+ formatLexerStateRule(rule) {
141
+ let body = '';
142
+ if ('import' in rule) {
143
+ body += 'import ' + rule.import.join(', ');
144
+ }
145
+ else {
146
+ if (rule.before) {
147
+ body += 'before ' + this.formatSymbol(rule.when);
148
+ }
149
+ else if (rule.skip) {
150
+ body += 'skip ' + this.formatSymbol(rule.when);
151
+ }
152
+ else if ('when' in rule) {
153
+ body += 'when ' + this.formatSymbol(rule.when);
154
+ }
155
+ if (typeof rule.type != 'undefined') {
156
+ body += ` type ${JSON.stringify(rule.type)}`;
157
+ }
158
+ if (typeof rule.tag != 'undefined') {
159
+ body += ` tag ${rule.tag.map(v => JSON.stringify(v)).join(', ')}`;
160
+ }
161
+ if (typeof rule.open != 'undefined') {
162
+ body += ` open ${JSON.stringify(rule.open)}`;
163
+ }
164
+ if (typeof rule.close != 'undefined') {
165
+ body += ` close ${JSON.stringify(rule.close)}`;
166
+ }
167
+ if (typeof rule.highlight != 'undefined') {
168
+ body += ` highlight ${JSON.stringify(rule.highlight)}`;
169
+ }
170
+ if (typeof rule.unembed != 'undefined') {
171
+ body += ` unembed`;
172
+ }
173
+ if (typeof rule.embed != 'undefined') {
174
+ body += ` embed`;
175
+ }
176
+ if (typeof rule.pop != 'undefined') {
177
+ body += ` pop` + (rule.pop == 'all' || rule.pop > 1 ? ' ' + rule.pop : '');
178
+ }
179
+ if (typeof rule.inset != 'undefined') {
180
+ body += ` inset` + (rule.inset > 1 ? ' ' + rule.inset : '');
181
+ }
182
+ if (typeof rule.goto != 'undefined') {
183
+ body += ` goto ${rule.goto}`;
184
+ }
185
+ if (typeof rule.set != 'undefined') {
186
+ body += ` set ${rule.set}`;
187
+ }
188
+ if ("stay" in rule && rule.stay) {
189
+ body += ` stay`;
190
+ }
191
+ }
192
+ return body.trim();
193
+ }
194
+ formatKV(obj, depth = 0) {
195
+ let body = '';
196
+ for (const key in obj) {
197
+ body += this.indent(depth, `${key}: ${JSON.stringify(obj[key])}\n`);
198
+ }
199
+ return body;
200
+ }
201
+ appendSection(label, body) {
202
+ if (this.source) {
203
+ this.source += '\n';
204
+ }
205
+ this.source += `${label} {\n${body}\n}\n`;
206
+ }
207
+ indent(depth = 0, content) {
208
+ return `\t`.repeat(depth) + content;
209
+ }
210
+ }
211
+ //# sourceMappingURL=v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v2.js","sourceRoot":"","sources":["../../../../src/generator/stringify/grammar/v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Dictionary, GeneratorOutputOptions, GeneratorGrammarProductionRule } from "../../typings/index.js";
2
+ import { GeneratorState } from "../state.js";
3
+ export declare class JavaScriptGenerator {
4
+ state: GeneratorState;
5
+ options: GeneratorOutputOptions;
6
+ constructor(state: GeneratorState, options: GeneratorOutputOptions);
7
+ name(): string;
8
+ lifecycle(lifecycle: string): any;
9
+ artifacts(depth?: number): string;
10
+ postProcess(postprocess: GeneratorGrammarProductionRule['postprocess'], alias: Dictionary<number>): any;
11
+ grammarRule(rule: GeneratorGrammarProductionRule): string;
12
+ private templatePostProcess;
13
+ }
@@ -0,0 +1,83 @@
1
+ import { BasicGrammarTable } from "../artifacts/basic.js";
2
+ import { LexerArtifact } from "../artifacts/lexer.js";
3
+ import { LRParseTableBuilder } from "../artifacts/lr.js";
4
+ import { CommonGenerator } from "./common.js";
5
+ const PostProcessors = {
6
+ "join": "({data}) => data.join('')",
7
+ "concat": "({data}) => data[0].concat([data[1]])",
8
+ "null": "() => null",
9
+ "first": "({data}) => data[0]"
10
+ };
11
+ export class JavaScriptGenerator {
12
+ state;
13
+ options;
14
+ constructor(state, options) {
15
+ this.state = state;
16
+ this.options = options;
17
+ }
18
+ name() {
19
+ return this.options.name || 'GWLanguage';
20
+ }
21
+ lifecycle(lifecycle) {
22
+ if (this.options.noscript)
23
+ return '';
24
+ return this.state.lifecycle[lifecycle] || '';
25
+ }
26
+ artifacts(depth = 0) {
27
+ let output = {};
28
+ const artifacts = this.options.artifacts || { grammar: true, lexer: true };
29
+ if (artifacts && artifacts.lr) {
30
+ const table = new LRParseTableBuilder(this);
31
+ output.lr = CommonGenerator.JSON({
32
+ k: "0",
33
+ table: table.stringify(depth + 2)
34
+ }, depth + 1);
35
+ }
36
+ if ('lexer' in this.state && artifacts.lexer) {
37
+ const l = new LexerArtifact(this.state.lexer);
38
+ output.lexer = l.output(depth + 1);
39
+ }
40
+ if (artifacts.grammar) {
41
+ const basic = new BasicGrammarTable(this);
42
+ output.grammar = basic.stringify(depth + 1);
43
+ }
44
+ return CommonGenerator.JSON(output, depth);
45
+ }
46
+ postProcess(postprocess, alias) {
47
+ postprocess = this.state.grammar.config.postprocessorOverride || postprocess || this.state.grammar.config.postprocessorDefault;
48
+ if (!postprocess)
49
+ return null;
50
+ if ('builtin' in postprocess)
51
+ return PostProcessors[postprocess.builtin];
52
+ if (this.options.noscript)
53
+ return;
54
+ if (typeof postprocess == 'string')
55
+ return postprocess;
56
+ if ('js' in postprocess)
57
+ return postprocess.js;
58
+ if ('template' in postprocess)
59
+ return this.templatePostProcess(postprocess.template, alias);
60
+ }
61
+ grammarRule(rule) {
62
+ const symbols = [];
63
+ const alias = {};
64
+ for (let i = 0; i < rule.symbols.length; i++) {
65
+ symbols.push(CommonGenerator.SerializeSymbol(rule.symbols[i]));
66
+ if (rule.symbols[i].alias) {
67
+ alias[rule.symbols[i].alias] = i;
68
+ }
69
+ }
70
+ return CommonGenerator.JSON({
71
+ name: JSON.stringify(rule.name),
72
+ symbols: CommonGenerator.JSON(symbols, -1),
73
+ postprocess: this.postProcess(rule.postprocess, alias)
74
+ }, -1);
75
+ }
76
+ templatePostProcess(templateBody, alias) {
77
+ for (const key in alias) {
78
+ templateBody = templateBody.replace(new RegExp('(?:\\$)' + key + '(?![a-zA-Z\\d\\$_])'), `data[${alias[key]}]`);
79
+ }
80
+ return "({data}) => { return " + templateBody.replace(/\$(\d+)/g, "data[$1]") + "; }";
81
+ }
82
+ }
83
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/generator/stringify/javascript.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export * from './compiler/compiler';
2
- export * from './compiler/import-resolver';
3
- export * from './parser/parser';
4
- export * from './typings';
5
- export { StatefulLexer } from './lexers/stateful-lexer';
6
- export * from './utility/monarch';
1
+ export * from './generator/generator.js';
2
+ export * from './generator/import-resolvers/auto.js';
3
+ export { StatefulLexer } from './lexers/stateful-lexer.js';
4
+ export * from './parser/parse.js';
5
+ export * from './utility/parsing.js';
6
+ export * from './typings/index.js';
7
+ export * from './utility/index.js';
package/build/index.js CHANGED
@@ -1,25 +1,8 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.StatefulLexer = void 0;
18
- __exportStar(require("./compiler/compiler"), exports);
19
- __exportStar(require("./compiler/import-resolver"), exports);
20
- __exportStar(require("./parser/parser"), exports);
21
- __exportStar(require("./typings"), exports);
22
- var stateful_lexer_1 = require("./lexers/stateful-lexer");
23
- Object.defineProperty(exports, "StatefulLexer", { enumerable: true, get: function () { return stateful_lexer_1.StatefulLexer; } });
24
- __exportStar(require("./utility/monarch"), exports);
1
+ export * from './generator/generator.js';
2
+ export * from './generator/import-resolvers/auto.js';
3
+ export { StatefulLexer } from './lexers/stateful-lexer.js';
4
+ export * from './parser/parse.js';
5
+ export * from './utility/parsing.js';
6
+ export * from './typings/index.js';
7
+ export * from './utility/index.js';
25
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,6DAA2C;AAC3C,kDAAgC;AAChC,4CAAyB;AACzB,0DAAwD;AAA/C,+GAAA,aAAa,OAAA;AACtB,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Lexer } from "../typings";
2
- export declare class CharacterLexer implements Lexer {
1
+ import { RuntimeLexer } from "../typings/index.js";
2
+ export declare class CharacterLexer implements RuntimeLexer {
3
3
  private buffer;
4
4
  private $indexOffset;
5
5
  private $index;
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CharacterLexer = void 0;
4
- class CharacterLexer {
1
+ export class CharacterLexer {
5
2
  buffer = '';
6
3
  $indexOffset = 0;
7
4
  $index = -1;
@@ -67,5 +64,4 @@ class CharacterLexer {
67
64
  this.$line = 0;
68
65
  }
69
66
  }
70
- exports.CharacterLexer = CharacterLexer;
71
67
  //# sourceMappingURL=character-lexer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"character-lexer.js","sourceRoot":"","sources":["../../src/lexers/character-lexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"character-lexer.js","sourceRoot":"","sources":["../../src/lexers/character-lexer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { LexerStateDefinition, LexerConfig, Lexer } from "../typings";
2
- export declare class StatefulLexer implements Lexer {
1
+ import { RuntimeLexer, RuntimeLexerConfig } from "../typings/index.js";
2
+ export declare class StatefulLexer implements RuntimeLexer {
3
3
  private start;
4
4
  private states;
5
5
  private buffer;
@@ -13,7 +13,7 @@ export declare class StatefulLexer implements Lexer {
13
13
  private rules;
14
14
  private regexp;
15
15
  private tags;
16
- constructor({ states, start }: LexerConfig);
16
+ constructor({ states, start }: RuntimeLexerConfig);
17
17
  feed(data?: string, state?: ReturnType<StatefulLexer['state']>): void;
18
18
  state(): {
19
19
  line: number;
@@ -22,15 +22,15 @@ export declare class StatefulLexer implements Lexer {
22
22
  stack: string[];
23
23
  prefetched: RegExpExecArray;
24
24
  };
25
- next(): {
26
- type: string;
27
- highlight: string;
28
- open: string;
29
- close: string;
25
+ next(skipped?: boolean): {
26
+ type: any;
27
+ highlight: any;
28
+ open: any;
29
+ close: any;
30
30
  tag: Set<string>;
31
- value: string;
32
- text: string;
33
- offset: number;
31
+ value: any;
32
+ text: any;
33
+ offset: any;
34
34
  line: number;
35
35
  lines: number;
36
36
  column: number;
@@ -40,13 +40,8 @@ export declare class StatefulLexer implements Lexer {
40
40
  private pop;
41
41
  private goto;
42
42
  private matchNext;
43
- private createToken;
44
43
  private getTags;
44
+ private adjustPosition;
45
45
  private adjustStack;
46
46
  private getGroup;
47
47
  }
48
- export declare function ResolveStates(states: {
49
- [key: string]: LexerStateDefinition;
50
- }, start: string): {
51
- [key: string]: LexerStateDefinition;
52
- };