Skip to content

Commit 20643a4

Browse files
committed
Refactor parsing: stop parsing line after successful parse
Add cycle statements after a line has been parse successfully to avoid reparsing it as a different kind of statement.
1 parent 39d67cb commit 20643a4

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/fpm_source_parsing.f90

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ function parse_f_source(f_filename,error) result(f_source)
173173

174174
end if
175175

176+
cycle
177+
176178
end if
177179

178180
! Process 'INCLUDE' statements
@@ -194,6 +196,9 @@ function parse_f_source(f_filename,error) result(f_source)
194196
return
195197
end if
196198
end if
199+
200+
cycle
201+
197202
end if
198203
end if
199204

@@ -239,6 +244,8 @@ function parse_f_source(f_filename,error) result(f_source)
239244

240245
f_source%unit_type = FPM_UNIT_MODULE
241246

247+
cycle
248+
242249
end if
243250

244251
! Extract name of submodule if is submodule
@@ -293,6 +300,8 @@ function parse_f_source(f_filename,error) result(f_source)
293300

294301
end if
295302

303+
cycle
304+
296305
end if
297306

298307
! Detect if contains a program
@@ -313,6 +322,8 @@ function parse_f_source(f_filename,error) result(f_source)
313322

314323
f_source%unit_type = FPM_UNIT_PROGRAM
315324

325+
cycle
326+
316327
end if
317328

318329
end do file_loop

0 commit comments

Comments
 (0)