import re
import sys
import clint
class headers(clint.Rule):
def initialize(self):
self.pattern = re.compile("^#\W*include\W*<(?P<header>.*\.h)>")
self.headers = { 'iostream.h' : 'iostream',
'ctype.h': 'cctype',
'vector.h': 'vector',
'deque.h': 'deque',
'math.h': 'cmath',
'string.h': 'cstring',
'stdlib.h': 'cstdlib',
'stdarg.h': 'cstdarg',
'assert.h': 'cassert',
'ctype.h':'cctype',
'errno': 'cerrno',
'time.h': 'ctime',
'stdio.h': 'cstdio',
'map.h': 'map',
'iomanip.h':'iomanip',
'fstream.h':'fstream',
'limits.h':'climits',
'locale.h':'clocale',
'setjmp.h':'csetjmp'
}
def pre_cpp(self,line):
match = self.pattern.match(line)
if match:
old_header = match.group('header')
if self.headers.has_key(old_header):
self.message( "Old style header detected: Change <" + old_header + "> to <" + self.headers[old_header] + ">")
def finalize(self):
pass
if __name__ == "__main__":
lineno=0
rule = new_headers()
file = open(sys.argv[1])
for line in file.readlines():
lineno = lineno + 1
rule.parse(line)
syntax highlighted by Code2HTML, v. 0.9.1