'yield' parsing fixed

This commit is contained in:
Dmitry Jemerov
2008-03-07 15:51:54 +03:00
parent ae32aa38f0
commit db473ae29f
3 changed files with 13 additions and 2 deletions
@@ -135,6 +135,7 @@ public class StatementParsing extends Parsing {
PsiBuilder.Marker exprStatement = builder.mark();
if (builder.getTokenType() == PyTokenTypes.YIELD_KEYWORD) {
getExpressionParser().parseYieldOrTupleExpression(builder, false);
checkEndOfStatement(builder, inSuite);
exprStatement.done(PyElementTypes.EXPRESSION_STATEMENT);
return;
}
+3 -1
View File
@@ -1,2 +1,4 @@
def f():
yield 42
yield 42
f()
+9 -1
View File
@@ -14,4 +14,12 @@ PyFile:YieldStatement.py
PsiElement(Py:YIELD_KEYWORD)('yield')
PsiWhiteSpace(' ')
PyNumericLiteralExpression
PsiElement(Py:INTEGER_LITERAL)('42')
PsiElement(Py:INTEGER_LITERAL)('42')
PsiWhiteSpace('\n\n')
PyExpressionStatement
PyCallExpression: f
PyReferenceExpression: f
PsiElement(Py:IDENTIFIER)('f')
PyArgumentList
PsiElement(Py:LPAR)('(')
PsiElement(Py:RPAR)(')')