I wish I did something valuable. Instead I spent most of my time writing kick scripts for #warfactory pretending I was some l33t coder... I still have some of those scripts saved somewhere!
private void execute(Stmt statement) {
switch (statement) {
case Stmt.Expression expression -> evaluate(expression.expr());
case Stmt.Block block -> executeBlock(block.statements(),
new Environment(environment));
...
public sealed interface Expr permits
Expr.Assign,
Expr.Binary,
Expr.Call,
Expr.Function,
.... more exprs here