Teach the parsermodule about floor division. Fixes

[ 676521 ] parser module validation failure

bugfix candidate.
This commit is contained in:
Michael W. Hudson 2003-01-29 14:20:23 +00:00
parent 090da4b626
commit 5e83b7a9cc
2 changed files with 7 additions and 0 deletions

View File

@ -51,6 +51,10 @@ class RoundtripLegalSyntaxTestCase(unittest.TestCase):
self.check_expr("foo(a, b, c, *args, **kw)") self.check_expr("foo(a, b, c, *args, **kw)")
self.check_expr("foo(a, b, c, **kw)") self.check_expr("foo(a, b, c, **kw)")
self.check_expr("foo + bar") self.check_expr("foo + bar")
self.check_expr("foo - bar")
self.check_expr("foo * bar")
self.check_expr("foo / bar")
self.check_expr("foo // bar")
self.check_expr("lambda: 0") self.check_expr("lambda: 0")
self.check_expr("lambda x: 0") self.check_expr("lambda x: 0")
self.check_expr("lambda *y: 0") self.check_expr("lambda *y: 0")
@ -85,6 +89,7 @@ class RoundtripLegalSyntaxTestCase(unittest.TestCase):
self.check_suite("a -= b") self.check_suite("a -= b")
self.check_suite("a *= b") self.check_suite("a *= b")
self.check_suite("a /= b") self.check_suite("a /= b")
self.check_suite("a //= b")
self.check_suite("a %= b") self.check_suite("a %= b")
self.check_suite("a &= b") self.check_suite("a &= b")
self.check_suite("a |= b") self.check_suite("a |= b")

View File

@ -1440,6 +1440,7 @@ validate_expr_stmt(node *tree)
|| strcmp(s, "-=") == 0 || strcmp(s, "-=") == 0
|| strcmp(s, "*=") == 0 || strcmp(s, "*=") == 0
|| strcmp(s, "/=") == 0 || strcmp(s, "/=") == 0
|| strcmp(s, "//=") == 0
|| strcmp(s, "%=") == 0 || strcmp(s, "%=") == 0
|| strcmp(s, "&=") == 0 || strcmp(s, "&=") == 0
|| strcmp(s, "|=") == 0 || strcmp(s, "|=") == 0
@ -2095,6 +2096,7 @@ validate_term(node *tree)
for ( ; res && (pos < nch); pos += 2) for ( ; res && (pos < nch); pos += 2)
res = (((TYPE(CHILD(tree, pos)) == STAR) res = (((TYPE(CHILD(tree, pos)) == STAR)
|| (TYPE(CHILD(tree, pos)) == SLASH) || (TYPE(CHILD(tree, pos)) == SLASH)
|| (TYPE(CHILD(tree, pos)) == DOUBLESLASH)
|| (TYPE(CHILD(tree, pos)) == PERCENT)) || (TYPE(CHILD(tree, pos)) == PERCENT))
&& validate_factor(CHILD(tree, pos + 1))); && validate_factor(CHILD(tree, pos + 1)));