Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/NodeData.java @ 16851:2db61eddcb97
Truffle-DSL: argument syntax support for guards
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 18 Aug 2014 18:41:16 +0200 |
parents | 23415229349b |
children | 6ee7afea175a |
comparison
equal
deleted
inserted
replaced
16850:d6c002f4d2a9 | 16851:2db61eddcb97 |
---|---|
28 import javax.lang.model.type.*; | 28 import javax.lang.model.type.*; |
29 | 29 |
30 import com.oracle.truffle.dsl.processor.*; | 30 import com.oracle.truffle.dsl.processor.*; |
31 import com.oracle.truffle.dsl.processor.java.*; | 31 import com.oracle.truffle.dsl.processor.java.*; |
32 import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; | 32 import com.oracle.truffle.dsl.processor.model.NodeChildData.Cardinality; |
33 import com.oracle.truffle.dsl.processor.parser.*; | |
34 | 33 |
35 public class NodeData extends Template implements Comparable<NodeData> { | 34 public class NodeData extends Template implements Comparable<NodeData> { |
36 | 35 |
37 private final String nodeId; | 36 private final String nodeId; |
38 private final String shortName; | 37 private final String shortName; |
204 return false; | 203 return false; |
205 } | 204 } |
206 } | 205 } |
207 } | 206 } |
208 return true; | 207 return true; |
208 } | |
209 | |
210 public NodeExecutionData findExecutionByExpression(String childNameExpression) { | |
211 String childName = childNameExpression; | |
212 int index = -1; | |
213 | |
214 int start = childName.indexOf('['); | |
215 int end = childName.lastIndexOf(']'); | |
216 if (start != -1 && end != -1 && start < end) { | |
217 try { | |
218 index = Integer.parseInt(childName.substring(start + 1, end)); | |
219 childName = childName.substring(0, start); | |
220 childName = NodeExecutionData.createName(childName, index); | |
221 } catch (NumberFormatException e) { | |
222 // ignore | |
223 } | |
224 } | |
225 | |
226 for (NodeExecutionData execution : childExecutions) { | |
227 if (execution.getName().equals(childName) && (execution.getIndex() == -1 || execution.getIndex() == index)) { | |
228 return execution; | |
229 } | |
230 } | |
231 return null; | |
209 } | 232 } |
210 | 233 |
211 public List<NodeData> getNodeDeclaringChildren() { | 234 public List<NodeData> getNodeDeclaringChildren() { |
212 List<NodeData> nodeChildren = new ArrayList<>(); | 235 List<NodeData> nodeChildren = new ArrayList<>(); |
213 for (NodeData child : getEnclosingNodes()) { | 236 for (NodeData child : getEnclosingNodes()) { |