Cosmetics

This commit is contained in:
Andrey Breslav
2011-01-03 17:14:03 +03:00
parent c4fa51c16e
commit 4430176902
7 changed files with 84 additions and 87 deletions
@@ -69,7 +69,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
IElementType tt = tt(); IElementType tt = tt();
if (recoverySet == null || recoverySet.contains(tt) if (recoverySet == null || recoverySet.contains(tt)
|| (recoverySet.contains(EOL_OR_SEMICOLON) || (recoverySet.contains(EOL_OR_SEMICOLON)
&& (eof() || tt == SEMICOLON || myBuilder.eolInLastWhitespace()))) { && (eof() || tt == SEMICOLON || myBuilder.newlineBeforeCurrentToken()))) {
error(message); error(message);
} }
else { else {
@@ -103,7 +103,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
if (expectation == EOL_OR_SEMICOLON) { if (expectation == EOL_OR_SEMICOLON) {
if (eof()) return true; if (eof()) return true;
if (token == SEMICOLON) return true; if (token == SEMICOLON) return true;
if (myBuilder.eolInLastWhitespace()) return true; if (myBuilder.newlineBeforeCurrentToken()) return true;
} }
if (token == IDENTIFIER && expectation instanceof JetKeywordToken) { if (token == IDENTIFIER && expectation instanceof JetKeywordToken) {
JetKeywordToken expectedKeyword = (JetKeywordToken) expectation; JetKeywordToken expectedKeyword = (JetKeywordToken) expectation;
@@ -132,7 +132,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
if (set.contains(EOL_OR_SEMICOLON)) { if (set.contains(EOL_OR_SEMICOLON)) {
if (eof()) return true; if (eof()) return true;
if (token == SEMICOLON) return true; if (token == SEMICOLON) return true;
if (myBuilder.eolInLastWhitespace()) return true; if (myBuilder.newlineBeforeCurrentToken()) return true;
} }
if (token == IDENTIFIER) { if (token == IDENTIFIER) {
JetKeywordToken keywordToken = SOFT_KEYWORD_TEXTS.get(myBuilder.getTokenText()); JetKeywordToken keywordToken = SOFT_KEYWORD_TEXTS.get(myBuilder.getTokenText());
@@ -229,7 +229,7 @@ import static org.jetbrains.jet.lexer.JetTokens.*;
} }
protected boolean eol() { protected boolean eol() {
return myBuilder.eolInLastWhitespace() || eof(); return myBuilder.newlineBeforeCurrentToken() || eof();
} }
protected abstract JetParsing create(SemanticWhitespaceAwarePsiBuilder builder); protected abstract JetParsing create(SemanticWhitespaceAwarePsiBuilder builder);
@@ -143,7 +143,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
precedence.parseHigherPrecedence(this); precedence.parseHigherPrecedence(this);
while (!myBuilder.eolInLastWhitespace() && atSet(precedence.getOperations())) { while (!myBuilder.newlineBeforeCurrentToken() && atSet(precedence.getOperations())) {
advance(); // operation advance(); // operation
precedence.parseRightHandSide(this); precedence.parseRightHandSide(this);
expression.done(BINARY_EXPRESSION); expression.done(BINARY_EXPRESSION);
@@ -187,7 +187,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker expression = mark(); PsiBuilder.Marker expression = mark();
parseAtomicExpression(); parseAtomicExpression();
while (true) { while (true) {
if (myBuilder.eolInLastWhitespace()) { if (myBuilder.newlineBeforeCurrentToken()) {
break; break;
} else if (at(LBRACKET)) { } else if (at(LBRACKET)) {
parseArrayAccess(); parseArrayAccess();
@@ -211,7 +211,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
}); });
if (gtPos >= 0) { if (gtPos >= 0) {
myJetParsing.parseTypeArgumentList(); myJetParsing.parseTypeArgumentList();
if (!myBuilder.eolInLastWhitespace() && at(LPAR)) parseValueArgumentList(); if (!myBuilder.newlineBeforeCurrentToken() && at(LPAR)) parseValueArgumentList();
parseCallWithClosure(); parseCallWithClosure();
expression.done(CALL_EXPRESSION); expression.done(CALL_EXPRESSION);
} else { } else {
@@ -247,7 +247,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
* expression functionLiteral? * expression functionLiteral?
*/ */
protected boolean parseCallWithClosure() { protected boolean parseCallWithClosure() {
if (!myBuilder.eolInLastWhitespace() && at(LBRACE)) { if (!myBuilder.newlineBeforeCurrentToken() && at(LBRACE)) {
parseFunctionLiteral(); parseFunctionLiteral();
return true; return true;
} }
@@ -405,7 +405,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
myJetParsing.parseAttributeList(); myJetParsing.parseAttributeList();
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(CASE_KEYWORD, "Expecting 'case' to start pattern matching", TokenSet.create(RBRACE, IF_KEYWORD, DOUBLE_ARROW)); expect(CASE_KEYWORD, "Expecting 'case' to start pattern matching", TokenSet.create(RBRACE, IF_KEYWORD, DOUBLE_ARROW));
parsePattern(); parsePattern();
@@ -417,7 +417,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
expect(DOUBLE_ARROW, "Expecting '=>'", TokenSet.create(RBRACE)); expect(DOUBLE_ARROW, "Expecting '=>'", TokenSet.create(RBRACE));
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
parseExpression(); parseExpression();
@@ -517,7 +517,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker indices = mark(); PsiBuilder.Marker indices = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LBRACKET advance(); // LBRACKET
while (true) { while (true) {
@@ -532,7 +532,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
expect(RBRACKET, "Expecting ']'"); expect(RBRACKET, "Expecting ']'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
indices.done(INDICES); indices.done(INDICES);
} }
@@ -578,7 +578,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker literal = mark(); PsiBuilder.Marker literal = mark();
myBuilder.enableEols(); myBuilder.enableNewlines();
advance(); // LBRACE advance(); // LBRACE
int doubleArrowPos = matchTokenStreamPredicate(new FirstBefore(new At(DOUBLE_ARROW), new At(RBRACE)) { int doubleArrowPos = matchTokenStreamPredicate(new FirstBefore(new At(DOUBLE_ARROW), new At(RBRACE)) {
@@ -652,7 +652,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
body.done(BODY); body.done(BODY);
expect(RBRACE, "Expecting '}'"); expect(RBRACE, "Expecting '}'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
literal.done(FUNCTION_LITERAL); literal.done(FUNCTION_LITERAL);
} }
@@ -664,7 +664,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker list = mark(); PsiBuilder.Marker list = mark();
expect(LPAR, "Expecting a parameter list in parentheses (...)", TokenSet.create(DOUBLE_ARROW, COLON)); expect(LPAR, "Expecting a parameter list in parentheses (...)", TokenSet.create(DOUBLE_ARROW, COLON));
myBuilder.disableEols(); myBuilder.disableNewlines();
if (!at(RPAR)) { if (!at(RPAR)) {
while (true) { while (true) {
@@ -691,7 +691,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
} }
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
expect(RPAR, "Expecting ')", TokenSet.create(DOUBLE_ARROW, COLON)); expect(RPAR, "Expecting ')", TokenSet.create(DOUBLE_ARROW, COLON));
list.done(VALUE_PARAMETER_LIST); list.done(VALUE_PARAMETER_LIST);
@@ -709,7 +709,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
while (at(SEMICOLON)) advance(); // SEMICOLON while (at(SEMICOLON)) advance(); // SEMICOLON
} else if (at(RBRACE)) { } else if (at(RBRACE)) {
break; break;
} else if (!myBuilder.eolInLastWhitespace()) { } else if (!myBuilder.newlineBeforeCurrentToken()) {
errorUntil("Unexpected tokens (use ';' to separate expressions on the same line", TokenSet.create(EOL_OR_SEMICOLON)); errorUntil("Unexpected tokens (use ';' to separate expressions on the same line", TokenSet.create(EOL_OR_SEMICOLON));
} }
} }
@@ -802,7 +802,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
advance(); // FOR_KEYWORD advance(); // FOR_KEYWORD
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting '(' to open a loop range", TokenSet.create(RPAR, VAL_KEYWORD, VAR_KEYWORD, IDENTIFIER)); expect(LPAR, "Expecting '(' to open a loop range", TokenSet.create(RPAR, VAL_KEYWORD, VAR_KEYWORD, IDENTIFIER));
PsiBuilder.Marker parameter = mark(); PsiBuilder.Marker parameter = mark();
@@ -821,7 +821,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
range.done(LOOP_RANGE); range.done(LOOP_RANGE);
expectNoAdvance(RPAR, "Expecting ')'"); expectNoAdvance(RPAR, "Expecting ')'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
parseControlStructureBody(); parseControlStructureBody();
@@ -920,7 +920,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
* "(" expression ")" * "(" expression ")"
*/ */
private void parseCondition() { private void parseCondition() {
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting a condition in parentheses '(...)'"); expect(LPAR, "Expecting a condition in parentheses '(...)'");
PsiBuilder.Marker condition = mark(); PsiBuilder.Marker condition = mark();
@@ -928,7 +928,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
condition.done(CONDITION); condition.done(CONDITION);
expect(RPAR, "Expecting ')"); expect(RPAR, "Expecting ')");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
} }
/* /*
@@ -1006,13 +1006,13 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker typeof = mark(); PsiBuilder.Marker typeof = mark();
advance(); // TYPEOF_KEYWORD advance(); // TYPEOF_KEYWORD
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting '('"); expect(LPAR, "Expecting '('");
parseExpression(); parseExpression();
expect(RPAR, "Expecting ')'"); expect(RPAR, "Expecting ')'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
typeof.done(TYPEOF); typeof.done(TYPEOF);
} }
@@ -1027,7 +1027,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
PsiBuilder.Marker mark = mark(); PsiBuilder.Marker mark = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LPAR advance(); // LPAR
if (!at(RPAR)) { if (!at(RPAR)) {
@@ -1044,7 +1044,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
expect(RPAR, "Expecting ')'"); expect(RPAR, "Expecting ')'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
mark.done(TUPLE); mark.done(TUPLE);
} }
@@ -1059,7 +1059,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
// This may be "this < foo" or "this<foo>", thus the backtracking // This may be "this < foo" or "this<foo>", thus the backtracking
PsiBuilder.Marker supertype = mark(); PsiBuilder.Marker supertype = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LT advance(); // LT
myJetParsing.parseTypeRef(); myJetParsing.parseTypeRef();
@@ -1071,7 +1071,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
else { else {
supertype.rollbackTo(); supertype.rollbackTo();
} }
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
} }
} }
@@ -1083,7 +1083,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
public void parseValueArgumentList() { public void parseValueArgumentList() {
PsiBuilder.Marker list = mark(); PsiBuilder.Marker list = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting an argument list", TokenSet.create(RPAR)); expect(LPAR, "Expecting an argument list", TokenSet.create(RPAR));
if (!at(RPAR)) { if (!at(RPAR)) {
@@ -1100,7 +1100,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
} }
expect(RPAR, "Expecting ')'"); expect(RPAR, "Expecting ')'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
list.done(VALUE_ARGUMENT_LIST); list.done(VALUE_ARGUMENT_LIST);
} }
@@ -263,7 +263,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker properties = mark(); PsiBuilder.Marker properties = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting a property list in parentheses '( ... )'"); expect(LPAR, "Expecting a property list in parentheses '( ... )'");
// Property list // Property list
@@ -284,7 +284,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(RPAR, "Expecting ')' to close a property list"); expect(RPAR, "Expecting ')' to close a property list");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
consumeIf(SEMICOLON); consumeIf(SEMICOLON);
@@ -340,7 +340,7 @@ public class JetParsing extends AbstractJetParsing {
assert at(LBRACKET); assert at(LBRACKET);
PsiBuilder.Marker annotation = mark(); PsiBuilder.Marker annotation = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LBRACKET advance(); // LBRACKET
while (true) { while (true) {
@@ -356,7 +356,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(RBRACKET, "Expecting ']' to close an attribute annotation"); expect(RBRACKET, "Expecting ']' to close an attribute annotation");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
annotation.done(ATTRIBUTE_ANNOTATION); annotation.done(ATTRIBUTE_ANNOTATION);
} }
@@ -398,7 +398,7 @@ public class JetParsing extends AbstractJetParsing {
return NAMESPACE; return NAMESPACE;
} }
myBuilder.enableEols(); myBuilder.enableNewlines();
advance(); // LBRACE advance(); // LBRACE
PsiBuilder.Marker namespaceBody = mark(); PsiBuilder.Marker namespaceBody = mark();
@@ -406,7 +406,7 @@ public class JetParsing extends AbstractJetParsing {
namespaceBody.done(NAMESPACE_BODY); namespaceBody.done(NAMESPACE_BODY);
expect(RBRACE, "Expecting '}'"); expect(RBRACE, "Expecting '}'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
return NAMESPACE; return NAMESPACE;
} }
@@ -460,7 +460,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker classBody = mark(); PsiBuilder.Marker classBody = mark();
myBuilder.enableEols(); myBuilder.enableNewlines();
advance(); // LBRACE advance(); // LBRACE
while (!eof() && !at(RBRACE)) { while (!eof() && !at(RBRACE)) {
@@ -490,7 +490,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(RBRACE, "Expecting '}' to close enum class body"); expect(RBRACE, "Expecting '}' to close enum class body");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
classBody.done(CLASS_BODY); classBody.done(CLASS_BODY);
} }
@@ -535,7 +535,7 @@ public class JetParsing extends AbstractJetParsing {
assert at(LBRACE); assert at(LBRACE);
PsiBuilder.Marker body = mark(); PsiBuilder.Marker body = mark();
myBuilder.enableEols(); myBuilder.enableNewlines();
advance(); // LBRACE advance(); // LBRACE
while (!eof()) { while (!eof()) {
@@ -545,7 +545,7 @@ public class JetParsing extends AbstractJetParsing {
parseMemberDeclaration(); parseMemberDeclaration();
} }
expect(RBRACE, "Missing '}"); expect(RBRACE, "Missing '}");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
body.done(CLASS_BODY); body.done(CLASS_BODY);
} }
@@ -819,7 +819,7 @@ public class JetParsing extends AbstractJetParsing {
return true; return true;
} }
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting '('", TokenSet.create(RPAR, IDENTIFIER, COLON, LBRACE, EQ)); expect(LPAR, "Expecting '('", TokenSet.create(RPAR, IDENTIFIER, COLON, LBRACE, EQ));
if (setter) { if (setter) {
PsiBuilder.Marker setterParameter = mark(); PsiBuilder.Marker setterParameter = mark();
@@ -836,7 +836,7 @@ public class JetParsing extends AbstractJetParsing {
} }
if (!at(RPAR)) errorUntil("Expecting ')'", TokenSet.create(RPAR, COLON, LBRACE, EQ, EOL_OR_SEMICOLON)); if (!at(RPAR)) errorUntil("Expecting ')'", TokenSet.create(RPAR, COLON, LBRACE, EQ, EOL_OR_SEMICOLON));
expect(RPAR, "Expecting ')'", TokenSet.create(RPAR, COLON, LBRACE, EQ)); expect(RPAR, "Expecting ')'", TokenSet.create(RPAR, COLON, LBRACE, EQ));
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
if (at(COLON)) { if (at(COLON)) {
advance(); advance();
@@ -928,13 +928,13 @@ public class JetParsing extends AbstractJetParsing {
public void parseBlock() { public void parseBlock() {
PsiBuilder.Marker block = mark(); PsiBuilder.Marker block = mark();
myBuilder.enableEols(); myBuilder.enableNewlines();
expect(LBRACE, "Expecting '{' to open a block"); expect(LBRACE, "Expecting '{' to open a block");
myExpressionParsing.parseExpressions(); myExpressionParsing.parseExpressions();
expect(RBRACE, "Expecting '}"); expect(RBRACE, "Expecting '}");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
block.done(BLOCK); block.done(BLOCK);
} }
@@ -1038,7 +1038,7 @@ public class JetParsing extends AbstractJetParsing {
assert at(LPAR); assert at(LPAR);
PsiBuilder.Marker cons = mark(); PsiBuilder.Marker cons = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LPAR advance(); // LPAR
while (true) { while (true) {
@@ -1048,7 +1048,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(RPAR, "')' expected"); expect(RPAR, "')' expected");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
cons.done(PRIMARY_CONSTRUCTOR_PARAMETERS_LIST); cons.done(PRIMARY_CONSTRUCTOR_PARAMETERS_LIST);
} }
@@ -1107,7 +1107,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker list = mark(); PsiBuilder.Marker list = mark();
if (at(LT)) { if (at(LT)) {
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LT advance(); // LT
while (true) { while (true) {
@@ -1119,7 +1119,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(GT, "Missing '>'", recoverySet); expect(GT, "Missing '>'", recoverySet);
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
if (at(WHERE_KEYWORD)) { if (at(WHERE_KEYWORD)) {
parseTypeConstraintList(); parseTypeConstraintList();
@@ -1262,7 +1262,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker list = mark(); PsiBuilder.Marker list = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LT advance(); // LT
while (true) { while (true) {
@@ -1273,7 +1273,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(GT, "Expecting a '>'"); expect(GT, "Expecting a '>'");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
list.done(TYPE_ARGUMENT_LIST); list.done(TYPE_ARGUMENT_LIST);
} }
@@ -1289,7 +1289,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker tuple = mark(); PsiBuilder.Marker tuple = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LPAR advance(); // LPAR
if (!at(RPAR)) { if (!at(RPAR)) {
@@ -1318,7 +1318,7 @@ public class JetParsing extends AbstractJetParsing {
} }
expect(RPAR, "Expecting ')"); expect(RPAR, "Expecting ')");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
tuple.done(TUPLE_TYPE); tuple.done(TUPLE_TYPE);
} }
@@ -1333,7 +1333,7 @@ public class JetParsing extends AbstractJetParsing {
PsiBuilder.Marker functionType = mark(); PsiBuilder.Marker functionType = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
advance(); // LBRACE advance(); // LBRACE
int lastLPar = findLastBefore(TokenSet.create(LPAR), TokenSet.create(RBRACE, COLON), false); int lastLPar = findLastBefore(TokenSet.create(LPAR), TokenSet.create(RBRACE, COLON), false);
@@ -1348,7 +1348,7 @@ public class JetParsing extends AbstractJetParsing {
parseFunctionTypeContents(); parseFunctionTypeContents();
expect(RBRACE, "Expecting '}"); expect(RBRACE, "Expecting '}");
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
functionType.done(FUNCTION_TYPE); functionType.done(FUNCTION_TYPE);
} }
@@ -1382,7 +1382,7 @@ public class JetParsing extends AbstractJetParsing {
public void parseValueParameterList(boolean isFunctionTypeContents, TokenSet recoverySet) { public void parseValueParameterList(boolean isFunctionTypeContents, TokenSet recoverySet) {
PsiBuilder.Marker parameters = mark(); PsiBuilder.Marker parameters = mark();
myBuilder.disableEols(); myBuilder.disableNewlines();
expect(LPAR, "Expecting '(", recoverySet); expect(LPAR, "Expecting '(", recoverySet);
if (!at(RPAR)) { if (!at(RPAR)) {
@@ -1407,7 +1407,7 @@ public class JetParsing extends AbstractJetParsing {
} }
} }
expect(RPAR, "Expecting ')'", recoverySet); expect(RPAR, "Expecting ')'", recoverySet);
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
parameters.done(VALUE_PARAMETER_LIST); parameters.done(VALUE_PARAMETER_LIST);
} }
@@ -6,9 +6,8 @@ import com.intellij.lang.PsiBuilder;
* @author abreslav * @author abreslav
*/ */
public interface SemanticWhitespaceAwarePsiBuilder extends PsiBuilder { public interface SemanticWhitespaceAwarePsiBuilder extends PsiBuilder {
// TODO: Wrong name, should be something like "EOL before current token" boolean newlineBeforeCurrentToken();
boolean eolInLastWhitespace(); void disableNewlines();
void disableEols(); void enableNewlines();
void enableEols(); void restoreNewlinesState();
void restoreEolsState();
} }
@@ -14,23 +14,23 @@ public class SemanticWhitespaceAwarePsiBuilderAdapter extends PsiBuilderAdapter
} }
@Override @Override
public boolean eolInLastWhitespace() { public boolean newlineBeforeCurrentToken() {
return myBuilder.eolInLastWhitespace(); return myBuilder.newlineBeforeCurrentToken();
} }
@Override @Override
public void disableEols() { public void disableNewlines() {
myBuilder.disableEols(); myBuilder.disableNewlines();
} }
@Override @Override
public void enableEols() { public void enableNewlines() {
myBuilder.enableEols(); myBuilder.enableNewlines();
} }
@Override @Override
public void restoreEolsState() { public void restoreNewlinesState() {
myBuilder.restoreEolsState(); myBuilder.restoreNewlinesState();
} }
} }
@@ -1,7 +1,5 @@
package org.jetbrains.jet.lang.parsing; package org.jetbrains.jet.lang.parsing;
import com.intellij.psi.tree.IElementType;
/** /**
* @author abreslav * @author abreslav
*/ */
@@ -14,20 +12,20 @@ public class SemanticWhitespaceAwarePsiBuilderForByClause extends SemanticWhites
} }
@Override @Override
public void disableEols() { public void disableNewlines() {
super.disableEols(); super.disableNewlines();
stackSize++; stackSize++;
} }
@Override @Override
public void enableEols() { public void enableNewlines() {
super.enableEols(); super.enableNewlines();
stackSize++; stackSize++;
} }
@Override @Override
public void restoreEolsState() { public void restoreNewlinesState() {
super.restoreEolsState(); super.restoreNewlinesState();
stackSize--; stackSize--;
} }
@@ -12,16 +12,16 @@ import java.util.Stack;
* @author abreslav * @author abreslav
*/ */
public class SemanticWhitespaceAwarePsiBuilderImpl extends PsiBuilderAdapter implements SemanticWhitespaceAwarePsiBuilder { public class SemanticWhitespaceAwarePsiBuilderImpl extends PsiBuilderAdapter implements SemanticWhitespaceAwarePsiBuilder {
private final Stack<Boolean> eolsEnabled = new Stack<Boolean>(); private final Stack<Boolean> newlinesEnabled = new Stack<Boolean>();
public SemanticWhitespaceAwarePsiBuilderImpl(final PsiBuilder delegate) { public SemanticWhitespaceAwarePsiBuilderImpl(final PsiBuilder delegate) {
super(delegate); super(delegate);
eolsEnabled.push(true); newlinesEnabled.push(true);
} }
@Override @Override
public boolean eolInLastWhitespace() { public boolean newlineBeforeCurrentToken() {
if (!eolsEnabled.peek()) return false; if (!newlinesEnabled.peek()) return false;
if (eof()) return true; if (eof()) return true;
// TODO: maybe, memoize this somehow? // TODO: maybe, memoize this somehow?
for (int i = 1; i <= getCurrentOffset(); i++) { for (int i = 1; i <= getCurrentOffset(); i++) {
@@ -46,19 +46,19 @@ public class SemanticWhitespaceAwarePsiBuilderImpl extends PsiBuilderAdapter imp
} }
@Override @Override
public void disableEols() { public void disableNewlines() {
eolsEnabled.push(false); newlinesEnabled.push(false);
} }
@Override @Override
public void enableEols() { public void enableNewlines() {
eolsEnabled.push(true); newlinesEnabled.push(true);
} }
@Override @Override
public void restoreEolsState() { public void restoreNewlinesState() {
assert eolsEnabled.size() > 1; assert newlinesEnabled.size() > 1;
eolsEnabled.pop(); newlinesEnabled.pop();
} }
} }