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