OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
Macro Class Reference

Abstract base class for macros. More...

#include <Macro.h>

Inheritance diagram for Macro:
Inheritance graph
[legend]
Collaboration diagram for Macro:
Collaboration graph
[legend]

Public Member Functions

 Macro (int size, const char *name, const char *help)
 Exemplar constructor. More...
 
 Macro (const std::string &name, Object *parent)
 Clone constructor. More...
 
virtual ~Macro ()
 
virtual Macroclone (const std::string &name)
 Make clone. More...
 
virtual const std::string getCategory () const
 Return the object category as a string. More...
 
virtual bool shouldTrace () const
 Trace flag. More...
 
virtual bool shouldUpdate () const
 Update flag. More...
 
virtual void parseActuals (Statement &)
 Parse actual arguments. More...
 
virtual void parseFormals (Statement &)
 Parse formal arguments. More...
 
- Public Member Functions inherited from Object
virtual ~Object ()
 
virtual bool canReplaceBy (Object *object)
 Test if replacement is allowed. More...
 
virtual Objectclone (const std::string &name)=0
 Return a clone. More...
 
void copyAttributes (const Object &)
 Copy attributes from another object. More...
 
virtual void execute ()
 Execute the command. More...
 
virtual AttributefindAttribute (const std::string &name)
 Find an attribute by name. More...
 
virtual const AttributefindAttribute (const std::string &name) const
 Find an attribute by name. More...
 
virtual const std::string getCategory () const =0
 Return the object category as a string. More...
 
virtual bool shouldTrace () const =0
 Trace flag. More...
 
virtual bool shouldUpdate () const =0
 Update flag. More...
 
virtual ObjectmakeTemplate (const std::string &, TokenStream &, Statement &)
 Macro handler function. More...
 
virtual ObjectmakeInstance (const std::string &name, Statement &, const Parser *)
 Macro handler function. More...
 
virtual void parse (Statement &)
 Parse the object. More...
 
virtual void parseShortcut (Statement &, bool eval=true)
 Parser for single-attribute commands. More...
 
virtual void print (std::ostream &) const
 Print the object. More...
 
virtual void printValue (std::ostream &) const
 
virtual void printHelp (std::ostream &) const
 Print help. More...
 
virtual void replace (Object *oldObject, Object *newObject)
 Replace references. More...
 
virtual void update ()
 Update this object. More...
 
bool isBuiltin () const
 True, if [b]this[/b] is a built-in object. More...
 
virtual bool isShared () const
 Shared flag. More...
 
virtual void setShared (bool)
 Set/reset shared flag. More...
 
void setDirty (bool)
 Set/reset the [b]modified[/b] flag. More...
 
bool isDirty () const
 True, if the [b]modified[/b] flag is set. More...
 
void setFlag (bool)
 Flag/unflag this object, e. g. to control output of objects for. More...
 
bool isFlagged () const
 True, if [b]this[/b] is flagged by setFlag(true). More...
 
const ObjectgetBaseObject () const
 Return the object's base type object. More...
 
const std::string & getOpalName () const
 Return object name. More...
 
ObjectgetParent () const
 Return parent pointer. More...
 
bool isTreeMember (const Object *subTree) const
 Test for tree membership. More...
 
void setOpalName (const std::string &name)
 Set object name. More...
 
void setParent (Object *)
 Set parent object. More...
 
void clear ()
 Clear the occurrence counter. More...
 
int increment ()
 Increment and return the occurrence counter. More...
 
int occurrenceCount ()
 Return the occurrence counter. More...
 
void registerReference (Invalidator *a)
 Register a reference to this object. More...
 
void unregisterReference (Invalidator *a)
 Unegister a reference to this object. More...
 
void registerOwnership (const AttributeHandler::OwnerType &itsClass) const
 
- Public Member Functions inherited from RCObject
int addReference () const
 Increment reference count. More...
 
int removeReference () const
 Decrement the reference count. More...
 
bool isShared () const
 Test for sharing. More...
 

Protected Attributes

