Author: Michael Davis [mcarsondavis@gmail.com]
Hash: dd475b866aea577e83ee31e7c6a2711effa62b89
Timestamp: Fri, 24 Dec 2021 01:07:24 +0000 (2 years ago)

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