annotate vera/rules/T004.tcl @ 54:0edaba9986ba

CMake: add vera++, closes 602
author David Demelier <markand@malikania.fr>
date Fri, 16 Dec 2016 13:59:55 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 #!/usr/bin/tclsh
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # Some keywords should be immediately followed by a colon
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
3
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 set keywords {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 default
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 private
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 protected
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 public
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
10
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 proc isKeyword {s} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 global keywords
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 return [expr [lsearch $keywords $s] != -1]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
15
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 foreach f [getSourceFileNames] {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 set lastKeywordLine 0
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 set lastKeywordColumn 0
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 set lastKeywordValue ""
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 set last ""
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 foreach t [getTokens $f 1 0 -1 -1 [concat $keywords colon]] {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 set tokenValue [lindex $t 0]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 set tokenName [lindex $t 3]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 if {$tokenName == "colon"} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 if {$last == "keyword" && $lastKeywordLine != 0} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 set line [lindex $t 1]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 set column [lindex $t 2]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 if {$line != $lastKeywordLine ||
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 $column != [expr $lastKeywordColumn + [string length $lastKeywordValue]]} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 set nonWhiteFound "false"
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 foreach tb [getTokens $f $lastKeywordLine [expr $lastKeywordColumn + 1] $line $column {}] {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 set tbName [lindex $tb 3]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 if {[lsearch {space newline ccomment cppcomment} $tbName] == -1} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 set nonWhiteFound "true"
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 break
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 if {$nonWhiteFound == "false"} {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 report $f $line "colon not immediately after the \'$lastKeywordValue\' keyword"
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 set last "colon"
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 } else {
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 set lastKeywordLine [lindex $t 1]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 set lastKeywordColumn [lindex $t 2]
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 set lastKeywordValue $tokenValue
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 set last "keyword"
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 }
0edaba9986ba CMake: add vera++, closes 602
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 }