(source)
| 153 | |
| 154 | # This really seems to be about 4x longer than it needs to be |
| 155 | def cleanComments(source): |
| 156 | lines = LineQueue() |
| 157 | comments = CommentQueue() |
| 158 | def isCommentLine(line): |
| 159 | return line.startswith('/*') and line.endswith('*/\n') |
| 160 | |
| 161 | blanks = LineQueue() |
| 162 | def isBlank(line): |
| 163 | return line.strip() == '' |
| 164 | |
| 165 | def SourceLines(line): |
| 166 | if isCommentLine(line): |
| 167 | comments.add(line) |
| 168 | return HaveCommentLines |
| 169 | else: |
| 170 | lines.add(line) |
| 171 | return SourceLines |
| 172 | def HaveCommentLines(line): |
| 173 | if isBlank(line): |
| 174 | blanks.add('\n') |
| 175 | return HaveBlankLines |
| 176 | elif isCommentLine(line): |
| 177 | comments.add(line) |
| 178 | return HaveCommentLines |
| 179 | else: |
| 180 | comments.flushTo(lines) |
| 181 | lines.add(line) |
| 182 | return SourceLines |
| 183 | def HaveBlankLines(line): |
| 184 | if isBlank(line): |
| 185 | blanks.add('\n') |
| 186 | return HaveBlankLines |
| 187 | elif isCommentLine(line): |
| 188 | blanks.flushTo(comments) |
| 189 | comments.add(line) |
| 190 | return HaveCommentLines |
| 191 | else: |
| 192 | comments.flushTo(lines) |
| 193 | blanks.flushTo(lines) |
| 194 | lines.add(line) |
| 195 | return SourceLines |
| 196 | |
| 197 | state = SourceLines |
| 198 | for line in UStringIO(source): |
| 199 | state = state(line) |
| 200 | comments.flushTo(lines) |
| 201 | return lines.getValue() |
| 202 | |
| 203 | def removeHeader(source): |
| 204 | lines = LineQueue() |
nothing calls this directly
no test coverage detected