This commit is contained in:
Roman Shevchenko
2012-05-11 11:50:51 +04:00
parent 28ff5f0241
commit 0b0f3b06d9
4 changed files with 13 additions and 39 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,6 @@ import org.jetbrains.annotations.PropertyKey;
import static com.intellij.lang.PsiBuilderUtil.expect;
import static com.intellij.lang.PsiBuilderUtil.nextTokenType;
import static com.intellij.lang.java.parser.JavaParserUtil.*;
import static com.intellij.lang.java.parser.JavaParserUtil.exprType;
public class DeclarationParser {
@@ -59,12 +58,6 @@ public class DeclarationParser {
myStatementParser = new StatementParser(this, myExpressionParser, myReferenceParser);
}
protected DeclarationParser(ReferenceParser referenceParser, ExpressionParser expressionParser, StatementParser statementParser) {
myReferenceParser = referenceParser;
myExpressionParser = expressionParser;
myStatementParser = statementParser;
}
public ReferenceParser getReferenceParser() {
return myReferenceParser;
}
@@ -184,7 +177,7 @@ public class DeclarationParser {
myExpressionParser.parseArgumentList(builder);
}
else {
JavaParserUtil.emptyElement(builder, JavaElementType.EXPRESSION_LIST);
emptyElement(builder, JavaElementType.EXPRESSION_LIST);
}
if (builder.getTokenType() == JavaTokenType.LBRACE) {
@@ -312,7 +305,7 @@ public class DeclarationParser {
}
idPos.rollbackTo();
if (typeParams == null) {
JavaParserUtil.emptyElement(builder, JavaElementType.TYPE_PARAMETER_LIST);
emptyElement(builder, JavaElementType.TYPE_PARAMETER_LIST);
}
builder.advanceLexer();
if (builder.getTokenType() != JavaTokenType.LPARENTH) {
@@ -371,7 +364,7 @@ public class DeclarationParser {
if (builder.getTokenType() == JavaTokenType.LPARENTH) {
if (context == Context.CLASS || context == Context.ANNOTATION_INTERFACE) { // method
if (typeParams == null) {
JavaParserUtil.emptyElement(type, JavaElementType.TYPE_PARAMETER_LIST);
emptyElement(type, JavaElementType.TYPE_PARAMETER_LIST);
}
return parseMethodFromLeftParenth(builder, declaration, (context == Context.ANNOTATION_INTERFACE), false);
}
@@ -608,7 +601,7 @@ public class DeclarationParser {
}
else {
error(builder, JavaErrorMessages.message("expected.type"));
JavaParserUtil.emptyElement(builder, JavaElementType.TYPE);
emptyElement(builder, JavaElementType.TYPE);
}
}
@@ -404,7 +404,7 @@ public class ExpressionParser {
final PsiBuilder.Marker refExpr = expr.precede();
myReferenceParser.parseReferenceParameterList(builder, false, false);
if (!JavaParserUtil.expectOrError(builder, JavaTokenType.IDENTIFIER, "expected.identifier")) {
if (!expectOrError(builder, JavaTokenType.IDENTIFIER, "expected.identifier")) {
refExpr.done(JavaElementType.REFERENCE_EXPRESSION);
startMarker.drop();
return refExpr;
@@ -726,7 +726,7 @@ public class ExpressionParser {
}
bracketCount++;
if (!JavaParserUtil.expectOrError(builder, JavaTokenType.RBRACKET, "expected.rbracket")) {
if (!expectOrError(builder, JavaTokenType.RBRACKET, "expected.rbracket")) {
newExpr.done(JavaElementType.NEW_EXPRESSION);
return newExpr;
}
@@ -812,7 +812,7 @@ public class ExpressionParser {
}
}
final boolean closed = JavaParserUtil.expectOrError(builder, JavaTokenType.RPARENTH, "expected.rparen");
final boolean closed = expectOrError(builder, JavaTokenType.RPARENTH, "expected.rparen");
list.done(JavaElementType.EXPRESSION_LIST);
if (!closed) {
@@ -822,7 +822,7 @@ public class ExpressionParser {
}
private static void emptyExpression(final PsiBuilder builder) {
JavaParserUtil.emptyElement(builder, JavaElementType.EMPTY_EXPRESSION);
emptyElement(builder, JavaElementType.EMPTY_EXPRESSION);
}
@Nullable
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2011 JetBrains s.r.o.
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -106,8 +106,8 @@ public class FileParser {
}
if (impListInfo.second && firstDeclarationOk == Boolean.TRUE) {
impListInfo.first.setCustomEdgeTokenBinders(JavaParserUtil.PRECEDING_COMMENT_BINDER, null); // pass comments behind fake import list
firstDeclaration.setCustomEdgeTokenBinders(JavaParserUtil.SPECIAL_PRECEDING_COMMENT_BINDER, null);
impListInfo.first.setCustomEdgeTokenBinders(PRECEDING_COMMENT_BINDER, null); // pass comments behind fake import list
firstDeclaration.setCustomEdgeTokenBinders(SPECIAL_PRECEDING_COMMENT_BINDER, null);
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2010 JetBrains s.r.o.
* Copyright 2000-2012 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,9 +20,7 @@ import com.intellij.lang.LanguageASTFactory;
import com.intellij.lang.PsiBuilder;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.lang.java.JavaParserDefinition;
import com.intellij.mock.MockModule;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.roots.impl.LanguageLevelProjectExtensionImpl;
import com.intellij.pom.java.LanguageLevel;
@@ -42,10 +40,7 @@ import org.jetbrains.annotations.NonNls;
import java.io.IOException;
public abstract class JavaParsingTestCase extends ParsingTestCase {
private Module myModule;
private LanguageLevel myLanguageLevel;
@SuppressWarnings({"JUnitTestCaseWithNonTrivialConstructors"})
@@ -68,17 +63,9 @@ public abstract class JavaParsingTestCase extends ParsingTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
myModule = new MockModule(getProject(), getTestRootDisposable());
myLanguageLevel = LanguageLevel.JDK_1_6;
getProject().registerService(LanguageLevelProjectExtension.class, new LanguageLevelProjectExtensionImpl(getProject()));
addExplicitExtension(LanguageASTFactory.INSTANCE, JavaLanguage.INSTANCE, new JavaASTFactory());
try {
registerApplicationService((Class<Object>)Class.forName("com.intellij.psi.jsp.JspSpiUtil"),
Class.forName("com.intellij.jsp.impl.JspSpiUtilImpl").newInstance());
}
catch (Exception ex) {
// jsp not available
}
}
@Override
@@ -91,18 +78,12 @@ public abstract class JavaParsingTestCase extends ParsingTestCase {
@Override
protected void tearDown() throws Exception {
super.tearDown();
myModule = null;
}
protected interface TestParser {
void parse(PsiBuilder builder);
}
public Module getModule() {
return myModule;
}
protected void doParserTest(final String text, final TestParser parser) {
final String name = getTestName(false);
myFile = createPsiFile(name, text, parser);