1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 03:15:33 +02:00

[98375] Added handling of content assist in condition expressions.

This commit is contained in:
Doug Schaefer 2005-06-21 19:52:37 +00:00
parent 561a996910
commit e5876952df

View file

@ -863,8 +863,13 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser {
if (LT(1) == IToken.tQUESTION) { if (LT(1) == IToken.tQUESTION) {
consume(IToken.tQUESTION); consume(IToken.tQUESTION);
IASTExpression secondExpression = expression(); IASTExpression secondExpression = expression();
consume(IToken.tCOLON); IASTExpression thirdExpression = null;
IASTExpression thirdExpression = assignmentExpression();
if (LT(1) != IToken.tEOC) {
consume(IToken.tCOLON);
thirdExpression = assignmentExpression();
}
IASTConditionalExpression result = createConditionalExpression(); IASTConditionalExpression result = createConditionalExpression();
result.setLogicalConditionExpression(firstExpression); result.setLogicalConditionExpression(firstExpression);
firstExpression.setParent(result); firstExpression.setParent(result);
@ -874,13 +879,16 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser {
secondExpression.setParent(result); secondExpression.setParent(result);
secondExpression secondExpression
.setPropertyInParent(IASTConditionalExpression.POSITIVE_RESULT); .setPropertyInParent(IASTConditionalExpression.POSITIVE_RESULT);
result.setNegativeResultExpression(thirdExpression); if (thirdExpression != null) {
thirdExpression.setParent(result); result.setNegativeResultExpression(thirdExpression);
thirdExpression thirdExpression.setParent(result);
.setPropertyInParent(IASTConditionalExpression.NEGATIVE_RESULT); thirdExpression
((ASTNode) result).setOffsetAndLength(((ASTNode) firstExpression) .setPropertyInParent(IASTConditionalExpression.NEGATIVE_RESULT);
.getOffset(), calculateEndOffset(thirdExpression) ((ASTNode) result).setOffsetAndLength(((ASTNode) firstExpression)
- ((ASTNode) firstExpression).getOffset()); .getOffset(), calculateEndOffset(thirdExpression)
- ((ASTNode) firstExpression).getOffset());
}
return result; return result;
} }
return firstExpression; return firstExpression;