|
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 |
|
|
Packit |
1c1d7e |
#ifndef SCANNER_H
|
|
Packit |
1c1d7e |
#define SCANNER_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include "parserintf.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** \brief C-like language parser using state-based lexical scanning.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* This is the language parser for doxygen. It is somewhat fuzzy and
|
|
Packit |
1c1d7e |
* supports C++ and various languages that are closely related to C++,
|
|
Packit |
1c1d7e |
* such as C, C#, Objective-C, Java, PHP, and IDL.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class CLanguageScanner : public ParserInterface
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual ~CLanguageScanner() {}
|
|
Packit |
1c1d7e |
void startTranslationUnit(const char *fileName);
|
|
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 scanFreeScanner();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|