Blame src/vhdljjparser.h

Packit Service 50c9f2
#ifndef VHDLJJPARSER_H
Packit Service 50c9f2
#define VHDLJJPARSER_H
Packit Service 50c9f2
Packit Service 50c9f2
#include "parserintf.h"
Packit Service 50c9f2
#include <stdio.h>
Packit Service 50c9f2
#include <stdlib.h>
Packit Service 50c9f2
#include <assert.h>
Packit Service 50c9f2
#include <ctype.h>
Packit Service 50c9f2
#include <qarray.h>
Packit Service 50c9f2
Packit Service 50c9f2
#include <qfile.h>
Packit Service 50c9f2
#include <qdict.h>
Packit Service 50c9f2
#include <string>
Packit Service 50c9f2
#include "types.h"
Packit Service 50c9f2
#include "entry.h"
Packit Service 50c9f2
#include "vhdldocgen.h"
Packit Service 50c9f2
#include "qstringlist.h"
Packit Service 50c9f2
#include "vhdlcode.h"
Packit Service 50c9f2
#include "memberlist.h"
Packit Service 50c9f2
#include "config.h"
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
enum  { GEN_SEC=0x1, PARAM_SEC,CONTEXT_SEC,PROTECTED_SEC } ;
Packit Service 50c9f2
void  parserVhdlfile(const char* inputBuffer);
Packit Service 50c9f2
Packit Service 50c9f2
class Entry;
Packit Service 50c9f2
class ClassSDict;
Packit Service 50c9f2
class FileStorage;
Packit Service 50c9f2
class ClassDef;
Packit Service 50c9f2
class MemberDef;
Packit Service 50c9f2
class QStringList;
Packit Service 50c9f2
struct VhdlConfNode;
Packit Service 50c9f2
Packit Service 50c9f2
Packit Service 50c9f2
/** \brief VHDL parser using state-based lexical scanning.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * This is the VHDL language parser for doxygen.
Packit Service 50c9f2
 */
Packit Service 50c9f2
class VHDLLanguageScanner : public ParserInterface
Packit Service 50c9f2
{
Packit Service 50c9f2
  public:
Packit Service 50c9f2
    virtual ~VHDLLanguageScanner() {}
Packit Service 50c9f2
    void startTranslationUnit(const char *) {}
Packit Service 50c9f2
    void finishTranslationUnit() {}
Packit Service 50c9f2
    void parseInput(const char * fileName,
Packit Service 50c9f2
                    const char *fileBuf,
Packit Service 50c9f2
                    Entry *root,
Packit Service 50c9f2
                    bool sameTranslationUnit,
Packit Service 50c9f2
                    QStrList &filesInSameTranslationUnit);
Packit Service 50c9f2
  
Packit Service 50c9f2
 void parseCode(CodeOutputInterface &codeOutIntf,
Packit Service 50c9f2
                   const char *scopeName,
Packit Service 50c9f2
                   const QCString &input,
Packit Service 50c9f2
                   SrcLangExt lang,
Packit Service 50c9f2
                   bool isExampleBlock,
Packit Service 50c9f2
                   const char *exampleName=0,
Packit Service 50c9f2
                   FileDef *fileDef=0,
Packit Service 50c9f2
                   int startLine=-1,
Packit Service 50c9f2
                   int endLine=-1,
Packit Service 50c9f2
                   bool inlineFragment=FALSE,
Packit Service 50c9f2
                   MemberDef *memberDef=0,
Packit Service 50c9f2
                   bool showLineNumbers=TRUE,
Packit Service 50c9f2
                   Definition *searchCtx=0,
Packit Service 50c9f2
                   bool collectXRefs=TRUE
Packit Service 50c9f2
				   );
Packit Service 50c9f2
		bool needsPreprocessing(const QCString &) { return TRUE; }
Packit Service 50c9f2
		void resetCodeParserState(){};
Packit Service 50c9f2
	    void parsePrototype(const char *text);
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
struct VhdlConfNode
Packit Service 50c9f2
{ 
Packit Service 50c9f2
  VhdlConfNode(const char*  a,const char*  b,const char* config,const char* cs,bool leaf) 
Packit Service 50c9f2
  { 
Packit Service 50c9f2
    arch=a;              // architecture  e.g. for iobuffer
Packit Service 50c9f2
    arch=arch.lower();
Packit Service 50c9f2
    binding=b;           // binding e.g.  use entiy work.xxx(bev)
Packit Service 50c9f2
    binding=binding.lower();
Packit Service 50c9f2
    confVhdl=config;     // configuration foo is bar
Packit Service 50c9f2
    compSpec=cs;        
Packit Service 50c9f2
    isInlineConf=false;  // primary configuration?
Packit Service 50c9f2
    isLeaf=leaf;
Packit Service 50c9f2
  };
Packit Service 50c9f2
Packit Service 50c9f2
  QCString confVhdl;
Packit Service 50c9f2
  QCString arch;
Packit Service 50c9f2
  QCString binding;
Packit Service 50c9f2
  QCString compSpec;
Packit Service 50c9f2
  int level;
Packit Service 50c9f2
  bool isLeaf;
Packit Service 50c9f2
  bool isInlineConf;
Packit Service 50c9f2
Packit Service 50c9f2
};
Packit Service 50c9f2
Packit Service 50c9f2
void vhdlscanFreeScanner();
Packit Service 50c9f2
Packit Service 50c9f2
QList<VhdlConfNode>& getVhdlConfiguration();
Packit Service 50c9f2
QList<Entry>& getVhdlInstList();
Packit Service 50c9f2
Packit Service 50c9f2
#endif