]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.spreadsheet/src/org/simantics/spreadsheet/solver/formula/parser/ast/AstList.java
Adopt spreadsheet changes made in Balas development
[simantics/platform.git] / bundles / org.simantics.spreadsheet / src / org / simantics / spreadsheet / solver / formula / parser / ast / AstList.java
1 package org.simantics.spreadsheet.solver.formula.parser.ast;
2
3 import java.util.ArrayList;
4
5 abstract public class AstList implements AstValue {
6
7         public final AstValue left;
8
9         public ArrayList<String> rightOps;
10         public ArrayList<AstValue> rightValues;
11         
12         public AstList(AstValue left) {
13                 this.left = left;
14         }
15         
16         public int rightCount() {
17                 if(rightValues == null) return 0;
18                 return rightValues.size();
19         }
20         
21         public String rightOp(int index) {
22                 return rightOps.get(index);
23         }
24         
25         public AstValue rightValue(int index) {
26                 return rightValues.get(index);
27         }
28
29         public void add(String op, AstValue value) {
30                 if(rightValues == null) {
31                         rightOps = new ArrayList<>(); 
32                         rightValues = new ArrayList<>();
33                 }
34                 rightOps.add(op);
35                 rightValues.add(value);
36         }
37
38         public AstValue simplify() {
39                 if(rightValues == null) return left;
40                 return this;
41         }
42
43 }