Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.api.codegen/src/com/oracle/truffle/api/codegen/NodeChild.java @ 10443:8b2573c8d47f
dsl cleanup.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 18 Jun 2013 10:10:54 +0200 |
parents | 90eb4bb7f755 |
children | 3cc5fb59916e |
comparison
equal
deleted
inserted
replaced
9849:e876c2a6954f | 10443:8b2573c8d47f |
---|---|
24 | 24 |
25 import java.lang.annotation.*; | 25 import java.lang.annotation.*; |
26 | 26 |
27 import com.oracle.truffle.api.nodes.*; | 27 import com.oracle.truffle.api.nodes.*; |
28 | 28 |
29 /** | |
30 * A {@link NodeChild} element defines an executable child for the enclosing {@link Node}. A | |
31 * {@link Node} contains multiple {@link NodeChildren} specified in linear execution order. | |
32 */ | |
29 @Retention(RetentionPolicy.CLASS) | 33 @Retention(RetentionPolicy.CLASS) |
30 @Target({ElementType.TYPE}) | 34 @Target({ElementType.TYPE}) |
31 public @interface NodeChild { | 35 public @interface NodeChild { |
32 | 36 |
33 String value() default ""; | 37 String value() default ""; |
34 | 38 |
35 Class<?> type() default NodeClass.InheritNode.class; | 39 Class<?> type() default NodeClass.InheritNode.class; |
36 | 40 |
37 /** | 41 /** |
38 * Executes the {@link NodeChild} with values from other defined {@link NodeChild} elements. | 42 * The {@link #executeWith()} property allows a node to pass the result of one child's |
39 * These referenced children must be defined before the current node in the execution order. The | 43 * executable as an input to another child's executable. These referenced children must be |
40 * current node {@link #type()} attribute must be set to a {@link Node} which supports the | 44 * defined before the current node in the execution order. The current node {@link #type()} |
41 * evaluated execution with the number of {@link #executeWith()} arguments that are defined. For | 45 * attribute must be set to a {@link Node} which supports the evaluated execution with the |
42 * example if this child is executed with one argument, the {@link #type()} attribute must | 46 * number of {@link #executeWith()} arguments that are defined. For example if this child is |
43 * define a node which publicly declares a method with the signature | 47 * executed with one argument, the {@link #type()} attribute must define a node which publicly |
44 * <code>Object execute*(VirtualFrame, Object)</code>. | 48 * declares a method with the signature <code>Object execute*(VirtualFrame, Object)</code>. |
45 */ | 49 */ |
46 String[] executeWith() default {}; | 50 String[] executeWith() default {}; |
47 } | 51 } |