casa
$Rev:20696$
|
Representation of a node in the raw TaQL parse tree. More...
#include <TaQLNodeRep.h>
Public Member Functions | |
TaQLNodeRep (int nodeType) | |
Constructor for derived classes specifying the type. | |
virtual | ~TaQLNodeRep () |
char | nodeType () const |
Get the node type of the derived class. | |
const TaQLStyle & | style () const |
Get the TaQL style. | |
virtual TaQLNodeResult | visit (TaQLNodeVisitor &) const =0 |
Visit a node for tree traversal. | |
virtual void | show (std::ostream &os) const =0 |
Print the object in an ostream. | |
virtual void | save (AipsIO &aio) const =0 |
Save the object. | |
Static Public Member Functions | |
static TaQLNodeRep * | link (TaQLNodeRep *rep) |
Increment the reference count. | |
static void | unlink (TaQLNodeRep *rep) |
Decrement the reference count. | |
static String | checkDataType (const String &) |
Check the data type string and return its standard form. | |
Private Member Functions | |
TaQLNodeRep (const TaQLNodeRep &) | |
Letter objects cannot be copied. | |
TaQLNodeRep & | operator= (const TaQLNodeRep &) |
Private Attributes | |
int | itsCount |
char | itsNodeType |
TaQLStyle | itsStyle |
Representation of a node in the raw TaQL parse tree.
Internal
TaQLNode/TaQLNodeRep form an envelope/letter pair. TaQLNodeRep is the abstract base class for all classes used in the raw TaQL parse tree (e.g. TaQLConstNodeRep ).
The envelope/letter idiom (aka counted referencing) is a nice means to pass an object around by value, so to ensure that an object is deleted in case of an exception. Furthermore it makes copying an object very cheap and memory management straightforward.
Definition at line 76 of file TaQLNodeRep.h.
casa::TaQLNodeRep::TaQLNodeRep | ( | int | nodeType | ) | [explicit] |
Constructor for derived classes specifying the type.
virtual casa::TaQLNodeRep::~TaQLNodeRep | ( | ) | [virtual] |
casa::TaQLNodeRep::TaQLNodeRep | ( | const TaQLNodeRep & | ) | [private] |
Letter objects cannot be copied.
static String casa::TaQLNodeRep::checkDataType | ( | const String & | ) | [static] |
Check the data type string and return its standard form.
static TaQLNodeRep* casa::TaQLNodeRep::link | ( | TaQLNodeRep * | rep | ) | [inline, static] |
Increment the reference count.
Definition at line 120 of file TaQLNodeRep.h.
References itsCount.
Referenced by casa::TaQLNode::operator=(), and casa::TaQLNode::TaQLNode().
char casa::TaQLNodeRep::nodeType | ( | ) | const [inline] |
Get the node type of the derived class.
Definition at line 134 of file TaQLNodeRep.h.
References itsNodeType.
Referenced by casa::TaQLNode::nodeType().
TaQLNodeRep& casa::TaQLNodeRep::operator= | ( | const TaQLNodeRep & | ) | [private] |
virtual void casa::TaQLNodeRep::save | ( | AipsIO & | aio | ) | const [pure virtual] |
Save the object.
Implemented in casa::TaQLUnitNodeRep, casa::TaQLRecFldNodeRep, casa::TaQLColSpecNodeRep, casa::TaQLCreTabNodeRep, casa::TaQLCalcNodeRep, casa::TaQLDeleteNodeRep, casa::TaQLInsertNodeRep, casa::TaQLUpdateNodeRep, casa::TaQLCountNodeRep, casa::TaQLSelectNodeRep, casa::TaQLUpdExprNodeRep, casa::TaQLGivingNodeRep, casa::TaQLLimitOffNodeRep, casa::TaQLSortNodeRep, casa::TaQLSortKeyNodeRep, casa::TaQLColumnsNodeRep, casa::TaQLColNodeRep, casa::TaQLTableNodeRep, casa::TaQLKeyColNodeRep, casa::TaQLJoinNodeRep, casa::TaQLIndexNodeRep, casa::TaQLRangeNodeRep, casa::TaQLFuncNodeRep, casa::TaQLMultiNodeRep, casa::TaQLBinaryNodeRep, casa::TaQLUnaryNodeRep, casa::TaQLRegexNodeRep, and casa::TaQLConstNodeRep.
virtual void casa::TaQLNodeRep::show | ( | std::ostream & | os | ) | const [pure virtual] |
Print the object in an ostream.
Implemented in casa::TaQLUnitNodeRep, casa::TaQLRecFldNodeRep, casa::TaQLColSpecNodeRep, casa::TaQLCreTabNodeRep, casa::TaQLCalcNodeRep, casa::TaQLDeleteNodeRep, casa::TaQLInsertNodeRep, casa::TaQLUpdateNodeRep, casa::TaQLQueryNodeRep, casa::TaQLUpdExprNodeRep, casa::TaQLGivingNodeRep, casa::TaQLLimitOffNodeRep, casa::TaQLSortNodeRep, casa::TaQLSortKeyNodeRep, casa::TaQLColumnsNodeRep, casa::TaQLColNodeRep, casa::TaQLTableNodeRep, casa::TaQLKeyColNodeRep, casa::TaQLJoinNodeRep, casa::TaQLIndexNodeRep, casa::TaQLRangeNodeRep, casa::TaQLFuncNodeRep, casa::TaQLMultiNodeRep, casa::TaQLBinaryNodeRep, casa::TaQLUnaryNodeRep, casa::TaQLRegexNodeRep, and casa::TaQLConstNodeRep.
Referenced by casa::TaQLNode::show().
const TaQLStyle& casa::TaQLNodeRep::style | ( | ) | const [inline] |
Get the TaQL style.
Definition at line 138 of file TaQLNodeRep.h.
References itsStyle.
Referenced by casa::TaQLNode::style().
static void casa::TaQLNodeRep::unlink | ( | TaQLNodeRep * | rep | ) | [inline, static] |
Decrement the reference count.
Delete the letter if no more references.
Definition at line 128 of file TaQLNodeRep.h.
References itsCount.
Referenced by casa::TaQLNode::operator=(), and casa::TaQLNode::~TaQLNode().
virtual TaQLNodeResult casa::TaQLNodeRep::visit | ( | TaQLNodeVisitor & | ) | const [pure virtual] |
Visit a node for tree traversal.
Implemented in casa::TaQLUnitNodeRep, casa::TaQLRecFldNodeRep, casa::TaQLColSpecNodeRep, casa::TaQLCreTabNodeRep, casa::TaQLCalcNodeRep, casa::TaQLDeleteNodeRep, casa::TaQLInsertNodeRep, casa::TaQLUpdateNodeRep, casa::TaQLCountNodeRep, casa::TaQLSelectNodeRep, casa::TaQLUpdExprNodeRep, casa::TaQLGivingNodeRep, casa::TaQLLimitOffNodeRep, casa::TaQLSortNodeRep, casa::TaQLSortKeyNodeRep, casa::TaQLColumnsNodeRep, casa::TaQLColNodeRep, casa::TaQLTableNodeRep, casa::TaQLKeyColNodeRep, casa::TaQLJoinNodeRep, casa::TaQLIndexNodeRep, casa::TaQLRangeNodeRep, casa::TaQLFuncNodeRep, casa::TaQLMultiNodeRep, casa::TaQLBinaryNodeRep, casa::TaQLUnaryNodeRep, casa::TaQLRegexNodeRep, and casa::TaQLConstNodeRep.
Referenced by casa::TaQLNode::visit().
int casa::TaQLNodeRep::itsCount [private] |
char casa::TaQLNodeRep::itsNodeType [private] |
Definition at line 161 of file TaQLNodeRep.h.
Referenced by nodeType().
TaQLStyle casa::TaQLNodeRep::itsStyle [private] |
Definition at line 162 of file TaQLNodeRep.h.
Referenced by style().