Moved some code around

This commit is contained in:
TomyLobo 2011-11-22 16:28:27 +01:00
parent effbf9f79c
commit e6e31d0b93

View File

@ -101,7 +101,11 @@ public class Parser {
break;
case '{':
statements.add(parseBlock());
consumeCharacter('{');
statements.add(parseStatements(false));
consumeCharacter('}');
if (singleStatement) {
break loop;
@ -178,7 +182,7 @@ public class Parser {
default:
statements.add(parseExpression());
if (peek().id() == ';') {
++position;
if (singleStatement) {
@ -194,13 +198,17 @@ public class Parser {
switch (statements.size()) {
case 0:
throw new ParserException(-1, "No statement found.");
if (singleStatement) {
throw new ParserException(peek().getPosition(), "Statement expected.");
} else {
return new Sequence(peek().getPosition());
}
case 1:
return statements.get(0);
default:
return new Sequence(position, statements.toArray(new RValue[statements.size()]));
return new Sequence(peek().getPosition(), statements.toArray(new RValue[statements.size()]));
}
}
@ -327,20 +335,6 @@ public class Parser {
return ret;
}
private final RValue parseBlock() throws ParserException {
consumeCharacter('{');
if (peek().id() == '}') {
return new Sequence(peek().getPosition());
}
final RValue ret = parseStatements(false);
consumeCharacter('}');
return ret;
}
private boolean hasKeyword(String keyword) {
final Token next = peek();
if (!(next instanceof KeywordToken)) {