193 filenameValid( filenameValid ),
200 const char*
Filename() {
return filenameValid ? filename.c_str() : NULL; }
259 virtual char* GetToolName(
void ) = 0;
264 virtual char* GetToolDescription(
void ) = 0;
286 MASSERT( switchDescription.find(sw) !=
287 switchDescription.end() );
288 return switchDescription[sw].c_str();
297 const char* description )
299 switches.push_back( switchName );
300 switchDescription[switchName] = description;
315 virtual int ResolveModules() = 0;
348 virtual void Activate() = 0;
365 virtual void Process( list<CElement>& inputList,
366 list<CElement>& outputList ) = 0;
369 #endif // CBACKEND_HPP
virtual const char * GetSwitchDescription(const char *sw)
Method to get the help text for a switch using the switch name as a key.
Definition: cbackend.h:284
Exception thrown by CBackend::Process when plugin aborts due to an internal error.
Definition: cbackend.h:221
const char * Filename()
Access method for filename tagging this compilation unit.
Definition: cbackend.h:200
Exception thrown by CBackend::Process when plugin terminates early with an error. ...
Definition: cbackend.h:231
Exception thrown by CBackend::Process when plugin terminates early without an error.
Definition: cbackend.h:226
map< string, string > switchDescription
list of plugin command line switches
Definition: cbackend.h:253
void Code(CNode *code)
Method to set parse tree for this compilation unit.
Definition: cbackend.h:210
virtual void Logfile(FILE *logfile)
Pass current open logfile to plugin.
Definition: cbackend.h:352
list< string > switches
Definition: cbackend.h:252
CElement(const char *filename, int filenameValid, CNode *code)
Constructor for class.
Definition: cbackend.h:191
Bulk object allocation object.
Definition: cobstack.h:46
Primary data structure representing parse tree nodes.
Definition: cnode.h:197
Declaration object for module and gate instances.
Definition: cinstance.h:45
virtual int IgnoreVrqComments()
Method to control how parser handles vrq comment based pragmas: ie // vrq translate_on/off Note: the ...
Definition: cbackend.h:343
This is the abstract class to overload to create new backend tools.
Definition: cbackend.h:249
virtual int AcceptAllPlusArgs(void)
Override this method if the plugin accepts arbitrary plusargs: ie +argName[=argValue] or +argName[+ar...
Definition: cbackend.h:271
virtual int RequireModuleResolution()
Method to control if plugin requires all module definitions to be resolved.
Definition: cbackend.h:308
virtual void RegisterSwitch(const char *switchName, const char *description)
Method shortcut to register tool switches with vrq's help system.
Definition: cbackend.h:296
CNode * Code()
Access method for parse tree for this compilation unit.
Definition: cbackend.h:205
virtual int HideTool()
Method to control if plugin should be hidden, in this case it will not appear in the help but will it...
Definition: cbackend.h:332
virtual list< string > & GetSwitches(void)
Access method for list of switches.
Definition: cbackend.h:277
Base class for exceptions that can be thrown by backend plugins.
Definition: cbackend.h:216
FILE * logfile
Definition: main.cc:232
An element of compilation passed to and from plugins.
Definition: cbackend.h:178