diff options
author | Alfie Eagleton <67986414+TheAlfanator@users.noreply.github.com> | 2021-11-03 16:56:38 +0000 |
---|---|---|
committer | Alfie Eagleton <67986414+TheAlfanator@users.noreply.github.com> | 2021-11-03 16:56:38 +0000 |
commit | 85345d7d80eeb950ab64633ae1cb1f1c5dc87269 (patch) | |
tree | b353c985d4cdf51517a907efd9c6968a62db5655 /code/Interpreter2/src/Interpreter/Expression.java | |
parent | 85e2726ddedd2981425c5ac07f7257bce1a6ddbf (diff) | |
download | esotericFORTRAN-85345d7d80eeb950ab64633ae1cb1f1c5dc87269.tar.gz esotericFORTRAN-85345d7d80eeb950ab64633ae1cb1f1c5dc87269.zip |
New Project Working + Report
Diffstat (limited to 'code/Interpreter2/src/Interpreter/Expression.java')
-rw-r--r-- | code/Interpreter2/src/Interpreter/Expression.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/code/Interpreter2/src/Interpreter/Expression.java b/code/Interpreter2/src/Interpreter/Expression.java new file mode 100644 index 0000000..85ade48 --- /dev/null +++ b/code/Interpreter2/src/Interpreter/Expression.java @@ -0,0 +1,84 @@ +package Interpreter; + +abstract class Expression { + static class Binary extends Expression{ + + final Expression left; + final Expression right; + final Token op; + + Binary(Expression left, Token op, Expression right){ + this.left=left; + this.op=op; + this.right = right; + } + + @Override + public String getExpressionType() { + return "binary"; + } + + } + + static class Literal extends Expression{ + final Token value; + + Literal(Token value){ + this.value=value; + } + + + @Override + public String getExpressionType() { + return "literal"; + } + + } + + static class BracketedExpression extends Expression{ + final Expression expr; + + BracketedExpression(Expression expr){ + this.expr=expr; + } + + @Override + public String getExpressionType() { + return "bracket"; + } + + + } + + static class AssignmentExpression extends Expression{ + final Token name; + final Expression value; + + AssignmentExpression(Token name,Expression value){ + this.name=name; + this.value=value; + } + + + @Override + public String getExpressionType() { + return "assign"; + } + + } + + static class Variable extends Expression{ + + Variable(Token name){ + this.name=name; + + } + @Override + public String getExpressionType() { + return "var"; + } + final Token name; + + } + public abstract String getExpressionType(); +} |