/** * Copyright (c) 2005-2013 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ /* * @author: atotic * Created: Jul 25, 2003 */ package org.python.pydev.shared_core.parsing; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.jface.text.IDocument; import org.python.pydev.shared_core.model.ISimpleNode; /** * PyParser broadcasts events to IParserListeners * * parserChanged is generated every time document is parsed successfully * parserError is generated when parsing fails */ public interface IParserObserver { /** * Every time document gets parsed, it generates a new parse tree. * * Note that it may be called even if there are errors in the file (so, parserChanged will * be called and parserError will be called later on) * * @param root the root of the new AST (abstract syntax tree) * @param file the file that has just been analyzed (it may be null) * * It is meant to be an org.eclipse.core.resources.IFile or an * org.eclipse.ui.internal.editors.text.JavaFileEditorInput (external files) or * PydevFileEditorInput. * */ void parserChanged(ISimpleNode root, IAdaptable file, IDocument doc, long generatedOnStamp); /** * if parse generates an error, you'll get this event * the exception class will be ParseException, or TokenMgrError * @param file the file that has just been analyzed (it may be null) */ void parserError(Throwable error, IAdaptable file, IDocument doc); }