Source:
<code>public static boolean declaredBefore(Object obj, IASTNode node, boolean indexBased) { <START> if (node == null) <END> return true; final int pointOfRef= ((ASTNode) node).getOffset() * 2; ASTNode nd = null; if (obj instanceof ICPPSpecialization) { obj = ((ICPPSpecialization) obj).getSpecializedBinding(); } int pointOfDecl= -1; if (obj instanceof ICPPInternalBinding) { ICPPInternalBinding cpp = (ICPPInternalBinding) obj; IASTNode[] n = cpp.getDeclarations(); if (n != null && n.length > 0) { nd = (ASTNode) n[0]; } ASTNode def = (ASTNode) cpp.getDefinition(); if (def != null && (nd == null || def.getOffset() < nd.getOffset())) { nd = def; } if (nd == null) return true; } else { if (indexBased && obj instanceof IASTName) { IBinding b= ((IASTName) obj).getPreBinding(); if (b instanceof ICPPInternalBinding) { if (acceptDeclaredAfter((ICPPInternalBinding) b)) return true; } } if (obj instanceof ASTNode) { nd = (ASTNode) obj; } else if (obj instanceof ICPPUsingDirective) { pointOfDecl= ((ICPPUsingDirective) obj).getPointOfDeclaration() * 2; } } if (pointOfDecl < 0) { if (nd != null) { pointOfDecl = getPointOfDeclaration(nd); } else if (obj instanceof IIndexBinding && !isUsingPromiscuousBindingResolution()) { IIndexBinding indexBinding = ((IIndexBinding) obj); if (indexBinding instanceof ICPPMethod && ((ICPPMethod) indexBinding).isImplicit()) { return true; } IASTTranslationUnit tu = node.getTranslationUnit(); IIndexFileSet indexFileSet = tu.getIndexFileSet(); return (indexFileSet != null && indexFileSet.containsDeclaration(indexBinding)); } } return pointOfDecl < pointOfRef; }</code><technical_language>nice preserve leading tabs</technical_language>

Target:
public static boolean declaredBefore(Object obj, IASTNode node, boolean indexBased) { if (node == null) return true; final int pointOfRef= ((ASTNode) node).getOffset() * 2; ASTNode nd = null; if (obj instanceof ICPPSpecialization) { obj = ((ICPPSpecialization) obj).getSpecializedBinding(); } int pointOfDecl= -1; if (obj instanceof ICPPInternalBinding) { ICPPInternalBinding cpp = (ICPPInternalBinding) obj; IASTNode[] n = cpp.getDeclarations(); if (n != null && n.length > 0) { nd = (ASTNode) n[0]; } ASTNode def = (ASTNode) cpp.getDefinition(); if (def != null && (nd == null || def.getOffset() < nd.getOffset())) { nd = def; } if (nd == null) return true; } else { if (indexBased && obj instanceof IASTName) { IBinding b= ((IASTName) obj).getPreBinding(); if (b instanceof ICPPInternalBinding) { if (acceptDeclaredAfter((ICPPInternalBinding) b)) return true; } } if (obj instanceof ASTNode) { nd = (ASTNode) obj; } else if (obj instanceof ICPPUsingDirective) { pointOfDecl= ((ICPPUsingDirective) obj).getPointOfDeclaration() * 2; } } if (pointOfDecl < 0) { if (nd != null) { pointOfDecl = getPointOfDeclaration(nd); } else if (obj instanceof IIndexBinding && !isUsingPromiscuousBindingResolution()) { IIndexBinding indexBinding = (IIndexBinding) obj; if (indexBinding instanceof ICPPMethod && ((ICPPMethod) indexBinding).isImplicit()) { return true; } IASTTranslationUnit tu = node.getTranslationUnit(); IIndexFileSet indexFileSet = tu.getIndexFileSet(); return (indexFileSet != null && indexFileSet.containsDeclaration(indexBinding)); } } return pointOfDecl < pointOfRef; }