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