org.eclipse.cdt.core.dom.ast

## Interface IASTDeclSpecifier

All Superinterfaces:
  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 IASTNode

This is the base interface that represents a declaration specifier sequence.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`IASTNode.CopyStyle`

### Field Summary

Fields
`static ASTNodeProperty` `ALIGNMENT_SPECIFIER` Deprecated. Not used.
`static int` `sc_auto`
`static int` `sc_extern`
`static int` `sc_mutable`
`static int` `sc_register`
`static int` `sc_static`
`static int` `sc_typedef`
`static int` `sc_unspecified` No storage class specified.

### Fields inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`EMPTY_NODE_ARRAY`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`IASTDeclSpecifier` `copy()` Returns a mutable copy of the tree rooted at this node.
`IASTDeclSpecifier` `copy(IASTNode.CopyStyle style)` Returns a mutable copy of the tree rooted at this node.
`IASTAlignmentSpecifier[]` `getAlignmentSpecifiers()` Deprecated. Use ICASTDeclSpecifier.getAlignmentSpecifiers() for C code. In C++ code, alignment specifiers are now stored in the attribute specifier sequence.
`int` `getStorageClass()` Returns the storage class, which is one of the constants sc_...
`boolean` `isConst()`
`boolean` `isInline()`
`boolean` `isRestrict()`
`boolean` `isVolatile()`
`void` `setAlignmentSpecifiers(IASTAlignmentSpecifier[] alignmentSpecifiers)` Deprecated. Use ICASTDeclSpecifier.setAlignmentSpecifiers() for C code. In C++ code, alignment specifiers are now stored in the attribute specifier sequence.
`void` `setConst(boolean value)` Not allowed on frozen ast.
`void` `setInline(boolean value)` Not allowed on frozen ast.
`void` `setRestrict(boolean value)` Not allowed on frozen ast.
`void` `setStorageClass(int storageClass)` Not allowed on frozen ast.
`void` `setVolatile(boolean value)` Not allowed on frozen ast.

### Methods inherited from interface org.eclipse.cdt.core.dom.ast.IASTNode

`accept, contains, getChildren, getContainingFilename, getFileLocation, getLeadingSyntax, getNodeLocations, getOriginalNode, getParent, getPropertyInParent, getRawSignature, getSyntax, getTrailingSyntax, getTranslationUnit, isActive, isFrozen, isPartOfTranslationUnitFile, setParent, setPropertyInParent`

### Field Detail

#### sc_unspecified

    static final int sc_unspecified

No storage class specified.

See Also:
  Constant Field Values

#### sc_typedef

    static final int sc_typedef

See Also:
  Constant Field Values

#### sc_extern

    static final int sc_extern

See Also:
  Constant Field Values

#### sc_static

    static final int sc_static

See Also:
  Constant Field Values

#### sc_auto

    static final int sc_auto

See Also:
  Constant Field Values

#### sc_register

    static final int sc_register

See Also:
  Constant Field Values

#### sc_mutable

    static final int sc_mutable

Since:
  5.2
See Also:
  Constant Field Values

#### ALIGNMENT_SPECIFIER

    @Deprecated
    static final ASTNodeProperty ALIGNMENT_SPECIFIER

Deprecated. Not used.

Since:
  5.10

### Method Detail

#### 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

#### copy

    IASTDeclSpecifier 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

    IASTDeclSpecifier copy(IASTNode.CopyStyle style)

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