Mercurial > malikania
view vera/rules/T003.tcl @ 87:955a9409ab5f
Misc: upgrade json to 2.1.0, closes #627
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 04 Feb 2017 14:40:20 +0100 |
parents | 0edaba9986ba |
children |
line wrap: on
line source
#!/usr/bin/tclsh # Some keywords should be followed by a single space set keywords { case class enum explicit extern goto new struct union using } proc isKeyword {s} { global keywords return [expr [lsearch $keywords $s] != -1] } set state "other" foreach f [getSourceFileNames] { foreach t [getTokens $f 1 0 -1 -1 {}] { set tokenValue [lindex $t 0] set tokenName [lindex $t 3] if {$state == "keyword"} { if {$tokenName == "space" && $tokenValue == " "} { set state "space" } else { report $f $lineNumber "keyword \'${keywordValue}\' not followed by a single space" set state "other" } } elseif {$state == "space"} { if {$tokenName == "newline"} { report $f $lineNumber "keyword \'${keywordValue}\' not followed by a single space" } set state "other" } else { if [isKeyword $tokenName] { set state "keyword" set lineNumber [lindex $t 1] set keywordValue [lindex $t 0] } } } }