File: source.py

package info (click to toggle)
python3.9 3.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 102,508 kB
  • sloc: python: 606,145; ansic: 515,486; xml: 31,209; sh: 4,917; cpp: 3,781; makefile: 1,885; asm: 1,486; objc: 761; lisp: 502; pascal: 360; javascript: 177; csh: 11
file content (34 lines) | stat: -rw-r--r-- 874 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from . import preprocessor


def iter_clean_lines(lines):
    incomment = False
    for line in lines:
        # Deal with comments.
        if incomment:
            _, sep, line = line.partition('*/')
            if sep:
                incomment = False
            continue
        line, _, _ = line.partition('//')
        line, sep, remainder = line.partition('/*')
        if sep:
            _, sep, after = remainder.partition('*/')
            if not sep:
                incomment = True
                continue
            line += ' ' + after

        # Ignore blank lines and leading/trailing whitespace.
        line = line.strip()
        if not line:
            continue

        yield line


def iter_lines(filename, *,
               preprocess=preprocessor.run,
               ):
    content = preprocess(filename)
    return iter(content.splitlines())