00001 /****************************************************************************** 00002 * 00003 * $Id: pyscanner.h,v 1.9 2001/03/19 19:27:39 root Exp $ 00004 * 00005 * Copyright (C) 1997-2008 by Dimitri van Heesch. 00006 * 00007 * Permission to use, copy, modify, and distribute this software and its 00008 * documentation under the terms of the GNU General Public License is hereby 00009 * granted. No representations are made about the suitability of this software 00010 * for any purpose. It is provided "as is" without express or implied warranty. 00011 * See the GNU General Public License for more details. 00012 * 00013 * Documents produced by Doxygen are derivative works derived from the 00014 * input used in their production; they are not affected by this license. 00015 * 00016 */ 00017 /* This code is based on the work done by the MoxyPyDoxy team 00018 * (Linda Leong, Mike Rivera, Kim Truong, and Gabriel Estrada) 00019 * in Spring 2005 as part of CS 179E: Compiler Design Project 00020 * at the University of California, Riverside; the course was 00021 * taught by Peter H. Froehlich <phf@acm.org>. 00022 */ 00023 00024 00025 #ifndef PYSCANNER_H 00026 #define PYSCANNER_H 00027 00028 #include "parserintf.h" 00029 00034 class PythonLanguageScanner : public ParserInterface 00035 { 00036 public: 00037 virtual ~PythonLanguageScanner() {} 00038 void parseInput(const char * fileName, 00039 const char *fileBuf, 00040 Entry *root); 00041 bool needsPreprocessing(const QCString &extension); 00042 void parseCode(CodeOutputInterface &codeOutIntf, 00043 const char *scopeName, 00044 const QCString &input, 00045 bool isExampleBlock, 00046 const char *exampleName=0, 00047 FileDef *fileDef=0, 00048 int startLine=-1, 00049 int endLine=-1, 00050 bool inlineFragment=FALSE, 00051 MemberDef *memberDef=0 00052 ); 00053 void resetCodeParserState(); 00054 void parsePrototype(const char *text); 00055 }; 00056 00057 void pyscanFreeScanner(); 00058 00059 #endif