+package org.simantics.spreadsheet.graph.parser.ast;\r
+\r
+import java.util.ArrayList;\r
+\r
+abstract public class AstList implements AstValue {\r
+\r
+ public final AstValue left;\r
+\r
+ public ArrayList<String> rightOps;\r
+ public ArrayList<AstValue> rightValues;\r
+ \r
+ public AstList(AstValue left) {\r
+ this.left = left;\r
+ }\r
+ \r
+ public int rightCount() {\r
+ if(rightValues == null) return 0;\r
+ return rightValues.size();\r
+ }\r
+ \r
+ public String rightOp(int index) {\r
+ return rightOps.get(index);\r
+ }\r
+ \r
+ public AstValue rightValue(int index) {\r
+ return rightValues.get(index);\r
+ }\r
+\r
+ public void add(String op, AstValue value) {\r
+ if(rightValues == null) {\r
+ rightOps = new ArrayList<>(); \r
+ rightValues = new ArrayList<>();\r
+ }\r
+ rightOps.add(op);\r
+ rightValues.add(value);\r
+ }\r
+\r
+ public AstValue simplify() {\r
+ if(rightValues == null) return left;\r
+ return this;\r
+ }\r
+\r
+}\r