Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2006, 2008 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.core.dom;
 
 import java.util.List;
 
Internal AST visitor for propagating syntax errors.
 
 	private static final int NOTHING = -1;
 	{
 		this..put(Block.classnew int[]{.});
 	}
 
 	private boolean[] usedOrIrrelevantProblems;
 
 	private int blockDepth = 0;
 	private int lastEnd;
 
 	private int[] insertedTokensKind;
 	private int[] insertedTokensPosition;
 	private boolean[] insertedTokensFlagged;
 
 	private boolean[] removedTokensFlagged;
 	private boolean[] replacedTokensFlagged;
 
 	private Vector stack = new Vector();

Noreference:
This method is not intended to be referenced by clients.
 
 		// visit Javadoc.tags() as well
 		this. = problems;
 		this. = new boolean[problems.length];
 
 		this. = data;
		if(this. != null) {
			int length = 0;
			for (int i = 0; i < data.insertedTokensPtr + 1; i++) {
				length += data.insertedTokens[i].length;
			}
			this. = new int[length];
			this. = new int[length];
			this. = new boolean[length];
			int tokenCount = 0;
			for (int i = 0; i < data.insertedTokensPtr + 1; i++) {
				for (int j = 0; j < data.insertedTokens[i].lengthj++) {
					this.[tokenCount] = data.insertedTokens[i][j];
					this.[tokenCount] = data.insertedTokensPosition[i];
					tokenCount++;
				}
			}
			if(data.removedTokensPtr != -1) {
				this. = new boolean[data.removedTokensPtr + 1];
			}
			if(data.replacedTokensPtr != -1) {
				this. = new boolean[data.replacedTokensPtr + 1];
			}
		}
	}
	public void endVisit(Block node) {
		this.--;
		if(this. <= 0) {
		}
		super.endVisit(node);
	}
	public boolean visit(Block node) {
		boolean visitChildren = super.visit(node);
		this.++;
		return visitChildren;
	}
	protected boolean visitNode(ASTNode node) {
		if(this. > 0) {
			int start = node.getStartPosition();
			int end = start + node.getLength() - 1;
			// continue to visit the node only if it contains tokens modifications
			if(this. != null) {
				for (int i = 0; i < this..lengthi++) {
					if(this.[i] >= start &&
							this.[i] <= end) {
						return true;
					}
				}
			}
			if(this. != null) {
				for (int i = 0; i <= this..i++) {
					if(this..[i] >= start &&
							this..[i] <= end) {
						return true;
					}
				}
			}
			if(this. != null) {
				for (int i = 0; i <= this..i++) {
					if(this..[i] >= start &&
							this..[i] <= end) {
						return true;
					}
				}
			}
			return false;
		}
		return true;
	}
	protected void endVisitNode(ASTNode node) {
		int start = node.getStartPosition();
		int end = start + node.getLength() - 1;
		// is inside diet part of the ast
		if(this. < 1) {
			switch (node.getNodeType()) {
					if(markIncludedProblems(startend)) {
					}
					break;
			}
else {
			if(this. != null) {
				if(this. != end) {
				}
				this..add(node);
			}
			if(this. != null) {
				for (int i = 0; i <= this..i++) {
					if(!this.[i] &&
							this..[i] >= start &&
							this..[i] <= end) {
						this.[i] = true;
					}
				}
			}
			if(this. != null) {
				for (int i = 0; i <= this..i++) {
					if(!this.[i] &&
							this..[i] >= start &&
							this..[i] <= end) {
						this.[i] = true;
					}
				}
			}
		}
		this. = end;
	}
	private void flagNodeWithInsertedTokens() {
		if(this. != null && this..length > 0) {
			int s = this..size();
			for (int i = s - 1; i > -1; i--) {
			}
			for (int i = 0; i < si++) {
			}
			this. = new Vector();
		}
	}
	private boolean flagNodesWithInsertedTokensAtEnd(ASTNode node) {
		int[] expectedEndingToken = this..get(node.getClass());
		if (expectedEndingToken != null) {
			int start = node.getStartPosition();
			int end = start + node.getLength() - 1;
			boolean flagParent = false;
			done : for (int i = this..length - 1; i > -1 ; i--) {
				if(!this.[i] &&
						this.[i] == end){
					this.[i] = true;
					for (int j = 0; j < expectedEndingToken.lengthj++) {
						if(expectedEndingToken[j] == this.[i]) {
							break done;
						}
					}
					flagParent = true;
				}
			}
			if(flagParent) {
				ASTNode parent = node.getParent();
				while (parent != null) {
					parent.setFlags(node.getFlags() | .);
					if((parent.getStartPosition() + parent.getLength() - 1) != end) {
						parent = null;
else {
						parent = parent.getParent();
					}
				}
			}
		}
		return true;
	}
	private boolean flagNodesWithInsertedTokensInside(ASTNode node) {
		int start = node.getStartPosition();
		int end = start + node.getLength() - 1;
		for (int i = 0; i < this..lengthi++) {
			if(!this.[i] &&
					start <= this.[i] &&
					this.[i] < end){
				this.[i] = true;
			}
		}
		return true;
	}
	private boolean markIncludedProblems(int startint end) {
		boolean foundProblems = false;
		next: for (int i = 0, max = this..lengthi < maxi++) {
			CategorizedProblem problem = this.[i];
			if(this.[i]) continue next;
			switch(problem.getID()) {
					break;
				default:
					this.[i] = true;
					continue next;
			}
			int problemStart = problem.getSourceStart();
			int problemEnd = problem.getSourceEnd();
			if ((start <= problemStart) && (problemStart <= end) ||
					(start <= problemEnd) && (problemEnd <= end)) {
				this.[i] = true;
				foundProblems = true;
			}
		}
		return foundProblems;
	}
	public void endVisit(ExpressionStatement node) {
		if ((node.getFlags() & .) == 0) return;
		Expression expression = node.getExpression();
		if (expression.getNodeType() == .) {
			Assignment assignment = (Assignmentexpression;
			Expression rightHandSide = assignment.getRightHandSide();
			if (rightHandSide.getNodeType() == .) {
				SimpleName simpleName = (SimpleNamerightHandSide;
				if (CharOperation.equals(.simpleName.getIdentifier().toCharArray())) {
					Expression expression2 =  assignment.getLeftHandSide();
					// unparent the expression to add it in the expression stateemnt
					expression2.setParent(nullnull);
					expression2.setFlags(expression2.getFlags() | .);
					node.setExpression(expression2);
				}
			}
		}
	}
	public void endVisit(ForStatement node) {
		List initializers = node.initializers();
		if (initializers.size() == 1) {
			Expression expression = (Expressioninitializers.get(0);
				VariableDeclarationExpression variableDeclarationExpression = (VariableDeclarationExpressionexpression;
				List fragments = variableDeclarationExpression.fragments();
				for (int i = 0, max = fragments.size(); i <maxi++) {
					SimpleName simpleName = fragment.getName();
					if (CharOperation.equals(.simpleName.getIdentifier().toCharArray())) {
						fragments.remove(fragment);
						variableDeclarationExpression.setFlags(variableDeclarationExpression.getFlags() | .);
					}
				}
			}
		}
	}
	public void endVisit(VariableDeclarationStatement node) {
		List fragments = node.fragments();
		for (int i = 0, max = fragments.size(); i <maxi++) {
			Expression expression = fragment.getInitializer();
			if (expression == nullcontinue;
			if ((expression.getFlags() & .) == 0) continue;
			if (expression.getNodeType() == .) {
				SimpleName simpleName = (SimpleNameexpression;
				if (CharOperation.equals(.simpleName.getIdentifier().toCharArray())) {
					fragment.setInitializer(null);
					fragment.setFlags(fragment.getFlags() | .);
				}
			}
		}
	}
	public void endVisit(NormalAnnotation node) {
		// is inside diet part of the ast
		if(this. < 1) {
			List values = node.values();
			int size = values.size();
			if (size > 0) {
				MemberValuePair lastMemberValuePair = (MemberValuePair)values.get(size - 1);
				int annotationEnd = node.getStartPosition() + node.getLength();
				int lastMemberValuePairEnd = lastMemberValuePair.getStartPosition() + lastMemberValuePair.getLength();
				if (annotationEnd == lastMemberValuePairEnd) {
				}
			}
		}
	}
	public void endVisit(SingleMemberAnnotation node) {
		// is inside diet part of the ast
		if(this. < 1) {
			Expression value = node.getValue();
			int annotationEnd = node.getStartPosition() + node.getLength();
			int valueEnd = value.getStartPosition() + value.getLength();
			if (annotationEnd == valueEnd) {
			}
		}
	}
New to GrepCode? Check out our FAQ X