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.
Author:
Julian Dolby (dolby@us.ibm.com)
  • Method Details

    • 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 c1, CAstNode c2)
      Make a node of type kind with two children.
    • makeNode

      CAstNode makeNode(int kind, CAstNode c1, CAstNode c2, CAstNode c3)
      Make a node of type kind with three children.
    • makeNode

      CAstNode makeNode(int kind, CAstNode c1, CAstNode c2, CAstNode c3, CAstNode c4)
      Make a node of type kind with four children.
    • makeNode

      CAstNode makeNode(int kind, CAstNode c1, CAstNode c2, CAstNode c3, CAstNode c4, CAstNode c5)
      Make a node of type kind with five children.
    • makeNode

      CAstNode makeNode(int kind, CAstNode c1, CAstNode c2, CAstNode c3, CAstNode c4, CAstNode c5, CAstNode c6)
      Make a node of type kind with six children.
    • 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.
    • makeNode

      CAstNode makeNode(int kind, List<CAstNode> cs)
      Make a node of type kind specifying a list of children.
    • 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.