/*----------------------------------------------------------------------------- * Copyright (c) 1997-2009 Mark Hummel DBA Raquette Software. * All rights reserved * * This file contains source code written by Raquette Software, * 68 Stewart Street, Franklin MA 02038. It may not be used without * express written permission. The expression of the information * contained herein is protected under federal copyright laws and * all copying without permission is prohibited and may be subject * to criminal penalties. The Author assumes no responsibility for * errors, omissions, or damages caused by the use of these programs * or from use of the information contained herein. * *----------------------------------------------------------------------------- */ /****************************************************************************** * * * example1.h * - example plugin * - * ****************************************************************************** */ #ifndef EXAMPLE1_H #define EXAMPLE1_H /* * include vrq headers */ #include "plugin.h" #include <map> /* * Plugin tools implement a subclass of CBackend. */ class CExample1 : public CBackend { private: Message* mVIDNR; // error message object int listNets; // non-zero if +example-list-nets has // been specified int listRegs; // non-zero if +example-list-regs has // been specified public: /* * data structure used to record variable info */ struct DeclRecord { CDecl* decl; // declaration object CModule* module; // containing module int refCount; // number of references to declaration int declared; // variable has been explicitly declared }; private: map<CDecl*,DeclRecord> decl2Record; // map of variable to // info data structure. public: /* * Methods */ CExample1( void ); virtual char* GetToolName( void ); virtual char* GetToolDescription( void ); virtual int AcceptAllPlusArgs( void ); virtual int HideTool(); virtual int IgnoreVrqComments(); virtual int ResolveModules(); virtual int ResolveInstance( CModule*, CInstance* ); virtual void Activate(); virtual void Process( list<CElement>& inputList, list<CElement>& outputList ); }; #endif // EXAMPLE1_H