mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
a bit more parser cleanup
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user