grammar-well 1.2.2 → 1.2.3

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 (38) hide show
  1. package/bootstrap.ts +6 -3
  2. package/build/compiler/compiler.js +2 -2
  3. package/build/compiler/compiler.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/compiler/compiler.ts +2 -2
  6. package/build/grammars/gwell.d.ts +0 -1039
  7. package/build/grammars/gwell.js +0 -553
  8. package/build/grammars/gwell.js.map +0 -1
  9. package/build/grammars/json.d.ts +0 -151
  10. package/build/grammars/json.js +0 -112
  11. package/build/grammars/json.js.map +0 -1
  12. package/build/grammars/number.d.ts +0 -239
  13. package/build/grammars/number.js +0 -115
  14. package/build/grammars/number.js.map +0 -1
  15. package/build/grammars/number.json +0 -1
  16. package/build/grammars/string.d.ts +0 -116
  17. package/build/grammars/string.js +0 -50
  18. package/build/grammars/string.js.map +0 -1
  19. package/build/grammars/string.json +0 -1
  20. package/build/grammars/whitespace.d.ts +0 -51
  21. package/build/grammars/whitespace.js +0 -30
  22. package/build/grammars/whitespace.js.map +0 -1
  23. package/build/grammars/whitespace.json +0 -1
  24. package/src/grammars/gwell.gwell +0 -281
  25. package/src/grammars/gwell.js +0 -555
  26. package/src/grammars/gwell.json +0 -1
  27. package/src/grammars/json.gwell +0 -75
  28. package/src/grammars/json.js +0 -121
  29. package/src/grammars/json.json +0 -1
  30. package/src/grammars/number.gwell +0 -20
  31. package/src/grammars/number.js +0 -117
  32. package/src/grammars/number.json +0 -1
  33. package/src/grammars/string.gwell +0 -15
  34. package/src/grammars/string.js +0 -52
  35. package/src/grammars/string.json +0 -1
  36. package/src/grammars/whitespace.gwell +0 -6
  37. package/src/grammars/whitespace.js +0 -32
  38. package/src/grammars/whitespace.json +0 -1
