summaryrefslogtreecommitdiffstats
path: root/JLanguageTool/src/dev/tools/stats.awk
blob: aa1760e9735ea21c918059497f83a9f33537ade8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#Script to sort rule matches from LanguageTool
#Usage: gawk -f stats.awk <file_created_by_LanguageTool>
#(c) 2008, Marcin Milkowski
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
# USA

/^[0-9]+\.\)/ {
gsub(/^.*ID: /,"")
rule_cnt[$0]++
current_rule=$0
rulematch=1
linecnt=0
}
/^(Message: |Suggestion:)/ {
comments[current_rule]= comments[current_rule] "\n" $0
linecnt++
}
!/^($|Message: |Suggestion:|Time:)/ && !/ \^/ {
if (linecnt>0) 
comments[current_rule]= comments[current_rule] "\n" $0
}
/^ / && / \^/ {
comments[current_rule]= comments[current_rule] "\n" $0 "\n"
}
END {
if (rulematch==1) {
print "LanguageTool rule matches in descending order"
print "============================================="
print ""
}
z = asorti(rule_cnt, rule_names)
#for (i = 1; i <= z; i++)
 #   print i " " rule_names[i]
n = asort(rule_cnt, rules)

for (i = z; i >= 1; i--) {

	for (j = 1; j <= z; j++) {
#		print j " " rule_names[j] " => " rule_cnt[rule_names[j]]
		if (rule_cnt[rule_names[j]]==rules[i] \
			&& printed[rule_names[j]]!="done") {				
				printed[rule_names[j]]="done"				
				rule=rule_names[j]
	print "Rule ID: " rule ", matches: " rule_cnt[rule]
	print comments[rule]
	print "============="
		}
	}
}	
}