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 }