@@ -1,555 +0,0 @@
1
- // Generated automatically by Grammar-Well, version unknown
2
- // https://github.com/0x6563/grammar-well
3
-
4
- function GWLanguage(){
5
-
6
- return {
7
- grammar: {
8
- start: "main",
9
- rules: {
10
- main: [
11
- { name: "main", symbols: [ "_", "section_list", "_" ], postprocess: ({data}) => { return data[1]; } }
12
- ],
13
- section_list: [
14
- { name: "section_list", symbols: [ "section" ], postprocess: ({data}) => { return [data[0]]; } },
15
- { name: "section_list", symbols: [ "section", "T_WS", "section_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
16
- ],
17
- section: [
18
- { name: "section", symbols: [ "K_CONFIG", "_", "L_COLON", "_", "L_TEMPLATEL", "_", "kv_list", "_", "L_TEMPLATER" ], postprocess: ({data}) => { return { config: Object.assign(...data[6]) }; } },
19
- { name: "section", symbols: [ "K_IMPORT", "_", "L_STAR", "_", "K_FROM", "__", "T_WORD", "_", "L_SCOLON" ], postprocess: ({data}) => { return { import: data[6] }; } },
20
- { name: "section", symbols: [ "K_IMPORT", "_", "L_STAR", "_", "K_FROM", "__", "T_STRING", "_", "L_SCOLON" ], postprocess: ({data}) => { return { import: data[6], path: true }; } },
21
- { name: "section", symbols: [ "K_LEXER", "_", "L_COLON", "_", "L_TEMPLATEL", "_", "lexer", "_", "L_TEMPLATER" ], postprocess: ({data}) => { return { lexer: Object.assign(...data[6]) }; } },
22
- { name: "section", symbols: [ "K_GRAMMAR", "_", "L_COLON", "_", "L_TEMPLATEL", "_", "grammar", "_", "L_TEMPLATER" ], postprocess: ({data}) => { return { grammar: data[6] }; } },
23
- { name: "section", symbols: [ "K_BODY", "_", "L_COLON", "_", "T_JS" ], postprocess: ({data}) => { return { body: data[4] }; } },
24
- { name: "section", symbols: [ "K_BODY", "_", "L_COLON", "_", "T_STRING" ], postprocess: ({data}) => { return { body: data[4], path: true }; } },
25
- { name: "section", symbols: [ "K_HEAD", "_", "L_COLON", "_", "T_JS" ], postprocess: ({data}) => { return { head: data[4] }; } },
26
- { name: "section", symbols: [ "K_HEAD", "_", "L_COLON", "_", "T_STRING" ], postprocess: ({data}) => { return { head: data[4], path: true }; } }
27
- ],
28
- lexer: [
29
- { name: "lexer", symbols: [ "kv_list", "_", "state_list" ], postprocess: ({data}) => { return data[0].concat({ states: data[2] }); } },
30
- { name: "lexer", symbols: [ "state_list" ], postprocess: ({data}) => { return [{ states: data[0] }]; } }
31
- ],
32
- state_list: [
33
- { name: "state_list", symbols: [ "state" ], postprocess: ({data}) => { return data; } },
34
- { name: "state_list", symbols: [ "state", "_", "state_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
35
- ],
36
- state: [
37
- { name: "state", symbols: [ "state_declare", "_", "state_definition" ], postprocess: ({data}) => { return Object.assign({ name: data[0] }, data[2]); } }
38
- ],
39
- state_declare: [
40
- { name: "state_declare", symbols: [ "T_WORD", "_", "L_ARROW" ], postprocess: ({data}) => { return data[0]; } }
41
- ],
42
- state_definition: [
43
- { name: "state_definition", symbols: [ "kv_list", "_", "token_list" ], postprocess: ({data}) => { return Object.assign(...data[0], { rules: data[2] }); } },
44
- { name: "state_definition", symbols: [ "token_list" ], postprocess: ({data}) => { return { rules: data[0] }; } }
45
- ],
46
- token_list: [
47
- { name: "token_list", symbols: [ "token" ], postprocess: ({data}) => { return data; } },
48
- { name: "token_list", symbols: [ "token", "_", "token_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
49
- ],
50
- token: [
51
- { name: "token", symbols: [ "L_DASH", "_", "K_IMPORT", "_", "L_COLON", "_", "word_list" ], postprocess: ({data}) => { return { import: data[6] }; } },
52
- { name: "token", symbols: [ "L_DASH", "_", "token_definition_list" ], postprocess: ({data}) => { return Object.assign(...data[2]); } }
53
- ],
54
- token_definition_list: [
55
- { name: "token_definition_list", symbols: [ "token_definition" ], postprocess: ({data}) => { return data; } },
56
- { name: "token_definition_list", symbols: [ "token_definition", "_", "token_definition_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
57
- ],
58
- token_definition: [
59
- { name: "token_definition", symbols: [ "K_TAG", "_", "L_COLON", "_", "string_list" ], postprocess: ({data}) => { return { tag: data[4] }; } },
60
- { name: "token_definition", symbols: [ "K_WHEN", "_", "L_COLON", "_", "T_STRING" ], postprocess: ({data}) => { return { when: data[4] }; } },
61
- { name: "token_definition", symbols: [ "K_WHEN", "_", "L_COLON", "_", "T_REGEX" ], postprocess: ({data}) => { return { when: data[4] }; } },
62
- { name: "token_definition", symbols: [ "K_POP" ], postprocess: ({data}) => { return { pop: 1 }; } },
63
- { name: "token_definition", symbols: [ "K_POP", "_", "L_COLON", "_", "T_INTEGER" ], postprocess: ({data}) => { return { pop: parseInt(data[4]) }; } },
64
- { name: "token_definition", symbols: [ "K_POP", "_", "L_COLON", "_", "K_ALL" ], postprocess: ({data}) => { return { pop: "all" }; } },
65
- { name: "token_definition", symbols: [ "K_HIGHLIGHT", "_", "L_COLON", "_", "T_STRING" ], postprocess: ({data}) => { return { highlight: data[4] }; } },
66
- { name: "token_definition", symbols: [ "K_INSET" ], postprocess: ({data}) => { return { inset: 1 }; } },
67
- { name: "token_definition", symbols: [ "K_INSET", "_", "L_COLON", "_", "T_INTEGER" ], postprocess: ({data}) => { return { inset: parseInt(data[4]) }; } },
68
- { name: "token_definition", symbols: [ "K_SET", "_", "L_COLON", "_", "T_WORD" ], postprocess: ({data}) => { return { set: data[4] }; } },
69
- { name: "token_definition", symbols: [ "K_GOTO", "_", "L_COLON", "_", "T_WORD" ], postprocess: ({data}) => { return { goto: data[4] }; } },
70
- { name: "token_definition", symbols: [ "K_TYPE", "_", "L_COLON", "_", "T_STRING" ], postprocess: ({data}) => { return { type: data[4] }; } }
71
- ],
72
- grammar: [
73
- { name: "grammar", symbols: [ "kv_list", "_", "grammar_rule_list" ], postprocess: ({data}) => { return { config: Object.assign(...data[0]), rules: data[2] }; } },
74
- { name: "grammar", symbols: [ "grammar_rule_list" ], postprocess: ({data}) => { return { rules: data[0] }; } }
75
- ],
76
- grammar_rule_list: [
77
- { name: "grammar_rule_list", symbols: [ "grammar_rule" ], postprocess: ({data}) => { return [data[0]]; } },
78
- { name: "grammar_rule_list", symbols: [ "grammar_rule", "_", "grammar_rule_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
79
- ],
80
- grammar_rule: [
81
- { name: "grammar_rule", symbols: [ "T_WORD", "_", "L_ARROW", "_", "expression_list" ], postprocess: ({data}) => { return { name: data[0], expressions: data[4] }; } },
82
- { name: "grammar_rule", symbols: [ "T_WORD", "__", "L_COLON", "_", "T_JS", "_", "L_ARROW", "_", "expression_list" ], postprocess: ({data}) => { return { name: data[0], expressions: data[8], postprocess: data[4] }; } },
83
- { name: "grammar_rule", symbols: [ "T_WORD", "__", "L_COLON", "_", "T_GRAMMAR_TEMPLATE", "_", "L_ARROW", "_", "expression_list" ], postprocess: ({data}) => { return { name: data[0], expressions: data[8], postprocess: data[4] }; } }
84
- ],
85
- expression_list: [
86
- { name: "expression_list", symbols: [ "expression" ] },
87
- { name: "expression_list", symbols: [ "expression_list", "_", "L_PIPE", "_", "expression" ], postprocess: ({data}) => { return data[0].concat([data[4]]); } }
88
- ],
89
- expression: [
90
- { name: "expression", symbols: [ "expression_symbol_list" ], postprocess: ({data}) => { return { symbols: data[0] }; } },
91
- { name: "expression", symbols: [ "expression_symbol_list", "__", "L_COLON", "_", "T_JS" ], postprocess: ({data}) => { return { symbols: data[0], postprocess: data[4] }; } },
92
- { name: "expression", symbols: [ "expression_symbol_list", "__", "L_COLON", "_", "T_GRAMMAR_TEMPLATE" ], postprocess: ({data}) => { return { symbols: data[0], postprocess: data[4] }; } }
93
- ],
94
- expression_symbol_list: [
95
- { name: "expression_symbol_list", symbols: [ "expression_symbol" ] },
96
- { name: "expression_symbol_list", symbols: [ "expression_symbol_list", "T_WS", "expression_symbol" ], postprocess: ({data}) => { return data[0].concat([data[2]]); } }
97
- ],
98
- expression_symbol: [
99
- { name: "expression_symbol", symbols: [ "expression_symbol_match" ], postprocess: ({data}) => { return data[0]; } },
100
- { name: "expression_symbol", symbols: [ "expression_symbol_match", "L_COLON", "T_WORD" ], postprocess: ({data}) => { return { ...data[0], alias: data[2] }; } },
101
- { name: "expression_symbol", symbols: [ "expression_symbol_match", "expression_repeater" ], postprocess: ({data}) => { return { expression: data[0], repeat: data[1] }; } },
102
- { name: "expression_symbol", symbols: [ "expression_symbol_match", "expression_repeater", "L_COLON", "T_WORD" ], postprocess: ({data}) => { return { expression: data[0], repeat: data[1], alias: data[4] }; } }
103
- ],
104
- expression_symbol_match: [
105
- { name: "expression_symbol_match", symbols: [ "T_WORD" ], postprocess: ({data}) => { return { rule: data[0] }; } },
106
- { name: "expression_symbol_match", symbols: [ "T_STRING", "expression_symbol_match$RPT01x1" ], postprocess: ({data}) => { return { literal: data[0], insensitive: !!data[1] }; } },
107
- { name: "expression_symbol_match", symbols: [ "L_DSIGN", "T_WORD" ], postprocess: ({data}) => { return { token: data[1]}; } },
108
- { name: "expression_symbol_match", symbols: [ "L_DSIGN", "T_STRING" ], postprocess: ({data}) => { return { token: data[1]}; } },
109
- { name: "expression_symbol_match", symbols: [ "T_REGEX" ], postprocess: ({data}) => { return data[0]; } },
110
- { name: "expression_symbol_match", symbols: [ "L_PARENL", "_", "expression_list", "_", "L_PARENR" ], postprocess: ({data}) => { return { subexpression: data[2] }; } },
111
- { name: "expression_symbol_match", symbols: [ "T_JS" ], postprocess: ({data}) => { return data[0]; } }
112
- ],
113
- expression_symbol_match$RPT01x1: [
114
- { name: "expression_symbol_match$RPT01x1", symbols: [ { literal: "i" } ], postprocess: ({data}) => data[0] },
115
- { name: "expression_symbol_match$RPT01x1", symbols: [ ], postprocess: () => null }
116
- ],
117
- expression_repeater: [
118
- { name: "expression_repeater", symbols: [ "L_QMARK" ], postprocess: ({data}) => { return data[0][0].value; } },
119
- { name: "expression_repeater", symbols: [ "L_PLUS" ], postprocess: ({data}) => { return data[0][0].value; } },
120
- { name: "expression_repeater", symbols: [ "L_STAR" ], postprocess: ({data}) => { return data[0][0].value; } }
121
- ],
122
- kv_list: [
123
- { name: "kv_list", symbols: [ "kv" ], postprocess: ({data}) => { return data; } },
124
- { name: "kv_list", symbols: [ "kv", "_", "kv_list" ], postprocess: ({data}) => { return [data[0]].concat(data[2]); } }
125
- ],
126
- kv$SUBx1: [
127
- { name: "kv$SUBx1", symbols: [ "T_WORD" ] },
128
- { name: "kv$SUBx1", symbols: [ "T_STRING" ] },
129
- { name: "kv$SUBx1", symbols: [ "T_INTEGER" ] },
130
- { name: "kv$SUBx1", symbols: [ "T_JS" ] },
131
- { name: "kv$SUBx1", symbols: [ "T_GRAMMAR_TEMPLATE" ] }
132
- ],
133
- kv: [
134
- { name: "kv", symbols: [ "T_WORD", "_", "L_COLON", "_", "kv$SUBx1" ], postprocess: ({data}) => { return { [data[0]]: data[4][0] }; } }
135
- ],
136
- string_list: [
137
- { name: "string_list", symbols: [ "T_STRING" ], postprocess: ({data}) => { return [data[0]]; } },
138
- { name: "string_list", symbols: [ "T_STRING", "_", "L_COMMA", "_", "string_list" ], postprocess: ({data}) => { return [data[0]].concat(data[4]); } }
139
- ],
140
- word_list: [
141
- { name: "word_list", symbols: [ "T_WORD" ], postprocess: ({data}) => { return [data[0]]; } },
142
- { name: "word_list", symbols: [ "T_WORD", "_", "L_COMMA", "_", "word_list" ], postprocess: ({data}) => { return [data[0]].concat(data[4]); } }
143
- ],
144
- _$RPT0Nx1: [
145
- { name: "_$RPT0Nx1", symbols: [ ] },
146
- { name: "_$RPT0Nx1", symbols: [ "_$RPT0Nx1", "_$RPT0Nx1$SUBx1" ], postprocess: ({data}) => data[0].concat([data[1]]) }
147
- ],
148
- _$RPT0Nx1$SUBx1: [
149
- { name: "_$RPT0Nx1$SUBx1", symbols: [ "T_WS" ] },
150
- { name: "_$RPT0Nx1$SUBx1", symbols: [ "T_COMMENT" ] }
151
- ],
152
- _: [
153
- { name: "_", symbols: [ "_$RPT0Nx1" ], postprocess: ({data}) => { return null; } }
154
- ],
155
- __$RPT1Nx1$SUBx1: [
156
- { name: "__$RPT1Nx1$SUBx1", symbols: [ "T_WS" ] },
157
- { name: "__$RPT1Nx1$SUBx1", symbols: [ "T_COMMENT" ] }
158
- ],
159
- __$RPT1Nx1: [
160
- { name: "__$RPT1Nx1", symbols: [ "__$RPT1Nx1$SUBx1" ] },
161
- { name: "__$RPT1Nx1", symbols: [ "__$RPT1Nx1", "__$RPT1Nx1$SUBx2" ], postprocess: ({data}) => data[0].concat([data[1]]) }
162
- ],
163
- __$RPT1Nx1$SUBx2: [
164
- { name: "__$RPT1Nx1$SUBx2", symbols: [ "T_WS" ] },
165
- { name: "__$RPT1Nx1$SUBx2", symbols: [ "T_COMMENT" ] }
166
- ],
167
- __: [
168
- { name: "__", symbols: [ "__$RPT1Nx1" ], postprocess: ({data}) => { return null; } }
169
- ],
170
- L_COLON: [
171
- { name: "L_COLON", symbols: [ { token: "L_COLON" } ] }
172
- ],
173
- L_SCOLON: [
174
- { name: "L_SCOLON", symbols: [ { token: "L_SCOLON" } ] }
175
- ],
176
- L_QMARK: [
177
- { name: "L_QMARK", symbols: [ { token: "L_QMARK" } ] }
178
- ],
179
- L_PLUS: [
180
- { name: "L_PLUS", symbols: [ { token: "L_PLUS" } ] }
181
- ],
182
- L_STAR: [
183
- { name: "L_STAR", symbols: [ { token: "L_STAR" } ] }
184
- ],
185
- L_COMMA: [
186
- { name: "L_COMMA", symbols: [ { token: "L_COMMA" } ] }
187
- ],
188
- L_PIPE: [
189
- { name: "L_PIPE", symbols: [ { token: "L_PIPE" } ] }
190
- ],
191
- L_PARENL: [
192
- { name: "L_PARENL", symbols: [ { token: "L_PARENL" } ] }
193
- ],
194
- L_PARENR: [
195
- { name: "L_PARENR", symbols: [ { token: "L_PARENR" } ] }
196
- ],
197
- L_TEMPLATEL: [
198
- { name: "L_TEMPLATEL", symbols: [ { token: "L_TEMPLATEL" } ] }
199
- ],
200
- L_TEMPLATER: [
201
- { name: "L_TEMPLATER", symbols: [ { token: "L_TEMPLATER" } ] }
202
- ],
203
- L_ARROW: [
204
- { name: "L_ARROW", symbols: [ { token: "L_ARROW" } ] }
205
- ],
206
- L_DSIGN: [
207
- { name: "L_DSIGN", symbols: [ { token: "L_DSIGN" } ] }
208
- ],
209
- L_DASH: [
210
- { name: "L_DASH", symbols: [ { token: "L_DASH" } ] }
211
- ],
212
- K_ALL: [
213
- { name: "K_ALL", symbols: [ { literal: "all" } ] }
214
- ],
215
- K_TAG: [
216
- { name: "K_TAG", symbols: [ { literal: "tag" } ] }
217
- ],
218
- K_FROM: [
219
- { name: "K_FROM", symbols: [ { literal: "from" } ] }
220
- ],
221
- K_TYPE: [
222
- { name: "K_TYPE", symbols: [ { literal: "type" } ] }
223
- ],
224
- K_WHEN: [
225
- { name: "K_WHEN", symbols: [ { literal: "when" } ] }
226
- ],
227
- K_POP: [
228
- { name: "K_POP", symbols: [ { literal: "pop" } ] }
229
- ],
230
- K_HIGHLIGHT: [
231
- { name: "K_HIGHLIGHT", symbols: [ { literal: "highlight" } ] }
232
- ],
233
- K_INSET: [
234
- { name: "K_INSET", symbols: [ { literal: "inset" } ] }
235
- ],
236
- K_SET: [
237
- { name: "K_SET", symbols: [ { literal: "set" } ] }
238
- ],
239
- K_GOTO: [
240
- { name: "K_GOTO", symbols: [ { literal: "goto" } ] }
241
- ],
242
- K_CONFIG: [
243
- { name: "K_CONFIG", symbols: [ { literal: "config" } ] }
244
- ],
245
- K_LEXER: [
246
- { name: "K_LEXER", symbols: [ { literal: "lexer" } ] }
247
- ],
248
- K_GRAMMAR: [
249
- { name: "K_GRAMMAR", symbols: [ { literal: "grammar" } ] }
250
- ],
251
- K_IMPORT: [
252
- { name: "K_IMPORT", symbols: [ { literal: "import" } ] }
253
- ],
254
- K_BODY: [
255
- { name: "K_BODY", symbols: [ { literal: "body" } ] }
256
- ],
257
- K_HEAD: [
258
- { name: "K_HEAD", symbols: [ { literal: "head" } ] }
259
- ],
260
- T_JS$RPT0Nx1: [
261
- { name: "T_JS$RPT0Nx1", symbols: [ ] },
262
- { name: "T_JS$RPT0Nx1", symbols: [ "T_JS$RPT0Nx1", { token: "T_JSBODY" } ], postprocess: ({data}) => data[0].concat([data[1]]) }
263
- ],
264
- T_JS: [
265
- { name: "T_JS", symbols: [ { token: "L_JSL" }, "T_JS$RPT0Nx1", { token: "L_JSR" } ], postprocess: ({data}) => { return { js: data[1].map(v=>v.value).join('') }; } }
266
- ],
267
- T_GRAMMAR_TEMPLATE$RPT0Nx1: [
268
- { name: "T_GRAMMAR_TEMPLATE$RPT0Nx1", symbols: [ ] },
269
- { name: "T_GRAMMAR_TEMPLATE$RPT0Nx1", symbols: [ "T_GRAMMAR_TEMPLATE$RPT0Nx1", { token: "T_JSBODY" } ], postprocess: ({data}) => data[0].concat([data[1]]) }
270
- ],
271
- T_GRAMMAR_TEMPLATE: [
272
- { name: "T_GRAMMAR_TEMPLATE", symbols: [ { token: "L_TEMPLATEL" }, "_", "T_GRAMMAR_TEMPLATE$RPT0Nx1", "_", { token: "L_TEMPLATER" } ], postprocess: ({data}) => { return { template: data[2].map(v=>v.value).join('').trim() }; } }
273
- ],
274
- T_STRING: [
275
- { name: "T_STRING", symbols: [ { token: "T_STRING" } ], postprocess: ({data}) => { return JSON.parse(data[0].value); } }
276
- ],
277
- T_WORD: [
278
- { name: "T_WORD", symbols: [ { token: "T_WORD" } ], postprocess: ({data}) => { return data[0].value; } }
279
- ],
280
- T_REGEX$RPT0Nx1: [
281
- { name: "T_REGEX$RPT0Nx1", symbols: [ ] },
282
- { name: "T_REGEX$RPT0Nx1", symbols: [ "T_REGEX$RPT0Nx1", /[gmiuy]/ ], postprocess: ({data}) => data[0].concat([data[1]]) }
283
- ],
284
- T_REGEX: [
285
- { name: "T_REGEX", symbols: [ { token: "T_REGEX" }, "T_REGEX$RPT0Nx1" ], postprocess: ({data}) => { return { regex: data[0].value.replace(/\\\\\//g,'/').slice(1,-1), flags: data[1].map(v=>v.value).join('').trim() }; } }
286
- ],
287
- T_COMMENT: [
288
- { name: "T_COMMENT", symbols: [ { token: "T_COMMENT" } ] }
289
- ],
290
- T_INTEGER: [
291
- { name: "T_INTEGER", symbols: [ { token: "T_INTEGER" } ], postprocess: ({data}) => { return data[0].value; } }
292
- ],
293
- T_WS: [
294
- { name: "T_WS", symbols: [ { token: "T_WS" } ], postprocess: ({data}) => { return null; } }
295
- ]
296
- }
297
- },
298
- lexer: {
299
- start: "start",
300
- states: {
301
- start: {
302
- name: "start",
303
- rules: [
304
- { import: ["string","js","ws","comment","l_scolon","l_star"] },
305
- { when: /lexer(?![a-zA-Z\d_])/, tag: ["T_WORD"], highlight: "type", goto: "lexer" },
306
- { when: /grammar(?![a-zA-Z\d_])/, tag: ["T_WORD"], highlight: "type", goto: "grammar" },
307
- { when: /config(?![a-zA-Z\d_])/, tag: ["T_WORD"], highlight: "type", goto: "config" },
308
- { import: ["kv"] }
309
- ]
310
- },
311
- config: {
312
- name: "config",
313
- rules: [
314
- { import: ["ws","l_colon"] },
315
- { when: "{{", tag: ["L_TEMPLATEL"], set: "config_inner" }
316
- ]
317
- },
318
- config_inner: {
319
- name: "config_inner",
320
- rules: [
321
- { import: ["comment","kv"] },
322
- { when: "}}", tag: ["L_TEMPLATER"], pop: 1 }
323
- ]
324
- },
325
- grammar: {
326
- name: "grammar",
327
- rules: [
328
- { import: ["ws","l_colon"] },
329
- { when: "{{", tag: ["L_TEMPLATEL"], set: "grammar_inner" }
330
- ]
331
- },
332
- grammar_inner: {
333
- name: "grammar_inner",
334
- rules: [
335
- { import: ["comment","js","js_template","ws","regex","l_qmark","l_plus","l_star","kv","l_colon","l_comma","l_pipe","l_parenl","l_parenr","l_arrow","l_dsign","l_dash"] },
336
- { when: "}}", tag: ["L_TEMPLATER"], pop: 1 }
337
- ]
338
- },
339
- lexer: {
340
- name: "lexer",
341
- rules: [
342
- { import: ["ws","l_colon"] },
343
- { when: "{{", tag: ["L_TEMPLATEL"], set: "lexer_inner" }
344
- ]
345
- },
346
- lexer_inner: {
347
- name: "lexer_inner",
348
- rules: [
349
- { import: ["ws","comment","regex","l_comma","l_arrow","l_dash","kv","js"] },
350
- { when: "}}", tag: ["L_TEMPLATER"], pop: 1 }
351
- ]
352
- },
353
- js: {
354
- name: "js",
355
- rules: [
356
- { when: "${", tag: ["L_JSL"], goto: "js_wrap" }
357
- ]
358
- },
359
- js_wrap: {
360
- name: "js_wrap",
361
- default: "T_JSBODY",
362
- unmatched: "T_JSBODY",
363
- rules: [
364
- { import: ["jsignore"] },
365
- { when: "{", tag: ["T_JSBODY"], goto: "js_literal" },
366
- { when: "}", tag: ["L_JSR"], pop: 1 }
367
- ]
368
- },
369
- js_literal: {
370
- name: "js_literal",
371
- default: "T_JSBODY",
372
- unmatched: "T_JSBODY",
373
- rules: [
374
- { import: ["jsignore"] },
375
- { when: "{", tag: ["T_JSBODY"], goto: "js_literal" },
376
- { when: "}", tag: ["T_JSBODY"], pop: 1 }
377
- ]
378
- },
379
- js_template: {
380
- name: "js_template",
381
- rules: [
382
- { when: "{{", tag: ["L_TEMPLATEL"], goto: "js_template_inner" }
383
- ]
384
- },
385
- js_template_inner: {
386
- name: "js_template_inner",
387
- default: "T_JSBODY",
388
- unmatched: "T_JSBODY",
389
- rules: [
390
- { import: ["jsignore"] },
391
- { when: "{", tag: ["T_JSBODY"], goto: "js_literal" },
392
- { when: "}}", tag: ["L_TEMPLATER"], pop: 1 }
393
- ]
394
- },
395
- kv: {
396
- name: "kv",
397
- rules: [
398
- { import: ["string","ws","word","l_colon","integer"] }
399
- ]
400
- },
401
- jsignore: {
402
- name: "jsignore",
403
- rules: [
404
- { when: /"(?:[^"\\\r\n]|\\.)*"/, tag: ["T_JSBODY"] },
405
- { when: /'(?:[^'\\\r\n]|\\.)*'/, tag: ["T_JSBODY"] },
406
- { when: /`(?:[^`\\]|\\.)*`/, tag: ["T_JSBODY"] },
407
- { when: /\/(?:[^\/\\\r\n]|\\.)+\/[gmiyu]*/, tag: ["T_JSBODY"] },
408
- { when: /\/\/[^\n]*/, tag: ["T_JSBODY"] },
409
- { when: /\/\*.*\*\//, tag: ["T_JSBODY"] }
410
- ]
411
- },
412
- string: {
413
- name: "string",
414
- rules: [
415
- { when: /"(?:[^"\\\r\n]|\\.)*"/, tag: ["T_STRING"], highlight: "string" }
416
- ]
417
- },
418
- string2: {
419
- name: "string2",
420
- rules: [
421
- { when: /'(?:[^'\\\r\n]|\\.)*'/, tag: ["T_STRING"], highlight: "string" }
422
- ]
423
- },
424
- string3: {
425
- name: "string3",
426
- rules: [
427
- { when: /`(?:[^`\\]|\\.)*`/, tag: ["T_STRING"], highlight: "string" }
428
- ]
429
- },
430
- regex: {
431
- name: "regex",
432
- rules: [
433
- { when: /\/(?:[^\/\\\r\n]|\\.)+\//, tag: ["T_REGEX"], highlight: "regexp" }
434
- ]
435
- },
436
- integer: {
437
- name: "integer",
438
- rules: [
439
- { when: /\d+/, tag: ["T_INTEGER"], highlight: "number" }
440
- ]
441
- },
442
- word: {
443
- name: "word",
444
- rules: [
445
- { when: /[a-zA-Z_][a-zA-Z_\d]*/, tag: ["T_WORD"] }
446
- ]
447
- },
448
- ws: {
449
- name: "ws",
450
- rules: [
451
- { when: /\s+/, tag: ["T_WS"] }
452
- ]
453
- },
454
- l_colon: {
455
- name: "l_colon",
456
- rules: [
457
- { when: ":", tag: ["L_COLON"], highlight: "keyword" }
458
- ]
459
- },
460
- l_scolon: {
461
- name: "l_scolon",
462
- rules: [
463
- { when: ";", tag: ["L_SCOLON"] }
464
- ]
465
- },
466
- l_qmark: {
467
- name: "l_qmark",
468
- rules: [
469
- { when: "?", tag: ["L_QMARK"] }
470
- ]
471
- },
472
- l_plus: {
473
- name: "l_plus",
474
- rules: [
475
- { when: "+", tag: ["L_PLUS"] }
476
- ]
477
- },
478
- l_star: {
479
- name: "l_star",
480
- rules: [
481
- { when: "*", tag: ["L_STAR"] }
482
- ]
483
- },
484
- l_comma: {
485
- name: "l_comma",
486
- rules: [
487
- { when: ",", tag: ["L_COMMA"] }
488
- ]
489
- },
490
- l_pipe: {
491
- name: "l_pipe",
492
- rules: [
493
- { when: "|", tag: ["L_PIPE"], highlight: "keyword" }
494
- ]
495
- },
496
- l_parenl: {
497
- name: "l_parenl",
498
- rules: [
499
- { when: "(", tag: ["L_PARENL"] }
500
- ]
501
- },
502
- l_parenr: {
503
- name: "l_parenr",
504
- rules: [
505
- { when: ")", tag: ["L_PARENR"] }
506
- ]
507
- },
508
- l_templatel: {
509
- name: "l_templatel",
510
- rules: [
511
- { when: "{{", tag: ["L_TEMPLATEL"] }
512
- ]
513
- },
514
- l_templater: {
515
- name: "l_templater",
516
- rules: [
517
- { when: "}}", tag: ["L_TEMPLATER"] }
518
- ]
519
- },
520
- l_arrow: {
521
- name: "l_arrow",
522
- rules: [
523
- { when: "->", tag: ["L_ARROW"], highlight: "keyword" }
524
- ]
525
- },
526
- l_dsign: {
527
- name: "l_dsign",
528
- rules: [
529
- { when: "$", tag: ["L_DSIGN"] }
530
- ]
531
- },
532
- l_dash: {
533
- name: "l_dash",
534
- rules: [
535
- { when: "-", tag: ["L_DASH"] }
536
- ]
537
- },
538
- comment: {
539
- name: "comment",
540
- rules: [
541
- { when: /\/\/[^\n]*/, tag: ["T_COMMENT"], highlight: "comment" }
542
- ]
543
- },
544
- commentmulti: {
545
- name: "commentmulti",
546
- rules: [
547
- { when: /\/\*.*\*\//, tag: ["T_COMMENT"], highlight: "comment" }
548
- ]
549
- }
550
- }
551
- }
552
- }
553
- }
554
-
555
- export default GWLanguage;