Orb/Doxygen/src/vhdlscanner.h
changeset 0 42188c7ea2d9
child 4 468f4c8d3d5b
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     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 
       
    18 #ifndef VHDLSCANNER_H
       
    19 #define VHDLSCANNER_H
       
    20 
       
    21 #include "parserintf.h"
       
    22 #include <stdio.h>
       
    23 #include <stdlib.h>
       
    24 #include <assert.h>
       
    25 #include <ctype.h>
       
    26 
       
    27 #include <qarray.h>
       
    28 #include <unistd.h>
       
    29 #include <qfile.h>
       
    30 #include <qdict.h>
       
    31 
       
    32 #include "entry.h"
       
    33 #include "memberlist.h"
       
    34 
       
    35 #if 0
       
    36 #include "qcstring.h"
       
    37 #include "qlist.h"
       
    38 #include "qstringlist.h"
       
    39 #include "filedef.h"
       
    40 #include "classlist.h"
       
    41 #include "classdef.h"
       
    42 #include "translator.h"
       
    43 #include "qregexp.h"
       
    44 #include "outputlist.h"
       
    45 #include "membername.h"
       
    46 #include "memberdef.h"
       
    47 #include "memberlist.h"
       
    48 #endif
       
    49 
       
    50 class Entry;
       
    51 class ClassSDict;
       
    52 class FileStorage;
       
    53 class ClassDef;
       
    54 class MemberDef;
       
    55 class QStringList;
       
    56 
       
    57 
       
    58 /** \brief VHDL parser using state-based lexical scanning.
       
    59  *
       
    60  * This is the VHDL language parser for doxygen.
       
    61  */
       
    62 class VHDLLanguageScanner : public ParserInterface
       
    63 {
       
    64   public:
       
    65     virtual ~VHDLLanguageScanner() {}
       
    66     void parseInput(const char * fileName, 
       
    67                     const char *fileBuf, 
       
    68                     Entry *root);
       
    69     bool needsPreprocessing(const QCString &extension);
       
    70     void parseCode(CodeOutputInterface &codeOutIntf,
       
    71                    const char *scopeName,
       
    72                    const QCString &input,
       
    73                    bool isExampleBlock,
       
    74                    const char *exampleName=0,
       
    75                    FileDef *fileDef=0,
       
    76                    int startLine=-1,
       
    77                    int endLine=-1,
       
    78                    bool inlineFragment=FALSE,
       
    79                    MemberDef *memberDef=0
       
    80                   );
       
    81     void resetCodeParserState();
       
    82     void parsePrototype(const char *text);
       
    83 };
       
    84 
       
    85 void vhdlscanFreeScanner();
       
    86 
       
    87 //---------------------------------------------------------------------------------
       
    88 
       
    89 #endif