assignment method
Implementation
Expr assignment() {
Expr expr = conditional();
if (match([TokenType.EQUAL])) {
Token equals = previous();
Expr value = assignment();
if (expr is Variable) {
Token name = expr.name;
return Assign(name, value);
} else if (expr is Get) {
return Set(expr.object, expr.name, value);
} else if (expr is Indexing) {
return IndexSet(expr.callee, expr.key, value);
}
throw error(equals, "Invalid assignment target.");
}
return expr;
}