00001 /****************************************************************************** 00002 * 00003 * $Id: vhdlscanner.h,v 1.9 2001/03/19 19:27:39 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 VHDLSCANNER_H 00019 #define VHDLSCANNER_H 00020 00021 #include "parserintf.h" 00022 #include <stdio.h> 00023 #include <stdlib.h> 00024 #include <assert.h> 00025 #include <ctype.h> 00026 00027 #include <qarray.h> 00028 #include <unistd.h> 00029 #include <qfile.h> 00030 #include <qdict.h> 00031 00032 #include "entry.h" 00033 #include "memberlist.h" 00034 00035 #if 0 00036 #include "qcstring.h" 00037 #include "qlist.h" 00038 #include "qstringlist.h" 00039 #include "filedef.h" 00040 #include "classlist.h" 00041 #include "classdef.h" 00042 #include "translator.h" 00043 #include "qregexp.h" 00044 #include "outputlist.h" 00045 #include "membername.h" 00046 #include "memberdef.h" 00047 #include "memberlist.h" 00048 #endif 00049 00050 class Entry; 00051 class ClassSDict; 00052 class FileStorage; 00053 class ClassDef; 00054 class MemberDef; 00055 class QStringList; 00056 00057 00062 class VHDLLanguageScanner : public ParserInterface 00063 { 00064 public: 00065 virtual ~VHDLLanguageScanner() {} 00066 void parseInput(const char * fileName, 00067 const char *fileBuf, 00068 Entry *root); 00069 bool needsPreprocessing(const QCString &extension); 00070 void parseCode(CodeOutputInterface &codeOutIntf, 00071 const char *scopeName, 00072 const QCString &input, 00073 bool isExampleBlock, 00074 const char *exampleName=0, 00075 FileDef *fileDef=0, 00076 int startLine=-1, 00077 int endLine=-1, 00078 bool inlineFragment=FALSE, 00079 MemberDef *memberDef=0 00080 ); 00081 void resetCodeParserState(); 00082 void parsePrototype(const char *text); 00083 }; 00084 00085 void vhdlscanFreeScanner(); 00086 00087 //--------------------------------------------------------------------------------- 00088 00089 #endif