00001 /****************************************************************************** 00002 * 00003 * $Id: scanner.h,v 1.15 2001/03/19 19:27:41 root Exp $ 00004 * 00005 * Copyright (C) 1997-2008 by Dimitri van Heesch. 00006 * 00007 * Permission to use, copy, modify, and distribute this software and its 00008 * documentation under the terms of the GNU General Public License is hereby 00009 * granted. No representations are made about the suitability of this software 00010 * for any purpose. It is provided "as is" without express or implied warranty. 00011 * See the GNU General Public License for more details. 00012 * 00013 * Documents produced by Doxygen are derivative works derived from the 00014 * input used in their production; they are not affected by this license. 00015 * 00016 */ 00017 00018 #ifndef SCANNER_H 00019 #define SCANNER_H 00020 00021 #include "parserintf.h" 00022 00029 class CLanguageScanner : public ParserInterface 00030 { 00031 public: 00032 virtual ~CLanguageScanner() {} 00033 void parseInput(const char *fileName, 00034 const char *fileBuf, 00035 Entry *root); 00036 bool needsPreprocessing(const QCString &extension); 00037 void parseCode(CodeOutputInterface &codeOutIntf, 00038 const char *scopeName, 00039 const QCString &input, 00040 bool isExampleBlock, 00041 const char *exampleName=0, 00042 FileDef *fileDef=0, 00043 int startLine=-1, 00044 int endLine=-1, 00045 bool inlineFragment=FALSE, 00046 MemberDef *memberDef=0 00047 ); 00048 void resetCodeParserState(); 00049 void parsePrototype(const char *text); 00050 }; 00051 00052 void scanFreeScanner(); 00053 00054 #endif