Module dev.civl.abc

Package dev.civl.abc.ast.node.IF


package dev.civl.abc.ast.node.IF

Submodule ast.node defines every kind of node in an AST.

The interface ASTNode is the root of the AST node type hierarchy. All AST nodes implement that interface.

Other miscellaneous interfaces dealing with nodes are included in this package. This includes the NodeFactory, which specifies a factory for producing every kind of AST node and related objects.

Any AST node can have any number of "attributes" associated to it. This is a flexible mechanism for allowing clients to "hang" any kind of information on to AST nodes. To do this one first creates an AttributeKey using the appropriate method in the NodeFactory. That key can then be used to associate a value to a node.

  • Class
    Description
    Root of the AST node type hierarchy.
    The different kind of AST nodes.
    A key to be used as a key-attribute pair.
    Represents the association between a type and an expression for use in a generic selection expression.
    An identifier can denote: (1) an object, (2) a function, (3) a tag of a structure, union, or enumeration, (4) a member of a structure, union, or enumeration, (5) a typedef name, or (6) a label name.
    The factory used to construct the nodes of Abstract Syntax Trees.
    A predicate on AST nodes, i.e., a function which given an ASTNode, returns either true or false.
    A factory class providing a static method to produce a new NodeFactory.
    PairNode<S extends ASTNode,T extends ASTNode>
    A node with two children, the first of type S and the second of type T.
    A pragma may be included in the AST wherever a statement or an external definition may occur.
    A node in which all children have type T.
    A static assertion has syntax _Static_assert ( constant-expression , string-literal ).