this repo has no description
1{
2 function makeIdFilter(ids) {
3 return {
4 type: 'id_filter',
5 ids: ids.flat(),
6 reconstruct: function() {
7 return this.ids.join(',');
8 }
9 };
10 }
11}
12
13Filter = first:(IdRange / SingleId) rest:("," (IdRange / SingleId))* {
14 return makeIdFilter([first, ...rest.map(r => r[1])]);
15}
16
17IdRange = start:Integer "-" end:Integer {
18 const ids = [];
19 for (let i = start; i <= end; i++) {
20 ids.push(i);
21 }
22 return ids;
23}
24
25SingleId = id:Integer {
26 return [id];
27}
28
29Integer = digits:[0-9]+ {
30 return parseInt(digits.join(''), 10);
31}