From 0c54d7f8cb4b17d80ed21f7a9916ad27a13e34ed Mon Sep 17 00:00:00 2001 From: AidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com> Date: Sat, 6 Nov 2021 01:44:14 +0000 Subject: Re-arranged files and added C compilation --- src/Compiler/Expression.java | 84 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/Compiler/Expression.java (limited to 'src/Compiler/Expression.java') diff --git a/src/Compiler/Expression.java b/src/Compiler/Expression.java new file mode 100644 index 0000000..63ed7f2 --- /dev/null +++ b/src/Compiler/Expression.java @@ -0,0 +1,84 @@ +package Compiler; + +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(); +} -- cgit v1.2.3