diff options
Diffstat (limited to 'src/Compiler/Expression.java')
-rw-r--r-- | src/Compiler/Expression.java | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/Compiler/Expression.java b/src/Compiler/Expression.java index 2789462..056019a 100644 --- a/src/Compiler/Expression.java +++ b/src/Compiler/Expression.java @@ -2,7 +2,12 @@ package Compiler; import java.util.List; +//Class for possible expressions in the language abstract class Expression { + + /** + * Class for representing a binary expression, with two values between an operator + */ static class Binary extends Expression{ final Expression left; @@ -22,6 +27,9 @@ abstract class Expression { } + /** + * Class for representing a singlular expression, with one value and one operator + */ static class Singular extends Expression{ final Expression right; @@ -39,6 +47,9 @@ abstract class Expression { } + /** + * Class for representing a literal value + */ static class Literal extends Expression{ final Token value; final String type; @@ -56,6 +67,9 @@ abstract class Expression { } + /** + * Class for representing an expression between brackets + */ static class BracketedExpression extends Expression{ final Expression expr; @@ -66,11 +80,12 @@ abstract class Expression { @Override public String getExpressionType() { return "bracket"; - } - - + } } + /** + * Class for represening an assignment expression + */ static class AssignmentExpression extends Expression{ final Expression variable; final Expression value; @@ -87,6 +102,9 @@ abstract class Expression { } } + /** + * Class for representing a single variable + */ static class Variable extends Expression{ Variable(Token name){ @@ -101,6 +119,9 @@ abstract class Expression { } + /** + * Class for representing an array variable + */ static class ArrayVariable extends Expression{ ArrayVariable(Token name,List<Expression> positions){ this.name=name; @@ -115,6 +136,9 @@ abstract class Expression { final List<Expression> positions; } + /** + * Class for representing a function call + */ static class FunctionCall extends Expression{ FunctionCall(Token name, List<Token> arguments){ this.arguments=arguments; @@ -130,5 +154,6 @@ abstract class Expression { } + //Abstract method for getting an expression type public abstract String getExpressionType(); } |