1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-28 11:25:35 +02:00

Added content assist for array declarations and accesses.

This commit is contained in:
Doug Schaefer 2005-04-17 12:59:14 +00:00
parent 5dee577e8a
commit 22d8e3c713

View file

@ -1498,7 +1498,17 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
templateIdScopes.push(IToken.tLBRACKET); templateIdScopes.push(IToken.tLBRACKET);
} }
secondExpression = expression(); secondExpression = expression();
int lastOffset = consume(IToken.tRBRACKET).getEndOffset(); int lastOffset;
switch (LT(1)) {
case IToken.tRBRACKET:
lastOffset = consume(IToken.tRBRACKET).getEndOffset();
break;
case IToken.tEOC:
lastOffset = Integer.MAX_VALUE;
break;
default:
throw backtrack;
}
if (templateIdScopes.size() > 0) { if (templateIdScopes.size() > 0) {
templateIdScopes.pop(); templateIdScopes.pop();
} }
@ -4520,10 +4530,20 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
int o = consume(IToken.tLBRACKET).getOffset(); // eat the '[' int o = consume(IToken.tLBRACKET).getOffset(); // eat the '['
IASTExpression exp = null; IASTExpression exp = null;
if (LT(1) != IToken.tRBRACKET) { if (LT(1) != IToken.tRBRACKET && LT(1) != IToken.tEOC) {
exp = constantExpression(); exp = constantExpression();
} }
int l = consume(IToken.tRBRACKET).getEndOffset(); int l;
switch (LT(1)) {
case IToken.tRBRACKET:
l = consume(IToken.tRBRACKET).getEndOffset();
break;
case IToken.tEOC:
l = Integer.MAX_VALUE;
break;
default:
throw backtrack;
}
IASTArrayModifier arrayMod = createArrayModifier(); IASTArrayModifier arrayMod = createArrayModifier();
((ASTNode) arrayMod).setOffsetAndLength(o, l - o); ((ASTNode) arrayMod).setOffsetAndLength(o, l - o);
if (exp != null) { if (exp != null) {