marker_op = IN | NOT IN | OP
(tokenizer: Tokenizer)
| 339 | |
| 340 | |
| 341 | def _parse_marker_op(tokenizer: Tokenizer) -> Op: |
| 342 | """ |
| 343 | marker_op = IN | NOT IN | OP |
| 344 | """ |
| 345 | if tokenizer.check("IN"): |
| 346 | tokenizer.read() |
| 347 | return Op("in") |
| 348 | elif tokenizer.check("NOT"): |
| 349 | tokenizer.read() |
| 350 | tokenizer.expect("WS", expected="whitespace after 'not'") |
| 351 | tokenizer.expect("IN", expected="'in' after 'not'") |
| 352 | return Op("not in") |
| 353 | elif tokenizer.check("OP"): |
| 354 | return Op(tokenizer.read().text) |
| 355 | else: |
| 356 | return tokenizer.raise_syntax_error( |
| 357 | "Expected marker operator, one of " |
| 358 | "<=, <, !=, ==, >=, >, ~=, ===, in, not in" |
| 359 | ) |
no test coverage detected