Lines 11-20
Link Here
|
11 |
|
11 |
|
12 |
package org.eclipse.jdt.core.dom; |
12 |
package org.eclipse.jdt.core.dom; |
13 |
|
13 |
|
|
|
14 |
import java.util.List; |
14 |
import java.util.Vector; |
15 |
import java.util.Vector; |
15 |
|
16 |
|
16 |
import org.eclipse.jdt.core.compiler.CategorizedProblem; |
17 |
import org.eclipse.jdt.core.compiler.CategorizedProblem; |
|
|
18 |
import org.eclipse.jdt.core.compiler.CharOperation; |
17 |
import org.eclipse.jdt.core.compiler.IProblem; |
19 |
import org.eclipse.jdt.core.compiler.IProblem; |
|
|
20 |
import org.eclipse.jdt.internal.compiler.parser.RecoveryScanner; |
18 |
import org.eclipse.jdt.internal.compiler.parser.RecoveryScannerData; |
21 |
import org.eclipse.jdt.internal.compiler.parser.RecoveryScannerData; |
19 |
import org.eclipse.jdt.internal.compiler.parser.TerminalTokens; |
22 |
import org.eclipse.jdt.internal.compiler.parser.TerminalTokens; |
20 |
import org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToIntArray; |
23 |
import org.eclipse.jdt.internal.compiler.util.HashtableOfObjectToIntArray; |
Lines 335-338
Link Here
|
335 |
} |
338 |
} |
336 |
return foundProblems; |
339 |
return foundProblems; |
337 |
} |
340 |
} |
|
|
341 |
|
342 |
public void endVisit(ExpressionStatement node) { |
343 |
endVisitNode(node); |
344 |
if ((node.getFlags() & ASTNode.RECOVERED) == 0) return; |
345 |
Expression expression = node.getExpression(); |
346 |
if (expression.getNodeType() == ASTNode.ASSIGNMENT) { |
347 |
Assignment assignment = (Assignment) expression; |
348 |
Expression rightHandSide = assignment.getRightHandSide(); |
349 |
if (rightHandSide.getNodeType() == ASTNode.SIMPLE_NAME) { |
350 |
SimpleName simpleName = (SimpleName) rightHandSide; |
351 |
if (CharOperation.equals(RecoveryScanner.FAKE_IDENTIFIER, simpleName.getIdentifier().toCharArray())) { |
352 |
Expression expression2 = assignment.getLeftHandSide(); |
353 |
// unparent the expression to add it in the expression stateemnt |
354 |
expression2.setParent(null, Assignment.LEFT_HAND_SIDE_PROPERTY); |
355 |
expression2.setFlags(expression2.getFlags() | ASTNode.RECOVERED); |
356 |
node.setExpression(expression2); |
357 |
} |
358 |
} |
359 |
} |
360 |
} |
361 |
|
362 |
public void endVisit(VariableDeclarationStatement node) { |
363 |
endVisitNode(node); |
364 |
List fragments = node.fragments(); |
365 |
for (int i = 0, max = fragments.size(); i <max; i++) { |
366 |
VariableDeclarationFragment fragment = (VariableDeclarationFragment) fragments.get(i); |
367 |
Expression expression = fragment.getInitializer(); |
368 |
if (expression == null) continue; |
369 |
if ((expression.getFlags() & ASTNode.RECOVERED) == 0) continue; |
370 |
if (expression.getNodeType() == ASTNode.SIMPLE_NAME) { |
371 |
SimpleName simpleName = (SimpleName) expression; |
372 |
if (CharOperation.equals(RecoveryScanner.FAKE_IDENTIFIER, simpleName.getIdentifier().toCharArray())) { |
373 |
fragment.setInitializer(null); |
374 |
fragment.setFlags(node.getFlags() | ASTNode.RECOVERED); |
375 |
} |
376 |
} |
377 |
} |
378 |
} |
338 |
} |
379 |
} |