declMultiVarStmt method
Implementation
Stmt declMultiVarStmt() {
final token = consume(
TokenType.kRaw,
'Expected variable name after "local".',
);
final tokens = [token];
while (peek().type == TokenType.kComma) {
advance();
tokens.add(
consume(
TokenType.kRaw,
'Expected variable name in multi-variable initializer.',
),
);
}
final assign = peek();
if (assign.type != TokenType.kAssign) {
return DeclMultiVar.initNils(tokens);
}
consume(
TokenType.kAssign,
'Expected assignment operator for multi-variable initilaizer.',
);
final List<MathExpr> values = [math()];
while (peek().type == TokenType.kComma) {
advance();
values.add(math());
}
return DeclMultiVar.initVars(tokens, values);
}