/*******************************************************************************
* 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;
}
}