draft
This commit is contained in:
parent
3094545569
commit
58b5fa794b
1 changed files with 49 additions and 0 deletions
49
main.py
Normal file
49
main.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
import re
|
||||
import subprocess
|
||||
|
||||
|
||||
def clang_format(file_path):
|
||||
command = ["clang-format", "--dry-run", file_path]
|
||||
try:
|
||||
output = subprocess.check_output(
|
||||
command, stderr=subprocess.STDOUT, text=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
output = e.output
|
||||
|
||||
return output
|
||||
|
||||
|
||||
def parse_clang_format_output(output):
|
||||
error_pattern = r"(?P<filename>.+):(?P<line_number>\d+):(?P<column_number>\d+): warning: code should be clang-formatted \[(?P<warning_message>.+)\]"
|
||||
error_matches = re.finditer(error_pattern, output)
|
||||
|
||||
if error_matches:
|
||||
errors = []
|
||||
for error_match in error_matches:
|
||||
filename = error_match.group("filename")
|
||||
line_number = int(error_match.group("line_number"))
|
||||
column_number = int(error_match.group("column_number"))
|
||||
warning_message = error_match.group("warning_message")
|
||||
|
||||
errors.append({
|
||||
"filename": filename,
|
||||
"line_number": line_number,
|
||||
"column_number": column_number,
|
||||
"warning_message": warning_message[1:]
|
||||
})
|
||||
|
||||
return errors
|
||||
|
||||
return None
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
clang_format_output = clang_format("tests/1.c")
|
||||
parsed_output = parse_clang_format_output(clang_format_output)
|
||||
|
||||
if parsed_output:
|
||||
for error in parsed_output:
|
||||
print(
|
||||
f"Warning dans {error['filename']} à la ligne {error['line_number']}, caractère {error['column_number']} : {error['warning_message']}")
|
||||
else:
|
||||
print("No warnings found.")
|
Reference in a new issue