1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Code simplification.

This commit is contained in:
Sergey Prigogin 2012-03-02 19:24:51 -08:00
parent b921093240
commit 304ce2dac3
3 changed files with 37 additions and 37 deletions

View file

@ -3867,7 +3867,7 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
} }
private int getNextTokenOffset() { private int getNextTokenOffset() {
localScanner.resetTo(scribe.scanner.getCurrentPosition(), scribe.scannerEndPosition - 1); localScanner.resetTo(scribe.scanner.getCurrentPosition(), scribe.scannerEndPosition);
localScanner.getNextToken(); localScanner.getNextToken();
return localScanner.getCurrentTokenStartPosition(); return localScanner.getCurrentTokenStartPosition();
} }
@ -4030,12 +4030,12 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
if (fileLocation == null) if (fileLocation == null)
return false; return false;
int pos = fileLocation.getNodeOffset() + fileLocation.getNodeLength(); int pos = fileLocation.getNodeOffset() + fileLocation.getNodeLength();
localScanner.resetTo(pos, scribe.scannerEndPosition - 1); localScanner.resetTo(pos, scribe.scannerEndPosition);
Token token= localScanner.nextToken(); Token token= localScanner.nextToken();
if (token == null || token.getType() != Token.tSEMI) if (token == null || token.getType() != Token.tSEMI)
return false; return false;
// Check if the semicolon is on the same line. // Check if the semicolon is on the same line.
localScanner.resetTo(pos, token.getOffset() - 1); localScanner.resetTo(pos, token.getOffset());
int c; int c;
while ((c = localScanner.getNextChar()) != -1) { while ((c = localScanner.getNextChar()) != -1) {
if (c == '\n') if (c == '\n')
@ -4238,7 +4238,7 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
} }
private int peekTokenAtPosition(int pos) { private int peekTokenAtPosition(int pos) {
localScanner.resetTo(pos, scribe.scannerEndPosition - 1); localScanner.resetTo(pos, scribe.scannerEndPosition);
int token = localScanner.getNextToken(); int token = localScanner.getNextToken();
while (token == Token.tBLOCKCOMMENT || token == Token.tLINECOMMENT) { while (token == Token.tBLOCKCOMMENT || token == Token.tLINECOMMENT) {
token = localScanner.getNextToken(); token = localScanner.getNextToken();
@ -4254,7 +4254,7 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor,
if (!ignoreSkip && scribe.shouldSkip(scribe.scanner.getCurrentPosition())) { if (!ignoreSkip && scribe.shouldSkip(scribe.scanner.getCurrentPosition())) {
return Token.tBADCHAR; return Token.tBADCHAR;
} }
localScanner.resetTo(scribe.scanner.getCurrentPosition(), scribe.scannerEndPosition - 1); localScanner.resetTo(scribe.scanner.getCurrentPosition(), scribe.scannerEndPosition);
int token = localScanner.getNextToken(); int token = localScanner.getNextToken();
while (token == Token.tBLOCKCOMMENT || token == Token.tLINECOMMENT) { while (token == Token.tBLOCKCOMMENT || token == Token.tLINECOMMENT) {
token = localScanner.getNextToken(); token = localScanner.getNextToken();

View file

@ -786,7 +786,7 @@ public class Scribe {
skipOverInactive= false; skipOverInactive= false;
scannerEndPosition= startOffset + length; scannerEndPosition= startOffset + length;
try { try {
scanner.resetTo(Math.max(startOffset, currentPosition), startOffset + length - 1); scanner.resetTo(Math.max(startOffset, currentPosition), startOffset + length);
int parenLevel= 0; int parenLevel= 0;
while (true) { while (true) {
boolean hasWhitespace= printComment(); boolean hasWhitespace= printComment();
@ -804,7 +804,7 @@ public class Scribe {
} }
switch (currentToken.type) { switch (currentToken.type) {
case Token.tLBRACE: { case Token.tLBRACE: {
scanner.resetTo(scanner.getCurrentTokenStartPosition(), scannerEndPosition - 1); scanner.resetTo(scanner.getCurrentTokenStartPosition(), scannerEndPosition);
formatOpeningBrace(preferences.brace_position_for_block, formatOpeningBrace(preferences.brace_position_for_block,
preferences.insert_space_before_opening_brace_in_block); preferences.insert_space_before_opening_brace_in_block);
if (preferences.indent_statements_compare_to_block) { if (preferences.indent_statements_compare_to_block) {
@ -813,7 +813,7 @@ public class Scribe {
break; break;
} }
case Token.tRBRACE: { case Token.tRBRACE: {
scanner.resetTo(scanner.getCurrentTokenStartPosition(), scannerEndPosition - 1); scanner.resetTo(scanner.getCurrentTokenStartPosition(), scannerEndPosition);
if (preferences.indent_statements_compare_to_block) { if (preferences.indent_statements_compare_to_block) {
unIndent(); unIndent();
} }
@ -868,7 +868,7 @@ public class Scribe {
} }
} finally { } finally {
scannerEndPosition= savedScannerEndPos; scannerEndPosition= savedScannerEndPos;
scanner.resetTo(startOffset + length, scannerEndPosition - 1); scanner.resetTo(startOffset + length, scannerEndPosition);
skipOverInactive= savedSkipOverInactive; skipOverInactive= savedSkipOverInactive;
preserveNewLines= savedPreserveNL; preserveNewLines= savedPreserveNL;
} }
@ -932,7 +932,7 @@ public class Scribe {
int currentTokenStartPosition= scanner.getCurrentTokenStartPosition(); int currentTokenStartPosition= scanner.getCurrentTokenStartPosition();
int currentTokenEndPosition= scanner.getCurrentTokenEndPosition() + 1; int currentTokenEndPosition= scanner.getCurrentTokenEndPosition() + 1;
scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition - 1); scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition);
int currentCharacter; int currentCharacter;
boolean isNewLine= false; boolean isNewLine= false;
int start= currentTokenStartPosition; int start= currentTokenStartPosition;
@ -1002,7 +1002,7 @@ public class Scribe {
} }
lastNumberOfNewLines= 0; lastNumberOfNewLines= 0;
needSpace= false; needSpace= false;
scanner.resetTo(currentTokenEndPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenEndPosition, scannerEndPosition);
if (forceNewLine) { if (forceNewLine) {
startNewLine(); startNewLine();
} }
@ -1012,7 +1012,7 @@ public class Scribe {
int currentTokenStartPosition= scanner.getCurrentTokenStartPosition(); int currentTokenStartPosition= scanner.getCurrentTokenStartPosition();
int currentTokenEndPosition= scanner.getCurrentTokenEndPosition() + 1; int currentTokenEndPosition= scanner.getCurrentTokenEndPosition() + 1;
scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition - 1); scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition);
int currentCharacter; int currentCharacter;
boolean isNewLine= false; boolean isNewLine= false;
int nextCharacterStart= currentTokenStartPosition; int nextCharacterStart= currentTokenStartPosition;
@ -1052,7 +1052,7 @@ public class Scribe {
if (currentAlignment != null) { if (currentAlignment != null) {
indentationLevel= currentAlignment.breakIndentationLevel; indentationLevel= currentAlignment.breakIndentationLevel;
} }
scanner.resetTo(currentTokenEndPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenEndPosition, scannerEndPosition);
} }
public void printEndOfTranslationUnit() { public void printEndOfTranslationUnit() {
@ -1093,7 +1093,7 @@ public class Scribe {
inactivePos.getOffset() + inactivePos.getLength()); inactivePos.getOffset() + inactivePos.getLength());
if (startOffset < endOffset) { if (startOffset < endOffset) {
int savedIndentLevel= indentationLevel; int savedIndentLevel= indentationLevel;
scanner.resetTo(scanner.getCurrentTokenStartPosition(), scanner.eofPosition - 1); scanner.resetTo(scanner.getCurrentTokenStartPosition(), scanner.eofPosition);
printRaw(startOffset, endOffset - startOffset); printRaw(startOffset, endOffset - startOffset);
while (indentationLevel > savedIndentLevel) { while (indentationLevel > savedIndentLevel) {
unIndent(); unIndent();
@ -1101,7 +1101,7 @@ public class Scribe {
while (indentationLevel < savedIndentLevel) { while (indentationLevel < savedIndentLevel) {
indent(); indent();
} }
scanner.resetTo(endOffset, scanner.eofPosition - 1); scanner.resetTo(endOffset, scanner.eofPosition);
continue; continue;
} }
} }
@ -1165,7 +1165,7 @@ public class Scribe {
break; break;
} }
} }
scanner.resetTo(currentTokenPosition, scanner.eofPosition - 1); scanner.resetTo(currentTokenPosition, scanner.eofPosition);
scanner.getNextToken(); // Get current token again to restore the scanner state. scanner.getNextToken(); // Get current token again to restore the scanner state.
} }
} }
@ -1178,10 +1178,10 @@ public class Scribe {
currentTokenStartPosition = tokenStartPosition; currentTokenStartPosition = tokenStartPosition;
preserveEmptyLines(lines, currentTokenStartPosition); preserveEmptyLines(lines, currentTokenStartPosition);
addDeleteEdit(currentTokenStartPosition, whitespacesEndPosition); addDeleteEdit(currentTokenStartPosition, whitespacesEndPosition);
scanner.resetTo(scanner.getCurrentPosition(), scannerEndPosition - 1); scanner.resetTo(scanner.getCurrentPosition(), scannerEndPosition);
return hasWhitespace; return hasWhitespace;
} }
scanner.resetTo(currentTokenStartPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenStartPosition, scannerEndPosition);
return hasWhitespace; return hasWhitespace;
} }
// If one or several new lines are consumed, following comments // If one or several new lines are consumed, following comments
@ -1190,7 +1190,7 @@ public class Scribe {
if (hasComment) { if (hasComment) {
printNewLine(tokenStartPosition); printNewLine(tokenStartPosition);
} }
scanner.resetTo(currentTokenStartPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenStartPosition, scannerEndPosition);
return hasWhitespace; return hasWhitespace;
} }
// Delete consumed white spaces // Delete consumed white spaces
@ -1290,7 +1290,7 @@ public class Scribe {
break; break;
default: default:
// step back one token // step back one token
scanner.resetTo(currentTokenStartPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenStartPosition, scannerEndPosition);
return hasWhitespace; return hasWhitespace;
} }
} }
@ -1314,7 +1314,7 @@ public class Scribe {
private void printLineComment() { private void printLineComment() {
int currentTokenStartPosition = scanner.getCurrentTokenStartPosition(); int currentTokenStartPosition = scanner.getCurrentTokenStartPosition();
int currentTokenEndPosition = scanner.getCurrentTokenEndPosition() + 1; int currentTokenEndPosition = scanner.getCurrentTokenEndPosition() + 1;
scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition - 1); scanner.resetTo(currentTokenStartPosition, currentTokenEndPosition);
int currentCharacter; int currentCharacter;
int start = currentTokenStartPosition; int start = currentTokenStartPosition;
int nextCharacterStart = currentTokenStartPosition; int nextCharacterStart = currentTokenStartPosition;
@ -1437,7 +1437,7 @@ public class Scribe {
} }
} }
resetAt(location); resetAt(location);
scanner.resetTo(location.inputOffset, scanner.eofPosition - 1); scanner.resetTo(location.inputOffset, scanner.eofPosition);
} }
needSpace = false; needSpace = false;
@ -1463,7 +1463,7 @@ public class Scribe {
indentationLevel = currentAlignment.breakIndentationLevel; indentationLevel = currentAlignment.breakIndentationLevel;
} }
} }
scanner.resetTo(currentTokenEndPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenEndPosition, scannerEndPosition);
} }
public void printEmptyLines(int linesNumber) { public void printEmptyLines(int linesNumber) {
@ -1721,7 +1721,7 @@ public class Scribe {
} }
// Reset scribe/scanner to restart at this given location // Reset scribe/scanner to restart at this given location
resetAt(currentAlignment.location); resetAt(currentAlignment.location);
scanner.resetTo(currentAlignment.location.inputOffset, scanner.eofPosition - 1); scanner.resetTo(currentAlignment.location.inputOffset, scanner.eofPosition);
// Clean alignment chunkKind so it will think it is a new chunk again // Clean alignment chunkKind so it will think it is a new chunk again
currentAlignment.chunkKind= 0; currentAlignment.chunkKind= 0;
currentAlignmentException= null; currentAlignmentException= null;
@ -1730,7 +1730,7 @@ public class Scribe {
void redoMemberAlignment(AlignmentException e) { void redoMemberAlignment(AlignmentException e) {
// Reset scribe/scanner to restart at this given location // Reset scribe/scanner to restart at this given location
resetAt(memberAlignment.location); resetAt(memberAlignment.location);
scanner.resetTo(memberAlignment.location.inputOffset, scanner.eofPosition - 1); scanner.resetTo(memberAlignment.location.inputOffset, scanner.eofPosition);
// Clean alignment chunkKind so it will think it is a new chunk again // Clean alignment chunkKind so it will think it is a new chunk again
memberAlignment.chunkKind= 0; memberAlignment.chunkKind= 0;
currentAlignmentException= null; currentAlignmentException= null;
@ -1911,7 +1911,7 @@ public class Scribe {
} }
} }
// Step back one token // Step back one token
scanner.resetTo(currentTokenStartPosition, scannerEndPosition - 1); scanner.resetTo(currentTokenStartPosition, scannerEndPosition);
return !isFirstModifier; return !isFirstModifier;
} }
} }
@ -1937,7 +1937,7 @@ public class Scribe {
} }
printRaw(skipStart, tokenStart - skipStart); printRaw(skipStart, tokenStart - skipStart);
currentToken= scanner.nextToken(); currentToken= scanner.nextToken();
scanner.resetTo(tokenStart, scannerEndPosition - 1); scanner.resetTo(tokenStart, scannerEndPosition);
return true; return true;
} }
@ -2018,7 +2018,7 @@ public class Scribe {
} }
} }
} finally { } finally {
scanner.resetTo(startPosition, scannerEndPosition - 1); scanner.resetTo(startPosition, scannerEndPosition);
} }
return -1; return -1;
} }
@ -2036,10 +2036,10 @@ public class Scribe {
public int findToken(int tokenType, int startPosition, int endPosition) { public int findToken(int tokenType, int startPosition, int endPosition) {
int currentPosition= scanner.getCurrentPosition(); int currentPosition= scanner.getCurrentPosition();
try { try {
scanner.resetTo(startPosition, scannerEndPosition - 1); scanner.resetTo(startPosition, scannerEndPosition);
return findToken(tokenType, endPosition); return findToken(tokenType, endPosition);
} finally { } finally {
scanner.resetTo(currentPosition, scannerEndPosition - 1); scanner.resetTo(currentPosition, scannerEndPosition);
} }
} }
@ -2084,7 +2084,7 @@ public class Scribe {
} }
if (offset > currentPosition) { if (offset > currentPosition) {
printRaw(currentPosition, offset - currentPosition); printRaw(currentPosition, offset - currentPosition);
scanner.resetTo(offset, scannerEndPosition - 1); scanner.resetTo(offset, scannerEndPosition);
} }
while (fSkippedIndentations > 0) { while (fSkippedIndentations > 0) {
indent(); indent();
@ -2098,7 +2098,7 @@ public class Scribe {
space(); space();
} }
printRaw(nextPosition, offset - nextPosition); printRaw(nextPosition, offset - nextPosition);
scanner.resetTo(offset, scannerEndPosition - 1); scanner.resetTo(offset, scannerEndPosition);
} }
} }
} }

View file

@ -55,21 +55,21 @@ public class Scanner extends SimpleScanner {
/** /**
* Reset scanner to given inclusive start and end offsets * Reset scanner to given inclusive start and end offsets
* @param start inclusive start offset * @param start inclusive start offset
* @param end inclusive end offset * @param end exclusive end offset
*/ */
public void resetTo(int start, int end) { public void resetTo(int start, int end) {
Reader reader; Reader reader;
if (end >= source.length - 1) { if (end >= source.length) {
reader= new CharArrayReader(source); reader= new CharArrayReader(source);
} else { } else {
reader= new CharArrayReader(source, 0, Math.min(source.length, end + 1)); reader= new CharArrayReader(source, 0, Math.min(source.length, end));
} }
fContext= new ScannerContext().initialize(reader, start); fContext= new ScannerContext().initialize(reader, start);
startPosition= start; startPosition= start;
if (source != null && source.length < end) { if (source != null && source.length < end) {
eofPosition = source.length; eofPosition = source.length;
} else { } else {
eofPosition = end < Integer.MAX_VALUE ? end + 1 : end; eofPosition = end;
} }
} }
@ -152,7 +152,7 @@ public class Scanner extends SimpleScanner {
} else if (diff == 0) { } else if (diff == 0) {
// no-op // no-op
} else if (diff > fTokenBuffer.length()) { } else if (diff > fTokenBuffer.length()) {
resetTo(nextCharacterStart, source.length - 1); resetTo(nextCharacterStart, source.length);
} else /* if (diff <= fTokenBuffer.length()) */ { } else /* if (diff <= fTokenBuffer.length()) */ {
while (diff > 0) { while (diff > 0) {
if (fTokenBuffer.length() > 0) { if (fTokenBuffer.length() > 0) {