1
+ <!-- This is a modified version of the EBNF grammar from https://github.com/ppKrauss/EBNF-W3C.tmbundle used under the MIT license. -->
2
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
3
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
4
+ <plist version =" 1.0" >
5
+ <dict >
6
+ <key >fileTypes </key >
7
+ <array >
8
+ <string >ebnf </string >
9
+ </array >
10
+ <key >foldingStartMarker </key >
11
+ <string >\(\* </string >
12
+ <key >foldingStopMarker </key >
13
+ <string >\*\) </string >
14
+ <key >keyEquivalent </key >
15
+ <string >^~E </string >
16
+ <key >name </key >
17
+ <string >EBNF </string >
18
+ <key >patterns </key >
19
+ <array >
20
+ <dict >
21
+ <key >include </key >
22
+ <string >#comment </string >
23
+ </dict >
24
+ <dict >
25
+ <key >begin </key >
26
+ <string >\s*(\b(?:\w|\s|[\-_0-9])+\b)\s*(=) </string >
27
+ <key >captures </key >
28
+ <dict >
29
+ <key >1 </key >
30
+ <dict >
31
+ <key >name </key >
32
+ <string >entity.name.function.ebnf </string >
33
+ </dict >
34
+ <key >2 </key >
35
+ <dict >
36
+ <key >name </key >
37
+ <string >keyword.operator.definition.ebnf </string >
38
+ </dict >
39
+ </dict >
40
+ <key >end </key >
41
+ <string >; </string >
42
+ <key >endCaptures </key >
43
+ <dict >
44
+ <key >0 </key >
45
+ <dict >
46
+ <key >name </key >
47
+ <string >punctuation.terminator.syntax-rule.ebnf </string >
48
+ </dict >
49
+ </dict >
50
+ <key >name </key >
51
+ <string >meta.syntax-rule.ebnf </string >
52
+ <key >patterns </key >
53
+ <array >
54
+ <dict >
55
+ <key >include </key >
56
+ <string >#comment </string >
57
+ </dict >
58
+ <dict >
59
+ <key >include </key >
60
+ <string >#subrules </string >
61
+ </dict >
62
+ </array >
63
+ </dict >
64
+ </array >
65
+ <key >repository </key >
66
+ <dict >
67
+ <key >comment </key >
68
+ <dict >
69
+ <key >begin </key >
70
+ <string >\(\*(?!\)) </string >
71
+ <key >end </key >
72
+ <string >\*\) </string >
73
+ <key >name </key >
74
+ <string >comment.block.ebnf </string >
75
+ </dict >
76
+ <key >double-quote-string </key >
77
+ <dict >
78
+ <key >begin </key >
79
+ <string >" </string >
80
+ <key >end </key >
81
+ <string >" </string >
82
+ <key >name </key >
83
+ <string >string.quoted.double.ebnf </string >
84
+ </dict >
85
+ <key >group </key >
86
+ <dict >
87
+ <key >begin </key >
88
+ <string >\( </string >
89
+ <key >beginCaptures </key >
90
+ <dict >
91
+ <key >0 </key >
92
+ <dict >
93
+ <key >name </key >
94
+ <string >keyword.other.group.begin.ebnf </string >
95
+ </dict >
96
+ </dict >
97
+ <key >end </key >
98
+ <string >\) </string >
99
+ <key >endCaptures </key >
100
+ <dict >
101
+ <key >0 </key >
102
+ <dict >
103
+ <key >name </key >
104
+ <string >keyword.other.group.end.ebnf </string >
105
+ </dict >
106
+ </dict >
107
+ <key >patterns </key >
108
+ <array >
109
+ <dict >
110
+ <key >include </key >
111
+ <string >#subrules </string >
112
+ </dict >
113
+ </array >
114
+ </dict >
115
+ <key >invalid </key >
116
+ <dict >
117
+ <key >match </key >
118
+ <string >\(\s*[*:/]\s*\) </string >
119
+ <key >name </key >
120
+ <string >invalid.illegal.ebnf </string >
121
+ </dict >
122
+ <key >non-terminal </key >
123
+ <dict >
124
+ <key >match </key >
125
+ <string >\w[\w\-_0-9]*\w </string >
126
+ <key >name </key >
127
+ <string >variable.other.non-terminal.ebnf </string >
128
+ </dict >
129
+ <key >token </key >
130
+ <dict >
131
+ <key >match </key >
132
+ <string >[A-Z][A-Z\-_0-9]* </string >
133
+ <key >name </key >
134
+ <string >support.constant.token.ebnf </string >
135
+ </dict >
136
+ <key >operator </key >
137
+ <dict >
138
+ <key >patterns </key >
139
+ <array >
140
+ <dict >
141
+ <key >include </key >
142
+ <string >#operator-alternative </string >
143
+ </dict >
144
+ <dict >
145
+ <key >include </key >
146
+ <string >#operator-concatenation </string >
147
+ </dict >
148
+ <dict >
149
+ <key >include </key >
150
+ <string >#operator-exception </string >
151
+ </dict >
152
+ </array >
153
+ </dict >
154
+ <key >operator-alternative </key >
155
+ <dict >
156
+ <key >match </key >
157
+ <string >\| </string >
158
+ <key >name </key >
159
+ <string >keyword.operator.alternative.ebnf </string >
160
+ </dict >
161
+ <key >operator-concatenation </key >
162
+ <dict >
163
+ <key >match </key >
164
+ <string >, </string >
165
+ <key >name </key >
166
+ <string >keyword.operator.concatenation.ebnf </string >
167
+ </dict >
168
+ <key >operator-exception </key >
169
+ <dict >
170
+ <key >match </key >
171
+ <string >- </string >
172
+ <key >name </key >
173
+ <string >keyword.operator.exception.ebnf </string >
174
+ </dict >
175
+ <key >optional </key >
176
+ <dict >
177
+ <key >begin </key >
178
+ <string >\[ </string >
179
+ <key >beginCaptures </key >
180
+ <dict >
181
+ <key >0 </key >
182
+ <dict >
183
+ <key >name </key >
184
+ <string >keyword.other.optional.begin.ebnf </string >
185
+ </dict >
186
+ </dict >
187
+ <key >end </key >
188
+ <string >\] </string >
189
+ <key >endCaptures </key >
190
+ <dict >
191
+ <key >0 </key >
192
+ <dict >
193
+ <key >name </key >
194
+ <string >keyword.other.optional.end.ebnf </string >
195
+ </dict >
196
+ </dict >
197
+ <key >patterns </key >
198
+ <array >
199
+ <dict >
200
+ <key >include </key >
201
+ <string >#subrules </string >
202
+ </dict >
203
+ </array >
204
+ </dict >
205
+ <key >repetition </key >
206
+ <dict >
207
+ <key >patterns </key >
208
+ <array >
209
+ <dict >
210
+ <key >match </key >
211
+ <string >(\?|\*|\+) </string >
212
+ <key >name </key >
213
+ <string >keyword.other.repetition.ebnf </string >
214
+ </dict >
215
+ <dict >
216
+ <key >begin </key >
217
+ <string >{ </string >
218
+ <key >beginCaptures </key >
219
+ <dict >
220
+ <key >0 </key >
221
+ <dict >
222
+ <key >name </key >
223
+ <string >keyword.other.repetition.begin.ebnf </string >
224
+ </dict >
225
+ </dict >
226
+ <key >end </key >
227
+ <string >} </string >
228
+ <key >endCaptures </key >
229
+ <dict >
230
+ <key >0 </key >
231
+ <dict >
232
+ <key >name </key >
233
+ <string >keyword.other.repetition.end.ebnf </string >
234
+ </dict >
235
+ </dict >
236
+ <key >patterns </key >
237
+ <array >
238
+ <dict >
239
+ <key >include </key >
240
+ <string >#subrules </string >
241
+ </dict >
242
+ </array >
243
+ </dict >
244
+ </array >
245
+ </dict >
246
+ <key >repetition-numbered </key >
247
+ <dict >
248
+ <key >captures </key >
249
+ <dict >
250
+ <key >1 </key >
251
+ <dict >
252
+ <key >name </key >
253
+ <string >constant.numeric.integer.ebnf </string >
254
+ </dict >
255
+ <key >2 </key >
256
+ <dict >
257
+ <key >name </key >
258
+ <string >keyword.operator.repetition.ebnf </string >
259
+ </dict >
260
+ </dict >
261
+ <key >match </key >
262
+ <string >(\d+)\s*(\*) </string >
263
+ </dict >
264
+ <key >single-quote-string </key >
265
+ <dict >
266
+ <key >begin </key >
267
+ <string >' </string >
268
+ <key >end </key >
269
+ <string >' </string >
270
+ <key >name </key >
271
+ <string >string.quoted.single.ebnf </string >
272
+ </dict >
273
+ <key >special-sequence </key >
274
+ <dict >
275
+ <key >begin </key >
276
+ <string >\? </string >
277
+ <key >beginCaptures </key >
278
+ <dict >
279
+ <key >0 </key >
280
+ <dict >
281
+ <key >name </key >
282
+ <string >keyword.other.special-sequence.begin.ebnf </string >
283
+ </dict >
284
+ </dict >
285
+ <key >end </key >
286
+ <string >\? </string >
287
+ <key >endCaptures </key >
288
+ <dict >
289
+ <key >0 </key >
290
+ <dict >
291
+ <key >name </key >
292
+ <string >keyword.other.special-sequence.end.ebnf </string >
293
+ </dict >
294
+ </dict >
295
+ <key >name </key >
296
+ <string >entity.other.attribute-name.ebnf </string >
297
+ </dict >
298
+ <key >subrules </key >
299
+ <dict >
300
+ <key >patterns </key >
301
+ <array >
302
+ <dict >
303
+ <key >include </key >
304
+ <string >#invalid </string >
305
+ </dict >
306
+ <dict >
307
+ <key >include </key >
308
+ <string >#optional </string >
309
+ </dict >
310
+ <dict >
311
+ <key >include </key >
312
+ <string >#repetition </string >
313
+ </dict >
314
+ <dict >
315
+ <key >include </key >
316
+ <string >#group </string >
317
+ </dict >
318
+ <dict >
319
+ <key >include </key >
320
+ <string >#repetition-numbered </string >
321
+ </dict >
322
+ <dict >
323
+ <key >include </key >
324
+ <string >#token </string >
325
+ </dict >
326
+ <dict >
327
+ <key >include </key >
328
+ <string >#non-terminal </string >
329
+ </dict >
330
+ <dict >
331
+ <key >include </key >
332
+ <string >#operator </string >
333
+ </dict >
334
+ <dict >
335
+ <key >include </key >
336
+ <string >#single-quote-string </string >
337
+ </dict >
338
+ <dict >
339
+ <key >include </key >
340
+ <string >#double-quote-string </string >
341
+ </dict >
342
+ <dict >
343
+ <key >include </key >
344
+ <string >#special-sequence </string >
345
+ </dict >
346
+ </array >
347
+ </dict >
348
+ </dict >
349
+ <key >scopeName </key >
350
+ <string >source.ebnf </string >
351
+ <key >uuid </key >
352
+ <string >D9954069-097B-4361-818D-EF4986D442E7 </string >
353
+ </dict >
354
+ </plist >
0 commit comments