| /********************************************************************** |
| * 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: |
| * Rational Software - Initial API and implementation |
| ***********************************************************************/ |
| package org.eclipse.cdt.core.parser; |
| |
| import org.eclipse.cdt.core.parser.ast.IASTCompletionNode; |
| import org.eclipse.cdt.core.parser.ast.IASTExpression; |
| import org.eclipse.cdt.core.parser.ast.IASTNode; |
| import org.eclipse.cdt.core.parser.ast.IASTScope; |
| |
| |
| |
| /** |
| * This is the external interface that all C and C++ parsers in the CDT |
| * must implement. |
| * |
| * @author jcamelon |
| */ |
| public interface IParser { |
| |
| |
| /** |
| * Request a parse from a pre-configured parser to parse a whole translation unit or file. |
| * |
| * @return whether or not the parse was successful |
| */ |
| public boolean parse(); |
| |
| /** |
| * @param offset offset in the input file where code completion is being requested for |
| * @return an IASTCompletionConstruct that provides a mechanism for determining C/C++ code completion contributions |
| */ |
| public IASTCompletionNode parse( int offset )throws ParserNotImplementedException; |
| |
| /** |
| * |
| * @param startingOffset |
| * @param endingOffset |
| * @return |
| */ |
| public IASTNode parse( int startingOffset, int endingOffset ) throws ParserNotImplementedException; |
| |
| |
| /** |
| * Request a parse from a pre-configured parser to parse an expression. |
| * |
| * @param expression Optional parameter representing an expression object that |
| * your particular IParserCallback instance would appreciate |
| * |
| * @throws BacktrackException thrown if the Scanner/Stream provided does not yield a valid |
| * expression |
| */ |
| public IASTExpression expression(IASTScope scope) throws BacktrackException, EndOfFileException; |
| |
| /** |
| * If an error was encountered, give us the offset of the token that caused the error. |
| * |
| * @return -1 for no error, otherwise the character offset where we encountered |
| * our first unrecoverable error. |
| */ |
| public int getLastErrorOffset(); |
| |
| |
| } |