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