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.
casacore::TaQLNodeRep::TaQLNodeRep | ( | int | nodeType | ) | [explicit] |
Constructor for derived classes specifying the type.
virtual casacore::TaQLNodeRep::~TaQLNodeRep | ( | ) | [virtual] |
casacore::TaQLNodeRep::TaQLNodeRep | ( | const TaQLNodeRep & | ) | [private] |
Letter objects cannot be copied.
Check the data type string and return its standard form.
static TaQLNodeRep* casacore::TaQLNodeRep::link | ( | TaQLNodeRep * | rep | ) | [inline, static] |
Increment the reference count.
Definition at line 128 of file TaQLNodeRep.h.
References itsCount.
Referenced by casacore::TaQLNode::operator=(), and casacore::TaQLNode::TaQLNode().
char casacore::TaQLNodeRep::nodeType | ( | ) | const [inline] |
Get the node type of the derived class.
Definition at line 142 of file TaQLNodeRep.h.
References itsNodeType.
Referenced by casacore::TaQLNode::nodeType().
TaQLNodeRep& casacore::TaQLNodeRep::operator= | ( | const TaQLNodeRep & | ) | [private] |
virtual void casacore::TaQLNodeRep::save | ( | AipsIO & | aio | ) | const [pure virtual] |
Save the object.
Implemented in casacore::TaQLConstNodeRep, casacore::TaQLRegexNodeRep, casacore::TaQLUnaryNodeRep, casacore::TaQLBinaryNodeRep, casacore::TaQLMultiNodeRep, casacore::TaQLFuncNodeRep, casacore::TaQLRangeNodeRep, casacore::TaQLIndexNodeRep, casacore::TaQLJoinNodeRep, casacore::TaQLKeyColNodeRep, casacore::TaQLTableNodeRep, casacore::TaQLColNodeRep, casacore::TaQLColumnsNodeRep, casacore::TaQLGroupNodeRep, casacore::TaQLSortKeyNodeRep, casacore::TaQLSortNodeRep, casacore::TaQLLimitOffNodeRep, casacore::TaQLGivingNodeRep, casacore::TaQLUpdExprNodeRep, casacore::TaQLSelectNodeRep, casacore::TaQLCountNodeRep, casacore::TaQLUpdateNodeRep, casacore::TaQLInsertNodeRep, casacore::TaQLDeleteNodeRep, casacore::TaQLCalcNodeRep, casacore::TaQLCreTabNodeRep, casacore::TaQLColSpecNodeRep, casacore::TaQLRecFldNodeRep, casacore::TaQLUnitNodeRep, casacore::TaQLAltTabNodeRep, casacore::TaQLAddColNodeRep, casacore::TaQLRenDropNodeRep, casacore::TaQLSetKeyNodeRep, casacore::TaQLAddRowNodeRep, casacore::TaQLConcTabNodeRep, and casacore::TaQLShowNodeRep.
virtual void casacore::TaQLNodeRep::show | ( | std::ostream & | os | ) | const [pure virtual] |
Print the object in an ostream.
Implemented in casacore::TaQLConstNodeRep, casacore::TaQLRegexNodeRep, casacore::TaQLUnaryNodeRep, casacore::TaQLBinaryNodeRep, casacore::TaQLMultiNodeRep, casacore::TaQLFuncNodeRep, casacore::TaQLRangeNodeRep, casacore::TaQLIndexNodeRep, casacore::TaQLJoinNodeRep, casacore::TaQLKeyColNodeRep, casacore::TaQLTableNodeRep, casacore::TaQLColNodeRep, casacore::TaQLColumnsNodeRep, casacore::TaQLGroupNodeRep, casacore::TaQLSortKeyNodeRep, casacore::TaQLSortNodeRep, casacore::TaQLLimitOffNodeRep, casacore::TaQLGivingNodeRep, casacore::TaQLUpdExprNodeRep, casacore::TaQLQueryNodeRep, casacore::TaQLUpdateNodeRep, casacore::TaQLInsertNodeRep, casacore::TaQLDeleteNodeRep, casacore::TaQLCalcNodeRep, casacore::TaQLColSpecNodeRep, casacore::TaQLRecFldNodeRep, casacore::TaQLUnitNodeRep, casacore::TaQLAddColNodeRep, casacore::TaQLRenDropNodeRep, casacore::TaQLSetKeyNodeRep, casacore::TaQLAddRowNodeRep, and casacore::TaQLShowNodeRep.
Referenced by casacore::TaQLNode::show().
const TaQLStyle& casacore::TaQLNodeRep::style | ( | ) | const [inline] |
Get the TaQL style.
Definition at line 146 of file TaQLNodeRep.h.
References itsStyle.
Referenced by casacore::TaQLNode::style().
static void casacore::TaQLNodeRep::unlink | ( | TaQLNodeRep * | rep | ) | [inline, static] |
Decrement the reference count.
Delete the letter if no more references.
Definition at line 136 of file TaQLNodeRep.h.
References itsCount.
Referenced by casacore::TaQLNode::operator=(), and casacore::TaQLNode::~TaQLNode().
virtual TaQLNodeResult casacore::TaQLNodeRep::visit | ( | TaQLNodeVisitor & | ) | const [pure virtual] |
Visit a node for tree traversal.
Implemented in casacore::TaQLConstNodeRep, casacore::TaQLRegexNodeRep, casacore::TaQLUnaryNodeRep, casacore::TaQLBinaryNodeRep, casacore::TaQLMultiNodeRep, casacore::TaQLFuncNodeRep, casacore::TaQLRangeNodeRep, casacore::TaQLIndexNodeRep, casacore::TaQLJoinNodeRep, casacore::TaQLKeyColNodeRep, casacore::TaQLTableNodeRep, casacore::TaQLColNodeRep, casacore::TaQLColumnsNodeRep, casacore::TaQLGroupNodeRep, casacore::TaQLSortKeyNodeRep, casacore::TaQLSortNodeRep, casacore::TaQLLimitOffNodeRep, casacore::TaQLGivingNodeRep, casacore::TaQLUpdExprNodeRep, casacore::TaQLSelectNodeRep, casacore::TaQLCountNodeRep, casacore::TaQLUpdateNodeRep, casacore::TaQLInsertNodeRep, casacore::TaQLDeleteNodeRep, casacore::TaQLCalcNodeRep, casacore::TaQLCreTabNodeRep, casacore::TaQLColSpecNodeRep, casacore::TaQLRecFldNodeRep, casacore::TaQLUnitNodeRep, casacore::TaQLAltTabNodeRep, casacore::TaQLAddColNodeRep, casacore::TaQLRenDropNodeRep, casacore::TaQLSetKeyNodeRep, casacore::TaQLAddRowNodeRep, casacore::TaQLConcTabNodeRep, and casacore::TaQLShowNodeRep.
Referenced by casacore::TaQLNode::visit().
int casacore::TaQLNodeRep::itsCount [private] |
Definition at line 168 of file TaQLNodeRep.h.
char casacore::TaQLNodeRep::itsNodeType [private] |
Definition at line 169 of file TaQLNodeRep.h.
Referenced by nodeType().
TaQLStyle casacore::TaQLNodeRep::itsStyle [private] |
Definition at line 170 of file TaQLNodeRep.h.
Referenced by style().