| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -26,6 +26,15 @@ def test_EOFS(self): | |||
| 26 | 26 | else: | |
| 27 | 27 | raise support.TestFailed | |
| 28 | 28 | ||
| 29 | + def test_eof_with_line_continuation(self): | ||
| 30 | + expect = "unexpected EOF while parsing (<string>, line 1)" | ||
| 31 | + try: | ||
| 32 | + compile('"\\xhh" \\', '<string>', 'exec', dont_inherit=True) | ||
| 33 | + except SyntaxError as msg: | ||
| 34 | + self.assertEqual(str(msg), expect) | ||
| 35 | + else: | ||
| 36 | + raise support.TestFailed | ||
| 37 | + | ||
| 29 | 38 | def test_line_continuation_EOF(self): | |
| 30 | 39 | """A continuation at the end of input must be an error; bpo2180.""" | |
| 31 | 40 | expect = 'unexpected EOF while parsing (<string>, line 1)' | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11437,7 +11437,7 @@ _loop1_11_rule(Parser *p) | |||
| 11437 | 11437 | } | |
| 11438 | 11438 | p->mark = mark; | |
| 11439 | 11439 | } | |
| 11440 | - if (n == 0) { | ||
| 11440 | + if (n == 0 || p->error_indicator) { | ||
| 11441 | 11441 | PyMem_Free(children); | |
| 11442 | 11442 | return NULL; | |
| 11443 | 11443 | } | |
@@ -11876,7 +11876,7 @@ _loop1_22_rule(Parser *p) | |||
| 11876 | 11876 | } | |
| 11877 | 11877 | p->mark = mark; | |
| 11878 | 11878 | } | |
| 11879 | - if (n == 0) { | ||
| 11879 | + if (n == 0 || p->error_indicator) { | ||
| 11880 | 11880 | PyMem_Free(children); | |
| 11881 | 11881 | return NULL; | |
| 11882 | 11882 | } | |
@@ -12252,7 +12252,7 @@ _loop1_31_rule(Parser *p) | |||
| 12252 | 12252 | } | |
| 12253 | 12253 | p->mark = mark; | |
| 12254 | 12254 | } | |
| 12255 | - if (n == 0) { | ||
| 12255 | + if (n == 0 || p->error_indicator) { | ||
| 12256 | 12256 | PyMem_Free(children); | |
| 12257 | 12257 | return NULL; | |
| 12258 | 12258 | } | |
@@ -12911,7 +12911,7 @@ _loop1_47_rule(Parser *p) | |||
| 12911 | 12911 | } | |
| 12912 | 12912 | p->mark = mark; | |
| 12913 | 12913 | } | |
| 12914 | - if (n == 0) { | ||
| 12914 | + if (n == 0 || p->error_indicator) { | ||
| 12915 | 12915 | PyMem_Free(children); | |
| 12916 | 12916 | return NULL; | |
| 12917 | 12917 | } | |
@@ -13267,7 +13267,7 @@ _loop1_56_rule(Parser *p) | |||
| 13267 | 13267 | } | |
| 13268 | 13268 | p->mark = mark; | |
| 13269 | 13269 | } | |
| 13270 | - if (n == 0) { | ||
| 13270 | + if (n == 0 || p->error_indicator) { | ||
| 13271 | 13271 | PyMem_Free(children); | |
| 13272 | 13272 | return NULL; | |
| 13273 | 13273 | } | |
@@ -13369,7 +13369,7 @@ _loop1_58_rule(Parser *p) | |||
| 13369 | 13369 | } | |
| 13370 | 13370 | p->mark = mark; | |
| 13371 | 13371 | } | |
| 13372 | - if (n == 0) { | ||
| 13372 | + if (n == 0 || p->error_indicator) { | ||
| 13373 | 13373 | PyMem_Free(children); | |
| 13374 | 13374 | return NULL; | |
| 13375 | 13375 | } | |
@@ -13422,7 +13422,7 @@ _loop1_59_rule(Parser *p) | |||
| 13422 | 13422 | } | |
| 13423 | 13423 | p->mark = mark; | |
| 13424 | 13424 | } | |
| 13425 | - if (n == 0) { | ||
| 13425 | + if (n == 0 || p->error_indicator) { | ||
| 13426 | 13426 | PyMem_Free(children); | |
| 13427 | 13427 | return NULL; | |
| 13428 | 13428 | } | |
@@ -13475,7 +13475,7 @@ _loop1_60_rule(Parser *p) | |||
| 13475 | 13475 | } | |
| 13476 | 13476 | p->mark = mark; | |
| 13477 | 13477 | } | |
| 13478 | - if (n == 0) { | ||
| 13478 | + if (n == 0 || p->error_indicator) { | ||
| 13479 | 13479 | PyMem_Free(children); | |
| 13480 | 13480 | return NULL; | |
| 13481 | 13481 | } | |
@@ -13577,7 +13577,7 @@ _loop1_62_rule(Parser *p) | |||
| 13577 | 13577 | } | |
| 13578 | 13578 | p->mark = mark; | |
| 13579 | 13579 | } | |
| 13580 | - if (n == 0) { | ||
| 13580 | + if (n == 0 || p->error_indicator) { | ||
| 13581 | 13581 | PyMem_Free(children); | |
| 13582 | 13582 | return NULL; | |
| 13583 | 13583 | } | |
@@ -13679,7 +13679,7 @@ _loop1_64_rule(Parser *p) | |||
| 13679 | 13679 | } | |
| 13680 | 13680 | p->mark = mark; | |
| 13681 | 13681 | } | |
| 13682 | - if (n == 0) { | ||
| 13682 | + if (n == 0 || p->error_indicator) { | ||
| 13683 | 13683 | PyMem_Free(children); | |
| 13684 | 13684 | return NULL; | |
| 13685 | 13685 | } | |
@@ -13781,7 +13781,7 @@ _loop1_66_rule(Parser *p) | |||
| 13781 | 13781 | } | |
| 13782 | 13782 | p->mark = mark; | |
| 13783 | 13783 | } | |
| 13784 | - if (n == 0) { | ||
| 13784 | + if (n == 0 || p->error_indicator) { | ||
| 13785 | 13785 | PyMem_Free(children); | |
| 13786 | 13786 | return NULL; | |
| 13787 | 13787 | } | |
@@ -13834,7 +13834,7 @@ _loop1_67_rule(Parser *p) | |||
| 13834 | 13834 | } | |
| 13835 | 13835 | p->mark = mark; | |
| 13836 | 13836 | } | |
| 13837 | - if (n == 0) { | ||
| 13837 | + if (n == 0 || p->error_indicator) { | ||
| 13838 | 13838 | PyMem_Free(children); | |
| 13839 | 13839 | return NULL; | |
| 13840 | 13840 | } | |
@@ -14007,7 +14007,7 @@ _loop1_71_rule(Parser *p) | |||
| 14007 | 14007 | } | |
| 14008 | 14008 | p->mark = mark; | |
| 14009 | 14009 | } | |
| 14010 | - if (n == 0) { | ||
| 14010 | + if (n == 0 || p->error_indicator) { | ||
| 14011 | 14011 | PyMem_Free(children); | |
| 14012 | 14012 | return NULL; | |
| 14013 | 14013 | } | |
@@ -14145,7 +14145,7 @@ _loop1_74_rule(Parser *p) | |||
| 14145 | 14145 | } | |
| 14146 | 14146 | p->mark = mark; | |
| 14147 | 14147 | } | |
| 14148 | - if (n == 0) { | ||
| 14148 | + if (n == 0 || p->error_indicator) { | ||
| 14149 | 14149 | PyMem_Free(children); | |
| 14150 | 14150 | return NULL; | |
| 14151 | 14151 | } | |
@@ -14345,7 +14345,7 @@ _loop1_78_rule(Parser *p) | |||
| 14345 | 14345 | } | |
| 14346 | 14346 | p->mark = mark; | |
| 14347 | 14347 | } | |
| 14348 | - if (n == 0) { | ||
| 14348 | + if (n == 0 || p->error_indicator) { | ||
| 14349 | 14349 | PyMem_Free(children); | |
| 14350 | 14350 | return NULL; | |
| 14351 | 14351 | } | |
@@ -14447,7 +14447,7 @@ _loop1_80_rule(Parser *p) | |||
| 14447 | 14447 | } | |
| 14448 | 14448 | p->mark = mark; | |
| 14449 | 14449 | } | |
| 14450 | - if (n == 0) { | ||
| 14450 | + if (n == 0 || p->error_indicator) { | ||
| 14451 | 14451 | PyMem_Free(children); | |
| 14452 | 14452 | return NULL; | |
| 14453 | 14453 | } | |
@@ -14500,7 +14500,7 @@ _loop1_81_rule(Parser *p) | |||
| 14500 | 14500 | } | |
| 14501 | 14501 | p->mark = mark; | |
| 14502 | 14502 | } | |
| 14503 | - if (n == 0) { | ||
| 14503 | + if (n == 0 || p->error_indicator) { | ||
| 14504 | 14504 | PyMem_Free(children); | |
| 14505 | 14505 | return NULL; | |
| 14506 | 14506 | } | |
@@ -14553,7 +14553,7 @@ _loop1_82_rule(Parser *p) | |||
| 14553 | 14553 | } | |
| 14554 | 14554 | p->mark = mark; | |
| 14555 | 14555 | } | |
| 14556 | - if (n == 0) { | ||
| 14556 | + if (n == 0 || p->error_indicator) { | ||
| 14557 | 14557 | PyMem_Free(children); | |
| 14558 | 14558 | return NULL; | |
| 14559 | 14559 | } | |
@@ -14655,7 +14655,7 @@ _loop1_84_rule(Parser *p) | |||
| 14655 | 14655 | } | |
| 14656 | 14656 | p->mark = mark; | |
| 14657 | 14657 | } | |
| 14658 | - if (n == 0) { | ||
| 14658 | + if (n == 0 || p->error_indicator) { | ||
| 14659 | 14659 | PyMem_Free(children); | |
| 14660 | 14660 | return NULL; | |
| 14661 | 14661 | } | |
@@ -14757,7 +14757,7 @@ _loop1_86_rule(Parser *p) | |||
| 14757 | 14757 | } | |
| 14758 | 14758 | p->mark = mark; | |
| 14759 | 14759 | } | |
| 14760 | - if (n == 0) { | ||
| 14760 | + if (n == 0 || p->error_indicator) { | ||
| 14761 | 14761 | PyMem_Free(children); | |
| 14762 | 14762 | return NULL; | |
| 14763 | 14763 | } | |
@@ -14859,7 +14859,7 @@ _loop1_88_rule(Parser *p) | |||
| 14859 | 14859 | } | |
| 14860 | 14860 | p->mark = mark; | |
| 14861 | 14861 | } | |
| 14862 | - if (n == 0) { | ||
| 14862 | + if (n == 0 || p->error_indicator) { | ||
| 14863 | 14863 | PyMem_Free(children); | |
| 14864 | 14864 | return NULL; | |
| 14865 | 14865 | } | |
@@ -14912,7 +14912,7 @@ _loop1_89_rule(Parser *p) | |||
| 14912 | 14912 | } | |
| 14913 | 14913 | p->mark = mark; | |
| 14914 | 14914 | } | |
| 14915 | - if (n == 0) { | ||
| 14915 | + if (n == 0 || p->error_indicator) { | ||
| 14916 | 14916 | PyMem_Free(children); | |
| 14917 | 14917 | return NULL; | |
| 14918 | 14918 | } | |
@@ -14965,7 +14965,7 @@ _loop1_90_rule(Parser *p) | |||
| 14965 | 14965 | } | |
| 14966 | 14966 | p->mark = mark; | |
| 14967 | 14967 | } | |
| 14968 | - if (n == 0) { | ||
| 14968 | + if (n == 0 || p->error_indicator) { | ||
| 14969 | 14969 | PyMem_Free(children); | |
| 14970 | 14970 | return NULL; | |
| 14971 | 14971 | } | |
@@ -15018,7 +15018,7 @@ _loop1_91_rule(Parser *p) | |||
| 15018 | 15018 | } | |
| 15019 | 15019 | p->mark = mark; | |
| 15020 | 15020 | } | |
| 15021 | - if (n == 0) { | ||
| 15021 | + if (n == 0 || p->error_indicator) { | ||
| 15022 | 15022 | PyMem_Free(children); | |
| 15023 | 15023 | return NULL; | |
| 15024 | 15024 | } | |
@@ -15358,7 +15358,7 @@ _loop1_99_rule(Parser *p) | |||
| 15358 | 15358 | } | |
| 15359 | 15359 | p->mark = mark; | |
| 15360 | 15360 | } | |
| 15361 | - if (n == 0) { | ||
| 15361 | + if (n == 0 || p->error_indicator) { | ||
| 15362 | 15362 | PyMem_Free(children); | |
| 15363 | 15363 | return NULL; | |
| 15364 | 15364 | } | |
@@ -15567,7 +15567,7 @@ _loop1_104_rule(Parser *p) | |||
| 15567 | 15567 | } | |
| 15568 | 15568 | p->mark = mark; | |
| 15569 | 15569 | } | |
| 15570 | - if (n == 0) { | ||
| 15570 | + if (n == 0 || p->error_indicator) { | ||
| 15571 | 15571 | PyMem_Free(children); | |
| 15572 | 15572 | return NULL; | |
| 15573 | 15573 | } | |
@@ -17165,7 +17165,7 @@ _loop1_145_rule(Parser *p) | |||
| 17165 | 17165 | } | |
| 17166 | 17166 | p->mark = mark; | |
| 17167 | 17167 | } | |
| 17168 | - if (n == 0) { | ||
| 17168 | + if (n == 0 || p->error_indicator) { | ||
| 17169 | 17169 | PyMem_Free(children); | |
| 17170 | 17170 | return NULL; | |
| 17171 | 17171 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -525,7 +525,7 @@ def _handle_loop_rule_body(self, node: Rule, rhs: Rhs) -> None: | |||
| 525 | 525 | rulename=node.name if memoize else None, | |
| 526 | 526 | ) | |
| 527 | 527 | if is_repeat1: | |
| 528 | - self.print("if (n == 0) {") | ||
| 528 | + self.print("if (n == 0 || p->error_indicator) {") | ||
| 529 | 529 | with self.indent(): | |
| 530 | 530 | self.print("PyMem_Free(children);") | |
| 531 | 531 | self.print("return NULL;") | |
| Back | FazBrowse Home | New Git URL |
0 commit comments