misra.py: Add -generate-table option that shows what rules are implemented
This commit is contained in:
parent
ed8fda571b
commit
15218b388f
|
@ -1176,6 +1176,57 @@ OPTIONS:
|
||||||
""")
|
""")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
def generateTable():
|
||||||
|
numberOfRules = {}
|
||||||
|
numberOfRules[1] = 3
|
||||||
|
numberOfRules[2] = 7
|
||||||
|
numberOfRules[3] = 2
|
||||||
|
numberOfRules[4] = 2
|
||||||
|
numberOfRules[5] = 9
|
||||||
|
numberOfRules[6] = 2
|
||||||
|
numberOfRules[7] = 4
|
||||||
|
numberOfRules[8] = 14
|
||||||
|
numberOfRules[9] = 5
|
||||||
|
numberOfRules[10] = 8
|
||||||
|
numberOfRules[11] = 9
|
||||||
|
numberOfRules[12] = 4
|
||||||
|
numberOfRules[13] = 6
|
||||||
|
numberOfRules[14] = 4
|
||||||
|
numberOfRules[15] = 7
|
||||||
|
numberOfRules[16] = 7
|
||||||
|
numberOfRules[17] = 8
|
||||||
|
numberOfRules[18] = 8
|
||||||
|
numberOfRules[19] = 2
|
||||||
|
numberOfRules[20] = 14
|
||||||
|
numberOfRules[21] = 12
|
||||||
|
numberOfRules[22] = 6
|
||||||
|
|
||||||
|
# what rules are handled by this addon?
|
||||||
|
addon = []
|
||||||
|
for line in open('misra.py'):
|
||||||
|
res = re.match(r'[ ]+misra_([0-9]+)_([0-9]+)[(].*', line)
|
||||||
|
if res is None:
|
||||||
|
continue
|
||||||
|
addon.append(res.group(1) + '.' + res.group(2))
|
||||||
|
|
||||||
|
# rules handled by cppcheck
|
||||||
|
cppcheck = ['1.3', '2.1', '2.2', '2.4', '2.6', '8.3', '12.2', '13.2', '13.6', '17.5', '18.1', '18.6', '22.1', '22.2', '22.4', '22.6']
|
||||||
|
|
||||||
|
# rules that can be checked with compilers
|
||||||
|
compiler = ['1.1', '1.2']
|
||||||
|
|
||||||
|
# print table
|
||||||
|
for i1 in range(1,23):
|
||||||
|
for i2 in range(1,numberOfRules[i1]+1):
|
||||||
|
num = str(i1) + '.' + str(i2)
|
||||||
|
if num in addon:
|
||||||
|
print(num + ' X (Addon)')
|
||||||
|
elif num in cppcheck:
|
||||||
|
print(num + ' X (Cppcheck)')
|
||||||
|
else:
|
||||||
|
print(num)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
for arg in sys.argv[1:]:
|
for arg in sys.argv[1:]:
|
||||||
if arg == '-verify':
|
if arg == '-verify':
|
||||||
VERIFY = True
|
VERIFY = True
|
||||||
|
@ -1187,6 +1238,8 @@ for arg in sys.argv[1:]:
|
||||||
loadRuleTexts(filename)
|
loadRuleTexts(filename)
|
||||||
elif ".dump" in arg:
|
elif ".dump" in arg:
|
||||||
continue
|
continue
|
||||||
|
elif arg == "-generate-table":
|
||||||
|
generateTable()
|
||||||
else:
|
else:
|
||||||
print('Fatal error: unhandled argument ' + arg)
|
print('Fatal error: unhandled argument ' + arg)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
Loading…
Reference in New Issue