diff --git a/maintainers/scripts/sort-attrs.str b/maintainers/scripts/sort-attrs.str index 611521b0b4a..621b67ec16f 100644 --- a/maintainers/scripts/sort-attrs.str +++ b/maintainers/scripts/sort-attrs.str @@ -24,9 +24,19 @@ strategies no-wsp = !appl(prod([], cf(opt(layout())), no-attrs()), []) - + rules + list-sep(s): [] -> [] + list-sep(s): [x | xs] -> [[x | before] | [split | after]] + where + xs => (before, split, after) + list-sep(s): [x | xs] -> [[x | xs]] + where + xs + + + sort-attrs: appl(p@prod(_, _, attrs([term(cons("Attrs"))])), [ lit("{") @@ -36,18 +46,28 @@ rules , lit("}") ] ) -> - appl(p, [lit("{"), , appl(p2, attrs'), ws2, lit("}")]) + appl(p, [lit("{"), , appl(p2, attrs'), ws2, lit("}")]) where "found it"; - [ws1 | attrs] => groups; - groups => attrs'; + [ws1 | attrs] => withWSP; + withWSP => groups; + groups; + [x | xs]\ )> groups => attrs'; "did it" - group: [a, b | cs] -> [(a, b) | cs] - group: [] -> [] + attach-wsp: [a, b | cs] -> [(a, b) | cs] + attach-wsp: [] -> [] + + + starts-section: x@(appl(prod([cf(layout())], cf(opt(layout())), no-attrs()), cs), attr) -> x + where cs + + starts-section': [35, 35, 35 | cs] -> 1 + starts-section': [c | cs] -> cs + where c + - compare-attrs: x@ ( (_, appl(p1@prod(_, _, attrs([term(cons("Bind"))])), [id1 | xs1])) @@ -55,9 +75,6 @@ rules ) -> x where - "foo"; - id1; - id2; (id1, id2)