Author: Michael Davis [mcarsondavis@gmail.com]
Hash: 33c9762e8d2733b35754c4c785cbf137bf5a821d
Timestamp: Fri, 24 Dec 2021 02:05:56 +0000 (2 years ago)

+598 -574 +/-5 browse
parse locations without context
1diff --git a/grammar.js b/grammar.js
2index c83b6a3..9cf129e 100644
3--- a/grammar.js
4+++ b/grammar.js
5 @@ -44,7 +44,7 @@ module.exports = grammar({
6
7 file: ($) => iseq(field("kind", choice("---", "+++")), $.filename),
8
9- location: ($) => iseq("@@", $.linerange, $.linerange, "@@", ANYTHING),
10+ location: ($) => iseq("@@", $.linerange, $.linerange, "@@", optional(ANYTHING)),
11
12 addition: ($) => iseq("+", optional(ANYTHING)),
13
14 @@ -52,7 +52,7 @@ module.exports = grammar({
15
16 context: ($) => token(prec(-1, ANYTHING)),
17
18- linerange: ($) => /[-\+]\d+,\d+/,
19+ linerange: ($) => /[-\+]\d+(,\d+)?/,
20 filename: ($) => repeat1(/\S+/),
21 commit: ($) => /[a-f0-9]{7,40}/,
22 mode: ($) => /\d+/,
23 diff --git a/src/grammar.json b/src/grammar.json
24index 8d4c13c..3252142 100644
25--- a/src/grammar.json
26+++ b/src/grammar.json
27 @@ -303,8 +303,16 @@
28 "value": "@@"
29 },
30 {
31- "type": "PATTERN",
32- "value": "[^\\r\\n]+"
33+ "type": "CHOICE",
34+ "members": [
35+ {
36+ "type": "PATTERN",
37+ "value": "[^\\r\\n]+"
38+ },
39+ {
40+ "type": "BLANK"
41+ }
42+ ]
43 }
44 ]
45 },
46 @@ -369,7 +377,7 @@
47 },
48 "linerange": {
49 "type": "PATTERN",
50- "value": "[-\\+]\\d+,\\d+"
51+ "value": "[-\\+]\\d+(,\\d+)?"
52 },
53 "filename": {
54 "type": "REPEAT1",
55 diff --git a/src/parser.c b/src/parser.c
56index 7399900..4f2556d 100644
57--- a/src/parser.c
58+++ b/src/parser.c
59 @@ -366,48 +366,48 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
60 eof = lexer->eof(lexer);
61 switch (state) {
62 case 0:
63- if (eof) ADVANCE(89);
64- if (lookahead == '\n') ADVANCE(90);
65+ if (eof) ADVANCE(88);
66+ if (lookahead == '\n') ADVANCE(89);
67 if (lookahead == '\r') ADVANCE(1);
68- if (lookahead == '%') ADVANCE(150);
69- if (lookahead == '+') ADVANCE(156);
70- if (lookahead == '-') ADVANCE(158);
71- if (lookahead == '.') ADVANCE(9);
72- if (lookahead == '@') ADVANCE(10);
73- if (lookahead == 'B') ADVANCE(43);
74- if (lookahead == 'a') ADVANCE(59);
75- if (lookahead == 'd') ADVANCE(22);
76- if (lookahead == 'f') ADVANCE(41);
77- if (lookahead == 'i') ADVANCE(61);
78- if (lookahead == 'm') ADVANCE(66);
79- if (lookahead == 'n') ADVANCE(23);
80- if (lookahead == 'r') ADVANCE(33);
81- if (lookahead == 's') ADVANCE(42);
82- if (lookahead == 't') ADVANCE(64);
83- if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(86);
84+ if (lookahead == '%') ADVANCE(149);
85+ if (lookahead == '+') ADVANCE(155);
86+ if (lookahead == '-') ADVANCE(157);
87+ if (lookahead == '.') ADVANCE(8);
88+ if (lookahead == '@') ADVANCE(9);
89+ if (lookahead == 'B') ADVANCE(42);
90+ if (lookahead == 'a') ADVANCE(58);
91+ if (lookahead == 'd') ADVANCE(21);
92+ if (lookahead == 'f') ADVANCE(40);
93+ if (lookahead == 'i') ADVANCE(60);
94+ if (lookahead == 'm') ADVANCE(65);
95+ if (lookahead == 'n') ADVANCE(22);
96+ if (lookahead == 'r') ADVANCE(32);
97+ if (lookahead == 's') ADVANCE(41);
98+ if (lookahead == 't') ADVANCE(63);
99+ if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(85);
100 if (('\t' <= lookahead && lookahead <= '\f') ||
101- lookahead == ' ') SKIP(87)
102- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(120);
103+ lookahead == ' ') SKIP(86)
104+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
105 END_STATE();
106 case 1:
107- if (lookahead == '\n') ADVANCE(90);
108+ if (lookahead == '\n') ADVANCE(89);
109 END_STATE();
110 case 2:
111- if (lookahead == '\n') ADVANCE(90);
112+ if (lookahead == '\n') ADVANCE(89);
113 if (lookahead == '\r') ADVANCE(1);
114- if (lookahead == '+') ADVANCE(79);
115- if (lookahead == '-') ADVANCE(8);
116- if (lookahead == '@') ADVANCE(11);
117- if (lookahead == 'd') ADVANCE(47);
118- if (lookahead == 'f') ADVANCE(49);
119- if (lookahead == 'i') ADVANCE(63);
120- if (lookahead == 't') ADVANCE(64);
121+ if (lookahead == '+') ADVANCE(78);
122+ if (lookahead == '-') ADVANCE(7);
123+ if (lookahead == '@') ADVANCE(10);
124+ if (lookahead == 'd') ADVANCE(46);
125+ if (lookahead == 'f') ADVANCE(48);
126+ if (lookahead == 'i') ADVANCE(62);
127+ if (lookahead == 't') ADVANCE(63);
128 if (('\t' <= lookahead && lookahead <= '\f') ||
129 lookahead == ' ') SKIP(2)
130- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(149);
131+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
132 END_STATE();
133 case 3:
134- if (lookahead == '\n') ADVANCE(90);
135+ if (lookahead == '\n') ADVANCE(89);
136 if (lookahead == '\r') ADVANCE(1);
137 if (lookahead == '\t' ||
138 lookahead == ' ') SKIP(3)
139 @@ -416,278 +416,278 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
140 if (lookahead != 0) ADVANCE(209);
141 END_STATE();
142 case 4:
143- if (lookahead == '\n') ADVANCE(90);
144+ if (lookahead == '\n') ADVANCE(89);
145 if (lookahead == '\r') ADVANCE(1);
146 if (('\t' <= lookahead && lookahead <= '\f') ||
147- lookahead == ' ') ADVANCE(154);
148- if (lookahead != 0) ADVANCE(155);
149+ lookahead == ' ') ADVANCE(153);
150+ if (lookahead != 0) ADVANCE(154);
151 END_STATE();
152 case 5:
153- if (lookahead == '+') ADVANCE(151);
154+ if (lookahead == '+') ADVANCE(150);
155 END_STATE();
156 case 6:
157- if (lookahead == ',') ADVANCE(80);
158- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(6);
159+ if (lookahead == '-') ADVANCE(150);
160 END_STATE();
161 case 7:
162- if (lookahead == '-') ADVANCE(151);
163+ if (lookahead == '-') ADVANCE(39);
164+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
165 END_STATE();
166 case 8:
167- if (lookahead == '-') ADVANCE(40);
168- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(6);
169+ if (lookahead == '.') ADVANCE(106);
170 END_STATE();
171 case 9:
172- if (lookahead == '.') ADVANCE(107);
173+ if (lookahead == '@') ADVANCE(151);
174 END_STATE();
175 case 10:
176 if (lookahead == '@') ADVANCE(152);
177 END_STATE();
178 case 11:
179- if (lookahead == '@') ADVANCE(153);
180+ if (lookahead == 'a') ADVANCE(66);
181 END_STATE();
182 case 12:
183- if (lookahead == 'a') ADVANCE(67);
184- END_STATE();
185- case 13:
186 if (lookahead == 'a') ADVANCE(206);
187 if (lookahead == '\t' ||
188- lookahead == ' ') SKIP(13)
189+ lookahead == ' ') SKIP(12)
190 if (lookahead == 11 ||
191 lookahead == '\f') ADVANCE(199);
192 if (lookahead != 0 &&
193 (lookahead < '\n' || '\r' < lookahead)) ADVANCE(209);
194 END_STATE();
195+ case 13:
196+ if (lookahead == 'a') ADVANCE(57);
197+ END_STATE();
198 case 14:
199- if (lookahead == 'a') ADVANCE(58);
200+ if (lookahead == 'a') ADVANCE(68);
201 END_STATE();
202 case 15:
203- if (lookahead == 'a') ADVANCE(69);
204+ if (lookahead == 'd') ADVANCE(101);
205 END_STATE();
206 case 16:
207- if (lookahead == 'd') ADVANCE(102);
208+ if (lookahead == 'd') ADVANCE(93);
209 END_STATE();
210 case 17:
211- if (lookahead == 'd') ADVANCE(94);
212- END_STATE();
213- case 18:
214 if (lookahead == 'd') ADVANCE(205);
215 if (lookahead == '\t' ||
216- lookahead == ' ') SKIP(18)
217+ lookahead == ' ') SKIP(17)
218 if (lookahead == 11 ||
219- lookahead == '\f') ADVANCE(200);
220+ lookahead == '\f') ADVANCE(201);
221 if (lookahead != 0 &&
222 (lookahead < '\n' || '\r' < lookahead)) ADVANCE(209);
223 END_STATE();
224+ case 18:
225+ if (lookahead == 'd') ADVANCE(26);
226+ END_STATE();
227 case 19:
228 if (lookahead == 'd') ADVANCE(27);
229 END_STATE();
230 case 20:
231- if (lookahead == 'd') ADVANCE(28);
232+ if (lookahead == 'd') ADVANCE(31);
233 END_STATE();
234 case 21:
235- if (lookahead == 'd') ADVANCE(32);
236+ if (lookahead == 'e') ADVANCE(50);
237+ if (lookahead == 'i') ADVANCE(35);
238+ if (('0' <= lookahead && lookahead <= '9') ||
239+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
240 END_STATE();
241 case 22:
242- if (lookahead == 'e') ADVANCE(51);
243- if (lookahead == 'i') ADVANCE(36);
244- if (('0' <= lookahead && lookahead <= '9') ||
245- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
246+ if (lookahead == 'e') ADVANCE(73);
247 END_STATE();
248 case 23:
249- if (lookahead == 'e') ADVANCE(74);
250+ if (lookahead == 'e') ADVANCE(93);
251 END_STATE();
252 case 24:
253- if (lookahead == 'e') ADVANCE(94);
254+ if (lookahead == 'e') ADVANCE(72);
255 END_STATE();
256 case 25:
257- if (lookahead == 'e') ADVANCE(73);
258+ if (lookahead == 'e') ADVANCE(95);
259 END_STATE();
260 case 26:
261- if (lookahead == 'e') ADVANCE(96);
262+ if (lookahead == 'e') ADVANCE(74);
263 END_STATE();
264 case 27:
265- if (lookahead == 'e') ADVANCE(75);
266+ if (lookahead == 'e') ADVANCE(96);
267 END_STATE();
268 case 28:
269- if (lookahead == 'e') ADVANCE(97);
270+ if (lookahead == 'e') ADVANCE(94);
271 END_STATE();
272 case 29:
273- if (lookahead == 'e') ADVANCE(95);
274+ if (lookahead == 'e') ADVANCE(69);
275 END_STATE();
276 case 30:
277- if (lookahead == 'e') ADVANCE(70);
278+ if (lookahead == 'e') ADVANCE(67);
279 END_STATE();
280 case 31:
281- if (lookahead == 'e') ADVANCE(68);
282+ if (lookahead == 'e') ADVANCE(75);
283 END_STATE();
284 case 32:
285- if (lookahead == 'e') ADVANCE(76);
286+ if (lookahead == 'e') ADVANCE(61);
287 END_STATE();
288 case 33:
289- if (lookahead == 'e') ADVANCE(62);
290+ if (lookahead == 'e') ADVANCE(16);
291 END_STATE();
292 case 34:
293- if (lookahead == 'e') ADVANCE(17);
294+ if (lookahead == 'f') ADVANCE(91);
295 END_STATE();
296 case 35:
297- if (lookahead == 'f') ADVANCE(92);
298+ if (lookahead == 'f') ADVANCE(34);
299 END_STATE();
300 case 36:
301- if (lookahead == 'f') ADVANCE(35);
302- END_STATE();
303- case 37:
304- if (lookahead == 'f') ADVANCE(50);
305+ if (lookahead == 'f') ADVANCE(49);
306 if (lookahead == '\t' ||
307 lookahead == 11 ||
308 lookahead == '\f' ||
309- lookahead == ' ') SKIP(37)
310+ lookahead == ' ') SKIP(36)
311 if (('0' <= lookahead && lookahead <= '9') ||
312- ('a' <= lookahead && lookahead <= 'e')) ADVANCE(86);
313+ ('a' <= lookahead && lookahead <= 'e')) ADVANCE(85);
314+ END_STATE();
315+ case 37:
316+ if (lookahead == 'f') ADVANCE(38);
317 END_STATE();
318 case 38:
319- if (lookahead == 'f') ADVANCE(39);
320+ if (lookahead == 'f') ADVANCE(30);
321 END_STATE();
322 case 39:
323- if (lookahead == 'f') ADVANCE(31);
324+ if (lookahead == 'g') ADVANCE(45);
325 END_STATE();
326 case 40:
327- if (lookahead == 'g') ADVANCE(46);
328+ if (lookahead == 'i') ADVANCE(51);
329+ if (lookahead == 'r') ADVANCE(64);
330+ if (('0' <= lookahead && lookahead <= '9') ||
331+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
332 END_STATE();
333 case 41:
334- if (lookahead == 'i') ADVANCE(52);
335- if (lookahead == 'r') ADVANCE(65);
336- if (('0' <= lookahead && lookahead <= '9') ||
337- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
338+ if (lookahead == 'i') ADVANCE(56);
339 END_STATE();
340 case 42:
341- if (lookahead == 'i') ADVANCE(57);
342+ if (lookahead == 'i') ADVANCE(59);
343 END_STATE();
344 case 43:
345- if (lookahead == 'i') ADVANCE(60);
346+ if (lookahead == 'i') ADVANCE(54);
347 END_STATE();
348 case 44:
349- if (lookahead == 'i') ADVANCE(55);
350+ if (lookahead == 'i') ADVANCE(71);
351 END_STATE();
352 case 45:
353- if (lookahead == 'i') ADVANCE(72);
354+ if (lookahead == 'i') ADVANCE(70);
355 END_STATE();
356 case 46:
357- if (lookahead == 'i') ADVANCE(71);
358+ if (lookahead == 'i') ADVANCE(37);
359 END_STATE();
360 case 47:
361- if (lookahead == 'i') ADVANCE(38);
362+ if (lookahead == 'i') ADVANCE(37);
363+ if (('0' <= lookahead && lookahead <= '9') ||
364+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
365 END_STATE();
366 case 48:
367- if (lookahead == 'i') ADVANCE(38);
368- if (('0' <= lookahead && lookahead <= '9') ||
369- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
370+ if (lookahead == 'i') ADVANCE(52);
371+ if (lookahead == 'r') ADVANCE(64);
372 END_STATE();
373 case 49:
374 if (lookahead == 'i') ADVANCE(53);
375- if (lookahead == 'r') ADVANCE(65);
376+ if (('0' <= lookahead && lookahead <= '9') ||
377+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
378 END_STATE();
379 case 50:
380- if (lookahead == 'i') ADVANCE(54);
381+ if (lookahead == 'l') ADVANCE(24);
382 if (('0' <= lookahead && lookahead <= '9') ||
383- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
384+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
385 END_STATE();
386 case 51:
387 if (lookahead == 'l') ADVANCE(25);
388- if (('0' <= lookahead && lookahead <= '9') ||
389- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
390 END_STATE();
391 case 52:
392- if (lookahead == 'l') ADVANCE(26);
393+ if (lookahead == 'l') ADVANCE(28);
394 END_STATE();
395 case 53:
396 if (lookahead == 'l') ADVANCE(29);
397 END_STATE();
398 case 54:
399- if (lookahead == 'l') ADVANCE(30);
400+ if (lookahead == 'l') ADVANCE(14);
401 END_STATE();
402 case 55:
403- if (lookahead == 'l') ADVANCE(15);
404+ if (lookahead == 'm') ADVANCE(97);
405 END_STATE();
406 case 56:
407- if (lookahead == 'm') ADVANCE(98);
408+ if (lookahead == 'm') ADVANCE(43);
409 END_STATE();
410 case 57:
411- if (lookahead == 'm') ADVANCE(44);
412+ if (lookahead == 'm') ADVANCE(23);
413 END_STATE();
414 case 58:
415- if (lookahead == 'm') ADVANCE(24);
416+ if (lookahead == 'n') ADVANCE(15);
417+ if (('0' <= lookahead && lookahead <= '9') ||
418+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
419 END_STATE();
420 case 59:
421- if (lookahead == 'n') ADVANCE(16);
422- if (('0' <= lookahead && lookahead <= '9') ||
423- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
424+ if (lookahead == 'n') ADVANCE(11);
425 END_STATE();
426 case 60:
427- if (lookahead == 'n') ADVANCE(12);
428+ if (lookahead == 'n') ADVANCE(18);
429 END_STATE();
430 case 61:
431- if (lookahead == 'n') ADVANCE(19);
432+ if (lookahead == 'n') ADVANCE(13);
433 END_STATE();
434 case 62:
435- if (lookahead == 'n') ADVANCE(14);
436+ if (lookahead == 'n') ADVANCE(20);
437 END_STATE();
438 case 63:
439- if (lookahead == 'n') ADVANCE(21);
440+ if (lookahead == 'o') ADVANCE(98);
441 END_STATE();
442 case 64:
443- if (lookahead == 'o') ADVANCE(99);
444+ if (lookahead == 'o') ADVANCE(55);
445 END_STATE();
446 case 65:
447- if (lookahead == 'o') ADVANCE(56);
448+ if (lookahead == 'o') ADVANCE(19);
449 END_STATE();
450 case 66:
451- if (lookahead == 'o') ADVANCE(20);
452+ if (lookahead == 'r') ADVANCE(76);
453 END_STATE();
454 case 67:
455- if (lookahead == 'r') ADVANCE(77);
456+ if (lookahead == 'r') ADVANCE(103);
457 END_STATE();
458 case 68:
459- if (lookahead == 'r') ADVANCE(104);
460+ if (lookahead == 'r') ADVANCE(44);
461 END_STATE();
462 case 69:
463- if (lookahead == 'r') ADVANCE(45);
464+ if (lookahead == 's') ADVANCE(100);
465 END_STATE();
466 case 70:
467- if (lookahead == 's') ADVANCE(101);
468+ if (lookahead == 't') ADVANCE(92);
469 END_STATE();
470 case 71:
471- if (lookahead == 't') ADVANCE(93);
472+ if (lookahead == 't') ADVANCE(77);
473 END_STATE();
474 case 72:
475- if (lookahead == 't') ADVANCE(78);
476+ if (lookahead == 't') ADVANCE(33);
477 END_STATE();
478 case 73:
479- if (lookahead == 't') ADVANCE(34);
480+ if (lookahead == 'w') ADVANCE(93);
481 END_STATE();
482 case 74:
483- if (lookahead == 'w') ADVANCE(94);
484+ if (lookahead == 'x') ADVANCE(105);
485 END_STATE();
486 case 75:
487- if (lookahead == 'x') ADVANCE(106);
488+ if (lookahead == 'x') ADVANCE(108);
489 END_STATE();
490 case 76:
491- if (lookahead == 'x') ADVANCE(109);
492+ if (lookahead == 'y') ADVANCE(99);
493 END_STATE();
494 case 77:
495- if (lookahead == 'y') ADVANCE(100);
496+ if (lookahead == 'y') ADVANCE(107);
497 END_STATE();
498 case 78:
499- if (lookahead == 'y') ADVANCE(108);
500+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
501 END_STATE();
502 case 79:
503- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(6);
504+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(198);
505 END_STATE();
506 case 80:
507- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(198);
508+ if (('0' <= lookahead && lookahead <= '9') ||
509+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(243);
510 END_STATE();
511 case 81:
512 if (('0' <= lookahead && lookahead <= '9') ||
513- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(243);
514+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(80);
515 END_STATE();
516 case 82:
517 if (('0' <= lookahead && lookahead <= '9') ||
518 @@ -706,90 +706,86 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
519 ('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
520 END_STATE();
521 case 86:
522- if (('0' <= lookahead && lookahead <= '9') ||
523- ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
524- END_STATE();
525- case 87:
526- if (eof) ADVANCE(89);
527- if (lookahead == '\n') ADVANCE(90);
528+ if (eof) ADVANCE(88);
529+ if (lookahead == '\n') ADVANCE(89);
530 if (lookahead == '\r') ADVANCE(1);
531- if (lookahead == '%') ADVANCE(150);
532- if (lookahead == '.') ADVANCE(9);
533- if (lookahead == '@') ADVANCE(11);
534- if (lookahead == 'a') ADVANCE(59);
535- if (lookahead == 'd') ADVANCE(48);
536- if (lookahead == 'f') ADVANCE(41);
537- if (lookahead == 'i') ADVANCE(63);
538- if (lookahead == 'm') ADVANCE(66);
539- if (lookahead == 't') ADVANCE(64);
540- if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(86);
541+ if (lookahead == '%') ADVANCE(149);
542+ if (lookahead == '.') ADVANCE(8);
543+ if (lookahead == '@') ADVANCE(10);
544+ if (lookahead == 'a') ADVANCE(58);
545+ if (lookahead == 'd') ADVANCE(47);
546+ if (lookahead == 'f') ADVANCE(40);
547+ if (lookahead == 'i') ADVANCE(62);
548+ if (lookahead == 'm') ADVANCE(65);
549+ if (lookahead == 't') ADVANCE(63);
550+ if (('b' <= lookahead && lookahead <= 'e')) ADVANCE(85);
551 if (('\t' <= lookahead && lookahead <= '\f') ||
552- lookahead == ' ') SKIP(87)
553- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(120);
554+ lookahead == ' ') SKIP(86)
555+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
556 END_STATE();
557- case 88:
558- if (eof) ADVANCE(89);
559- if (lookahead == '+') ADVANCE(157);
560- if (lookahead == '-') ADVANCE(159);
561- if (lookahead == '@') ADVANCE(162);
562- if (lookahead == 'B') ADVANCE(178);
563- if (lookahead == 'd') ADVANCE(169);
564- if (lookahead == 'i') ADVANCE(185);
565- if (lookahead == 'n') ADVANCE(170);
566- if (lookahead == 'r') ADVANCE(174);
567- if (lookahead == 's') ADVANCE(177);
568+ case 87:
569+ if (eof) ADVANCE(88);
570+ if (lookahead == '+') ADVANCE(156);
571+ if (lookahead == '-') ADVANCE(158);
572+ if (lookahead == '@') ADVANCE(161);
573+ if (lookahead == 'B') ADVANCE(177);
574+ if (lookahead == 'd') ADVANCE(168);
575+ if (lookahead == 'i') ADVANCE(184);
576+ if (lookahead == 'n') ADVANCE(169);
577+ if (lookahead == 'r') ADVANCE(173);
578+ if (lookahead == 's') ADVANCE(176);
579 if (lookahead == '\t' ||
580 lookahead == 11 ||
581 lookahead == '\f' ||
582- lookahead == ' ') ADVANCE(196);
583+ lookahead == ' ') ADVANCE(195);
584 if (lookahead != 0 &&
585- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(197);
586+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(196);
587 END_STATE();
588- case 89:
589+ case 88:
590 ACCEPT_TOKEN(ts_builtin_sym_end);
591 END_STATE();
592- case 90:
593+ case 89:
594 ACCEPT_TOKEN(aux_sym_source_token1);
595 END_STATE();
596+ case 90:
597+ ACCEPT_TOKEN(anon_sym_diff);
598+ END_STATE();
599 case 91:
600 ACCEPT_TOKEN(anon_sym_diff);
601+ if (lookahead == 'e') ADVANCE(67);
602 END_STATE();
603 case 92:
604- ACCEPT_TOKEN(anon_sym_diff);
605- if (lookahead == 'e') ADVANCE(68);
606+ ACCEPT_TOKEN(anon_sym_DASH_DASHgit);
607 END_STATE();
608 case 93:
609- ACCEPT_TOKEN(anon_sym_DASH_DASHgit);
610+ ACCEPT_TOKEN(aux_sym_file_change_token1);
611 END_STATE();
612 case 94:
613- ACCEPT_TOKEN(aux_sym_file_change_token1);
614+ ACCEPT_TOKEN(anon_sym_file);
615 END_STATE();
616 case 95:
617 ACCEPT_TOKEN(anon_sym_file);
618+ if (lookahead == 's') ADVANCE(100);
619 END_STATE();
620 case 96:
621- ACCEPT_TOKEN(anon_sym_file);
622- if (lookahead == 's') ADVANCE(101);
623- END_STATE();
624- case 97:
625 ACCEPT_TOKEN(anon_sym_mode);
626 END_STATE();
627- case 98:
628+ case 97:
629 ACCEPT_TOKEN(anon_sym_from);
630 END_STATE();
631- case 99:
632+ case 98:
633 ACCEPT_TOKEN(anon_sym_to);
634 END_STATE();
635- case 100:
636+ case 99:
637 ACCEPT_TOKEN(anon_sym_Binary);
638 END_STATE();
639- case 101:
640+ case 100:
641 ACCEPT_TOKEN(anon_sym_files);
642 END_STATE();
643- case 102:
644+ case 101:
645 ACCEPT_TOKEN(anon_sym_and);
646 END_STATE();
647- case 103:
648+ case 102:
649 ACCEPT_TOKEN(anon_sym_and);
650 if (lookahead != 0 &&
651 lookahead != '\t' &&
652 @@ -797,10 +793,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
653 lookahead != '\r' &&
654 lookahead != ' ') ADVANCE(209);
655 END_STATE();
656- case 104:
657+ case 103:
658 ACCEPT_TOKEN(anon_sym_differ);
659 END_STATE();
660- case 105:
661+ case 104:
662 ACCEPT_TOKEN(anon_sym_differ);
663 if (lookahead != 0 &&
664 lookahead != '\t' &&
665 @@ -808,527 +804,532 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
666 lookahead != '\r' &&
667 lookahead != ' ') ADVANCE(209);
668 END_STATE();
669- case 106:
670+ case 105:
671 ACCEPT_TOKEN(anon_sym_index);
672 END_STATE();
673- case 107:
674+ case 106:
675 ACCEPT_TOKEN(anon_sym_DOT_DOT);
676 END_STATE();
677- case 108:
678+ case 107:
679 ACCEPT_TOKEN(anon_sym_similarity);
680 END_STATE();
681- case 109:
682+ case 108:
683 ACCEPT_TOKEN(anon_sym_index2);
684 END_STATE();
685- case 110:
686+ case 109:
687 ACCEPT_TOKEN(aux_sym_similarity_token1);
688 if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(243);
689+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(147);
690+ END_STATE();
691+ case 110:
692+ ACCEPT_TOKEN(aux_sym_similarity_token1);
693+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(210);
694 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
695 END_STATE();
696 case 111:
697 ACCEPT_TOKEN(aux_sym_similarity_token1);
698- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(210);
699- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(149);
700+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(80);
701+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(109);
702 END_STATE();
703 case 112:
704 ACCEPT_TOKEN(aux_sym_similarity_token1);
705- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(81);
706+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(211);
707 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(110);
708 END_STATE();
709 case 113:
710 ACCEPT_TOKEN(aux_sym_similarity_token1);
711- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(211);
712+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(81);
713 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(111);
714 END_STATE();
715 case 114:
716 ACCEPT_TOKEN(aux_sym_similarity_token1);
717- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
718+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(212);
719 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(112);
720 END_STATE();
721 case 115:
722 ACCEPT_TOKEN(aux_sym_similarity_token1);
723- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(212);
724+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(82);
725 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(113);
726 END_STATE();
727 case 116:
728 ACCEPT_TOKEN(aux_sym_similarity_token1);
729- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
730+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(213);
731 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(114);
732 END_STATE();
733 case 117:
734 ACCEPT_TOKEN(aux_sym_similarity_token1);
735- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(213);
736+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(83);
737 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(115);
738 END_STATE();
739 case 118:
740 ACCEPT_TOKEN(aux_sym_similarity_token1);
741- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
742+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(214);
743 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(116);
744 END_STATE();
745 case 119:
746 ACCEPT_TOKEN(aux_sym_similarity_token1);
747- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(214);
748+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(84);
749 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(117);
750 END_STATE();
751 case 120:
752 ACCEPT_TOKEN(aux_sym_similarity_token1);
753- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(85);
754+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(215);
755 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(118);
756 END_STATE();
757 case 121:
758 ACCEPT_TOKEN(aux_sym_similarity_token1);
759- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(215);
760- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(119);
761+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(216);
762+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(120);
763 END_STATE();
764 case 122:
765 ACCEPT_TOKEN(aux_sym_similarity_token1);
766- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(216);
767+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(217);
768 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(121);
769 END_STATE();
770 case 123:
771 ACCEPT_TOKEN(aux_sym_similarity_token1);
772- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(217);
773+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(218);
774 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(122);
775 END_STATE();
776 case 124:
777 ACCEPT_TOKEN(aux_sym_similarity_token1);
778- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(218);
779+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(219);
780 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(123);
781 END_STATE();
782 case 125:
783 ACCEPT_TOKEN(aux_sym_similarity_token1);
784- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(219);
785+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(220);
786 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(124);
787 END_STATE();
788 case 126:
789 ACCEPT_TOKEN(aux_sym_similarity_token1);
790- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(220);
791+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(221);
792 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
793 END_STATE();
794 case 127:
795 ACCEPT_TOKEN(aux_sym_similarity_token1);
796- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(221);
797+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(222);
798 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
799 END_STATE();
800 case 128:
801 ACCEPT_TOKEN(aux_sym_similarity_token1);
802- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(222);
803+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(223);
804 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
805 END_STATE();
806 case 129:
807 ACCEPT_TOKEN(aux_sym_similarity_token1);
808- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(223);
809+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(224);
810 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
811 END_STATE();
812 case 130:
813 ACCEPT_TOKEN(aux_sym_similarity_token1);
814- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(224);
815+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(225);
816 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(129);
817 END_STATE();
818 case 131:
819 ACCEPT_TOKEN(aux_sym_similarity_token1);
820- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(225);
821+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(226);
822 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(130);
823 END_STATE();
824 case 132:
825 ACCEPT_TOKEN(aux_sym_similarity_token1);
826- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(226);
827+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(227);
828 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(131);
829 END_STATE();
830 case 133:
831 ACCEPT_TOKEN(aux_sym_similarity_token1);
832- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(227);
833+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(228);
834 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(132);
835 END_STATE();
836 case 134:
837 ACCEPT_TOKEN(aux_sym_similarity_token1);
838- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(228);
839+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(229);
840 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(133);
841 END_STATE();
842 case 135:
843 ACCEPT_TOKEN(aux_sym_similarity_token1);
844- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(229);
845+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(230);
846 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134);
847 END_STATE();
848 case 136:
849 ACCEPT_TOKEN(aux_sym_similarity_token1);
850- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(230);
851+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(231);
852 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135);
853 END_STATE();
854 case 137:
855 ACCEPT_TOKEN(aux_sym_similarity_token1);
856- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(231);
857+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(232);
858 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136);
859 END_STATE();
860 case 138:
861 ACCEPT_TOKEN(aux_sym_similarity_token1);
862- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(232);
863+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(233);
864 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(137);
865 END_STATE();
866 case 139:
867 ACCEPT_TOKEN(aux_sym_similarity_token1);
868- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(233);
869+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(234);
870 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(138);
871 END_STATE();
872 case 140:
873 ACCEPT_TOKEN(aux_sym_similarity_token1);
874- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(234);
875+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(235);
876 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(139);
877 END_STATE();
878 case 141:
879 ACCEPT_TOKEN(aux_sym_similarity_token1);
880- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(235);
881+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(236);
882 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(140);
883 END_STATE();
884 case 142:
885 ACCEPT_TOKEN(aux_sym_similarity_token1);
886- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(236);
887+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(237);
888 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(141);
889 END_STATE();
890 case 143:
891 ACCEPT_TOKEN(aux_sym_similarity_token1);
892- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(237);
893+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(238);
894 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(142);
895 END_STATE();
896 case 144:
897 ACCEPT_TOKEN(aux_sym_similarity_token1);
898- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(238);
899+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(239);
900 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(143);
901 END_STATE();
902 case 145:
903 ACCEPT_TOKEN(aux_sym_similarity_token1);
904- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(239);
905+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(240);
906 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(144);
907 END_STATE();
908 case 146:
909 ACCEPT_TOKEN(aux_sym_similarity_token1);
910- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(240);
911+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
912 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(145);
913 END_STATE();
914 case 147:
915 ACCEPT_TOKEN(aux_sym_similarity_token1);
916- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(241);
917+ if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(242);
918 if (('0' <= lookahead && lookahead <= '9')) ADVANCE(146);
919 END_STATE();
920 case 148:
921 ACCEPT_TOKEN(aux_sym_similarity_token1);
922- if (('a' <= lookahead && lookahead <= 'f')) ADVANCE(242);
923- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(147);
924+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(148);
925 END_STATE();
926 case 149:
927- ACCEPT_TOKEN(aux_sym_similarity_token1);
928- if (('0' <= lookahead && lookahead <= '9')) ADVANCE(149);
929- END_STATE();
930- case 150:
931 ACCEPT_TOKEN(anon_sym_PERCENT);
932 END_STATE();
933- case 151:
934+ case 150:
935 ACCEPT_TOKEN(aux_sym_file_token1);
936 END_STATE();
937- case 152:
938+ case 151:
939 ACCEPT_TOKEN(anon_sym_AT_AT);
940 END_STATE();
941- case 153:
942+ case 152:
943 ACCEPT_TOKEN(anon_sym_AT_AT2);
944 END_STATE();
945- case 154:
946+ case 153:
947 ACCEPT_TOKEN(aux_sym_location_token1);
948 if (lookahead == '\t' ||
949 lookahead == 11 ||
950 lookahead == '\f' ||
951- lookahead == ' ') ADVANCE(154);
952+ lookahead == ' ') ADVANCE(153);
953 if (lookahead != 0 &&
954- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(155);
955+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(154);
956 END_STATE();
957- case 155:
958+ case 154:
959 ACCEPT_TOKEN(aux_sym_location_token1);
960 if (lookahead != 0 &&
961 lookahead != '\n' &&
962- lookahead != '\r') ADVANCE(155);
963+ lookahead != '\r') ADVANCE(154);
964 END_STATE();
965- case 156:
966+ case 155:
967 ACCEPT_TOKEN(anon_sym_PLUS);
968 if (lookahead == '+') ADVANCE(5);
969 END_STATE();
970- case 157:
971+ case 156:
972 ACCEPT_TOKEN(anon_sym_PLUS);
973- if (lookahead == '+') ADVANCE(160);
974+ if (lookahead == '+') ADVANCE(159);
975+ END_STATE();
976+ case 157:
977+ ACCEPT_TOKEN(anon_sym_DASH);
978+ if (lookahead == '-') ADVANCE(6);
979 END_STATE();
980 case 158:
981 ACCEPT_TOKEN(anon_sym_DASH);
982- if (lookahead == '-') ADVANCE(7);
983+ if (lookahead == '-') ADVANCE(160);
984 END_STATE();
985 case 159:
986- ACCEPT_TOKEN(anon_sym_DASH);
987- if (lookahead == '-') ADVANCE(161);
988+ ACCEPT_TOKEN(sym_context);
989+ if (lookahead == '+') ADVANCE(150);
990+ if (lookahead != 0 &&
991+ lookahead != '\n' &&
992+ lookahead != '\r') ADVANCE(196);
993 END_STATE();
994 case 160:
995 ACCEPT_TOKEN(sym_context);
996- if (lookahead == '+') ADVANCE(151);
997+ if (lookahead == '-') ADVANCE(150);
998 if (lookahead != 0 &&
999 lookahead != '\n' &&
1000- lookahead != '\r') ADVANCE(197);
1001+ lookahead != '\r') ADVANCE(196);
1002 END_STATE();
1003 case 161:
1004 ACCEPT_TOKEN(sym_context);
1005- if (lookahead == '-') ADVANCE(151);
1006+ if (lookahead == '@') ADVANCE(151);
1007 if (lookahead != 0 &&
1008 lookahead != '\n' &&
1009- lookahead != '\r') ADVANCE(197);
1010+ lookahead != '\r') ADVANCE(196);
1011 END_STATE();
1012 case 162:
1013 ACCEPT_TOKEN(sym_context);
1014- if (lookahead == '@') ADVANCE(152);
1015+ if (lookahead == 'a') ADVANCE(187);
1016 if (lookahead != 0 &&
1017 lookahead != '\n' &&
1018- lookahead != '\r') ADVANCE(197);
1019+ lookahead != '\r') ADVANCE(196);
1020 END_STATE();
1021 case 163:
1022 ACCEPT_TOKEN(sym_context);
1023- if (lookahead == 'a') ADVANCE(188);
1024+ if (lookahead == 'a') ADVANCE(183);
1025 if (lookahead != 0 &&
1026 lookahead != '\n' &&
1027- lookahead != '\r') ADVANCE(197);
1028+ lookahead != '\r') ADVANCE(196);
1029 END_STATE();
1030 case 164:
1031 ACCEPT_TOKEN(sym_context);
1032- if (lookahead == 'a') ADVANCE(184);
1033+ if (lookahead == 'a') ADVANCE(188);
1034 if (lookahead != 0 &&
1035 lookahead != '\n' &&
1036- lookahead != '\r') ADVANCE(197);
1037+ lookahead != '\r') ADVANCE(196);
1038 END_STATE();
1039 case 165:
1040 ACCEPT_TOKEN(sym_context);
1041- if (lookahead == 'a') ADVANCE(189);
1042+ if (lookahead == 'd') ADVANCE(93);
1043 if (lookahead != 0 &&
1044 lookahead != '\n' &&
1045- lookahead != '\r') ADVANCE(197);
1046+ lookahead != '\r') ADVANCE(196);
1047 END_STATE();
1048 case 166:
1049 ACCEPT_TOKEN(sym_context);
1050- if (lookahead == 'd') ADVANCE(94);
1051+ if (lookahead == 'd') ADVANCE(171);
1052 if (lookahead != 0 &&
1053 lookahead != '\n' &&
1054- lookahead != '\r') ADVANCE(197);
1055+ lookahead != '\r') ADVANCE(196);
1056 END_STATE();
1057 case 167:
1058 ACCEPT_TOKEN(sym_context);
1059- if (lookahead == 'd') ADVANCE(172);
1060+ if (lookahead == 'e') ADVANCE(93);
1061 if (lookahead != 0 &&
1062 lookahead != '\n' &&
1063- lookahead != '\r') ADVANCE(197);
1064+ lookahead != '\r') ADVANCE(196);
1065 END_STATE();
1066 case 168:
1067 ACCEPT_TOKEN(sym_context);
1068- if (lookahead == 'e') ADVANCE(94);
1069+ if (lookahead == 'e') ADVANCE(180);
1070+ if (lookahead == 'i') ADVANCE(175);
1071 if (lookahead != 0 &&
1072 lookahead != '\n' &&
1073- lookahead != '\r') ADVANCE(197);
1074+ lookahead != '\r') ADVANCE(196);
1075 END_STATE();
1076 case 169:
1077 ACCEPT_TOKEN(sym_context);
1078- if (lookahead == 'e') ADVANCE(181);
1079- if (lookahead == 'i') ADVANCE(176);
1080+ if (lookahead == 'e') ADVANCE(191);
1081 if (lookahead != 0 &&
1082 lookahead != '\n' &&
1083- lookahead != '\r') ADVANCE(197);
1084+ lookahead != '\r') ADVANCE(196);
1085 END_STATE();
1086 case 170:
1087 ACCEPT_TOKEN(sym_context);
1088- if (lookahead == 'e') ADVANCE(192);
1089+ if (lookahead == 'e') ADVANCE(190);
1090 if (lookahead != 0 &&
1091 lookahead != '\n' &&
1092- lookahead != '\r') ADVANCE(197);
1093+ lookahead != '\r') ADVANCE(196);
1094 END_STATE();
1095 case 171:
1096 ACCEPT_TOKEN(sym_context);
1097- if (lookahead == 'e') ADVANCE(191);
1098+ if (lookahead == 'e') ADVANCE(192);
1099 if (lookahead != 0 &&
1100 lookahead != '\n' &&
1101- lookahead != '\r') ADVANCE(197);
1102+ lookahead != '\r') ADVANCE(196);
1103 END_STATE();
1104 case 172:
1105 ACCEPT_TOKEN(sym_context);
1106- if (lookahead == 'e') ADVANCE(193);
1107+ if (lookahead == 'e') ADVANCE(165);
1108 if (lookahead != 0 &&
1109 lookahead != '\n' &&
1110- lookahead != '\r') ADVANCE(197);
1111+ lookahead != '\r') ADVANCE(196);
1112 END_STATE();
1113 case 173:
1114 ACCEPT_TOKEN(sym_context);
1115- if (lookahead == 'e') ADVANCE(166);
1116+ if (lookahead == 'e') ADVANCE(186);
1117 if (lookahead != 0 &&
1118 lookahead != '\n' &&
1119- lookahead != '\r') ADVANCE(197);
1120+ lookahead != '\r') ADVANCE(196);
1121 END_STATE();
1122 case 174:
1123 ACCEPT_TOKEN(sym_context);
1124- if (lookahead == 'e') ADVANCE(187);
1125+ if (lookahead == 'f') ADVANCE(90);
1126 if (lookahead != 0 &&
1127 lookahead != '\n' &&
1128- lookahead != '\r') ADVANCE(197);
1129+ lookahead != '\r') ADVANCE(196);
1130 END_STATE();
1131 case 175:
1132 ACCEPT_TOKEN(sym_context);
1133- if (lookahead == 'f') ADVANCE(91);
1134+ if (lookahead == 'f') ADVANCE(174);
1135 if (lookahead != 0 &&
1136 lookahead != '\n' &&
1137- lookahead != '\r') ADVANCE(197);
1138+ lookahead != '\r') ADVANCE(196);
1139 END_STATE();
1140 case 176:
1141 ACCEPT_TOKEN(sym_context);
1142- if (lookahead == 'f') ADVANCE(175);
1143+ if (lookahead == 'i') ADVANCE(182);
1144 if (lookahead != 0 &&
1145 lookahead != '\n' &&
1146- lookahead != '\r') ADVANCE(197);
1147+ lookahead != '\r') ADVANCE(196);
1148 END_STATE();
1149 case 177:
1150 ACCEPT_TOKEN(sym_context);
1151- if (lookahead == 'i') ADVANCE(183);
1152+ if (lookahead == 'i') ADVANCE(185);
1153 if (lookahead != 0 &&
1154 lookahead != '\n' &&
1155- lookahead != '\r') ADVANCE(197);
1156+ lookahead != '\r') ADVANCE(196);
1157 END_STATE();
1158 case 178:
1159 ACCEPT_TOKEN(sym_context);
1160- if (lookahead == 'i') ADVANCE(186);
1161+ if (lookahead == 'i') ADVANCE(181);
1162 if (lookahead != 0 &&
1163 lookahead != '\n' &&
1164- lookahead != '\r') ADVANCE(197);
1165+ lookahead != '\r') ADVANCE(196);
1166 END_STATE();
1167 case 179:
1168 ACCEPT_TOKEN(sym_context);
1169- if (lookahead == 'i') ADVANCE(182);
1170+ if (lookahead == 'i') ADVANCE(189);
1171 if (lookahead != 0 &&
1172 lookahead != '\n' &&
1173- lookahead != '\r') ADVANCE(197);
1174+ lookahead != '\r') ADVANCE(196);
1175 END_STATE();
1176 case 180:
1177 ACCEPT_TOKEN(sym_context);
1178- if (lookahead == 'i') ADVANCE(190);
1179+ if (lookahead == 'l') ADVANCE(170);
1180 if (lookahead != 0 &&
1181 lookahead != '\n' &&
1182- lookahead != '\r') ADVANCE(197);
1183+ lookahead != '\r') ADVANCE(196);
1184 END_STATE();
1185 case 181:
1186 ACCEPT_TOKEN(sym_context);
1187- if (lookahead == 'l') ADVANCE(171);
1188+ if (lookahead == 'l') ADVANCE(164);
1189 if (lookahead != 0 &&
1190 lookahead != '\n' &&
1191- lookahead != '\r') ADVANCE(197);
1192+ lookahead != '\r') ADVANCE(196);
1193 END_STATE();
1194 case 182:
1195 ACCEPT_TOKEN(sym_context);
1196- if (lookahead == 'l') ADVANCE(165);
1197+ if (lookahead == 'm') ADVANCE(178);
1198 if (lookahead != 0 &&
1199 lookahead != '\n' &&
1200- lookahead != '\r') ADVANCE(197);
1201+ lookahead != '\r') ADVANCE(196);
1202 END_STATE();
1203 case 183:
1204 ACCEPT_TOKEN(sym_context);
1205- if (lookahead == 'm') ADVANCE(179);
1206+ if (lookahead == 'm') ADVANCE(167);
1207 if (lookahead != 0 &&
1208 lookahead != '\n' &&
1209- lookahead != '\r') ADVANCE(197);
1210+ lookahead != '\r') ADVANCE(196);
1211 END_STATE();
1212 case 184:
1213 ACCEPT_TOKEN(sym_context);
1214- if (lookahead == 'm') ADVANCE(168);
1215+ if (lookahead == 'n') ADVANCE(166);
1216 if (lookahead != 0 &&
1217 lookahead != '\n' &&
1218- lookahead != '\r') ADVANCE(197);
1219+ lookahead != '\r') ADVANCE(196);
1220 END_STATE();
1221 case 185:
1222 ACCEPT_TOKEN(sym_context);
1223- if (lookahead == 'n') ADVANCE(167);
1224+ if (lookahead == 'n') ADVANCE(162);
1225 if (lookahead != 0 &&
1226 lookahead != '\n' &&
1227- lookahead != '\r') ADVANCE(197);
1228+ lookahead != '\r') ADVANCE(196);
1229 END_STATE();
1230 case 186:
1231 ACCEPT_TOKEN(sym_context);
1232 if (lookahead == 'n') ADVANCE(163);
1233 if (lookahead != 0 &&
1234 lookahead != '\n' &&
1235- lookahead != '\r') ADVANCE(197);
1236+ lookahead != '\r') ADVANCE(196);
1237 END_STATE();
1238 case 187:
1239 ACCEPT_TOKEN(sym_context);
1240- if (lookahead == 'n') ADVANCE(164);
1241+ if (lookahead == 'r') ADVANCE(193);
1242 if (lookahead != 0 &&
1243 lookahead != '\n' &&
1244- lookahead != '\r') ADVANCE(197);
1245+ lookahead != '\r') ADVANCE(196);
1246 END_STATE();
1247 case 188:
1248 ACCEPT_TOKEN(sym_context);
1249- if (lookahead == 'r') ADVANCE(194);
1250+ if (lookahead == 'r') ADVANCE(179);
1251 if (lookahead != 0 &&
1252 lookahead != '\n' &&
1253- lookahead != '\r') ADVANCE(197);
1254+ lookahead != '\r') ADVANCE(196);
1255 END_STATE();
1256 case 189:
1257 ACCEPT_TOKEN(sym_context);
1258- if (lookahead == 'r') ADVANCE(180);
1259+ if (lookahead == 't') ADVANCE(194);
1260 if (lookahead != 0 &&
1261 lookahead != '\n' &&
1262- lookahead != '\r') ADVANCE(197);
1263+ lookahead != '\r') ADVANCE(196);
1264 END_STATE();
1265 case 190:
1266 ACCEPT_TOKEN(sym_context);
1267- if (lookahead == 't') ADVANCE(195);
1268+ if (lookahead == 't') ADVANCE(172);
1269 if (lookahead != 0 &&
1270 lookahead != '\n' &&
1271- lookahead != '\r') ADVANCE(197);
1272+ lookahead != '\r') ADVANCE(196);
1273 END_STATE();
1274 case 191:
1275 ACCEPT_TOKEN(sym_context);
1276- if (lookahead == 't') ADVANCE(173);
1277+ if (lookahead == 'w') ADVANCE(93);
1278 if (lookahead != 0 &&
1279 lookahead != '\n' &&
1280- lookahead != '\r') ADVANCE(197);
1281+ lookahead != '\r') ADVANCE(196);
1282 END_STATE();
1283 case 192:
1284 ACCEPT_TOKEN(sym_context);
1285- if (lookahead == 'w') ADVANCE(94);
1286+ if (lookahead == 'x') ADVANCE(105);
1287 if (lookahead != 0 &&
1288 lookahead != '\n' &&
1289- lookahead != '\r') ADVANCE(197);
1290+ lookahead != '\r') ADVANCE(196);
1291 END_STATE();
1292 case 193:
1293 ACCEPT_TOKEN(sym_context);
1294- if (lookahead == 'x') ADVANCE(106);
1295+ if (lookahead == 'y') ADVANCE(99);
1296 if (lookahead != 0 &&
1297 lookahead != '\n' &&
1298- lookahead != '\r') ADVANCE(197);
1299+ lookahead != '\r') ADVANCE(196);
1300 END_STATE();
1301 case 194:
1302 ACCEPT_TOKEN(sym_context);
1303- if (lookahead == 'y') ADVANCE(100);
1304+ if (lookahead == 'y') ADVANCE(107);
1305 if (lookahead != 0 &&
1306 lookahead != '\n' &&
1307- lookahead != '\r') ADVANCE(197);
1308+ lookahead != '\r') ADVANCE(196);
1309 END_STATE();
1310 case 195:
1311 ACCEPT_TOKEN(sym_context);
1312- if (lookahead == 'y') ADVANCE(108);
1313- if (lookahead != 0 &&
1314- lookahead != '\n' &&
1315- lookahead != '\r') ADVANCE(197);
1316- END_STATE();
1317- case 196:
1318- ACCEPT_TOKEN(sym_context);
1319 if (lookahead == '\t' ||
1320 lookahead == 11 ||
1321 lookahead == '\f' ||
1322- lookahead == ' ') ADVANCE(196);
1323+ lookahead == ' ') ADVANCE(195);
1324 if (lookahead != 0 &&
1325- (lookahead < '\n' || '\r' < lookahead)) ADVANCE(197);
1326+ (lookahead < '\n' || '\r' < lookahead)) ADVANCE(196);
1327 END_STATE();
1328- case 197:
1329+ case 196:
1330 ACCEPT_TOKEN(sym_context);
1331 if (lookahead != 0 &&
1332 lookahead != '\n' &&
1333- lookahead != '\r') ADVANCE(197);
1334+ lookahead != '\r') ADVANCE(196);
1335+ END_STATE();
1336+ case 197:
1337+ ACCEPT_TOKEN(sym_linerange);
1338+ if (lookahead == ',') ADVANCE(79);
1339+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(197);
1340 END_STATE();
1341 case 198:
1342 ACCEPT_TOKEN(sym_linerange);
1343 @@ -1345,20 +1346,20 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1344 END_STATE();
1345 case 200:
1346 ACCEPT_TOKEN(aux_sym_filename_token1);
1347- if (lookahead == 'd') ADVANCE(205);
1348- if (lookahead == 11 ||
1349- lookahead == '\f') ADVANCE(200);
1350+ if (lookahead == 'd') ADVANCE(102);
1351 if (lookahead != 0 &&
1352- (lookahead < '\t' || '\r' < lookahead) &&
1353+ lookahead != '\t' &&
1354+ lookahead != '\n' &&
1355+ lookahead != '\r' &&
1356 lookahead != ' ') ADVANCE(209);
1357 END_STATE();
1358 case 201:
1359 ACCEPT_TOKEN(aux_sym_filename_token1);
1360- if (lookahead == 'd') ADVANCE(103);
1361+ if (lookahead == 'd') ADVANCE(205);
1362+ if (lookahead == 11 ||
1363+ lookahead == '\f') ADVANCE(201);
1364 if (lookahead != 0 &&
1365- lookahead != '\t' &&
1366- lookahead != '\n' &&
1367- lookahead != '\r' &&
1368+ (lookahead < '\t' || '\r' < lookahead) &&
1369 lookahead != ' ') ADVANCE(209);
1370 END_STATE();
1371 case 202:
1372 @@ -1399,7 +1400,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1373 END_STATE();
1374 case 206:
1375 ACCEPT_TOKEN(aux_sym_filename_token1);
1376- if (lookahead == 'n') ADVANCE(201);
1377+ if (lookahead == 'n') ADVANCE(200);
1378 if (lookahead != 0 &&
1379 lookahead != '\t' &&
1380 lookahead != '\n' &&
1381 @@ -1408,7 +1409,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1382 END_STATE();
1383 case 207:
1384 ACCEPT_TOKEN(aux_sym_filename_token1);
1385- if (lookahead == 'r') ADVANCE(105);
1386+ if (lookahead == 'r') ADVANCE(104);
1387 if (lookahead != 0 &&
1388 lookahead != '\t' &&
1389 lookahead != '\n' &&
1390 @@ -1606,54 +1607,54 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
1391
1392 static const TSLexMode ts_lex_modes[STATE_COUNT] = {
1393 [0] = {.lex_state = 0},
1394- [1] = {.lex_state = 88},
1395- [2] = {.lex_state = 88},
1396- [3] = {.lex_state = 88},
1397- [4] = {.lex_state = 88},
1398- [5] = {.lex_state = 18},
1399- [6] = {.lex_state = 2},
1400- [7] = {.lex_state = 18},
1401- [8] = {.lex_state = 13},
1402- [9] = {.lex_state = 13},
1403- [10] = {.lex_state = 3},
1404- [11] = {.lex_state = 2},
1405- [12] = {.lex_state = 3},
1406+ [1] = {.lex_state = 87},
1407+ [2] = {.lex_state = 87},
1408+ [3] = {.lex_state = 87},
1409+ [4] = {.lex_state = 87},
1410+ [5] = {.lex_state = 3},
1411+ [6] = {.lex_state = 12},
1412+ [7] = {.lex_state = 3},
1413+ [8] = {.lex_state = 2},
1414+ [9] = {.lex_state = 3},
1415+ [10] = {.lex_state = 17},
1416+ [11] = {.lex_state = 3},
1417+ [12] = {.lex_state = 12},
1418 [13] = {.lex_state = 3},
1419 [14] = {.lex_state = 3},
1420- [15] = {.lex_state = 3},
1421- [16] = {.lex_state = 3},
1422+ [15] = {.lex_state = 17},
1423+ [16] = {.lex_state = 2},
1424 [17] = {.lex_state = 3},
1425 [18] = {.lex_state = 4},
1426- [19] = {.lex_state = 2},
1427+ [19] = {.lex_state = 4},
1428 [20] = {.lex_state = 4},
1429- [21] = {.lex_state = 0},
1430- [22] = {.lex_state = 2},
1431- [23] = {.lex_state = 2},
1432+ [21] = {.lex_state = 2},
1433+ [22] = {.lex_state = 0},
1434+ [23] = {.lex_state = 0},
1435 [24] = {.lex_state = 0},
1436 [25] = {.lex_state = 2},
1437- [26] = {.lex_state = 2},
1438+ [26] = {.lex_state = 0},
1439 [27] = {.lex_state = 0},
1440- [28] = {.lex_state = 0},
1441+ [28] = {.lex_state = 2},
1442 [29] = {.lex_state = 0},
1443 [30] = {.lex_state = 0},
1444- [31] = {.lex_state = 37},
1445+ [31] = {.lex_state = 36},
1446 [32] = {.lex_state = 0},
1447 [33] = {.lex_state = 0},
1448- [34] = {.lex_state = 0},
1449- [35] = {.lex_state = 0},
1450+ [34] = {.lex_state = 2},
1451+ [35] = {.lex_state = 2},
1452 [36] = {.lex_state = 0},
1453 [37] = {.lex_state = 0},
1454 [38] = {.lex_state = 0},
1455 [39] = {.lex_state = 0},
1456- [40] = {.lex_state = 4},
1457+ [40] = {.lex_state = 0},
1458 [41] = {.lex_state = 2},
1459 [42] = {.lex_state = 0},
1460 [43] = {.lex_state = 0},
1461 [44] = {.lex_state = 0},
1462 [45] = {.lex_state = 2},
1463 [46] = {.lex_state = 2},
1464- [47] = {.lex_state = 37},
1465- [48] = {.lex_state = 37},
1466+ [47] = {.lex_state = 36},
1467+ [48] = {.lex_state = 36},
1468 };
1469
1470 static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1471 @@ -1684,17 +1685,17 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
1472 [sym_commit] = ACTIONS(1),
1473 },
1474 [1] = {
1475- [sym_source] = STATE(38),
1476- [sym__line] = STATE(37),
1477- [sym_command] = STATE(37),
1478- [sym_file_change] = STATE(37),
1479- [sym_binary_change] = STATE(37),
1480- [sym_index] = STATE(37),
1481- [sym_similarity] = STATE(37),
1482- [sym_file] = STATE(37),
1483- [sym_location] = STATE(37),
1484- [sym_addition] = STATE(37),
1485- [sym_deletion] = STATE(37),
1486+ [sym_source] = STATE(40),
1487+ [sym__line] = STATE(38),
1488+ [sym_command] = STATE(38),
1489+ [sym_file_change] = STATE(38),
1490+ [sym_binary_change] = STATE(38),
1491+ [sym_index] = STATE(38),
1492+ [sym_similarity] = STATE(38),
1493+ [sym_file] = STATE(38),
1494+ [sym_location] = STATE(38),
1495+ [sym_addition] = STATE(38),
1496+ [sym_deletion] = STATE(38),
1497 [aux_sym_source_repeat1] = STATE(2),
1498 [ts_builtin_sym_end] = ACTIONS(3),
1499 [anon_sym_diff] = ACTIONS(5),
1500 @@ -1736,7 +1737,7 @@ static const uint16_t ts_small_parse_table[] = {
1501 ts_builtin_sym_end,
1502 STATE(3), 1,
1503 aux_sym_source_repeat1,
1504- STATE(37), 10,
1505+ STATE(38), 10,
1506 sym__line,
1507 sym_command,
1508 sym_file_change,
1509 @@ -1772,7 +1773,7 @@ static const uint16_t ts_small_parse_table[] = {
1510 sym_context,
1511 STATE(3), 1,
1512 aux_sym_source_repeat1,
1513- STATE(37), 10,
1514+ STATE(38), 10,
1515 sym__line,
1516 sym_command,
1517 sym_file_change,
1518 @@ -1799,192 +1800,194 @@ static const uint16_t ts_small_parse_table[] = {
1519 anon_sym_AT_AT,
1520 [114] = 3,
1521 ACTIONS(61), 1,
1522- anon_sym_differ,
1523+ aux_sym_source_token1,
1524 ACTIONS(63), 1,
1525 aux_sym_filename_token1,
1526 STATE(5), 1,
1527 aux_sym_filename_repeat1,
1528- [124] = 2,
1529+ [124] = 3,
1530 ACTIONS(66), 1,
1531- anon_sym_file,
1532- ACTIONS(68), 2,
1533- anon_sym_from,
1534- anon_sym_to,
1535- [132] = 3,
1536- ACTIONS(70), 1,
1537- anon_sym_differ,
1538- ACTIONS(72), 1,
1539- aux_sym_filename_token1,
1540- STATE(5), 1,
1541- aux_sym_filename_repeat1,
1542- [142] = 3,
1543- ACTIONS(61), 1,
1544 anon_sym_and,
1545- ACTIONS(74), 1,
1546+ ACTIONS(68), 1,
1547 aux_sym_filename_token1,
1548- STATE(8), 1,
1549+ STATE(12), 1,
1550 aux_sym_filename_repeat1,
1551- [152] = 3,
1552+ [134] = 3,
1553 ACTIONS(70), 1,
1554- anon_sym_and,
1555- ACTIONS(77), 1,
1556 aux_sym_filename_token1,
1557- STATE(8), 1,
1558+ STATE(17), 1,
1559 aux_sym_filename_repeat1,
1560- [162] = 3,
1561- ACTIONS(79), 1,
1562- aux_sym_filename_token1,
1563- STATE(12), 1,
1564- aux_sym_filename_repeat1,
1565- STATE(34), 1,
1566+ STATE(26), 1,
1567 sym_filename,
1568- [172] = 3,
1569- ACTIONS(81), 1,
1570+ [144] = 3,
1571+ ACTIONS(72), 1,
1572 aux_sym_source_token1,
1573- ACTIONS(83), 1,
1574+ ACTIONS(74), 1,
1575 aux_sym_similarity_token1,
1576 STATE(42), 1,
1577 sym_mode,
1578- [182] = 3,
1579- ACTIONS(70), 1,
1580- aux_sym_source_token1,
1581- ACTIONS(85), 1,
1582- aux_sym_filename_token1,
1583- STATE(14), 1,
1584- aux_sym_filename_repeat1,
1585- [192] = 3,
1586- ACTIONS(87), 1,
1587+ [154] = 3,
1588+ ACTIONS(76), 1,
1589 aux_sym_filename_token1,
1590- STATE(7), 1,
1591+ STATE(15), 1,
1592 aux_sym_filename_repeat1,
1593 STATE(41), 1,
1594 sym_filename,
1595- [202] = 3,
1596+ [164] = 3,
1597 ACTIONS(61), 1,
1598- aux_sym_source_token1,
1599- ACTIONS(89), 1,
1600+ anon_sym_differ,
1601+ ACTIONS(78), 1,
1602 aux_sym_filename_token1,
1603- STATE(14), 1,
1604+ STATE(10), 1,
1605 aux_sym_filename_repeat1,
1606- [212] = 3,
1607- ACTIONS(79), 1,
1608+ [174] = 3,
1609+ ACTIONS(70), 1,
1610 aux_sym_filename_token1,
1611- STATE(12), 1,
1612+ STATE(17), 1,
1613 aux_sym_filename_repeat1,
1614 STATE(27), 1,
1615 sym_filename,
1616- [222] = 3,
1617- ACTIONS(79), 1,
1618+ [184] = 3,
1619+ ACTIONS(61), 1,
1620+ anon_sym_and,
1621+ ACTIONS(81), 1,
1622 aux_sym_filename_token1,
1623 STATE(12), 1,
1624 aux_sym_filename_repeat1,
1625+ [194] = 3,
1626+ ACTIONS(70), 1,
1627+ aux_sym_filename_token1,
1628+ STATE(17), 1,
1629+ aux_sym_filename_repeat1,
1630 STATE(29), 1,
1631 sym_filename,
1632- [232] = 3,
1633- ACTIONS(92), 1,
1634+ [204] = 3,
1635+ ACTIONS(84), 1,
1636 aux_sym_filename_token1,
1637- STATE(9), 1,
1638+ STATE(6), 1,
1639 aux_sym_filename_repeat1,
1640 STATE(30), 1,
1641 sym_filename,
1642+ [214] = 3,
1643+ ACTIONS(66), 1,
1644+ anon_sym_differ,
1645+ ACTIONS(86), 1,
1646+ aux_sym_filename_token1,
1647+ STATE(10), 1,
1648+ aux_sym_filename_repeat1,
1649+ [224] = 2,
1650+ ACTIONS(88), 1,
1651+ anon_sym_file,
1652+ ACTIONS(90), 2,
1653+ anon_sym_from,
1654+ anon_sym_to,
1655+ [232] = 3,
1656+ ACTIONS(66), 1,
1657+ aux_sym_source_token1,
1658+ ACTIONS(92), 1,
1659+ aux_sym_filename_token1,
1660+ STATE(5), 1,
1661+ aux_sym_filename_repeat1,
1662 [242] = 2,
1663 ACTIONS(94), 1,
1664 aux_sym_source_token1,
1665 ACTIONS(96), 1,
1666 aux_sym_location_token1,
1667 [249] = 2,
1668- ACTIONS(83), 1,
1669- aux_sym_similarity_token1,
1670- STATE(36), 1,
1671- sym_mode,
1672- [256] = 2,
1673 ACTIONS(98), 1,
1674 aux_sym_source_token1,
1675 ACTIONS(100), 1,
1676 aux_sym_location_token1,
1677- [263] = 1,
1678+ [256] = 2,
1679 ACTIONS(102), 1,
1680 aux_sym_source_token1,
1681- [267] = 1,
1682 ACTIONS(104), 1,
1683- anon_sym_AT_AT2,
1684- [271] = 1,
1685+ aux_sym_location_token1,
1686+ [263] = 2,
1687+ ACTIONS(74), 1,
1688+ aux_sym_similarity_token1,
1689+ STATE(36), 1,
1690+ sym_mode,
1691+ [270] = 1,
1692 ACTIONS(106), 1,
1693- sym_linerange,
1694- [275] = 1,
1695+ aux_sym_source_token1,
1696+ [274] = 1,
1697 ACTIONS(108), 1,
1698 aux_sym_source_token1,
1699- [279] = 1,
1700+ [278] = 1,
1701 ACTIONS(110), 1,
1702- anon_sym_DASH_DASHgit,
1703- [283] = 1,
1704+ aux_sym_source_token1,
1705+ [282] = 1,
1706 ACTIONS(112), 1,
1707- aux_sym_similarity_token1,
1708- [287] = 1,
1709+ anon_sym_DASH_DASHgit,
1710+ [286] = 1,
1711 ACTIONS(114), 1,
1712 aux_sym_source_token1,
1713- [291] = 1,
1714+ [290] = 1,
1715 ACTIONS(116), 1,
1716- anon_sym_DOT_DOT,
1717- [295] = 1,
1718- ACTIONS(118), 1,
1719 aux_sym_source_token1,
1720- [299] = 1,
1721+ [294] = 1,
1722+ ACTIONS(118), 1,
1723+ aux_sym_similarity_token1,
1724+ [298] = 1,
1725 ACTIONS(120), 1,
1726- anon_sym_and,
1727- [303] = 1,
1728+ aux_sym_source_token1,
1729+ [302] = 1,
1730 ACTIONS(122), 1,
1731- sym_commit,
1732- [307] = 1,
1733+ anon_sym_and,
1734+ [306] = 1,
1735 ACTIONS(124), 1,
1736- anon_sym_PERCENT,
1737- [311] = 1,
1738+ sym_commit,
1739+ [310] = 1,
1740 ACTIONS(126), 1,
1741- anon_sym_mode,
1742- [315] = 1,
1743+ anon_sym_PERCENT,
1744+ [314] = 1,
1745 ACTIONS(128), 1,
1746- aux_sym_source_token1,
1747- [319] = 1,
1748+ anon_sym_DOT_DOT,
1749+ [318] = 1,
1750 ACTIONS(130), 1,
1751- aux_sym_source_token1,
1752- [323] = 1,
1753+ anon_sym_AT_AT2,
1754+ [322] = 1,
1755 ACTIONS(132), 1,
1756- aux_sym_source_token1,
1757- [327] = 1,
1758+ sym_linerange,
1759+ [326] = 1,
1760 ACTIONS(134), 1,
1761 aux_sym_source_token1,
1762- [331] = 1,
1763+ [330] = 1,
1764 ACTIONS(136), 1,
1765- ts_builtin_sym_end,
1766- [335] = 1,
1767+ anon_sym_mode,
1768+ [334] = 1,
1769 ACTIONS(138), 1,
1770 aux_sym_source_token1,
1771- [339] = 1,
1772+ [338] = 1,
1773 ACTIONS(140), 1,
1774- aux_sym_location_token1,
1775- [343] = 1,
1776+ aux_sym_source_token1,
1777+ [342] = 1,
1778 ACTIONS(142), 1,
1779- anon_sym_differ,
1780- [347] = 1,
1781+ ts_builtin_sym_end,
1782+ [346] = 1,
1783 ACTIONS(144), 1,
1784- aux_sym_source_token1,
1785- [351] = 1,
1786+ anon_sym_differ,
1787+ [350] = 1,
1788 ACTIONS(146), 1,
1789 aux_sym_source_token1,
1790- [355] = 1,
1791+ [354] = 1,
1792 ACTIONS(148), 1,
1793 aux_sym_source_token1,
1794- [359] = 1,
1795+ [358] = 1,
1796 ACTIONS(150), 1,
1797- sym_linerange,
1798- [363] = 1,
1799+ aux_sym_source_token1,
1800+ [362] = 1,
1801 ACTIONS(152), 1,
1802- anon_sym_index2,
1803- [367] = 1,
1804+ sym_linerange,
1805+ [366] = 1,
1806 ACTIONS(154), 1,
1807- sym_commit,
1808- [371] = 1,
1809+ anon_sym_index2,
1810+ [370] = 1,
1811 ACTIONS(156), 1,
1812+ sym_commit,
1813+ [374] = 1,
1814+ ACTIONS(158), 1,
1815 anon_sym_files,
1816 };
1817
1818 @@ -1994,48 +1997,48 @@ static const uint32_t ts_small_parse_table_map[] = {
1819 [SMALL_STATE(4)] = 98,
1820 [SMALL_STATE(5)] = 114,
1821 [SMALL_STATE(6)] = 124,
1822- [SMALL_STATE(7)] = 132,
1823- [SMALL_STATE(8)] = 142,
1824- [SMALL_STATE(9)] = 152,
1825- [SMALL_STATE(10)] = 162,
1826- [SMALL_STATE(11)] = 172,
1827- [SMALL_STATE(12)] = 182,
1828- [SMALL_STATE(13)] = 192,
1829- [SMALL_STATE(14)] = 202,
1830- [SMALL_STATE(15)] = 212,
1831- [SMALL_STATE(16)] = 222,
1832+ [SMALL_STATE(7)] = 134,
1833+ [SMALL_STATE(8)] = 144,
1834+ [SMALL_STATE(9)] = 154,
1835+ [SMALL_STATE(10)] = 164,
1836+ [SMALL_STATE(11)] = 174,
1837+ [SMALL_STATE(12)] = 184,
1838+ [SMALL_STATE(13)] = 194,
1839+ [SMALL_STATE(14)] = 204,
1840+ [SMALL_STATE(15)] = 214,
1841+ [SMALL_STATE(16)] = 224,
1842 [SMALL_STATE(17)] = 232,
1843 [SMALL_STATE(18)] = 242,
1844 [SMALL_STATE(19)] = 249,
1845 [SMALL_STATE(20)] = 256,
1846 [SMALL_STATE(21)] = 263,
1847- [SMALL_STATE(22)] = 267,
1848- [SMALL_STATE(23)] = 271,
1849- [SMALL_STATE(24)] = 275,
1850- [SMALL_STATE(25)] = 279,
1851- [SMALL_STATE(26)] = 283,
1852- [SMALL_STATE(27)] = 287,
1853- [SMALL_STATE(28)] = 291,
1854- [SMALL_STATE(29)] = 295,
1855- [SMALL_STATE(30)] = 299,
1856- [SMALL_STATE(31)] = 303,
1857- [SMALL_STATE(32)] = 307,
1858- [SMALL_STATE(33)] = 311,
1859- [SMALL_STATE(34)] = 315,
1860- [SMALL_STATE(35)] = 319,
1861- [SMALL_STATE(36)] = 323,
1862- [SMALL_STATE(37)] = 327,
1863- [SMALL_STATE(38)] = 331,
1864- [SMALL_STATE(39)] = 335,
1865- [SMALL_STATE(40)] = 339,
1866- [SMALL_STATE(41)] = 343,
1867- [SMALL_STATE(42)] = 347,
1868- [SMALL_STATE(43)] = 351,
1869- [SMALL_STATE(44)] = 355,
1870- [SMALL_STATE(45)] = 359,
1871- [SMALL_STATE(46)] = 363,
1872- [SMALL_STATE(47)] = 367,
1873- [SMALL_STATE(48)] = 371,
1874+ [SMALL_STATE(22)] = 270,
1875+ [SMALL_STATE(23)] = 274,
1876+ [SMALL_STATE(24)] = 278,
1877+ [SMALL_STATE(25)] = 282,
1878+ [SMALL_STATE(26)] = 286,
1879+ [SMALL_STATE(27)] = 290,
1880+ [SMALL_STATE(28)] = 294,
1881+ [SMALL_STATE(29)] = 298,
1882+ [SMALL_STATE(30)] = 302,
1883+ [SMALL_STATE(31)] = 306,
1884+ [SMALL_STATE(32)] = 310,
1885+ [SMALL_STATE(33)] = 314,
1886+ [SMALL_STATE(34)] = 318,
1887+ [SMALL_STATE(35)] = 322,
1888+ [SMALL_STATE(36)] = 326,
1889+ [SMALL_STATE(37)] = 330,
1890+ [SMALL_STATE(38)] = 334,
1891+ [SMALL_STATE(39)] = 338,
1892+ [SMALL_STATE(40)] = 342,
1893+ [SMALL_STATE(41)] = 346,
1894+ [SMALL_STATE(42)] = 350,
1895+ [SMALL_STATE(43)] = 354,
1896+ [SMALL_STATE(44)] = 358,
1897+ [SMALL_STATE(45)] = 362,
1898+ [SMALL_STATE(46)] = 366,
1899+ [SMALL_STATE(47)] = 370,
1900+ [SMALL_STATE(48)] = 374,
1901 };
1902
1903 static const TSParseActionEntry ts_parse_actions[] = {
1904 @@ -2043,75 +2046,76 @@ static const TSParseActionEntry ts_parse_actions[] = {
1905 [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
1906 [3] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 0),
1907 [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
1908- [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
1909+ [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
1910 [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
1911 [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
1912 [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
1913- [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10),
1914+ [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
1915 [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
1916- [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20),
1917- [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18),
1918- [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37),
1919+ [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19),
1920+ [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(20),
1921+ [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
1922 [25] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 1),
1923 [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2),
1924 [29] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(25),
1925- [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(6),
1926+ [32] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(16),
1927 [35] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(48),
1928 [38] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(47),
1929 [41] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(46),
1930- [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(10),
1931+ [44] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(7),
1932 [47] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(45),
1933- [50] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(20),
1934- [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(18),
1935- [56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(37),
1936+ [50] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(19),
1937+ [53] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(20),
1938+ [56] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2), SHIFT_REPEAT(38),
1939 [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_repeat1, 2),
1940 [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_filename_repeat1, 2),
1941- [63] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(5),
1942- [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
1943- [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
1944- [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filename, 1),
1945- [72] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
1946- [74] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(8),
1947- [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8),
1948- [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12),
1949- [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 4),
1950- [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
1951- [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
1952- [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
1953- [89] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(14),
1954- [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
1955- [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_deletion, 1),
1956- [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
1957+ [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(5),
1958+ [66] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_filename, 1),
1959+ [68] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12),
1960+ [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
1961+ [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 4),
1962+ [74] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
1963+ [76] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
1964+ [78] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(10),
1965+ [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_filename_repeat1, 2), SHIFT_REPEAT(12),
1966+ [84] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
1967+ [86] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10),
1968+ [88] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37),
1969+ [90] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
1970+ [92] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
1971+ [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_location, 4),
1972+ [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
1973 [98] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_addition, 1),
1974 [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24),
1975- [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deletion, 2),
1976- [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
1977- [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
1978- [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_addition, 2),
1979- [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
1980- [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
1981- [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 3),
1982- [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
1983- [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file_change, 3),
1984- [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13),
1985- [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
1986- [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
1987- [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
1988- [128] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 2),
1989- [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mode, 1),
1990- [132] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file_change, 4),
1991- [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
1992- [136] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
1993- [138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_similarity, 4, .production_id = 1),
1994- [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
1995- [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
1996- [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 5),
1997- [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_location, 5),
1998- [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_change, 6),
1999- [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
2000- [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
2001+ [102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_deletion, 1),
2002+ [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
2003+ [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_deletion, 2),
2004+ [108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mode, 1),
2005+ [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_addition, 2),
2006+ [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
2007+ [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file, 2),
2008+ [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_command, 3),
2009+ [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
2010+ [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file_change, 3),
2011+ [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
2012+ [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
2013+ [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
2014+ [128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31),
2015+ [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
2016+ [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
2017+ [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_file_change, 4),
2018+ [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
2019+ [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
2020+ [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_similarity, 4, .production_id = 1),
2021+ [142] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
2022+ [144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
2023+ [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index, 5),
2024+ [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_location, 5),
2025+ [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_change, 6),
2026+ [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
2027 [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
2028- [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
2029+ [156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33),
2030+ [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
2031 };
2032
2033 #ifdef __cplusplus
2034 diff --git a/test/corpus/text.txt b/test/corpus/text.txt
2035index 17658ec..449e907 100644
2036--- a/test/corpus/text.txt
2037+++ b/test/corpus/text.txt
2038 @@ -96,3 +96,15 @@ rename to tmp.md
2039 (filename))
2040 (file_change
2041 (filename)))
2042+
2043+ ================================================================================
2044+ Location with no context
2045+ ================================================================================
2046+ @@ -0,0 +1 @@
2047+
2048+ --------------------------------------------------------------------------------
2049+
2050+ (source
2051+ (location
2052+ (linerange)
2053+ (linerange)))
2054 diff --git a/tree-sitter-gitdiff.wasm b/tree-sitter-gitdiff.wasm
2055index 3d6c623..6388f91 100755
2056 Binary files a/tree-sitter-gitdiff.wasm and b/tree-sitter-gitdiff.wasm differ