classDeclaration method
Implementation
Stmt classDeclaration() {
Token name = consume(TokenType.IDENTIFIER, "Expect class name.");
Variable? superclass;
if (match([TokenType.EXTENDS])) {
consume(TokenType.IDENTIFIER, "Expect superclass name.");
superclass = Variable(previous());
}
consume(TokenType.LEFT_BRACE, "Expect '{' before class body.");
List<Functional> methods = [];
while (!check(TokenType.RIGHT_BRACE) && !isAtEnd()) {
methods.add(function("method"));
}
consume(TokenType.RIGHT_BRACE, "Expect '}' after class body.");
return Class(name, superclass, methods);
}