264 # 4. Leading context |
264 # 4. Leading context |
265 (context_regex, Context, 'incomplete'), |
265 (context_regex, Context, 'incomplete'), |
266 # 5. Leading project |
266 # 5. Leading project |
267 (project_regex, Project, 'incomplete'), |
267 (project_regex, Project, 'incomplete'), |
268 # 6. Non-whitespace catch-all |
268 # 6. Non-whitespace catch-all |
269 ('\S+', IncompleteTaskText, 'incomplete'), |
269 (r'\S+', IncompleteTaskText, 'incomplete'), |
270 ], |
270 ], |
271 |
271 |
272 # Parse a complete task |
272 # Parse a complete task |
273 'complete': [ |
273 'complete': [ |
274 # Newline indicates end of task, should return to root |
274 # Newline indicates end of task, should return to root |
275 (r'\s*\n', CompleteTaskText, '#pop'), |
275 (r'\s*\n', CompleteTaskText, '#pop'), |
276 # Tokenize contexts and projects |
276 # Tokenize contexts and projects |
277 (context_regex, Context), |
277 (context_regex, Context), |
278 (project_regex, Project), |
278 (project_regex, Project), |
279 # Tokenize non-whitespace text |
279 # Tokenize non-whitespace text |
280 ('\S+', CompleteTaskText), |
280 (r'\S+', CompleteTaskText), |
281 # Tokenize whitespace not containing a newline |
281 # Tokenize whitespace not containing a newline |
282 ('\s+', CompleteTaskText), |
282 (r'\s+', CompleteTaskText), |
283 ], |
283 ], |
284 |
284 |
285 # Parse an incomplete task |
285 # Parse an incomplete task |
286 'incomplete': [ |
286 'incomplete': [ |
287 # Newline indicates end of task, should return to root |
287 # Newline indicates end of task, should return to root |
288 (r'\s*\n', IncompleteTaskText, '#pop'), |
288 (r'\s*\n', IncompleteTaskText, '#pop'), |
289 # Tokenize contexts and projects |
289 # Tokenize contexts and projects |
290 (context_regex, Context), |
290 (context_regex, Context), |
291 (project_regex, Project), |
291 (project_regex, Project), |
292 # Tokenize non-whitespace text |
292 # Tokenize non-whitespace text |
293 ('\S+', IncompleteTaskText), |
293 (r'\S+', IncompleteTaskText), |
294 # Tokenize whitespace not containing a newline |
294 # Tokenize whitespace not containing a newline |
295 ('\s+', IncompleteTaskText), |
295 (r'\s+', IncompleteTaskText), |
296 ], |
296 ], |
297 } |
297 } |