Mercurial > malikania
view vera/rules/T003.tcl @ 99:0addfab87b17
Common: implement basic tilesets, closes #664
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 18 Aug 2017 18:45:07 +0200 |
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] } } } }