/*******************************************************************************
* Copyright (c) 2004, 2010 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:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.dom;
import org.eclipse.cdt.core.dom.ast.IASTCompletionNode;
import org.eclipse.cdt.core.dom.ast.IASTTranslationUnit;
import org.eclipse.cdt.core.model.ILanguage;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IStorage;
/**
* This is the mechanism that represents a parser service in the CDT.
*
* IASTTranslationUnits and ASTCompletionNodes are artifacts that this service returns.
*
* @author jcamelon
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
* @deprecated Use methods provided by {@link ITranslationUnit} or {@link ILanguage}.
*/
@Deprecated
public interface IASTServiceProvider {
/**
* This exception is thrown when there is not a service provider that can handle
* the request due to dialect mis-match.
*
* @author jcamelon
*/
public static class UnsupportedDialectException extends Exception
{
public static final long serialVersionUID = 0;
}
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IFile fileToParse) throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param parseComments parse commtents flag
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IFile fileToParse, boolean parseComments) throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param project project handle to help us figure out build settings
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IStorage fileToParse, IProject project, ICodeReaderFactory fileCreator ) throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param project project handle to help us figure out build settings
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IStorage fileToParse, IProject project ) throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IFile fileToParse, ICodeReaderFactory fileCreator )throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @param parseComments parse commtents flag
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IFile fileToParse, ICodeReaderFactory fileCreator, boolean parseComments)throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @param configuration parser configuration provided rather than discovered by service
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTTranslationUnit getTranslationUnit( IFile fileToParse, ICodeReaderFactory fileCreator, IParserConfiguration configuration )throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param offset the offset at which you require completion at
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTCompletionNode getCompletionNode( IFile fileToParse, int offset, ICodeReaderFactory fileCreator) throws UnsupportedDialectException;
/**
* Returns a parse tree that represents the content provided as parameters.
*
* @param fileToParse the file in question
* @param project the project containing the scanner info
* @param offset the offset at which you require completion at
* @param fileCreator @see CDOM#getCodeReaderFactory(int)
* @return syntactical parse tree
* @throws UnsupportedDialectException
*/
public IASTCompletionNode getCompletionNode( IStorage fileToParse, IProject project, int offset, ICodeReaderFactory fileCreator) throws UnsupportedDialectException;
}