Author: Michael Davis [mcarsondavis@gmail.com]
Hash: b34150158a3a4ff3a9c45cc3b1530e87d9f89b86
Timestamp: Fri, 24 Dec 2021 02:34:47 +0000 (2 years ago)

+413 -415 +/-5 browse
use a regex instead of a choice for file declarations
1diff --git a/grammar.js b/grammar.js
2index 5a8c73c..7559975 100644
3--- a/grammar.js
4+++ b/grammar.js
5 @@ -42,7 +42,7 @@ module.exports = grammar({
6
7 similarity: ($) => iseq("similarity", "index", field("score", /\d+/), "%"),
8
9- file: ($) => iseq(field("kind", choice("---", "+++")), $.filename),
10+ file: ($) => iseq(field("kind", /[-\+]{3}/), $.filename),
11
12 location: ($) =>
13 iseq("@@", $.linerange, $.linerange, "@@", optional(ANYTHING)),
14 diff --git a/src/grammar.json b/src/grammar.json
15index 3252142..ad91225 100644
16--- a/src/grammar.json
17+++ b/src/grammar.json
18 @@ -260,17 +260,8 @@
19 "type": "FIELD",
20 "name": "kind",
21 "content": {
22- "type": "CHOICE",
23- "members": [
24- {
25- "type": "STRING",
26- "value": "---"
27- },
28- {
29- "type": "STRING",
30- "value": "+++"
31- }
32- ]
33+ "type": "PATTERN",
34+ "value": "[-\\+]{3}"
35 }
36 }
37 },
38 diff --git a/src/parser.c b/src/parser.c
39index 4f2556d..ac458a2 100644
40--- a/src/parser.c
41+++ b/src/parser.c
42 @@ -366,134 +366,134 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
43 eof = lexer->eof(lexer);
44 switch (state) {
45 case 0:
46- if (eof) ADVANCE(88);
47- if (lookahead == '\n') ADVANCE(89);
48+ if (eof) ADVANCE(87);
49+ if (lookahead == '\n') ADVANCE(88);
50 if (lookahead == '\r') ADVANCE(1);
51- if (lookahead == '%') ADVANCE(149);
52- if (lookahead == '+') ADVANCE(155);
53- if (lookahead == '-') ADVANCE(157);
54- if (lookahead == '.') ADVANCE(8);
55- if (lookahead == '@') ADVANCE(9);
56- if (lookahead == 'B') ADVANCE(42);
57- if (lookahead == 'a') ADVANCE(58);
58- if (lookahead == 'd') ADVANCE(21);
59- if (lookahead == 'f') ADVANCE(40);
60- if (lookahead == 'i') ADVANCE(60);
61- if (lookahead == 'm') ADVANCE(65);
62- if (lookahead == 'n') ADVANCE(22);
63- if (lookahead == 'r') ADVANCE(32);
64- if (lookahead == 's') ADVANCE(41);
65- if (lookahead == 't') ADVANCE(63);
66- if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(85);
67+ if (lookahead == '%') ADVANCE(148);
68+ if (lookahead == '+') ADVANCE(154);
69+ if (lookahead == '-') ADVANCE(156);
70+ if (lookahead == '.') ADVANCE(6);
71+ if (lookahead == '@') ADVANCE(7);
72+ if (lookahead == 'B') ADVANCE(40);
73+ if (lookahead == 'a') ADVANCE(56);
74+ if (lookahead == 'd') ADVANCE(19);
75+ if (lookahead == 'f') ADVANCE(38);
76+ if (lookahead == 'i') ADVANCE(58);
77+ if (lookahead == 'm') ADVANCE(63);
78+ if (lookahead == 'n') ADVANCE(20);
79+ if (lookahead == 'r') ADVANCE(30);
80+ if (lookahead == 's') ADVANCE(39);
81+ if (lookahead == 't') ADVANCE(61);
82+ if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(84);
83 if (('\t' <= lookahead && lookahead <= '\f') ||
84- lookahead == ' ') SKIP(86)
85- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
86+ lookahead == ' ') SKIP(85)
87+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(118);
88 END_STATE();
89 case 1:
90- if (lookahead == '\n') ADVANCE(89);
91+ if (lookahead == '\n') ADVANCE(88);
92 END_STATE();
93 case 2:
94- if (lookahead == '\n') ADVANCE(89);
95+ if (lookahead == '\n') ADVANCE(88);
96 if (lookahead == '\r') ADVANCE(1);
97- if (lookahead == '+') ADVANCE(78);
98- if (lookahead == '-') ADVANCE(7);
99- if (lookahead == '@') ADVANCE(10);
100- if (lookahead == 'd') ADVANCE(46);
101- if (lookahead == 'f') ADVANCE(48);
102- if (lookahead == 'i') ADVANCE(62);
103- if (lookahead == 't') ADVANCE(63);
104+ if (lookahead == '+') ADVANCE(77);
105+ if (lookahead == '-') ADVANCE(5);
106+ if (lookahead == '@') ADVANCE(8);
107+ if (lookahead == 'd') ADVANCE(44);
108+ if (lookahead == 'f') ADVANCE(46);
109+ if (lookahead == 'i') ADVANCE(60);
110+ if (lookahead == 't') ADVANCE(61);
111 if (('\t' <= lookahead && lookahead <= '\f') ||
112 lookahead == ' ') SKIP(2)
113- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
114+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(147);
115 END_STATE();
116 case 3:
117- if (lookahead == '\n') ADVANCE(89);
118+ if (lookahead == '\n') ADVANCE(88);
119 if (lookahead == '\r') ADVANCE(1);
120 if (lookahead == '\t' ||
121 lookahead == ' ') SKIP(3)
122 if (lookahead == 11 ||
123- lookahead == '\f') ADVANCE(208);
124- if (lookahead != 0) ADVANCE(209);
125+ lookahead == '\f') ADVANCE(206);
126+ if (lookahead != 0) ADVANCE(207);
127 END_STATE();
128 case 4:
129- if (lookahead == '\n') ADVANCE(89);
130+ if (lookahead == '\n') ADVANCE(88);
131 if (lookahead == '\r') ADVANCE(1);
132 if (('\t' <= lookahead && lookahead <= '\f') ||
133- lookahead == ' ') ADVANCE(153);
134- if (lookahead != 0) ADVANCE(154);
135+ lookahead == ' ') ADVANCE(152);
136+ if (lookahead != 0) ADVANCE(153);
137 END_STATE();
138 case 5:
139- if (lookahead == '+') ADVANCE(150);
140+ if (lookahead == '-') ADVANCE(37);
141+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(195);
142 END_STATE();
143 case 6:
144- if (lookahead == '-') ADVANCE(150);
145+ if (lookahead == '.') ADVANCE(105);
146 END_STATE();
147 case 7:
148- if (lookahead == '-') ADVANCE(39);
149- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
150+ if (lookahead == '@') ADVANCE(150);
151 END_STATE();
152 case 8:
153- if (lookahead == '.') ADVANCE(106);
154+ if (lookahead == '@') ADVANCE(151);
155 END_STATE();
156 case 9:
157- if (lookahead == '@') ADVANCE(151);
158+ if (lookahead == 'a') ADVANCE(64);
159 END_STATE();
160 case 10:
161- if (lookahead == '@') ADVANCE(152);
162+ if (lookahead == 'a') ADVANCE(204);
163+ if (lookahead == '\t' ||
164+ lookahead == ' ') SKIP(10)
165+ if (lookahead == 11 ||
166+ lookahead == '\f') ADVANCE(197);
167+ if (lookahead != 0 &&
168+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(207);
169 END_STATE();
170 case 11:
171- if (lookahead == 'a') ADVANCE(66);
172+ if (lookahead == 'a') ADVANCE(55);
173 END_STATE();
174 case 12:
175- if (lookahead == 'a') ADVANCE(206);
176- if (lookahead == '\t' ||
177- lookahead == ' ') SKIP(12)
178- if (lookahead == 11 ||
179- lookahead == '\f') ADVANCE(199);
180- if (lookahead != 0 &&
181- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(209);
182+ if (lookahead == 'a') ADVANCE(66);
183 END_STATE();
184 case 13:
185- if (lookahead == 'a') ADVANCE(57);
186+ if (lookahead == 'd') ADVANCE(100);
187 END_STATE();
188 case 14:
189- if (lookahead == 'a') ADVANCE(68);
190+ if (lookahead == 'd') ADVANCE(92);
191 END_STATE();
192 case 15:
193- if (lookahead == 'd') ADVANCE(101);
194+ if (lookahead == 'd') ADVANCE(203);
195+ if (lookahead == '\t' ||
196+ lookahead == ' ') SKIP(15)
197+ if (lookahead == 11 ||
198+ lookahead == '\f') ADVANCE(199);
199+ if (lookahead != 0 &&
200+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(207);
201 END_STATE();
202 case 16:
203- if (lookahead == 'd') ADVANCE(93);
204+ if (lookahead == 'd') ADVANCE(24);
205 END_STATE();
206 case 17:
207- if (lookahead == 'd') ADVANCE(205);
208- if (lookahead == '\t' ||
209- lookahead == ' ') SKIP(17)
210- if (lookahead == 11 ||
211- lookahead == '\f') ADVANCE(201);
212- if (lookahead != 0 &&
213- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(209);
214+ if (lookahead == 'd') ADVANCE(25);
215 END_STATE();
216 case 18:
217- if (lookahead == 'd') ADVANCE(26);
218+ if (lookahead == 'd') ADVANCE(29);
219 END_STATE();
220 case 19:
221- if (lookahead == 'd') ADVANCE(27);
222+ if (lookahead == 'e') ADVANCE(48);
223+ if (lookahead == 'i') ADVANCE(33);
224+ if (('0' <= lookahead && lookahead <= '9') ||
225+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
226 END_STATE();
227 case 20:
228- if (lookahead == 'd') ADVANCE(31);
229+ if (lookahead == 'e') ADVANCE(71);
230 END_STATE();
231 case 21:
232- if (lookahead == 'e') ADVANCE(50);
233- if (lookahead == 'i') ADVANCE(35);
234- if (('0' <= lookahead && lookahead <= '9') ||
235- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
236+ if (lookahead == 'e') ADVANCE(92);
237 END_STATE();
238 case 22:
239- if (lookahead == 'e') ADVANCE(73);
240+ if (lookahead == 'e') ADVANCE(70);
241 END_STATE();
242 case 23:
243- if (lookahead == 'e') ADVANCE(93);
244+ if (lookahead == 'e') ADVANCE(94);
245 END_STATE();
246 case 24:
247 if (lookahead == 'e') ADVANCE(72);
248 @@ -502,121 +502,121 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
249 if (lookahead == 'e') ADVANCE(95);
250 END_STATE();
251 case 26:
252- if (lookahead == 'e') ADVANCE(74);
253+ if (lookahead == 'e') ADVANCE(93);
254 END_STATE();
255 case 27:
256- if (lookahead == 'e') ADVANCE(96);
257+ if (lookahead == 'e') ADVANCE(67);
258 END_STATE();
259 case 28:
260- if (lookahead == 'e') ADVANCE(94);
261+ if (lookahead == 'e') ADVANCE(65);
262 END_STATE();
263 case 29:
264- if (lookahead == 'e') ADVANCE(69);
265+ if (lookahead == 'e') ADVANCE(73);
266 END_STATE();
267 case 30:
268- if (lookahead == 'e') ADVANCE(67);
269+ if (lookahead == 'e') ADVANCE(59);
270 END_STATE();
271 case 31:
272- if (lookahead == 'e') ADVANCE(75);
273+ if (lookahead == 'e') ADVANCE(14);
274 END_STATE();
275 case 32:
276- if (lookahead == 'e') ADVANCE(61);
277+ if (lookahead == 'f') ADVANCE(90);
278 END_STATE();
279 case 33:
280- if (lookahead == 'e') ADVANCE(16);
281+ if (lookahead == 'f') ADVANCE(32);
282 END_STATE();
283 case 34:
284- if (lookahead == 'f') ADVANCE(91);
285- END_STATE();
286- case 35:
287- if (lookahead == 'f') ADVANCE(34);
288- END_STATE();
289- case 36:
290- if (lookahead == 'f') ADVANCE(49);
291+ if (lookahead == 'f') ADVANCE(47);
292 if (lookahead == '\t' ||
293 lookahead == 11 ||
294 lookahead == '\f' ||
295- lookahead == ' ') SKIP(36)
296+ lookahead == ' ') SKIP(34)
297 if (('0' <= lookahead && lookahead <= '9') ||
298- ('a' <= lookahead && lookahead <= 'e')) ADVANCE(85);
299+ ('a' <= lookahead && lookahead <= 'e')) ADVANCE(84);
300+ END_STATE();
301+ case 35:
302+ if (lookahead == 'f') ADVANCE(36);
303+ END_STATE();
304+ case 36:
305+ if (lookahead == 'f') ADVANCE(28);
306 END_STATE();
307 case 37:
308- if (lookahead == 'f') ADVANCE(38);
309+ if (lookahead == 'g') ADVANCE(43);
310 END_STATE();
311 case 38:
312- if (lookahead == 'f') ADVANCE(30);
313+ if (lookahead == 'i') ADVANCE(49);
314+ if (lookahead == 'r') ADVANCE(62);
315+ if (('0' <= lookahead && lookahead <= '9') ||
316+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
317 END_STATE();
318 case 39:
319- if (lookahead == 'g') ADVANCE(45);
320+ if (lookahead == 'i') ADVANCE(54);
321 END_STATE();
322 case 40:
323- if (lookahead == 'i') ADVANCE(51);
324- if (lookahead == 'r') ADVANCE(64);
325- if (('0' <= lookahead && lookahead <= '9') ||
326- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
327+ if (lookahead == 'i') ADVANCE(57);
328 END_STATE();
329 case 41:
330- if (lookahead == 'i') ADVANCE(56);
331+ if (lookahead == 'i') ADVANCE(52);
332 END_STATE();
333 case 42:
334- if (lookahead == 'i') ADVANCE(59);
335+ if (lookahead == 'i') ADVANCE(69);
336 END_STATE();
337 case 43:
338- if (lookahead == 'i') ADVANCE(54);
339+ if (lookahead == 'i') ADVANCE(68);
340 END_STATE();
341 case 44:
342- if (lookahead == 'i') ADVANCE(71);
343+ if (lookahead == 'i') ADVANCE(35);
344 END_STATE();
345 case 45:
346- if (lookahead == 'i') ADVANCE(70);
347+ if (lookahead == 'i') ADVANCE(35);
348+ if (('0' <= lookahead && lookahead <= '9') ||
349+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
350 END_STATE();
351 case 46:
352- if (lookahead == 'i') ADVANCE(37);
353+ if (lookahead == 'i') ADVANCE(50);
354+ if (lookahead == 'r') ADVANCE(62);
355 END_STATE();
356 case 47:
357- if (lookahead == 'i') ADVANCE(37);
358+ if (lookahead == 'i') ADVANCE(51);
359 if (('0' <= lookahead && lookahead <= '9') ||
360- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
361+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
362 END_STATE();
363 case 48:
364- if (lookahead == 'i') ADVANCE(52);
365- if (lookahead == 'r') ADVANCE(64);
366+ if (lookahead == 'l') ADVANCE(22);
367+ if (('0' <= lookahead && lookahead <= '9') ||
368+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
369 END_STATE();
370 case 49:
371- if (lookahead == 'i') ADVANCE(53);
372- if (('0' <= lookahead && lookahead <= '9') ||
373- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
374+ if (lookahead == 'l') ADVANCE(23);
375 END_STATE();
376 case 50:
377- if (lookahead == 'l') ADVANCE(24);
378- if (('0' <= lookahead && lookahead <= '9') ||
379- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
380+ if (lookahead == 'l') ADVANCE(26);
381 END_STATE();
382 case 51:
383- if (lookahead == 'l') ADVANCE(25);
384+ if (lookahead == 'l') ADVANCE(27);
385 END_STATE();
386 case 52:
387- if (lookahead == 'l') ADVANCE(28);
388+ if (lookahead == 'l') ADVANCE(12);
389 END_STATE();
390 case 53:
391- if (lookahead == 'l') ADVANCE(29);
392+ if (lookahead == 'm') ADVANCE(96);
393 END_STATE();
394 case 54:
395- if (lookahead == 'l') ADVANCE(14);
396+ if (lookahead == 'm') ADVANCE(41);
397 END_STATE();
398 case 55:
399- if (lookahead == 'm') ADVANCE(97);
400+ if (lookahead == 'm') ADVANCE(21);
401 END_STATE();
402 case 56:
403- if (lookahead == 'm') ADVANCE(43);
404+ if (lookahead == 'n') ADVANCE(13);
405+ if (('0' <= lookahead && lookahead <= '9') ||
406+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
407 END_STATE();
408 case 57:
409- if (lookahead == 'm') ADVANCE(23);
410+ if (lookahead == 'n') ADVANCE(9);
411 END_STATE();
412 case 58:
413- if (lookahead == 'n') ADVANCE(15);
414- if (('0' <= lookahead && lookahead <= '9') ||
415- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
416+ if (lookahead == 'n') ADVANCE(16);
417 END_STATE();
418 case 59:
419 if (lookahead == 'n') ADVANCE(11);
420 @@ -625,65 +625,67 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
421 if (lookahead == 'n') ADVANCE(18);
422 END_STATE();
423 case 61:
424- if (lookahead == 'n') ADVANCE(13);
425+ if (lookahead == 'o') ADVANCE(97);
426 END_STATE();
427 case 62:
428- if (lookahead == 'n') ADVANCE(20);
429+ if (lookahead == 'o') ADVANCE(53);
430 END_STATE();
431 case 63:
432- if (lookahead == 'o') ADVANCE(98);
433+ if (lookahead == 'o') ADVANCE(17);
434 END_STATE();
435 case 64:
436- if (lookahead == 'o') ADVANCE(55);
437+ if (lookahead == 'r') ADVANCE(74);
438 END_STATE();
439 case 65:
440- if (lookahead == 'o') ADVANCE(19);
441+ if (lookahead == 'r') ADVANCE(102);
442 END_STATE();
443 case 66:
444- if (lookahead == 'r') ADVANCE(76);
445+ if (lookahead == 'r') ADVANCE(42);
446 END_STATE();
447 case 67:
448- if (lookahead == 'r') ADVANCE(103);
449+ if (lookahead == 's') ADVANCE(99);
450 END_STATE();
451 case 68:
452- if (lookahead == 'r') ADVANCE(44);
453+ if (lookahead == 't') ADVANCE(91);
454 END_STATE();
455 case 69:
456- if (lookahead == 's') ADVANCE(100);
457+ if (lookahead == 't') ADVANCE(75);
458 END_STATE();
459 case 70:
460- if (lookahead == 't') ADVANCE(92);
461+ if (lookahead == 't') ADVANCE(31);
462 END_STATE();
463 case 71:
464- if (lookahead == 't') ADVANCE(77);
465+ if (lookahead == 'w') ADVANCE(92);
466 END_STATE();
467 case 72:
468- if (lookahead == 't') ADVANCE(33);
469+ if (lookahead == 'x') ADVANCE(104);
470 END_STATE();
471 case 73:
472- if (lookahead == 'w') ADVANCE(93);
473+ if (lookahead == 'x') ADVANCE(107);
474 END_STATE();
475 case 74:
476- if (lookahead == 'x') ADVANCE(105);
477+ if (lookahead == 'y') ADVANCE(98);
478 END_STATE();
479 case 75:
480- if (lookahead == 'x') ADVANCE(108);
481+ if (lookahead == 'y') ADVANCE(106);
482 END_STATE();
483 case 76:
484- if (lookahead == 'y') ADVANCE(99);
485+ if (lookahead == '+' ||
486+ lookahead == '-') ADVANCE(149);
487 END_STATE();
488 case 77:
489- if (lookahead == 'y') ADVANCE(107);
490+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(195);
491 END_STATE();
492 case 78:
493- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
494+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(196);
495 END_STATE();
496 case 79:
497- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(198);
498+ if (('0' <= lookahead && lookahead <= '9') ||
499+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
500 END_STATE();
501 case 80:
502 if (('0' <= lookahead && lookahead <= '9') ||
503- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(243);
504+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79);
505 END_STATE();
506 case 81:
507 if (('0' <= lookahead && lookahead <= '9') ||
508 @@ -702,738 +704,742 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
509 ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
510 END_STATE();
511 case 85:
512- if (('0' <= lookahead && lookahead <= '9') ||
513- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
514- END_STATE();
515- case 86:
516- if (eof) ADVANCE(88);
517- if (lookahead == '\n') ADVANCE(89);
518+ if (eof) ADVANCE(87);
519+ if (lookahead == '\n') ADVANCE(88);
520 if (lookahead == '\r') ADVANCE(1);
521- if (lookahead == '%') ADVANCE(149);
522- if (lookahead == '.') ADVANCE(8);
523- if (lookahead == '@') ADVANCE(10);
524- if (lookahead == 'a') ADVANCE(58);
525- if (lookahead == 'd') ADVANCE(47);
526- if (lookahead == 'f') ADVANCE(40);
527- if (lookahead == 'i') ADVANCE(62);
528- if (lookahead == 'm') ADVANCE(65);
529- if (lookahead == 't') ADVANCE(63);
530- if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(85);
531+ if (lookahead == '%') ADVANCE(148);
532+ if (lookahead == '.') ADVANCE(6);
533+ if (lookahead == '@') ADVANCE(8);
534+ if (lookahead == 'a') ADVANCE(56);
535+ if (lookahead == 'd') ADVANCE(45);
536+ if (lookahead == 'f') ADVANCE(38);
537+ if (lookahead == 'i') ADVANCE(60);
538+ if (lookahead == 'm') ADVANCE(63);
539+ if (lookahead == 't') ADVANCE(61);
540+ if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(84);
541 if (('\t' <= lookahead && lookahead <= '\f') ||
542- lookahead == ' ') SKIP(86)
543- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
544+ lookahead == ' ') SKIP(85)
545+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(118);
546 END_STATE();
547- case 87:
548- if (eof) ADVANCE(88);
549- if (lookahead == '+') ADVANCE(156);
550- if (lookahead == '-') ADVANCE(158);
551- if (lookahead == '@') ADVANCE(161);
552- if (lookahead == 'B') ADVANCE(177);
553- if (lookahead == 'd') ADVANCE(168);
554- if (lookahead == 'i') ADVANCE(184);
555- if (lookahead == 'n') ADVANCE(169);
556- if (lookahead == 'r') ADVANCE(173);
557- if (lookahead == 's') ADVANCE(176);
558+ case 86:
559+ if (eof) ADVANCE(87);
560+ if (lookahead == '+') ADVANCE(155);
561+ if (lookahead == '-') ADVANCE(157);
562+ if (lookahead == '@') ADVANCE(158);
563+ if (lookahead == 'B') ADVANCE(174);
564+ if (lookahead == 'd') ADVANCE(165);
565+ if (lookahead == 'i') ADVANCE(181);
566+ if (lookahead == 'n') ADVANCE(166);
567+ if (lookahead == 'r') ADVANCE(170);
568+ if (lookahead == 's') ADVANCE(173);
569 if (lookahead == '\t' ||
570 lookahead == 11 ||
571 lookahead == '\f' ||
572- lookahead == ' ') ADVANCE(195);
573+ lookahead == ' ') ADVANCE(193);
574 if (lookahead != 0 &&
575- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(196);
576+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(194);
577 END_STATE();
578- case 88:
579+ case 87:
580 ACCEPT_TOKEN(ts_builtin_sym_end);
581 END_STATE();
582- case 89:
583+ case 88:
584 ACCEPT_TOKEN(aux_sym_source_token1);
585 END_STATE();
586+ case 89:
587+ ACCEPT_TOKEN(anon_sym_diff);
588+ END_STATE();
589 case 90:
590 ACCEPT_TOKEN(anon_sym_diff);
591+ if (lookahead == 'e') ADVANCE(65);
592 END_STATE();
593 case 91:
594- ACCEPT_TOKEN(anon_sym_diff);
595- if (lookahead == 'e') ADVANCE(67);
596+ ACCEPT_TOKEN(anon_sym_DASH_DASHgit);
597 END_STATE();
598 case 92:
599- ACCEPT_TOKEN(anon_sym_DASH_DASHgit);
600+ ACCEPT_TOKEN(aux_sym_file_change_token1);
601 END_STATE();
602 case 93:
603- ACCEPT_TOKEN(aux_sym_file_change_token1);
604+ ACCEPT_TOKEN(anon_sym_file);
605 END_STATE();
606 case 94:
607 ACCEPT_TOKEN(anon_sym_file);
608+ if (lookahead == 's') ADVANCE(99);
609 END_STATE();
610 case 95:
611- ACCEPT_TOKEN(anon_sym_file);
612- if (lookahead == 's') ADVANCE(100);
613- END_STATE();
614- case 96:
615 ACCEPT_TOKEN(anon_sym_mode);
616 END_STATE();
617- case 97:
618+ case 96:
619 ACCEPT_TOKEN(anon_sym_from);
620 END_STATE();
621- case 98:
622+ case 97:
623 ACCEPT_TOKEN(anon_sym_to);
624 END_STATE();
625- case 99:
626+ case 98:
627 ACCEPT_TOKEN(anon_sym_Binary);
628 END_STATE();
629- case 100:
630+ case 99:
631 ACCEPT_TOKEN(anon_sym_files);
632 END_STATE();
633- case 101:
634+ case 100:
635 ACCEPT_TOKEN(anon_sym_and);
636 END_STATE();
637- case 102:
638+ case 101:
639 ACCEPT_TOKEN(anon_sym_and);
640 if (lookahead != 0 &&
641 lookahead != '\t' &&
642 lookahead != '\n' &&
643 lookahead != '\r' &&
644- lookahead != ' ') ADVANCE(209);
645+ lookahead != ' ') ADVANCE(207);
646 END_STATE();
647- case 103:
648+ case 102:
649 ACCEPT_TOKEN(anon_sym_differ);
650 END_STATE();
651- case 104:
652+ case 103:
653 ACCEPT_TOKEN(anon_sym_differ);
654 if (lookahead != 0 &&
655 lookahead != '\t' &&
656 lookahead != '\n' &&
657 lookahead != '\r' &&
658- lookahead != ' ') ADVANCE(209);
659+ lookahead != ' ') ADVANCE(207);
660 END_STATE();
661- case 105:
662+ case 104:
663 ACCEPT_TOKEN(anon_sym_index);
664 END_STATE();
665- case 106:
666+ case 105:
667 ACCEPT_TOKEN(anon_sym_DOT_DOT);
668 END_STATE();
669- case 107:
670+ case 106:
671 ACCEPT_TOKEN(anon_sym_similarity);
672 END_STATE();
673- case 108:
674+ case 107:
675 ACCEPT_TOKEN(anon_sym_index2);
676 END_STATE();
677+ case 108:
678+ ACCEPT_TOKEN(aux_sym_similarity_token1);
679+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
680+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(146);
681+ END_STATE();
682 case 109:
683 ACCEPT_TOKEN(aux_sym_similarity_token1);
684- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(243);
685+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(208);
686 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(147);
687 END_STATE();
688 case 110:
689 ACCEPT_TOKEN(aux_sym_similarity_token1);
690- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(210);
691- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
692+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(79);
693+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(108);
694 END_STATE();
695 case 111:
696 ACCEPT_TOKEN(aux_sym_similarity_token1);
697- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(80);
698+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(209);
699 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(109);
700 END_STATE();
701 case 112:
702 ACCEPT_TOKEN(aux_sym_similarity_token1);
703- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(211);
704+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(80);
705 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(110);
706 END_STATE();
707 case 113:
708 ACCEPT_TOKEN(aux_sym_similarity_token1);
709- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(81);
710+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(210);
711 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(111);
712 END_STATE();
713 case 114:
714 ACCEPT_TOKEN(aux_sym_similarity_token1);
715- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(212);
716+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(81);
717 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(112);
718 END_STATE();
719 case 115:
720 ACCEPT_TOKEN(aux_sym_similarity_token1);
721- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
722+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(211);
723 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(113);
724 END_STATE();
725 case 116:
726 ACCEPT_TOKEN(aux_sym_similarity_token1);
727- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(213);
728+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
729 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(114);
730 END_STATE();
731 case 117:
732 ACCEPT_TOKEN(aux_sym_similarity_token1);
733- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
734+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(212);
735 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
736 END_STATE();
737 case 118:
738 ACCEPT_TOKEN(aux_sym_similarity_token1);
739- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(214);
740+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
741 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(116);
742 END_STATE();
743 case 119:
744 ACCEPT_TOKEN(aux_sym_similarity_token1);
745- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
746+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(213);
747 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(117);
748 END_STATE();
749 case 120:
750 ACCEPT_TOKEN(aux_sym_similarity_token1);
751- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(215);
752- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(118);
753+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(214);
754+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
755 END_STATE();
756 case 121:
757 ACCEPT_TOKEN(aux_sym_similarity_token1);
758- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(216);
759+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(215);
760 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(120);
761 END_STATE();
762 case 122:
763 ACCEPT_TOKEN(aux_sym_similarity_token1);
764- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(217);
765+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(216);
766 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(121);
767 END_STATE();
768 case 123:
769 ACCEPT_TOKEN(aux_sym_similarity_token1);
770- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(218);
771+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(217);
772 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(122);
773 END_STATE();
774 case 124:
775 ACCEPT_TOKEN(aux_sym_similarity_token1);
776- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(219);
777+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(218);
778 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(123);
779 END_STATE();
780 case 125:
781 ACCEPT_TOKEN(aux_sym_similarity_token1);
782- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(220);
783+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(219);
784 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(124);
785 END_STATE();
786 case 126:
787 ACCEPT_TOKEN(aux_sym_similarity_token1);
788- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(221);
789+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(220);
790 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
791 END_STATE();
792 case 127:
793 ACCEPT_TOKEN(aux_sym_similarity_token1);
794- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(222);
795+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(221);
796 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
797 END_STATE();
798 case 128:
799 ACCEPT_TOKEN(aux_sym_similarity_token1);
800- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(223);
801+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(222);
802 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
803 END_STATE();
804 case 129:
805 ACCEPT_TOKEN(aux_sym_similarity_token1);
806- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(224);
807+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(223);
808 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
809 END_STATE();
810 case 130:
811 ACCEPT_TOKEN(aux_sym_similarity_token1);
812- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(225);
813+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(224);
814 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(129);
815 END_STATE();
816 case 131:
817 ACCEPT_TOKEN(aux_sym_similarity_token1);
818- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(226);
819+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(225);
820 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
821 END_STATE();
822 case 132:
823 ACCEPT_TOKEN(aux_sym_similarity_token1);
824- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(227);
825+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(226);
826 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
827 END_STATE();
828 case 133:
829 ACCEPT_TOKEN(aux_sym_similarity_token1);
830- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(228);
831+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(227);
832 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(132);
833 END_STATE();
834 case 134:
835 ACCEPT_TOKEN(aux_sym_similarity_token1);
836- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(229);
837+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(228);
838 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(133);
839 END_STATE();
840 case 135:
841 ACCEPT_TOKEN(aux_sym_similarity_token1);
842- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(230);
843+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(229);
844 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134);
845 END_STATE();
846 case 136:
847 ACCEPT_TOKEN(aux_sym_similarity_token1);
848- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(231);
849+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(230);
850 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135);
851 END_STATE();
852 case 137:
853 ACCEPT_TOKEN(aux_sym_similarity_token1);
854- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(232);
855+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(231);
856 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136);
857 END_STATE();
858 case 138:
859 ACCEPT_TOKEN(aux_sym_similarity_token1);
860- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(233);
861+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(232);
862 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(137);
863 END_STATE();
864 case 139:
865 ACCEPT_TOKEN(aux_sym_similarity_token1);
866- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(234);
867+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(233);
868 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(138);
869 END_STATE();
870 case 140:
871 ACCEPT_TOKEN(aux_sym_similarity_token1);
872- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(235);
873+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(234);
874 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(139);
875 END_STATE();
876 case 141:
877 ACCEPT_TOKEN(aux_sym_similarity_token1);
878- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(236);
879+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(235);
880 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(140);
881 END_STATE();
882 case 142:
883 ACCEPT_TOKEN(aux_sym_similarity_token1);
884- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(237);
885+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(236);
886 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(141);
887 END_STATE();
888 case 143:
889 ACCEPT_TOKEN(aux_sym_similarity_token1);
890- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(238);
891+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(237);
892 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(142);
893 END_STATE();
894 case 144:
895 ACCEPT_TOKEN(aux_sym_similarity_token1);
896- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(239);
897+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(238);
898 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(143);
899 END_STATE();
900 case 145:
901 ACCEPT_TOKEN(aux_sym_similarity_token1);
902- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(240);
903+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(239);
904 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(144);
905 END_STATE();
906 case 146:
907 ACCEPT_TOKEN(aux_sym_similarity_token1);
908- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
909+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(240);
910 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(145);
911 END_STATE();
912 case 147:
913 ACCEPT_TOKEN(aux_sym_similarity_token1);
914- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(242);
915- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(146);
916+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(147);
917 END_STATE();
918 case 148:
919- ACCEPT_TOKEN(aux_sym_similarity_token1);
920- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
921- END_STATE();
922- case 149:
923 ACCEPT_TOKEN(anon_sym_PERCENT);
924 END_STATE();
925- case 150:
926+ case 149:
927 ACCEPT_TOKEN(aux_sym_file_token1);
928 END_STATE();
929- case 151:
930+ case 150:
931 ACCEPT_TOKEN(anon_sym_AT_AT);
932 END_STATE();
933- case 152:
934+ case 151:
935 ACCEPT_TOKEN(anon_sym_AT_AT2);
936 END_STATE();
937- case 153:
938+ case 152:
939 ACCEPT_TOKEN(aux_sym_location_token1);
940 if (lookahead == '\t' ||
941 lookahead == 11 ||
942 lookahead == '\f' ||
943- lookahead == ' ') ADVANCE(153);
944+ lookahead == ' ') ADVANCE(152);
945 if (lookahead != 0 &&
946- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(154);
947+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(153);
948 END_STATE();
949- case 154:
950+ case 153:
951 ACCEPT_TOKEN(aux_sym_location_token1);
952 if (lookahead != 0 &&
953 lookahead != '\n' &&
954- lookahead != '\r') ADVANCE(154);
955+ lookahead != '\r') ADVANCE(153);
956+ END_STATE();
957+ case 154:
958+ ACCEPT_TOKEN(anon_sym_PLUS);
959+ if (lookahead == '+' ||
960+ lookahead == '-') ADVANCE(76);
961 END_STATE();
962 case 155:
963 ACCEPT_TOKEN(anon_sym_PLUS);
964- if (lookahead == '+') ADVANCE(5);
965+ if (lookahead == '+' ||
966+ lookahead == '-') ADVANCE(192);
967 END_STATE();
968 case 156:
969- ACCEPT_TOKEN(anon_sym_PLUS);
970- if (lookahead == '+') ADVANCE(159);
971+ ACCEPT_TOKEN(anon_sym_DASH);
972+ if (lookahead == '+' ||
973+ lookahead == '-') ADVANCE(76);
974 END_STATE();
975 case 157:
976 ACCEPT_TOKEN(anon_sym_DASH);
977- if (lookahead == '-') ADVANCE(6);
978+ if (lookahead == '+' ||
979+ lookahead == '-') ADVANCE(192);
980 END_STATE();
981 case 158:
982- ACCEPT_TOKEN(anon_sym_DASH);
983- if (lookahead == '-') ADVANCE(160);
984+ ACCEPT_TOKEN(sym_context);
985+ if (lookahead == '@') ADVANCE(150);
986+ if (lookahead != 0 &&
987+ lookahead != '\n' &&
988+ lookahead != '\r') ADVANCE(194);
989 END_STATE();
990 case 159:
991 ACCEPT_TOKEN(sym_context);
992- if (lookahead == '+') ADVANCE(150);
993+ if (lookahead == 'a') ADVANCE(184);
994 if (lookahead != 0 &&
995 lookahead != '\n' &&
996- lookahead != '\r') ADVANCE(196);
997+ lookahead != '\r') ADVANCE(194);
998 END_STATE();
999 case 160:
1000 ACCEPT_TOKEN(sym_context);
1001- if (lookahead == '-') ADVANCE(150);
1002+ if (lookahead == 'a') ADVANCE(180);
1003 if (lookahead != 0 &&
1004 lookahead != '\n' &&
1005- lookahead != '\r') ADVANCE(196);
1006+ lookahead != '\r') ADVANCE(194);
1007 END_STATE();
1008 case 161:
1009 ACCEPT_TOKEN(sym_context);
1010- if (lookahead == '@') ADVANCE(151);
1011+ if (lookahead == 'a') ADVANCE(185);
1012 if (lookahead != 0 &&
1013 lookahead != '\n' &&
1014- lookahead != '\r') ADVANCE(196);
1015+ lookahead != '\r') ADVANCE(194);
1016 END_STATE();
1017 case 162:
1018 ACCEPT_TOKEN(sym_context);
1019- if (lookahead == 'a') ADVANCE(187);
1020+ if (lookahead == 'd') ADVANCE(92);
1021 if (lookahead != 0 &&
1022 lookahead != '\n' &&
1023- lookahead != '\r') ADVANCE(196);
1024+ lookahead != '\r') ADVANCE(194);
1025 END_STATE();
1026 case 163:
1027 ACCEPT_TOKEN(sym_context);
1028- if (lookahead == 'a') ADVANCE(183);
1029+ if (lookahead == 'd') ADVANCE(168);
1030 if (lookahead != 0 &&
1031 lookahead != '\n' &&
1032- lookahead != '\r') ADVANCE(196);
1033+ lookahead != '\r') ADVANCE(194);
1034 END_STATE();
1035 case 164:
1036 ACCEPT_TOKEN(sym_context);
1037- if (lookahead == 'a') ADVANCE(188);
1038+ if (lookahead == 'e') ADVANCE(92);
1039 if (lookahead != 0 &&
1040 lookahead != '\n' &&
1041- lookahead != '\r') ADVANCE(196);
1042+ lookahead != '\r') ADVANCE(194);
1043 END_STATE();
1044 case 165:
1045 ACCEPT_TOKEN(sym_context);
1046- if (lookahead == 'd') ADVANCE(93);
1047+ if (lookahead == 'e') ADVANCE(177);
1048+ if (lookahead == 'i') ADVANCE(172);
1049 if (lookahead != 0 &&
1050 lookahead != '\n' &&
1051- lookahead != '\r') ADVANCE(196);
1052+ lookahead != '\r') ADVANCE(194);
1053 END_STATE();
1054 case 166:
1055 ACCEPT_TOKEN(sym_context);
1056- if (lookahead == 'd') ADVANCE(171);
1057+ if (lookahead == 'e') ADVANCE(188);
1058 if (lookahead != 0 &&
1059 lookahead != '\n' &&
1060- lookahead != '\r') ADVANCE(196);
1061+ lookahead != '\r') ADVANCE(194);
1062 END_STATE();
1063 case 167:
1064 ACCEPT_TOKEN(sym_context);
1065- if (lookahead == 'e') ADVANCE(93);
1066+ if (lookahead == 'e') ADVANCE(187);
1067 if (lookahead != 0 &&
1068 lookahead != '\n' &&
1069- lookahead != '\r') ADVANCE(196);
1070+ lookahead != '\r') ADVANCE(194);
1071 END_STATE();
1072 case 168:
1073 ACCEPT_TOKEN(sym_context);
1074- if (lookahead == 'e') ADVANCE(180);
1075- if (lookahead == 'i') ADVANCE(175);
1076+ if (lookahead == 'e') ADVANCE(189);
1077 if (lookahead != 0 &&
1078 lookahead != '\n' &&
1079- lookahead != '\r') ADVANCE(196);
1080+ lookahead != '\r') ADVANCE(194);
1081 END_STATE();
1082 case 169:
1083 ACCEPT_TOKEN(sym_context);
1084- if (lookahead == 'e') ADVANCE(191);
1085+ if (lookahead == 'e') ADVANCE(162);
1086 if (lookahead != 0 &&
1087 lookahead != '\n' &&
1088- lookahead != '\r') ADVANCE(196);
1089+ lookahead != '\r') ADVANCE(194);
1090 END_STATE();
1091 case 170:
1092 ACCEPT_TOKEN(sym_context);
1093- if (lookahead == 'e') ADVANCE(190);
1094+ if (lookahead == 'e') ADVANCE(183);
1095 if (lookahead != 0 &&
1096 lookahead != '\n' &&
1097- lookahead != '\r') ADVANCE(196);
1098+ lookahead != '\r') ADVANCE(194);
1099 END_STATE();
1100 case 171:
1101 ACCEPT_TOKEN(sym_context);
1102- if (lookahead == 'e') ADVANCE(192);
1103+ if (lookahead == 'f') ADVANCE(89);
1104 if (lookahead != 0 &&
1105 lookahead != '\n' &&
1106- lookahead != '\r') ADVANCE(196);
1107+ lookahead != '\r') ADVANCE(194);
1108 END_STATE();
1109 case 172:
1110 ACCEPT_TOKEN(sym_context);
1111- if (lookahead == 'e') ADVANCE(165);
1112+ if (lookahead == 'f') ADVANCE(171);
1113 if (lookahead != 0 &&
1114 lookahead != '\n' &&
1115- lookahead != '\r') ADVANCE(196);
1116+ lookahead != '\r') ADVANCE(194);
1117 END_STATE();
1118 case 173:
1119 ACCEPT_TOKEN(sym_context);
1120- if (lookahead == 'e') ADVANCE(186);
1121+ if (lookahead == 'i') ADVANCE(179);
1122 if (lookahead != 0 &&
1123 lookahead != '\n' &&
1124- lookahead != '\r') ADVANCE(196);
1125+ lookahead != '\r') ADVANCE(194);
1126 END_STATE();
1127 case 174:
1128 ACCEPT_TOKEN(sym_context);
1129- if (lookahead == 'f') ADVANCE(90);
1130+ if (lookahead == 'i') ADVANCE(182);
1131 if (lookahead != 0 &&
1132 lookahead != '\n' &&
1133- lookahead != '\r') ADVANCE(196);
1134+ lookahead != '\r') ADVANCE(194);
1135 END_STATE();
1136 case 175:
1137 ACCEPT_TOKEN(sym_context);
1138- if (lookahead == 'f') ADVANCE(174);
1139+ if (lookahead == 'i') ADVANCE(178);
1140 if (lookahead != 0 &&
1141 lookahead != '\n' &&
1142- lookahead != '\r') ADVANCE(196);
1143+ lookahead != '\r') ADVANCE(194);
1144 END_STATE();
1145 case 176:
1146 ACCEPT_TOKEN(sym_context);
1147- if (lookahead == 'i') ADVANCE(182);
1148+ if (lookahead == 'i') ADVANCE(186);
1149 if (lookahead != 0 &&
1150 lookahead != '\n' &&
1151- lookahead != '\r') ADVANCE(196);
1152+ lookahead != '\r') ADVANCE(194);
1153 END_STATE();
1154 case 177:
1155 ACCEPT_TOKEN(sym_context);
1156- if (lookahead == 'i') ADVANCE(185);
1157+ if (lookahead == 'l') ADVANCE(167);
1158 if (lookahead != 0 &&
1159 lookahead != '\n' &&
1160- lookahead != '\r') ADVANCE(196);
1161+ lookahead != '\r') ADVANCE(194);
1162 END_STATE();
1163 case 178:
1164 ACCEPT_TOKEN(sym_context);
1165- if (lookahead == 'i') ADVANCE(181);
1166+ if (lookahead == 'l') ADVANCE(161);
1167 if (lookahead != 0 &&
1168 lookahead != '\n' &&
1169- lookahead != '\r') ADVANCE(196);
1170+ lookahead != '\r') ADVANCE(194);
1171 END_STATE();
1172 case 179:
1173 ACCEPT_TOKEN(sym_context);
1174- if (lookahead == 'i') ADVANCE(189);
1175+ if (lookahead == 'm') ADVANCE(175);
1176 if (lookahead != 0 &&
1177 lookahead != '\n' &&
1178- lookahead != '\r') ADVANCE(196);
1179+ lookahead != '\r') ADVANCE(194);
1180 END_STATE();
1181 case 180:
1182 ACCEPT_TOKEN(sym_context);
1183- if (lookahead == 'l') ADVANCE(170);
1184+ if (lookahead == 'm') ADVANCE(164);
1185 if (lookahead != 0 &&
1186 lookahead != '\n' &&
1187- lookahead != '\r') ADVANCE(196);
1188+ lookahead != '\r') ADVANCE(194);
1189 END_STATE();
1190 case 181:
1191 ACCEPT_TOKEN(sym_context);
1192- if (lookahead == 'l') ADVANCE(164);
1193+ if (lookahead == 'n') ADVANCE(163);
1194 if (lookahead != 0 &&
1195 lookahead != '\n' &&
1196- lookahead != '\r') ADVANCE(196);
1197+ lookahead != '\r') ADVANCE(194);
1198 END_STATE();
1199 case 182:
1200 ACCEPT_TOKEN(sym_context);
1201- if (lookahead == 'm') ADVANCE(178);
1202+ if (lookahead == 'n') ADVANCE(159);
1203 if (lookahead != 0 &&
1204 lookahead != '\n' &&
1205- lookahead != '\r') ADVANCE(196);
1206+ lookahead != '\r') ADVANCE(194);
1207 END_STATE();
1208 case 183:
1209 ACCEPT_TOKEN(sym_context);
1210- if (lookahead == 'm') ADVANCE(167);
1211+ if (lookahead == 'n') ADVANCE(160);
1212 if (lookahead != 0 &&
1213 lookahead != '\n' &&
1214- lookahead != '\r') ADVANCE(196);
1215+ lookahead != '\r') ADVANCE(194);
1216 END_STATE();
1217 case 184:
1218 ACCEPT_TOKEN(sym_context);
1219- if (lookahead == 'n') ADVANCE(166);
1220+ if (lookahead == 'r') ADVANCE(190);
1221 if (lookahead != 0 &&
1222 lookahead != '\n' &&
1223- lookahead != '\r') ADVANCE(196);
1224+ lookahead != '\r') ADVANCE(194);
1225 END_STATE();
1226 case 185:
1227 ACCEPT_TOKEN(sym_context);
1228- if (lookahead == 'n') ADVANCE(162);
1229+ if (lookahead == 'r') ADVANCE(176);
1230 if (lookahead != 0 &&
1231 lookahead != '\n' &&
1232- lookahead != '\r') ADVANCE(196);
1233+ lookahead != '\r') ADVANCE(194);
1234 END_STATE();
1235 case 186:
1236 ACCEPT_TOKEN(sym_context);
1237- if (lookahead == 'n') ADVANCE(163);
1238+ if (lookahead == 't') ADVANCE(191);
1239 if (lookahead != 0 &&
1240 lookahead != '\n' &&
1241- lookahead != '\r') ADVANCE(196);
1242+ lookahead != '\r') ADVANCE(194);
1243 END_STATE();
1244 case 187:
1245 ACCEPT_TOKEN(sym_context);
1246- if (lookahead == 'r') ADVANCE(193);
1247+ if (lookahead == 't') ADVANCE(169);
1248 if (lookahead != 0 &&
1249 lookahead != '\n' &&
1250- lookahead != '\r') ADVANCE(196);
1251+ lookahead != '\r') ADVANCE(194);
1252 END_STATE();
1253 case 188:
1254 ACCEPT_TOKEN(sym_context);
1255- if (lookahead == 'r') ADVANCE(179);
1256+ if (lookahead == 'w') ADVANCE(92);
1257 if (lookahead != 0 &&
1258 lookahead != '\n' &&
1259- lookahead != '\r') ADVANCE(196);
1260+ lookahead != '\r') ADVANCE(194);
1261 END_STATE();
1262 case 189:
1263 ACCEPT_TOKEN(sym_context);
1264- if (lookahead == 't') ADVANCE(194);
1265+ if (lookahead == 'x') ADVANCE(104);
1266 if (lookahead != 0 &&
1267 lookahead != '\n' &&
1268- lookahead != '\r') ADVANCE(196);
1269+ lookahead != '\r') ADVANCE(194);
1270 END_STATE();
1271 case 190:
1272 ACCEPT_TOKEN(sym_context);
1273- if (lookahead == 't') ADVANCE(172);
1274+ if (lookahead == 'y') ADVANCE(98);
1275 if (lookahead != 0 &&
1276 lookahead != '\n' &&
1277- lookahead != '\r') ADVANCE(196);
1278+ lookahead != '\r') ADVANCE(194);
1279 END_STATE();
1280 case 191:
1281 ACCEPT_TOKEN(sym_context);
1282- if (lookahead == 'w') ADVANCE(93);
1283+ if (lookahead == 'y') ADVANCE(106);
1284 if (lookahead != 0 &&
1285 lookahead != '\n' &&
1286- lookahead != '\r') ADVANCE(196);
1287+ lookahead != '\r') ADVANCE(194);
1288 END_STATE();
1289 case 192:
1290 ACCEPT_TOKEN(sym_context);
1291- if (lookahead == 'x') ADVANCE(105);
1292+ if (lookahead == '+' ||
1293+ lookahead == '-') ADVANCE(149);
1294 if (lookahead != 0 &&
1295 lookahead != '\n' &&
1296- lookahead != '\r') ADVANCE(196);
1297+ lookahead != '\r') ADVANCE(194);
1298 END_STATE();
1299 case 193:
1300 ACCEPT_TOKEN(sym_context);
1301- if (lookahead == 'y') ADVANCE(99);
1302- if (lookahead != 0 &&
1303- lookahead != '\n' &&
1304- lookahead != '\r') ADVANCE(196);
1305- END_STATE();
1306- case 194:
1307- ACCEPT_TOKEN(sym_context);
1308- if (lookahead == 'y') ADVANCE(107);
1309- if (lookahead != 0 &&
1310- lookahead != '\n' &&
1311- lookahead != '\r') ADVANCE(196);
1312- END_STATE();
1313- case 195:
1314- ACCEPT_TOKEN(sym_context);
1315 if (lookahead == '\t' ||
1316 lookahead == 11 ||
1317 lookahead == '\f' ||
1318- lookahead == ' ') ADVANCE(195);
1319+ lookahead == ' ') ADVANCE(193);
1320 if (lookahead != 0 &&
1321- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(196);
1322+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(194);
1323 END_STATE();
1324- case 196:
1325+ case 194:
1326 ACCEPT_TOKEN(sym_context);
1327 if (lookahead != 0 &&
1328 lookahead != '\n' &&
1329- lookahead != '\r') ADVANCE(196);
1330+ lookahead != '\r') ADVANCE(194);
1331 END_STATE();
1332- case 197:
1333+ case 195:
1334 ACCEPT_TOKEN(sym_linerange);
1335- if (lookahead == ',') ADVANCE(79);
1336- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
1337+ if (lookahead == ',') ADVANCE(78);
1338+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(195);
1339 END_STATE();
1340- case 198:
1341+ case 196:
1342 ACCEPT_TOKEN(sym_linerange);
1343- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(198);
1344+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(196);
1345 END_STATE();
1346- case 199:
1347+ case 197:
1348 ACCEPT_TOKEN(aux_sym_filename_token1);
1349- if (lookahead == 'a') ADVANCE(206);
1350+ if (lookahead == 'a') ADVANCE(204);
1351 if (lookahead == 11 ||
1352- lookahead == '\f') ADVANCE(199);
1353+ lookahead == '\f') ADVANCE(197);
1354 if (lookahead != 0 &&
1355 (lookahead < '\t' || '\r' < lookahead) &&
1356- lookahead != ' ') ADVANCE(209);
1357+ lookahead != ' ') ADVANCE(207);
1358 END_STATE();
1359- case 200:
1360+ case 198:
1361 ACCEPT_TOKEN(aux_sym_filename_token1);
1362- if (lookahead == 'd') ADVANCE(102);
1363+ if (lookahead == 'd') ADVANCE(101);
1364 if (lookahead != 0 &&
1365 lookahead != '\t' &&
1366 lookahead != '\n' &&
1367 lookahead != '\r' &&
1368- lookahead != ' ') ADVANCE(209);
1369+ lookahead != ' ') ADVANCE(207);
1370 END_STATE();
1371- case 201:
1372+ case 199:
1373 ACCEPT_TOKEN(aux_sym_filename_token1);
1374- if (lookahead == 'd') ADVANCE(205);
1375+ if (lookahead == 'd') ADVANCE(203);
1376 if (lookahead == 11 ||
1377- lookahead == '\f') ADVANCE(201);
1378+ lookahead == '\f') ADVANCE(199);
1379 if (lookahead != 0 &&
1380 (lookahead < '\t' || '\r' < lookahead) &&
1381- lookahead != ' ') ADVANCE(209);
1382+ lookahead != ' ') ADVANCE(207);
1383 END_STATE();
1384- case 202:
1385+ case 200:
1386 ACCEPT_TOKEN(aux_sym_filename_token1);
1387- if (lookahead == 'e') ADVANCE(207);
1388+ if (lookahead == 'e') ADVANCE(205);
1389 if (lookahead != 0 &&
1390 lookahead != '\t' &&
1391 lookahead != '\n' &&
1392 lookahead != '\r' &&
1393- lookahead != ' ') ADVANCE(209);
1394+ lookahead != ' ') ADVANCE(207);
1395 END_STATE();
1396- case 203:
1397+ case 201:
1398 ACCEPT_TOKEN(aux_sym_filename_token1);
1399- if (lookahead == 'f') ADVANCE(202);
1400+ if (lookahead == 'f') ADVANCE(200);
1401 if (lookahead != 0 &&
1402 lookahead != '\t' &&
1403 lookahead != '\n' &&
1404 lookahead != '\r' &&
1405- lookahead != ' ') ADVANCE(209);
1406+ lookahead != ' ') ADVANCE(207);
1407 END_STATE();
1408- case 204:
1409+ case 202:
1410 ACCEPT_TOKEN(aux_sym_filename_token1);
1411- if (lookahead == 'f') ADVANCE(203);
1412+ if (lookahead == 'f') ADVANCE(201);
1413 if (lookahead != 0 &&
1414 lookahead != '\t' &&
1415 lookahead != '\n' &&
1416 lookahead != '\r' &&
1417- lookahead != ' ') ADVANCE(209);
1418+ lookahead != ' ') ADVANCE(207);
1419 END_STATE();
1420- case 205:
1421+ case 203:
1422 ACCEPT_TOKEN(aux_sym_filename_token1);
1423- if (lookahead == 'i') ADVANCE(204);
1424+ if (lookahead == 'i') ADVANCE(202);
1425 if (lookahead != 0 &&
1426 lookahead != '\t' &&
1427 lookahead != '\n' &&
1428 lookahead != '\r' &&
1429- lookahead != ' ') ADVANCE(209);
1430+ lookahead != ' ') ADVANCE(207);
1431 END_STATE();
1432- case 206:
1433+ case 204:
1434 ACCEPT_TOKEN(aux_sym_filename_token1);
1435- if (lookahead == 'n') ADVANCE(200);
1436+ if (lookahead == 'n') ADVANCE(198);
1437 if (lookahead != 0 &&
1438 lookahead != '\t' &&
1439 lookahead != '\n' &&
1440 lookahead != '\r' &&
1441- lookahead != ' ') ADVANCE(209);
1442+ lookahead != ' ') ADVANCE(207);
1443 END_STATE();
1444- case 207:
1445+ case 205:
1446 ACCEPT_TOKEN(aux_sym_filename_token1);
1447- if (lookahead == 'r') ADVANCE(104);
1448+ if (lookahead == 'r') ADVANCE(103);
1449 if (lookahead != 0 &&
1450 lookahead != '\t' &&
1451 lookahead != '\n' &&
1452 lookahead != '\r' &&
1453- lookahead != ' ') ADVANCE(209);
1454+ lookahead != ' ') ADVANCE(207);
1455 END_STATE();
1456- case 208:
1457+ case 206:
1458 ACCEPT_TOKEN(aux_sym_filename_token1);
1459 if (lookahead == 11 ||
1460- lookahead == '\f') ADVANCE(208);
1461+ lookahead == '\f') ADVANCE(206);
1462 if (lookahead != 0 &&
1463 (lookahead < '\t' || '\r' < lookahead) &&
1464- lookahead != ' ') ADVANCE(209);
1465+ lookahead != ' ') ADVANCE(207);
1466 END_STATE();
1467- case 209:
1468+ case 207:
1469 ACCEPT_TOKEN(aux_sym_filename_token1);
1470 if (lookahead != 0 &&
1471 lookahead != '\t' &&
1472 lookahead != '\n' &&
1473 lookahead != '\r' &&
1474- lookahead != ' ') ADVANCE(209);
1475+ lookahead != ' ') ADVANCE(207);
1476+ END_STATE();
1477+ case 208:
1478+ ACCEPT_TOKEN(sym_commit);
1479+ END_STATE();
1480+ case 209:
1481+ ACCEPT_TOKEN(sym_commit);
1482+ if (('0' <= lookahead && lookahead <= '9') ||
1483+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(208);
1484 END_STATE();
1485 case 210:
1486 ACCEPT_TOKEN(sym_commit);
1487+ if (('0' <= lookahead && lookahead <= '9') ||
1488+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(209);
1489 END_STATE();
1490 case 211:
1491 ACCEPT_TOKEN(sym_commit);
1492 @@ -1590,16 +1596,6 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1493 if (('0' <= lookahead && lookahead <= '9') ||
1494 ('a' <= lookahead && lookahead <= 'f')) ADVANCE(240);
1495 END_STATE();
1496- case 242:
1497- ACCEPT_TOKEN(sym_commit);
1498- if (('0' <= lookahead && lookahead <= '9') ||
1499- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
1500- END_STATE();
1501- case 243:
1502- ACCEPT_TOKEN(sym_commit);
1503- if (('0' <= lookahead && lookahead <= '9') ||
1504- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(242);
1505- END_STATE();
1506 default:
1507 return false;
1508 }
1509 @@ -1607,21 +1603,21 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1510
1511 static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1512 [0] = {.lex_state = 0},
1513- [1] = {.lex_state = 87},
1514- [2] = {.lex_state = 87},
1515- [3] = {.lex_state = 87},
1516- [4] = {.lex_state = 87},
1517+ [1] = {.lex_state = 86},
1518+ [2] = {.lex_state = 86},
1519+ [3] = {.lex_state = 86},
1520+ [4] = {.lex_state = 86},
1521 [5] = {.lex_state = 3},
1522- [6] = {.lex_state = 12},
1523+ [6] = {.lex_state = 10},
1524 [7] = {.lex_state = 3},
1525 [8] = {.lex_state = 2},
1526 [9] = {.lex_state = 3},
1527- [10] = {.lex_state = 17},
1528+ [10] = {.lex_state = 15},
1529 [11] = {.lex_state = 3},
1530- [12] = {.lex_state = 12},
1531+ [12] = {.lex_state = 10},
1532 [13] = {.lex_state = 3},
1533 [14] = {.lex_state = 3},
1534- [15] = {.lex_state = 17},
1535+ [15] = {.lex_state = 15},
1536 [16] = {.lex_state = 2},
1537 [17] = {.lex_state = 3},
1538 [18] = {.lex_state = 4},
1539 @@ -1637,7 +1633,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1540 [28] = {.lex_state = 2},
1541 [29] = {.lex_state = 0},
1542 [30] = {.lex_state = 0},
1543- [31] = {.lex_state = 36},
1544+ [31] = {.lex_state = 34},
1545 [32] = {.lex_state = 0},
1546 [33] = {.lex_state = 0},
1547 [34] = {.lex_state = 2},
1548 @@ -1653,8 +1649,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1549 [44] = {.lex_state = 0},
1550 [45] = {.lex_state = 2},
1551 [46] = {.lex_state = 2},
1552- [47] = {.lex_state = 36},
1553- [48] = {.lex_state = 36},
1554+ [47] = {.lex_state = 34},
1555+ [48] = {.lex_state = 34},
1556 };
1557
1558 static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1559 diff --git a/test/corpus/text.txt b/test/corpus/text.txt
1560index 0ad3007..2ab4cd7 100644
1561--- a/test/corpus/text.txt
1562+++ b/test/corpus/text.txt
1563 @@ -140,3 +140,14 @@ index 00000000..ee9808dc
1564 (linerange))
1565 (addition)
1566 (context))
1567+
1568+ ================================================================================
1569+ Just a file declaration
1570+ ================================================================================
1571+ --- /dev/null
1572+
1573+ --------------------------------------------------------------------------------
1574+
1575+ (source
1576+ (file
1577+ (filename)))
1578 diff --git a/tree-sitter-gitdiff.wasm b/tree-sitter-gitdiff.wasm
1579index 6388f91..b5d02f6 100755
1580 Binary files a/tree-sitter-gitdiff.wasm and b/tree-sitter-gitdiff.wasm differ