Fix for UBSan build
[platform/upstream/doxygen.git] / src / pyscanner.h
1 /******************************************************************************
2  *
3  * $Id: pyscanner.h,v 1.9 2001/03/19 19:27:39 root Exp $
4  *
5  * Copyright (C) 1997-2012 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                    bool showLineNumbers=TRUE,
53                    Definition *searchCtx=0
54                   );
55     void resetCodeParserState();
56     void parsePrototype(const char *text);
57 };
58
59 void pyscanFreeScanner();
60
61 #endif