}
private AbstractStatement parseDeclarationsOrExpression(
boolean insertionProtected)
throws ParseException {
Mark m = tq.mark();
boolean isDeclaration;
if (tq.checkToken(Keyword.VAR)) {
isDeclaration = true;
} else if (tq.checkToken(Keyword.CONST)) {
isDeclaration = true;
mq.addMessage(MessageType.NOT_IE, posFrom(m));
} else {
isDeclaration = false;
}
if (isDeclaration) {
AbstractStatement s;
Declaration d;
{
Identifier idNode = parseIdentifierNode(false);
Expression initializer = null;
if (tq.checkToken(Punctuation.EQ)) {
initializer = parseExpressionPart(insertionProtected);
}
d = new Declaration(posFrom(m), idNode, initializer);
finish(d, m);
}
if (tq.checkToken(Punctuation.COMMA)) {
List<Declaration> decls = Lists.newArrayList();
decls.add(d);
do {
Mark m2 = tq.mark();
Identifier idNode = parseIdentifierNode(false);
Expression initializer = null;
if (tq.checkToken(Punctuation.EQ)) {
initializer = parseExpressionPart(insertionProtected);
}