/*
* Classes inside block stametents can only be abstract or final. The semantic must check it.
*/
final public Statement BlockStatement() throws ParseException {
Statement ret;
Expression expr;
ClassOrInterfaceDeclaration typeDecl;
Modifier modifier;
if (jj_2_36(2147483647)) {
pushJavadoc();
modifier = Modifiers();
typeDecl = ClassOrInterfaceDeclaration(modifier);
ret = new TypeDeclarationStmt(typeDecl.getBeginLine(), typeDecl.getBeginColumn(), token.endLine, token.endColumn, typeDecl);
} else if (jj_2_37(2147483647)) {
expr = VariableDeclarationExpression();
jj_consume_token(SEMICOLON);
ret = new ExpressionStmt(expr.getBeginLine(), expr.getBeginColumn(), token.endLine, token.endColumn, expr);
} else {
switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
case ASSERT:
case BOOLEAN:
case BREAK: