Mercurial > malikania
comparison vera/rules/T003.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 |
comparison
equal
deleted
inserted
replaced
53:fe7e3524e571 | 54:0edaba9986ba |
---|---|
1 #!/usr/bin/tclsh | |
2 # Some keywords should be followed by a single space | |
3 | |
4 set keywords { | |
5 case | |
6 class | |
7 enum | |
8 explicit | |
9 extern | |
10 goto | |
11 new | |
12 struct | |
13 union | |
14 using | |
15 } | |
16 | |
17 proc isKeyword {s} { | |
18 global keywords | |
19 return [expr [lsearch $keywords $s] != -1] | |
20 } | |
21 | |
22 set state "other" | |
23 foreach f [getSourceFileNames] { | |
24 foreach t [getTokens $f 1 0 -1 -1 {}] { | |
25 set tokenValue [lindex $t 0] | |
26 set tokenName [lindex $t 3] | |
27 if {$state == "keyword"} { | |
28 if {$tokenName == "space" && $tokenValue == " "} { | |
29 set state "space" | |
30 } else { | |
31 report $f $lineNumber "keyword \'${keywordValue}\' not followed by a single space" | |
32 set state "other" | |
33 } | |
34 } elseif {$state == "space"} { | |
35 if {$tokenName == "newline"} { | |
36 report $f $lineNumber "keyword \'${keywordValue}\' not followed by a single space" | |
37 } | |
38 set state "other" | |
39 } else { | |
40 if [isKeyword $tokenName] { | |
41 set state "keyword" | |
42 set lineNumber [lindex $t 1] | |
43 set keywordValue [lindex $t 0] | |
44 } | |
45 } | |
46 } | |
47 } |