summaryrefslogtreecommitdiffstats
path: root/src/Compiler/Expression.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compiler/Expression.java')
-rw-r--r--src/Compiler/Expression.java27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/Compiler/Expression.java b/src/Compiler/Expression.java
index d331f24..8bdf378 100644
--- a/src/Compiler/Expression.java
+++ b/src/Compiler/Expression.java
@@ -1,5 +1,7 @@
package Compiler;
+import java.util.List;
+
abstract class Expression {
static class Binary extends Expression{
@@ -70,11 +72,11 @@ abstract class Expression {
}
static class AssignmentExpression extends Expression{
- final Token name;
+ final Expression variable;
final Expression value;
- AssignmentExpression(Token name,Expression value){
- this.name=name;
+ AssignmentExpression(Expression variable,Expression value){
+ this.variable=variable;
this.value=value;
}
@@ -82,8 +84,7 @@ abstract class Expression {
@Override
public String getExpressionType() {
return "assign";
- }
-
+ }
}
static class Variable extends Expression{
@@ -99,5 +100,21 @@ abstract class Expression {
final Token name;
}
+
+ static class ArrayVariable extends Expression{
+
+ ArrayVariable(Token name,List<Expression> positions){
+ this.name=name;
+ this.positions=positions;
+
+ }
+ @Override
+ public String getExpressionType() {
+ return "arrayvar";
+ }
+ final Token name;
+ final List<Expression> positions;
+
+ }
public abstract String getExpressionType();
}