Eliminate all forward declarations and reorder functions so each is defined before its first use, making recursion points explicit. Add semicolon counting to metrics script and include boolean equality test file.
43 lines
834 B
Python
Executable File
43 lines
834 B
Python
Executable File
#!/usr/bin/python
|
|
|
|
import glob
|
|
import re
|
|
|
|
TODO_PATTERN = re.compile(r'\s*// TODO\(')
|
|
DOC_PATTERN = re.compile(r'\s*//')
|
|
|
|
num_files = 0
|
|
num_docs = 0
|
|
num_code = 0
|
|
num_empty = 0
|
|
num_todos = 0
|
|
num_semicolons = 0
|
|
|
|
for source_path in glob.iglob("src/*.[ch]"):
|
|
num_files += 1
|
|
with open(source_path, "r") as input:
|
|
for line in input:
|
|
num_semicolons += line.count(';')
|
|
match = TODO_PATTERN.match(line)
|
|
if match:
|
|
num_todos += 1
|
|
continue
|
|
|
|
match = DOC_PATTERN.match(line)
|
|
if match:
|
|
num_docs += 1
|
|
continue
|
|
|
|
if (line.strip() == ""):
|
|
num_empty += 1
|
|
continue
|
|
|
|
num_code += 1
|
|
|
|
print num_files, "files"
|
|
print num_todos, "TODOs"
|
|
print num_docs, "comment lines"
|
|
print num_code, "code lines"
|
|
print num_empty, "empty lines"
|
|
print num_semicolons, "semicolons"
|