}
return new XIf(endLineBlock(), statement, block, block2);
case RETURN:
nextToken();
statement = makeInnerStatement();
return new XReturn(endLineBlock(), statement);
case SWITCH:
parserMessage(XMessageLevel.ERROR, "unexpected.keyword", token.kind.name);
return null;
case WHILE:
nextToken();
expected(XTokenKind.LGROUP);
statement = makeInnerStatement();
expected(XTokenKind.RGROUP);
block = makeStatement();
return new XWhile(endLineBlock(), block, statement);
case THROW:
nextToken();
statement = makeInnerStatement();
return new XReturn(endLineBlock(), statement);
case TRY:
nextToken();
parserMessage(XMessageLevel.ERROR, "unexpected.keyword", token.kind.name);
return null;
case LBRAKET: