Module dev.civl.abc

Interface StructureOrUnionTypeNode

All Superinterfaces:
ASTNode, BlockItemNode, DeclarationNode, SizeableNode, TypeNode

public interface StructureOrUnionTypeNode extends TypeNode, DeclarationNode, BlockItemNode
  • Method Details

    • isStruct

      boolean isStruct()
      Is this a struct, not a union?
      Returns:
      true if struct, false if union
    • isUnion

      boolean isUnion()
      Is this a union, not a struct?
      Returns:
      true if union, false if struct
    • getTag

      IdentifierNode getTag()
      Returns the tag for this struct or union type. The tag is the name associated to the type.
      Returns:
      the tag
    • getStructDeclList

      SequenceNode<FieldDeclarationNode> getStructDeclList()
      Returns the sequence node for the list of members (fields) for this struct or union type.
      Returns:
      sequence node for member declarations
    • makeIncomplete

      void makeIncomplete()
      Nullifies the structDeclList, if not already null. Otherwise is a noop.
    • copy

      Description copied from interface: ASTNode
      Returns a deep copy of this AST node. The node and all of its descendants will be cloned. The cloning does not copy analysis or attribute information.
      Specified by:
      copy in interface ASTNode
      Specified by:
      copy in interface BlockItemNode
      Specified by:
      copy in interface DeclarationNode
      Specified by:
      copy in interface SizeableNode
      Specified by:
      copy in interface TypeNode
      Returns:
      deep copy of this node