diff --git a/python/src/com/jetbrains/python/parsing/FunctionParsing.java b/python/src/com/jetbrains/python/parsing/FunctionParsing.java index 7e93ab69827a..90ad2ad74b42 100644 --- a/python/src/com/jetbrains/python/parsing/FunctionParsing.java +++ b/python/src/com/jetbrains/python/parsing/FunctionParsing.java @@ -97,7 +97,7 @@ public class FunctionParsing extends Parsing { builder.advanceLexer(); } else if (builder.getTokenType() == PyTokenTypes.LPAR) { - parseParameterSubList(builder); + parseParameterSubList(); } else { builder.error(", or ( or ) expected"); @@ -132,27 +132,27 @@ public class FunctionParsing extends Parsing { parameterList.done(PyElementTypes.PARAMETER_LIST); } - private void parseParameterSubList(PsiBuilder builder) { - LOG.assertTrue(builder.getTokenType() == PyTokenTypes.LPAR); - builder.advanceLexer(); + private void parseParameterSubList() { + assertCurrentToken(PyTokenTypes.LPAR); + myBuilder.advanceLexer(); while (true) { - if (builder.getTokenType() == PyTokenTypes.IDENTIFIER) { - final PsiBuilder.Marker parameter = builder.mark(); - builder.advanceLexer(); + if (myBuilder.getTokenType() == PyTokenTypes.IDENTIFIER) { + final PsiBuilder.Marker parameter = myBuilder.mark(); + myBuilder.advanceLexer(); parameter.done(PyElementTypes.FORMAL_PARAMETER); } - else if (builder.getTokenType() == PyTokenTypes.LPAR) { - parseParameterSubList(builder); + else if (myBuilder.getTokenType() == PyTokenTypes.LPAR) { + parseParameterSubList(); } - if (builder.getTokenType() == PyTokenTypes.RPAR) { - builder.advanceLexer(); + if (myBuilder.getTokenType() == PyTokenTypes.RPAR) { + myBuilder.advanceLexer(); break; } - if (builder.getTokenType() != PyTokenTypes.COMMA) { - builder.error(", or ( or ) expected"); + if (myBuilder.getTokenType() != PyTokenTypes.COMMA) { + myBuilder.error(", or ( or ) expected"); break; } - builder.advanceLexer(); + myBuilder.advanceLexer(); } } } diff --git a/python/src/com/jetbrains/python/parsing/Parsing.java b/python/src/com/jetbrains/python/parsing/Parsing.java index 11b8f0cd470c..8daea27a6807 100644 --- a/python/src/com/jetbrains/python/parsing/Parsing.java +++ b/python/src/com/jetbrains/python/parsing/Parsing.java @@ -31,10 +31,12 @@ import com.jetbrains.python.psi.PyElementType; */ public class Parsing { protected ParsingContext myContext; + protected PsiBuilder myBuilder; private static final Logger LOG = Logger.getInstance("#com.jetbrains.python.parsing.Parsing"); protected Parsing(ParsingContext context) { myContext = context; + myBuilder = context.getBuilder(); } public ParsingContext getParsingContext() { @@ -54,12 +56,11 @@ public class Parsing { } protected void checkMatches(final IElementType token, final String message) { - PsiBuilder builder = myContext.getBuilder(); - if (builder.getTokenType() == token) { - builder.advanceLexer(); + if (myBuilder.getTokenType() == token) { + myBuilder.advanceLexer(); } else { - builder.error(message); + myBuilder.error(message); } } @@ -73,6 +74,6 @@ public class Parsing { } protected void assertCurrentToken(final PyElementType tokenType) { - LOG.assertTrue(myContext.getBuilder().getTokenType() == tokenType); + LOG.assertTrue(myBuilder.getTokenType() == tokenType); } }