|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit |
1c1d7e |
* input used in their production; they are not affected by this license.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
/* This code is based on the work done by the MoxyPyDoxy team
|
|
Packit |
1c1d7e |
* (Linda Leong, Mike Rivera, Kim Truong, and Gabriel Estrada)
|
|
Packit |
1c1d7e |
* in Spring 2005 as part of CS 179E: Compiler Design Project
|
|
Packit |
1c1d7e |
* at the University of California, Riverside; the course was
|
|
Packit |
1c1d7e |
* taught by Peter H. Froehlich <phf@acm.org>.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#ifndef PYSCANNER_H
|
|
Packit |
1c1d7e |
#define PYSCANNER_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include "parserintf.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** \brief Python Language parser using state-based lexical scanning.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* This is the Python language parser for doxygen.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class PythonLanguageScanner : public ParserInterface
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual ~PythonLanguageScanner() {}
|
|
Packit |
1c1d7e |
void startTranslationUnit(const char *) {}
|
|
Packit |
1c1d7e |
void finishTranslationUnit() {}
|
|
Packit |
1c1d7e |
void parseInput(const char * fileName,
|
|
Packit |
1c1d7e |
const char *fileBuf,
|
|
Packit |
1c1d7e |
Entry *root,
|
|
Packit |
1c1d7e |
bool sameTranslationUnit,
|
|
Packit |
1c1d7e |
QStrList &filesInSameTranslationUnit);
|
|
Packit |
1c1d7e |
bool needsPreprocessing(const QCString &extension);
|
|
Packit |
1c1d7e |
void parseCode(CodeOutputInterface &codeOutIntf,
|
|
Packit |
1c1d7e |
const char *scopeName,
|
|
Packit |
1c1d7e |
const QCString &input,
|
|
Packit |
1c1d7e |
SrcLangExt lang,
|
|
Packit |
1c1d7e |
bool isExampleBlock,
|
|
Packit |
1c1d7e |
const char *exampleName=0,
|
|
Packit |
1c1d7e |
FileDef *fileDef=0,
|
|
Packit |
1c1d7e |
int startLine=-1,
|
|
Packit |
1c1d7e |
int endLine=-1,
|
|
Packit |
1c1d7e |
bool inlineFragment=FALSE,
|
|
Packit |
1c1d7e |
MemberDef *memberDef=0,
|
|
Packit |
1c1d7e |
bool showLineNumbers=TRUE,
|
|
Packit |
1c1d7e |
Definition *searchCtx=0,
|
|
Packit |
1c1d7e |
bool collectXrefs=TRUE
|
|
Packit |
1c1d7e |
);
|
|
Packit |
1c1d7e |
void resetCodeParserState();
|
|
Packit |
1c1d7e |
void parsePrototype(const char *text);
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void pyscanFreeScanner();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|