package Interpreter; abstract class Statement { static class ExpressionStatement extends Statement{ ExpressionStatement(Expression expr){ this.expr = expr; } final Expression expr; @Override public String getStatmentType() { return "exprStmt"; } } static class VariableDeclaration extends Statement{ VariableDeclaration(Token name){ this.name=name; } final Token name; @Override public String getStatmentType() { return "vardec"; } } static class PrintStatement extends Statement{ PrintStatement(Expression expr){ this.expr=expr; } final Expression expr; @Override public String getStatmentType() { return "print"; } } public abstract String getStatmentType(); }