Compiles all the rules from the environment into a list of rules.
(environment)
| 194 | |
| 195 | |
| 196 | def compile_rules(environment): |
| 197 | """Compiles all the rules from the environment into a list of rules.""" |
| 198 | e = re.escape |
| 199 | rules = [ |
| 200 | (len(environment.comment_start_string), 'comment', |
| 201 | e(environment.comment_start_string)), |
| 202 | (len(environment.block_start_string), 'block', |
| 203 | e(environment.block_start_string)), |
| 204 | (len(environment.variable_start_string), 'variable', |
| 205 | e(environment.variable_start_string)) |
| 206 | ] |
| 207 | |
| 208 | if environment.line_statement_prefix is not None: |
| 209 | rules.append((len(environment.line_statement_prefix), 'linestatement', |
| 210 | r'^[ \t\v]*' + e(environment.line_statement_prefix))) |
| 211 | if environment.line_comment_prefix is not None: |
| 212 | rules.append((len(environment.line_comment_prefix), 'linecomment', |
| 213 | r'(?:^|(?<=\S))[^\S\r\n]*' + |
| 214 | e(environment.line_comment_prefix))) |
| 215 | |
| 216 | return [x[1:] for x in sorted(rules, reverse=True)] |
| 217 | |
| 218 | |
| 219 | class Failure(object): |