Interface IASTDeclSpecifier

All Superinterfaces:
IASTAttributeOwner, IASTNode
All Known Subinterfaces:
IASTCompositeTypeSpecifier, IASTElaboratedTypeSpecifier, IASTEnumerationSpecifier, IASTNamedTypeSpecifier, IASTSimpleDeclSpecifier, ICASTCompositeTypeSpecifier, ICASTDeclSpecifier, ICASTElaboratedTypeSpecifier, ICASTEnumerationSpecifier, ICASTSimpleDeclSpecifier, ICASTTypedefNameSpecifier, ICPPASTCompositeTypeSpecifier, ICPPASTDeclSpecifier, ICPPASTElaboratedTypeSpecifier, ICPPASTEnumerationSpecifier, ICPPASTNamedTypeSpecifier, ICPPASTSimpleDeclSpecifier, ICPPASTTypeTransformationSpecifier, IGCCASTSimpleDeclSpecifier, IGPPASTDeclSpecifier, IGPPASTSimpleDeclSpecifier

public interface IASTDeclSpecifier extends IASTAttributeOwner
This is the base interface that represents a declaration specifier sequence.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

  • Method Details

    • getStorageClass

      int getStorageClass()
      Returns the storage class, which is one of the constants sc_...
    • isConst

      boolean isConst()
    • isVolatile

      boolean isVolatile()
    • isRestrict

      boolean isRestrict()
      Since:
      5.2
    • isInline

      boolean isInline()
    • getAlignmentSpecifiers

      @Deprecated IASTAlignmentSpecifier[] getAlignmentSpecifiers()
      Deprecated.
      Use ICASTDeclSpecifier.getAlignmentSpecifiers() for C code. In C++ code, alignment specifiers are now stored in the attribute specifier sequence.
      Since:
      5.10
      Restriction:
      This method is not intended to be referenced by clients.
    • copy

      Description copied from interface: IASTNode
      Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
       copy.getParent() == null
       copy.getPropertyInParent() == null
       copy.isFrozen() == false
       
      Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.

      Calling this method is equivalent to copy(CopyStyle.withoutLocations).

      Specified by:
      copy in interface IASTNode
      Since:
      5.1
    • copy

      Description copied from interface: IASTNode
      Returns a mutable copy of the tree rooted at this node. The following postconditions hold:
       copy.getParent() == null
       copy.getPropertyInParent() == null
       copy.isFrozen() == false
       
      Preprocessor nodes do not currently support being copied. Implicit name nodes are not copied, instead they can be regenerated if required.
      Specified by:
      copy in interface IASTNode
      Parameters:
      style - IASTNode.CopyStyle create a copy with or without locations. Please see IASTNode.CopyStyle for restrictions on copies with Locations.
      Since:
      5.3
    • setStorageClass

      void setStorageClass(int storageClass)
      Not allowed on frozen ast.
    • setConst

      void setConst(boolean value)
      Not allowed on frozen ast.
    • setVolatile

      void setVolatile(boolean value)
      Not allowed on frozen ast.
    • setRestrict

      void setRestrict(boolean value)
      Not allowed on frozen ast.
      Since:
      5.2
    • setInline

      void setInline(boolean value)
      Not allowed on frozen ast.
    • setAlignmentSpecifiers

      @Deprecated void setAlignmentSpecifiers(IASTAlignmentSpecifier[] alignmentSpecifiers)
      Deprecated.
      Use ICASTDeclSpecifier.setAlignmentSpecifiers() for C code. In C++ code, alignment specifiers are now stored in the attribute specifier sequence.
      Since:
      5.10
      Restriction:
      This method is not intended to be referenced by clients.