|
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 |