yapp 2.2.184 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +85 -423
- package/lib/index.js +1 -9
- package/lib/lexer/javascript.js +6 -18
- package/lib/lexer/json.js +7 -20
- package/lib/lexer/plainText.js +7 -20
- package/lib/lexer/xml.js +6 -18
- package/lib/parser/javascript.js +10 -19
- package/lib/parser/json.js +10 -19
- package/lib/parser/plainText.js +10 -19
- package/lib/parser/xml.js +10 -19
- package/lib/plugin/javascript.js +3 -5
- package/lib/plugin/json.js +3 -5
- package/lib/plugin/plainText.js +3 -5
- package/lib/plugin/xml.js +3 -5
- package/lib/plugin.js +3 -2
- package/package.json +1 -1
- package/src/index.js +0 -2
- package/src/lexer/javascript.js +5 -8
- package/src/lexer/json.js +5 -8
- package/src/lexer/plainText.js +5 -9
- package/src/lexer/xml.js +4 -7
- package/src/parser/javascript.js +144 -142
- package/src/parser/json.js +16 -14
- package/src/parser/plainText.js +10 -8
- package/src/parser/xml.js +24 -22
- package/src/plugin/javascript.js +1 -1
- package/src/plugin/json.js +1 -1
- package/src/plugin/plainText.js +1 -1
- package/src/plugin/xml.js +1 -1
- package/src/plugin.js +5 -1
- package/lib/lexer/yapp.js +0 -93
- package/lib/parser/yapp.js +0 -132
- package/src/lexer/yapp.js +0 -5
- package/src/parser/yapp.js +0 -29
package/src/parser/javascript.js
CHANGED
|
@@ -1,297 +1,299 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { CommonParser } from "occam-parsers";
|
|
4
|
+
import { parserUtilities } from "occam-grammar-utilities";
|
|
5
|
+
|
|
6
|
+
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
4
7
|
|
|
5
8
|
const bnf = `
|
|
6
9
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
document ::= preamble ( statement | function | class | error )*
|
|
11
|
+
|
|
12
|
+
| ( statement | function | class | error )+
|
|
13
|
+
|
|
14
|
+
;
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
preamble ::= ( "\\"use strict\\"" | "'use strict'" ) ";" ;
|
|
16
19
|
|
|
17
20
|
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
statement ::= statementBody... ";"
|
|
23
|
+
|
|
24
|
+
| "{" ( statement | function )* "}"
|
|
25
|
+
|
|
26
|
+
| "if" "(" expression... ")" statement ( "else" statement )?
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
| "for" ( ( "(" initialiser ( ";" expression )? ( ";" expression )? ")" statement )
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
| ( "(" variable "in" expression... ")" statement )
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
| ( "await"? "(" variable "of" expression... ")" statement )
|
|
33
|
+
|
|
34
|
+
)
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
| "do" statement "while" "(" expression... ")"
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
| "while" "(" expression... ")" statement
|
|
39
|
+
|
|
40
|
+
| "switch" "(" expression... ")" "{" case* defaultCase? "}"
|
|
38
41
|
|
|
39
|
-
|
|
42
|
+
| try ( ( catch* finally ) | catch+ )
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
class ::= ( "export" "default"? )? "class" name classBody
|
|
50
|
+
|
|
51
|
+
| "export" "default" "class" classBody
|
|
52
|
+
|
|
53
|
+
;
|
|
51
54
|
|
|
52
55
|
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
function ::= ( "export" "default"? )? "async"? "function" name functionBody
|
|
58
|
+
|
|
59
|
+
| "export" "default" "async"? "function" functionBody
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
;
|
|
59
62
|
|
|
60
63
|
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
statementBody ::= "import" ( [string-literal]
|
|
63
66
|
|
|
64
|
-
|
|
67
|
+
| ( name "from" [string-literal] )
|
|
65
68
|
|
|
66
|
-
|
|
69
|
+
| ( "{" names "}" "from" [string-literal] )
|
|
67
70
|
|
|
68
|
-
|
|
71
|
+
| ( "*" "as" name "from" [string-literal] )
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
)
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
| "export" ( ( "{" names "}" ( "from" [string-literal] )? )
|
|
73
76
|
|
|
74
|
-
|
|
77
|
+
| ( "const" "{" fields "}" "=" expression )
|
|
75
78
|
|
|
76
|
-
|
|
79
|
+
| ( "{" "default" "}" "from" [string-literal] )
|
|
77
80
|
|
|
78
|
-
|
|
81
|
+
| ( "*" ( "as" name )? "from" [string-literal] )
|
|
79
82
|
|
|
80
|
-
|
|
83
|
+
)
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
| "export"? ( ( "var" var ( "," var )* )
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
| ( "let" let ( "," let )* )
|
|
85
88
|
|
|
86
|
-
|
|
89
|
+
| ( "const" const ( "," const )* )
|
|
87
90
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
| ( "export" "default" )? expression
|
|
91
94
|
|
|
92
|
-
|
|
95
|
+
| "return" expression?
|
|
93
96
|
|
|
94
|
-
|
|
97
|
+
| "throw" expression
|
|
95
98
|
|
|
96
|
-
|
|
99
|
+
| "delete" expression
|
|
97
100
|
|
|
98
|
-
|
|
101
|
+
| "break"
|
|
99
102
|
|
|
100
|
-
|
|
103
|
+
| "continue"
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
| "debugger"
|
|
106
|
+
|
|
107
|
+
;
|
|
105
108
|
|
|
106
109
|
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
functionBody ::= "(" arguments? ")" "{" ( statement | function )* "}" ;
|
|
109
112
|
|
|
110
113
|
|
|
111
114
|
|
|
112
|
-
|
|
115
|
+
classBody ::= ( "extends" name )? "{" ( constructor | method | field )* "}" ;
|
|
113
116
|
|
|
114
117
|
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
constructor ::= "constructor" functionBody ;
|
|
117
120
|
|
|
118
|
-
|
|
121
|
+
method ::= "static"? name functionBody ;
|
|
119
122
|
|
|
120
|
-
|
|
123
|
+
field ::= "static"? name "=" expression... ";" ;
|
|
121
124
|
|
|
122
125
|
|
|
123
126
|
|
|
124
|
-
|
|
127
|
+
var ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
125
128
|
|
|
126
|
-
|
|
129
|
+
let ::= variable ( "=" expression )? | destructure "=" expression ;
|
|
127
130
|
|
|
128
|
-
|
|
131
|
+
const ::= ( variable | destructure ) "=" expression ;
|
|
129
132
|
|
|
130
133
|
|
|
131
134
|
|
|
132
|
-
|
|
135
|
+
try ::= "try" "{" statement+ "}" ;
|
|
133
136
|
|
|
134
|
-
|
|
137
|
+
catch ::= "catch" "(" [identifier] ")" "{" statement+ "}" ;
|
|
135
138
|
|
|
136
|
-
|
|
139
|
+
finally ::= "finally" "{" statement+ "}" ;
|
|
137
140
|
|
|
138
141
|
|
|
139
142
|
|
|
140
|
-
|
|
143
|
+
case ::= "case" expression ":" statement ( "break" ";" )? ;
|
|
141
144
|
|
|
142
|
-
|
|
145
|
+
defaultCase ::= "default" ":" statement ( "break" ";" )? ;
|
|
143
146
|
|
|
144
147
|
|
|
145
148
|
|
|
146
|
-
|
|
149
|
+
initialiser ::= expression | "var" var ( "," var )* | "let" let ( "," let )* ;
|
|
147
150
|
|
|
148
151
|
|
|
149
152
|
|
|
150
|
-
|
|
153
|
+
destructure ::= "[" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "]"
|
|
151
154
|
|
|
152
|
-
|
|
155
|
+
| "{" variable ( "=" expression )? ( "," variable ( "=" expression )? )* "}"
|
|
153
156
|
|
|
154
|
-
|
|
157
|
+
;
|
|
155
158
|
|
|
156
159
|
|
|
157
160
|
|
|
158
|
-
|
|
161
|
+
expression ::= jsx
|
|
159
162
|
|
|
160
|
-
|
|
163
|
+
| json
|
|
161
164
|
|
|
162
|
-
|
|
165
|
+
| arrowFunction
|
|
163
166
|
|
|
164
|
-
|
|
167
|
+
| templateLiteral
|
|
165
168
|
|
|
166
|
-
|
|
169
|
+
| anonymousFunction
|
|
167
170
|
|
|
168
|
-
|
|
171
|
+
| "(" expression ")"
|
|
169
172
|
|
|
170
|
-
|
|
173
|
+
| "{" ( property ( "," property )* )? "}"
|
|
171
174
|
|
|
172
|
-
|
|
175
|
+
| "[" ( expression ( "," expression )* ","? )? "]"
|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
| "typeof" ( expression | ( "(" expression ")") )
|
|
175
178
|
|
|
176
|
-
|
|
179
|
+
| "void" ( expression | ( "(" expression ")") )
|
|
177
180
|
|
|
178
|
-
|
|
181
|
+
| "new" name<NO_WHITESPACE>"(" arguments? ")"
|
|
179
182
|
|
|
180
|
-
|
|
183
|
+
| [operator]<NO_WHITESPACE>expression
|
|
181
184
|
|
|
182
|
-
|
|
185
|
+
| expression<NO_WHITESPACE>( ( "."<NO_WHITESPACE>name )
|
|
183
186
|
|
|
184
|
-
|
|
187
|
+
| ( "[" expressions "]" )
|
|
185
188
|
|
|
186
|
-
|
|
189
|
+
| ( "(" expressions? ")" )
|
|
187
190
|
|
|
188
|
-
|
|
191
|
+
| templateLiteral
|
|
189
192
|
|
|
190
|
-
|
|
193
|
+
| [operator]
|
|
191
194
|
|
|
192
|
-
|
|
195
|
+
)
|
|
193
196
|
|
|
194
|
-
|
|
197
|
+
| expression ( ( [operator] expression )
|
|
195
198
|
|
|
196
|
-
|
|
199
|
+
| ( "?" expression ":" expression )
|
|
197
200
|
|
|
198
|
-
|
|
201
|
+
| ( "instanceof" expression )
|
|
199
202
|
|
|
200
|
-
|
|
203
|
+
| ( "in" expression )
|
|
201
204
|
|
|
202
|
-
|
|
205
|
+
)
|
|
203
206
|
|
|
204
|
-
|
|
207
|
+
| [number]
|
|
205
208
|
|
|
206
|
-
|
|
209
|
+
| variable
|
|
207
210
|
|
|
208
|
-
|
|
211
|
+
| primitive
|
|
209
212
|
|
|
210
|
-
|
|
213
|
+
| importMeta
|
|
211
214
|
|
|
212
|
-
|
|
215
|
+
| [string-literal]
|
|
213
216
|
|
|
214
|
-
|
|
217
|
+
| "super" | "this" | "true" | "false" | "null" | "undefined"
|
|
215
218
|
|
|
216
|
-
|
|
219
|
+
;
|
|
217
220
|
|
|
218
221
|
|
|
219
222
|
|
|
220
|
-
|
|
223
|
+
jsx ::= jsxCompleteTag | jsxStartTag ( jsx | ( "{" expression? "}" ) | string )* jsxEndTag ;
|
|
221
224
|
|
|
222
|
-
|
|
225
|
+
jsxCompleteTag ::= "<"<NO_WHITESPACE>name jsxAttribute* "/>" ;
|
|
223
226
|
|
|
224
|
-
|
|
227
|
+
jsxStartTag ::= "<"<NO_WHITESPACE>name jsxAttribute* ">" ;
|
|
225
228
|
|
|
226
|
-
|
|
229
|
+
jsxEndTag ::= "</"<NO_WHITESPACE>name ">" ;
|
|
227
230
|
|
|
228
|
-
|
|
231
|
+
jsxAttribute ::= name ( <NO_WHITESPACE>"=" ( ( <NO_WHITESPACE>[string-literal] ) | ( <NO_WHITESPACE>"{" expression "}" ) ) )? ;
|
|
229
232
|
|
|
230
233
|
|
|
231
234
|
|
|
232
|
-
|
|
235
|
+
json ::= jsonArray | jsonObject ;
|
|
233
236
|
|
|
234
|
-
|
|
237
|
+
jsonArray ::= "[" ( jsonElement ( "," jsonElement )* )? "]" ;
|
|
235
238
|
|
|
236
|
-
|
|
239
|
+
jsonObject ::= "{" ( [string-literal] ":" jsonElement ( "," [string-literal] ":" jsonElement )* )? "}" ;
|
|
237
240
|
|
|
238
|
-
|
|
241
|
+
jsonElement ::= json | [string-literal] | [number] | "true" | "false" | "null" ;
|
|
239
242
|
|
|
240
243
|
|
|
241
244
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
245
|
+
arrowFunction ::= complexArrowFunction | simpleArrowFunction ;
|
|
246
|
+
|
|
247
|
+
complexArrowFunction ::= "(" arguments? ")" "=>" arrowFunctionBody ;
|
|
248
|
+
|
|
249
|
+
simpleArrowFunction ::= argument "=>" arrowFunctionBody ;
|
|
250
|
+
|
|
251
|
+
arrowFunctionBody ::= expression | ( "{" statement* "}" ) ;
|
|
249
252
|
|
|
250
253
|
|
|
251
|
-
|
|
254
|
+
templateLiteral ::= "\`" ( ( "\${" expression? "}" ) | string )* "\`" ;
|
|
252
255
|
|
|
253
256
|
|
|
254
257
|
|
|
255
|
-
|
|
258
|
+
string ::= ( [number] | [special] | [operator]| [keyword] | [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
|
|
256
259
|
|
|
257
|
-
|
|
260
|
+
property ::= ( ( ( name | [string-literal] ) ":" expression ) | variable ) ;
|
|
258
261
|
|
|
259
|
-
|
|
262
|
+
importMeta ::= "import"<NO_WHITESPACE>"."<NO_WHITESPACE>"meta" ;
|
|
260
263
|
|
|
261
264
|
|
|
262
265
|
|
|
263
|
-
|
|
266
|
+
expressions ::= expression ( "," expression )* ;
|
|
264
267
|
|
|
265
|
-
|
|
268
|
+
arguments ::= spreadArgument | ( argument ( "," argument )* ( "," spreadArgument )? ) ;
|
|
266
269
|
|
|
267
|
-
|
|
270
|
+
fields ::= name ( ":" name )? ( "," name ( ":" name )? )* ;
|
|
268
271
|
|
|
269
|
-
|
|
272
|
+
names ::= name ( "as" name )? ( "," name ( "as" name )? )* ;
|
|
270
273
|
|
|
271
274
|
|
|
272
275
|
|
|
273
|
-
|
|
276
|
+
spreadArgument ::= "..."<NO_WHITESPACE>variable ;
|
|
274
277
|
|
|
275
|
-
|
|
278
|
+
argument ::= variable ( "=" expression )? ;
|
|
276
279
|
|
|
277
|
-
|
|
280
|
+
variable ::= [identifier] ;
|
|
278
281
|
|
|
279
|
-
|
|
282
|
+
label ::= [identifier] ;
|
|
280
283
|
|
|
281
|
-
|
|
284
|
+
name ::= [identifier] ;
|
|
282
285
|
|
|
283
286
|
|
|
284
287
|
|
|
285
|
-
|
|
288
|
+
error ::= . ;
|
|
286
289
|
|
|
287
|
-
|
|
290
|
+
`,
|
|
291
|
+
rules = rulesFromBNF(bnf);
|
|
288
292
|
|
|
289
|
-
export default class JavaScriptParser extends
|
|
293
|
+
export default class JavaScriptParser extends CommonParser {
|
|
290
294
|
static bnf = bnf;
|
|
291
295
|
|
|
292
|
-
static fromNothing() { return
|
|
293
|
-
|
|
294
|
-
static fromBNF(bnf) { return YappParser.fromBNF(JavaScriptParser, bnf); }
|
|
296
|
+
static fromNothing() { return parserFromRules(JavaScriptParser, rules); }
|
|
295
297
|
|
|
296
|
-
static fromRules(rules) { return
|
|
298
|
+
static fromRules(rules) { return CommonParser.fromRules(JavaScriptParser, rules); }
|
|
297
299
|
}
|
package/src/parser/json.js
CHANGED
|
@@ -1,34 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { CommonParser } from "occam-parsers";
|
|
4
|
+
import { parserUtilities } from "occam-grammar-utilities";
|
|
5
|
+
|
|
6
|
+
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
4
7
|
|
|
5
8
|
const bnf = `
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
document ::= json error* | error+ ;
|
|
8
11
|
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
json ::= array | object ;
|
|
11
14
|
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
array ::= "[" ( element ( "," element )* )? "]" ;
|
|
14
17
|
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
object ::= "{" ( [string-literal] ":" element ( "," [string-literal] ":" element )* )? "}" ;
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
|
|
22
|
+
element ::= json | [string-literal] | [number] | "true" | "false" | "null" ;
|
|
20
23
|
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
error ::= . ;
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
`,
|
|
28
|
+
rules = rulesFromBNF(bnf);
|
|
25
29
|
|
|
26
|
-
export default class JSONParser extends
|
|
30
|
+
export default class JSONParser extends CommonParser {
|
|
27
31
|
static bnf = bnf;
|
|
28
32
|
|
|
29
|
-
static fromNothing() { return
|
|
30
|
-
|
|
31
|
-
static fromBNF(bnf) { return YappParser.fromBNF(JSONParser, bnf); }
|
|
33
|
+
static fromNothing() { return parserFromRules(JSONParser, rules); }
|
|
32
34
|
|
|
33
|
-
static fromRules(rules) { return
|
|
35
|
+
static fromRules(rules) { return CommonParser.fromRules(JSONParser, rules); }
|
|
34
36
|
}
|
package/src/parser/plainText.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { CommonParser } from "occam-parsers";
|
|
4
|
+
import { parserUtilities } from "occam-grammar-utilities";
|
|
5
|
+
|
|
6
|
+
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
4
7
|
|
|
5
8
|
const bnf = `
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
document ::= .+ ;
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
`,
|
|
13
|
+
rules = rulesFromBNF(bnf);
|
|
10
14
|
|
|
11
|
-
export default class PlainTextParser extends
|
|
15
|
+
export default class PlainTextParser extends CommonParser {
|
|
12
16
|
static bnf = bnf;
|
|
13
17
|
|
|
14
|
-
static fromNothing() { return
|
|
15
|
-
|
|
16
|
-
static fromBNF(bnf) { return YappParser.fromBNF(PlainTextParser, bnf); }
|
|
18
|
+
static fromNothing() { return parserFromRules(PlainTextParser, rules); }
|
|
17
19
|
|
|
18
|
-
static fromRules(rules) { return
|
|
20
|
+
static fromRules(rules) { return CommonParser.fromRules(PlainTextParser, rules); }
|
|
19
21
|
}
|
package/src/parser/xml.js
CHANGED
|
@@ -1,52 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { CommonParser } from "occam-parsers";
|
|
4
|
+
import { parserUtilities } from "occam-grammar-utilities";
|
|
5
|
+
|
|
6
|
+
const { rulesFromBNF, parserFromRules } = parserUtilities;
|
|
4
7
|
|
|
5
8
|
const bnf = `
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
document ::= xml error* | error+ ;
|
|
8
11
|
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
xml ::= ( preamble element* ) | element+ ;
|
|
11
14
|
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
preamble ::= "<?"<NO_WHITESPACE>"xml" attribute* "?>" ;
|
|
14
17
|
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
element ::= comment | completeTag | startTag ( element | text )* endTag ;
|
|
17
20
|
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
comment ::= "<!--" text* "-->" ;
|
|
20
23
|
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
completeTag ::= "<"<NO_WHITESPACE>name attribute* "/>" ;
|
|
23
26
|
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
startTag ::= "<"<NO_WHITESPACE>name attribute* ">" ;
|
|
26
29
|
|
|
27
30
|
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
endTag ::= "</"<NO_WHITESPACE>name ">" ;
|
|
32
|
+
|
|
30
33
|
|
|
31
|
-
|
|
34
|
+
attribute ::= [identifier]<NO_WHITESPACE>"="<NO_WHITESPACE>[string-literal] ;
|
|
32
35
|
|
|
33
36
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
text ::= ( [identifier] | [string-literal]| [broken-string-literal] | [unassigned] )+ ;
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
name ::= [identifier] ;
|
|
38
41
|
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
error ::= . ;
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
`,
|
|
46
|
+
rules = rulesFromBNF(bnf);
|
|
43
47
|
|
|
44
|
-
export default class XMLParser extends
|
|
48
|
+
export default class XMLParser extends CommonParser {
|
|
45
49
|
static bnf = bnf;
|
|
46
50
|
|
|
47
|
-
static fromNothing() { return
|
|
48
|
-
|
|
49
|
-
static fromBNF(bnf) { return YappParser.fromBNF(XMLParser, bnf); }
|
|
51
|
+
static fromNothing() { return parserFromRules(XMLParser, rules); }
|
|
50
52
|
|
|
51
|
-
static fromRules(rules) { return
|
|
53
|
+
static fromRules(rules) { return CommonParser.fromRules(XMLParser, rules); }
|
|
52
54
|
}
|
package/src/plugin/javascript.js
CHANGED
|
@@ -8,7 +8,7 @@ import JavaScriptProcessor from "../processor/javascript";
|
|
|
8
8
|
import { JAVASCRIPT_LANGUAGE } from "../languages"
|
|
9
9
|
|
|
10
10
|
export default class JavaScriptPlugin extends Plugin {
|
|
11
|
-
language = JAVASCRIPT_LANGUAGE;
|
|
11
|
+
static language = JAVASCRIPT_LANGUAGE;
|
|
12
12
|
|
|
13
13
|
static Lexer = JavaScriptLexer;
|
|
14
14
|
|
package/src/plugin/json.js
CHANGED
package/src/plugin/plainText.js
CHANGED
|
@@ -8,7 +8,7 @@ import PlainTextProcessor from "../processor/plainText";
|
|
|
8
8
|
import { PLAIN_TEXT_LANGUAGE } from "../languages"
|
|
9
9
|
|
|
10
10
|
export default class PlainTextPlugin extends Plugin {
|
|
11
|
-
language = PLAIN_TEXT_LANGUAGE;
|
|
11
|
+
static language = PLAIN_TEXT_LANGUAGE;
|
|
12
12
|
|
|
13
13
|
static Lexer = PlainTextLexer;
|
|
14
14
|
|
package/src/plugin/xml.js
CHANGED