Identification of CPP directives in UMDP3_checker

Open
#240 1 comment 0 reactions 1 assignee View on GitHub

@r-sharp is already working on this.

Since Jul 31, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

The current C pre-processor pattern assumes that there are no spaces between the start of a line and the # symbol:

comment_line = re.compile(r"!.*$")
cpp_command_line = re.compile(r"^#.*$")
word_splitter = re.compile(r"\b\w+\b")

However, the GNU C pre-processor manual explicitly says that spaces before the hash symbol are allowed:

Preprocessing directives are lines in your program that start with ‘#’. Whitespace is allowed before and after the ‘#’. The ‘#’ is followed by an identifier, the directive name. It specifies the operation to perform.

The pattern should probably allow leading whitespace. This doesn't seem to cause problems for the UM, but it may result in unexpected failures in other code bases.

Dominant language
Python
Stars
9
Forks
19
Avg merge
5d 48m
Merged PRs (30d)
4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from MetOffice/SimSys_Scripts

All issues in MetOffice/SimSys_Scripts

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.