/* * Created on Oct 6, 2005 */ package x10.wala.tree; import com.ibm.wala.cast.tree.CAstNode; public interface X10CastNode extends CAstNode { /** * Kind constant for a CAstNode representing the invocation of an X10 'async' body.<br> * Children: * <ol> * <li>CAstNode.EXPR of type 'Place' indicating where the computation is to occur * <li>CAstNode.Constant containing the CAstEntity representing the body * </ol> */ public static final int ASYNC = SUB_LANGUAGE_BASE; /** * Kind constant for a CAstNode representing the beginning of an X10 'atomic' statement.<br> * Children: * <ol> * <li>CAstNode.BLOCK representing the body of the 'atomic' * </ol> */ public static final int ATOMIC_ENTER = SUB_LANGUAGE_BASE + 2; /** * Kind constant for a CAstNode representing the end of an X10 'atomic' statement.<br> * Children: * <ol> * <li>CAstNode.BLOCK representing the body of the 'atomic' * </ol> */ public static final int ATOMIC_EXIT = SUB_LANGUAGE_BASE + 3; /** * Kind constant for a CAstNode representing the start of an X10 'finish' statement.<br> * Children: none<br> * This is typically enclosed within the block that is the first child of an UNWIND node. */ public static final int FINISH_ENTER = SUB_LANGUAGE_BASE + 6; /** * Kind constant for a CAstNode representing the end of an X10 'finish' statement.<br> * Children: none * This is typically the last child of an UNWIND node. */ public static final int FINISH_EXIT = SUB_LANGUAGE_BASE + 7; /** * Kind constant for a CAstNode representing an X10 'here' expression.<br> * Children: <none> */ public static final int HERE = SUB_LANGUAGE_BASE + 9; /** * Kind constant for a CAstNode representing an X10 'next' statement.<br> * Children: <none> */ public static final int NEXT = SUB_LANGUAGE_BASE + 10; /** * Kind constant for a CAstNode representing an X10 region iterator initialization.<br> * Children: * <ol> * <li>CAstNode.EXPR representing the receiver (the region being iterated over) * </ol> */ public static final int ITER_INIT = SUB_LANGUAGE_BASE + 17; /** * Kind constant for a CAstNode representing a test for whether an X10 region iteration * has a next point.<br> * Children: * <ol> * <li>CAstNode.EXPR representing the receiver (the region iterator) * </ol> */ public static final int ITER_HASNEXT = SUB_LANGUAGE_BASE + 18; /** * Kind constant for a CAstNode representing the accessor for the next element of an * X10 region iteration.<br> * Children: * <ol> * <li>CAstNode.EXPR representing the receiver (the region iterator) * </ol> */ public static final int ITER_NEXT = SUB_LANGUAGE_BASE + 19; /** * Kind constant for a CAstNode representing an array reference where the index is given as an * instance of x10.lang.point. This has exactly the same structure as an ARRAY_REF.<br> * Children: * <ol> * <li>CAstNode.EXPR representing the array * <li>CAstValue representing the type of the result * <li>CAstNode.EXPR representing the point index * </ol> */ public static final int ARRAY_REF_BY_POINT = SUB_LANGUAGE_BASE + 22; /** * Kind constant for a CAstNode representing a tuple expression.<br> * Children: * <ol> * <li>CAstNode.CONSTANT representing the type of the result * <li>CAstNode.EXPR representing each child expression * <li>... * </ol> */ public static final int TUPLE = SUB_LANGUAGE_BASE + 23; /** * Kind constant for a CAstNode representing the beginning of an "at (P) {S}" statement. * Children: * <ol> * <li>CAstNode.BLOCK_STMT</li> * </ol> */ public static final int AT_STMT_ENTER = SUB_LANGUAGE_BASE + 24; /** * Kind constant for a CAstNode representing the end of an "at (P) {S}" statement. * Children: * <ol> * <li>CAstNode.BLOCK_STMT</li> * </ol> */ public static final int AT_STMT_EXIT = SUB_LANGUAGE_BASE + 25; }