/**********************************************************************
 * Copyright (c) 2002,2003 Rational Software Corporation and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Common Public License v0.5
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v05.html
 * 
 * Contributors: 
 * IBM Rational Software - Initial API and implementation
***********************************************************************/
package org.eclipse.cdt.internal.core.parser.pst;

import java.util.Iterator;

import org.eclipse.cdt.internal.core.parser.ast.complete.ASTSymbol;

/**
 * @author jcamelon
 *
 */
public interface ISymbolASTExtension extends ISymbolOwner
{
	public class ExtensionException extends Exception
	{
	}
	
	
	public ASTSymbol       getPrimaryDeclaration();
	public Iterator        getAllDefinitions();
	public void            addDefinition( ASTSymbol definition ) throws ExtensionException; 	

}
