Interface CAst

  • All Known Implementing Classes:
    CAstImpl, CAstValueImpl

    public interface CAst
    The main interface for creating CAPA Abstract Syntax Trees. This interface provides essentially a factory for creating AST nodes in a tree structure. There is no strong assumption about the meaning of specific nodes; however, the `kind' argument to a makeNode call should be a value from the constants in the CAstNode interface. The other arguments to makeNode calls are child nodes. The structure of the tree is a matter of agreement between providers and consumers of specific trees.
    • Method Detail

      • makeNode

        CAstNode makeNode​(int kind)
        Make a node of type kind with no children.
      • makeNode

        CAstNode makeNode​(int kind,
                          CAstNode c1)
        Make a node of type kind with one child.
      • makeNode

        CAstNode makeNode​(int kind,
                          CAstNode[] cs)
        Make a node of type kind specifying an array of children.
      • makeNode

        CAstNode makeNode​(int kind,
                          CAstNode firstChild,
                          CAstNode[] otherChildren)
        Make a node of type kind giving a first child and array of the rest.
      • makeConstant

        CAstNode makeConstant​(boolean value)
        Make a boolean constant node.
      • makeConstant

        CAstNode makeConstant​(char value)
        Make a char constant node.
      • makeConstant

        CAstNode makeConstant​(short value)
        Make a short integer constant node.
      • makeConstant

        CAstNode makeConstant​(int value)
        Make an integer constant node.
      • makeConstant

        CAstNode makeConstant​(long value)
        Make a long integer constant node.
      • makeConstant

        CAstNode makeConstant​(double value)
        Make a double-precision floating point constant node.
      • makeConstant

        CAstNode makeConstant​(float value)
        Make a single-precision floating point constant node.
      • makeConstant

        CAstNode makeConstant​(Object value)
        Make an arbitrary object constant node.
      • makeUnique

        String makeUnique()
        Make a new identifier, unqiue to this CAst instance.