/*******************************************************************************
* Copyright (c) 2004, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Doug Schaefer (IBM) - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom.ast;
/**
* This is a simple declaration which contains a sequence of declSpecifiers
* followed by a list of declarators.
*
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IASTSimpleDeclaration extends IASTDeclaration {
/**
* <code>DECL_SPECIFIER</code> represents the relationship between an
* <code>IASTSimpleDeclaration</code> and it's nested
* <code>IASTDeclSpecifier</code>.
*/
public static final ASTNodeProperty DECL_SPECIFIER = new ASTNodeProperty(
"IASTSimpleDeclaration.DECL_SPECIFIER - IASTDeclSpecifier for IASTSimpleDeclaration"); //$NON-NLS-1$
/**
* <code>DECLARATOR</code> represents the relationship between an
* <code>IASTSimpleDeclaration</code> and it's nested
* <code>IASTDeclarator</code>s.
*/
public static final ASTNodeProperty DECLARATOR = new ASTNodeProperty(
"IASTSimpleDeclaration.DECLARATOR - IASTDeclarator for IASTSimpleDeclaration"); //$NON-NLS-1$
/**
* This returns the object representing the declSpecifiers for this
* declaration.
*
* @return the declSpecifier object
*/
public IASTDeclSpecifier getDeclSpecifier();
/**
* Set the decl specifier.
*
* @param declSpec
* <code>IASTDeclSpecifier</code>
*/
public void setDeclSpecifier(IASTDeclSpecifier declSpec);
/**
* This returns the list of declarators in this declaration.
*
* @return <code>IASTDeclarator []</code>
*/
public IASTDeclarator[] getDeclarators();
/**
* Add a declarator.
*
* @param declarator
* <code>IASTDeclarator</code>
*/
public void addDeclarator(IASTDeclarator declarator);
/**
* @since 5.1
*/
public IASTSimpleDeclaration copy();
/**
* @since 5.3
*/
public IASTSimpleDeclaration copy(CopyStyle style);
}