Orb/Doxygen/src/pyscanner.h
changeset 0 42188c7ea2d9
child 4 468f4c8d3d5b
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 /******************************************************************************
       
     2  *
       
     3  * 
       
     4  *
       
     5  * Copyright (C) 1997-2008 by Dimitri van Heesch.
       
     6  *
       
     7  * Permission to use, copy, modify, and distribute this software and its
       
     8  * documentation under the terms of the GNU General Public License is hereby 
       
     9  * granted. No representations are made about the suitability of this software 
       
    10  * for any purpose. It is provided "as is" without express or implied warranty.
       
    11  * See the GNU General Public License for more details.
       
    12  *
       
    13  * Documents produced by Doxygen are derivative works derived from the
       
    14  * input used in their production; they are not affected by this license.
       
    15  *
       
    16  */
       
    17 /*  This code is based on the work done by the MoxyPyDoxy team
       
    18  *  (Linda Leong, Mike Rivera, Kim Truong, and Gabriel Estrada)
       
    19  *  in Spring 2005 as part of CS 179E: Compiler Design Project
       
    20  *  at the University of California, Riverside; the course was
       
    21  *  taught by Peter H. Froehlich <phf@acm.org>.
       
    22  */
       
    23 
       
    24 
       
    25 #ifndef PYSCANNER_H
       
    26 #define PYSCANNER_H
       
    27 
       
    28 #include "parserintf.h"
       
    29 
       
    30 /** \brief Python Language parser using state-based lexical scanning.
       
    31  *
       
    32  * This is the Python language parser for doxygen.
       
    33  */
       
    34 class PythonLanguageScanner : public ParserInterface
       
    35 {
       
    36   public:
       
    37     virtual ~PythonLanguageScanner() {}
       
    38     void parseInput(const char * fileName, 
       
    39                     const char *fileBuf, 
       
    40                     Entry *root);
       
    41     bool needsPreprocessing(const QCString &extension);
       
    42     void parseCode(CodeOutputInterface &codeOutIntf,
       
    43                    const char *scopeName,
       
    44                    const QCString &input,
       
    45                    bool isExampleBlock,
       
    46                    const char *exampleName=0,
       
    47                    FileDef *fileDef=0,
       
    48                    int startLine=-1,
       
    49                    int endLine=-1,
       
    50                    bool inlineFragment=FALSE,
       
    51                    MemberDef *memberDef=0
       
    52                   );
       
    53     void resetCodeParserState();
       
    54     void parsePrototype(const char *text);
       
    55 };
       
    56 
       
    57 void pyscanFreeScanner();
       
    58 
       
    59 #endif