Skip to content

Commit effdff9

Browse files
committed
Accept C files that end in a continuation
Signed-off-by: John Pennycook <[email protected]>
1 parent cd216c2 commit effdff9

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

codebasin/file_source.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,6 @@ def c_file_source(fp, directives_only=False):
468468
directives_only sets up parser to only process directive lines such that
469469
the output can be fed to another file source (i.e. Fortran).
470470
"""
471-
472471
current_physical_line = one_space_line()
473472
cleaner = c_cleaner(current_physical_line, directives_only)
474473

@@ -477,6 +476,7 @@ def c_file_source(fp, directives_only=False):
477476
total_sloc = 0
478477

479478
physical_line_num = 0
479+
continued = False
480480
for physical_line_num, line in enumerate(fp, start=1):
481481
current_physical_line.__init__()
482482
end = len(line)
@@ -511,7 +511,14 @@ def c_file_source(fp, directives_only=False):
511511
yield curr_line
512512

513513
total_sloc += curr_line.physical_reset()
514-
if not cleaner.state == ["TOPLEVEL"]:
514+
515+
# Even if code is technically wrong, we should only fail when necessary.
516+
parsing_failed = not cleaner.state == ["TOPLEVEL"]
517+
if continued:
518+
log.warning("backslash-newline at end of file")
519+
parsing_failed = False
520+
521+
if parsing_failed:
515522
raise RuntimeError(
516523
"Parsing failed. Please open a bug report at: "
517524
"https://github.com/intel/code-base-investigator/issues/new?template=bug_report.yml.", # noqa: E501
@@ -590,7 +597,9 @@ def fortran_file_source(fp):
590597
yield curr_line
591598

592599
total_sloc += curr_line.physical_reset()
593-
if not cleaner.state == ["TOPLEVEL"]:
600+
601+
parsing_failed = not cleaner.state == ["TOPLEVEL"]
602+
if parsing_failed:
594603
raise RuntimeError(
595604
"Parsing failed. Please open a bug report at: "
596605
"https://github.com/intel/code-base-investigator/issues/new?template=bug_report.yml.", # noqa: E501

0 commit comments

Comments
 (0)