summaryrefslogtreecommitdiffstats
path: root/Lib/lib2to3
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2014-04-10 04:23:18 (GMT)
committerBenjamin Peterson <benjamin@python.org>2014-04-10 04:23:18 (GMT)
commit0654be18b387cbd136bfb62d77849111a954b58b (patch)
tree18bfb8fa836b396f43e28ccf8ec59d2eb6b9ab06 /Lib/lib2to3
parent4ab92c800a6f2b75743d4a0b4dfd9995723f3647 (diff)
downloadcpython-0654be18b387cbd136bfb62d77849111a954b58b.zip
cpython-0654be18b387cbd136bfb62d77849111a954b58b.tar.gz
cpython-0654be18b387cbd136bfb62d77849111a954b58b.tar.bz2
teach 2to3 about 'yield from'
Diffstat (limited to 'Lib/lib2to3')
-rw-r--r--Lib/lib2to3/Grammar.txt3
-rw-r--r--Lib/lib2to3/tests/test_parser.py7
2 files changed, 9 insertions, 1 deletions
diff --git a/Lib/lib2to3/Grammar.txt b/Lib/lib2to3/Grammar.txt
index bc084e9..e667bcd 100644
--- a/Lib/lib2to3/Grammar.txt
+++ b/Lib/lib2to3/Grammar.txt
@@ -155,4 +155,5 @@ testlist1: test (',' test)*
# not used in grammar, but may appear in "node" passed from Parser to Compiler
encoding_decl: NAME
-yield_expr: 'yield' [testlist]
+yield_expr: 'yield' [yield_arg]
+yield_arg: 'from' test | testlist
diff --git a/Lib/lib2to3/tests/test_parser.py b/Lib/lib2to3/tests/test_parser.py
index 83682b7..b64469c 100644
--- a/Lib/lib2to3/tests/test_parser.py
+++ b/Lib/lib2to3/tests/test_parser.py
@@ -54,6 +54,13 @@ class TestMatrixMultiplication(GrammarTest):
self.validate("a @= b")
+class TestYieldFrom(GrammarTest):
+ def test_matrix_multiplication_operator(self):
+ self.validate("yield from x")
+ self.validate("(yield from x) + y")
+ self.invalid_syntax("yield from")
+
+
class TestRaiseChanges(GrammarTest):
def test_2x_style_1(self):
self.validate("raise")