From d1eda86d219e73a64c71baee3e2c7fab8c7fd66d Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Fri, 15 Apr 2005 21:57:01 +0000 Subject: [PATCH] Enabled content assist in expressions in C. --- .../core/dom/parser/AbstractGNUSourceCodeParser.java | 10 +++++++++- .../internal/core/dom/parser/c/GNUCSourceParser.java | 9 +++++++-- 2 files changed, 16 insertions(+), 3 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 35dce5cb2a9..32d0ea7b0c7 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 @@ -287,7 +287,15 @@ public abstract class AbstractGNUSourceCodeParser implements ISourceCodeParser { * request a backtrack */ protected IToken identifier() throws EndOfFileException, BacktrackException { - return consume(IToken.tIDENTIFIER); + switch (LT(1)) { + case IToken.tIDENTIFIER: + case IToken.tCOMPLETION: + case IToken.tEOC: + return consume(); + default: + throw backtrack; + } + } /** diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java index 68078bb2dc0..54a6878c276 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/c/GNUCSourceParser.java @@ -952,7 +952,11 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { consume(IToken.tLPAREN); if (LT(1) != IToken.tRPAREN) secondExpression = expression(); - last = consume(IToken.tRPAREN).getEndOffset(); + if (LT(1) == IToken.tRPAREN) + last = consume(IToken.tRPAREN).getEndOffset(); + else + // must be EOC + last = Integer.MAX_VALUE; IASTFunctionCallExpression f = createFunctionCallExpression(); ((ASTNode) f).setOffsetAndLength(((ASTNode) firstExpression) .getOffset(), last @@ -1132,7 +1136,8 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser { IASTUnaryExpression.op_bracketedPrimary, lhs, t.getOffset(), finalOffset); case IToken.tIDENTIFIER: - + case IToken.tCOMPLETION: + case IToken.tEOC: int startingOffset = LA(1).getOffset(); IToken t1 = identifier(); IASTIdExpression idExpression = createIdExpression();