From 0d573784b71842cf02c7731b12e9afcba4c14926 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 21 Sep 2021 10:24:48 -0700 Subject: [PATCH 1/3] Shrink out unused rules * zishrink.awk (process_input_line, output_saved_lines): Omit rules defined but never used. --- zishrink.awk | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/zishrink.awk b/zishrink.awk index 1947c7c..baf85cd 100644 --- a/zishrink.awk +++ b/zishrink.awk @@ -224,8 +224,16 @@ function process_input_line(line, \ if (!rule[field[i]]) rule[field[i]] = gen_rule_name(field[i]) field[i] = rule[field[i]] + + # Record each rule name that was used. + if (!ruleline) + rule_used[field[i]] = 1 } + # Record each line of a rule definition. + if (ruleline) + line_rule[nout] = field[2] + # If this zone supersedes an earlier one, delete the earlier one # from the saved output lines. startdef = "" @@ -256,7 +264,7 @@ function output_saved_lines( \ i) { for (i = 0; i < nout; i++) - if (output_line[i]) + if (output_line[i] && (!line_rule[i] || rule_used[line_rule[i]])) print output_line[i] } -- 2.30.2