diff options
Diffstat (limited to 'lib/python/qmk/comment_remover.py')
| -rw-r--r-- | lib/python/qmk/comment_remover.py | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/lib/python/qmk/comment_remover.py b/lib/python/qmk/comment_remover.py new file mode 100644 index 0000000000..45a25257f8 --- /dev/null +++ b/lib/python/qmk/comment_remover.py @@ -0,0 +1,20 @@ +"""Removes C/C++ style comments from text. + +Gratefully adapted from https://stackoverflow.com/a/241506 +""" +import re + +comment_pattern = re.compile(r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE) + + +def _comment_stripper(match): +    """Removes C/C++ style comments from a regex match. +    """ +    s = match.group(0) +    return ' ' if s.startswith('/') else s + + +def comment_remover(text): +    """Remove C/C++ style comments from text. +    """ +    return re.sub(comment_pattern, _comment_stripper, text) | 
