From e5876952dff16af12affdab976f96a720b8adb06 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Tue, 21 Jun 2005 19:52:37 +0000 Subject: [PATCH] [98375] Added handling of content assist in condition expressions. --- .../parser/AbstractGNUSourceCodeParser.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java index 0d745f315ab..cb4fd781133 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/AbstractGNUSourceCodeParser.java @@ -863,8 +863,13 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { if (LT(1) == IToken.tQUESTION) { consume(IToken.tQUESTION); IASTExpression secondExpression = expression(); - consume(IToken.tCOLON); - IASTExpression thirdExpression = assignmentExpression(); + IASTExpression thirdExpression = null; + + if (LT(1) != IToken.tEOC) { + consume(IToken.tCOLON); + thirdExpression = assignmentExpression(); + } + IASTConditionalExpression result = createConditionalExpression(); result.setLogicalConditionExpression(firstExpression); firstExpression.setParent(result); @@ -874,13 +879,16 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { secondExpression.setParent(result); secondExpression .setPropertyInParent(IASTConditionalExpression.POSITIVE_RESULT); - result.setNegativeResultExpression(thirdExpression); - thirdExpression.setParent(result); - thirdExpression - .setPropertyInParent(IASTConditionalExpression.NEGATIVE_RESULT); - ((ASTNode) result).setOffsetAndLength(((ASTNode) firstExpression) - .getOffset(), calculateEndOffset(thirdExpression) - - ((ASTNode) firstExpression).getOffset()); + if (thirdExpression != null) { + result.setNegativeResultExpression(thirdExpression); + thirdExpression.setParent(result); + thirdExpression + .setPropertyInParent(IASTConditionalExpression.NEGATIVE_RESULT); + ((ASTNode) result).setOffsetAndLength(((ASTNode) firstExpression) + .getOffset(), calculateEndOffset(thirdExpression) + - ((ASTNode) firstExpression).getOffset()); + } + return result; } return firstExpression;