std::vector< std::string > formals
 The formal argument list. More...
 
std::vector< std::vector< Token > > actuals
 The actual argument list. More...
 
- Protected Attributes inherited from Object
bool builtin
 Built-in flag. More...
 
bool modified
 Dirty flag. More...
 
bool flagged
 Object flag. More...
 

Private Member Functions

 Macro ()
 
 Macro (const Macro &)
 
void operator= (const Macro &)
 

Additional Inherited Members

- Public Attributes inherited from Object
std::vector< AttributeitsAttr
 The object attributes. More...
 
- Protected Member Functions inherited from Object
 Object (int size, const char *name, const char *help)
 Constructor for exemplars. More...
 
 Object (const std::string &name, Object *parent)
 Constructor for clones. More...
 
- Protected Member Functions inherited from RCObject
 RCObject ()
 Default constructor. More...
 
 RCObject (const RCObject &)
 Copy constructor. More...
 
virtual ~RCObject ()=0
 
RCObjectoperator= (const RCObject &right)
 

Detailed Description

Abstract base class for macros.

Definition at line 34 of file Macro.h.

Constructor & Destructor Documentation

◆ Macro() [1/4]

Macro::Macro ( int  size,
const char *  name,
const char *  help 
)

Exemplar constructor.

Definition at line 28 of file Macro.cpp.

◆ Macro() [2/4]

Macro::Macro ( const std::string &  name,
Object parent 
)

Clone constructor.

Definition at line 33 of file Macro.cpp.

◆ ~Macro()

Macro::~Macro ( )
virtual

Definition at line 38 of file Macro.cpp.

◆ Macro() [3/4]

Macro::Macro ( )
private

◆ Macro() [4/4]

Macro::Macro ( const Macro )
private

Member Function Documentation

◆ clone()

Macro * Macro::clone ( const std::string &  name)
virtual

Make clone.

Implements Object.

Reimplemented in LineTemplate, and SequenceTemplate.

Definition at line 42 of file Macro.cpp.

References Object::getOpalName().

Here is the call graph for this function:

◆ getCategory()

const std::string Macro::getCategory ( ) const
virtual

Return the object category as a string.

Implements Object.

Definition at line 49 of file Macro.cpp.

◆ operator=()

void Macro::operator= ( const Macro )
private

◆ parseActuals()

void Macro::parseActuals ( Statement stat)
virtual

Parse actual arguments.

Definition at line 64 of file Macro.cpp.

References actuals, Statement::delimiter(), Statement::getCurrent(), and Token::isDel().

Referenced by SequenceTemplate::makeInstance(), MacroCmd::makeInstance(), and LineTemplate::makeInstance().

Here is the call graph for this function:

◆ parseFormals()

void Macro::parseFormals ( Statement stat)
virtual

Parse formal arguments.

Definition at line 100 of file Macro.cpp.

References Statement::delimiter(), formals, Expressions::parseDelimiter(), and Expressions::parseString().

Referenced by MacroCmd::makeTemplate(), SequenceTemplate::parseTemplate(), and LineTemplate::parseTemplate().

Here is the call graph for this function:

◆ shouldTrace()

bool Macro::shouldTrace ( ) const
virtual

Trace flag.

Implements Object.

Definition at line 54 of file Macro.cpp.

◆ shouldUpdate()

bool Macro::shouldUpdate ( ) const
virtual

Update flag.

Implements Object.

Definition at line 59 of file Macro.cpp.

Member Data Documentation

◆ actuals

std::vector<std::vector < Token > > Macro::actuals
protected

The actual argument list.

Definition at line 82 of file Macro.h.

Referenced by SequenceTemplate::makeInstance(), MacroCmd::makeInstance(), LineTemplate::makeInstance(), and parseActuals().

◆ formals

std::vector<std::string> Macro::formals
protected

The formal argument list.

Definition at line 78 of file Macro.h.

Referenced by SequenceTemplate::makeInstance(), MacroCmd::makeInstance(), LineTemplate::makeInstance(), and parseFormals().


The documentation for this class was generated from the following files: