blob: 844cd6f033bcca6e6af02dd24d3dae4781a8f933 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.compiler.parser;
public class RecoveryScannerData {
public int insertedTokensPtr = -1;
public int[][] insertedTokens;
public int[] insertedTokensPosition;
public boolean[] insertedTokenUsed;
public int replacedTokensPtr = -1;
public int[][] replacedTokens;
public int[] replacedTokensStart;
public int[] replacedTokensEnd;
public boolean[] replacedTokenUsed;
public int removedTokensPtr = -1;
public int[] removedTokensStart;
public int[] removedTokensEnd;
public boolean[] removedTokenUsed;
public RecoveryScannerData removeUnused() {
if(this.insertedTokens != null) {
int newInsertedTokensPtr = -1;
for (int i = 0; i <= this.insertedTokensPtr; i++) {
if(this.insertedTokenUsed[i]) {
newInsertedTokensPtr++;
this.insertedTokens[newInsertedTokensPtr] = this.insertedTokens[i];
this.insertedTokensPosition[newInsertedTokensPtr] = this.insertedTokensPosition[i];
this.insertedTokenUsed[newInsertedTokensPtr] = this.insertedTokenUsed[i];
}
}
this.insertedTokensPtr = newInsertedTokensPtr;
}
if(this.replacedTokens != null) {
int newReplacedTokensPtr = -1;
for (int i = 0; i <= this.replacedTokensPtr; i++) {
if(this.replacedTokenUsed[i]) {
newReplacedTokensPtr++;
this.replacedTokens[newReplacedTokensPtr] = this.replacedTokens[i];
this.replacedTokensStart[newReplacedTokensPtr] = this.replacedTokensStart[i];
this.replacedTokensEnd[newReplacedTokensPtr] = this.replacedTokensEnd[i];
this.replacedTokenUsed[newReplacedTokensPtr] = this.replacedTokenUsed[i];
}
}
this.replacedTokensPtr = newReplacedTokensPtr;
}
if(this.removedTokensStart != null) {
int newRemovedTokensPtr = -1;
for (int i = 0; i <= this.removedTokensPtr; i++) {
if(this.removedTokenUsed[i]) {
newRemovedTokensPtr++;
this.removedTokensStart[newRemovedTokensPtr] = this.removedTokensStart[i];
this.removedTokensEnd[newRemovedTokensPtr] = this.removedTokensEnd[i];
this.removedTokenUsed[newRemovedTokensPtr] = this.removedTokenUsed[i];
}
}
this.removedTokensPtr = newRemovedTokensPtr;
}
return this;
}
}