casacore
|
Envelope class for a node in the raw TaQL parse tree. More...
#include <TaQLNode.h>
Public Member Functions | |
TaQLNode () | |
Default constructor. More... | |
TaQLNode (TaQLNodeRep *rep) | |
Construct for given letter. More... | |
TaQLNode (const TaQLNode &that) | |
Copy constructor (reference semantics). More... | |
TaQLNode & | operator= (const TaQLNode &that) |
Assignment (reference semantics). More... | |
const TaQLStyle & | style () const |
Get the TaQL style. More... | |
~TaQLNode () | |
Destructor deletes the letter if no more references. More... | |
Bool | isValid () const |
Does the envelope contain a letter? More... | |
char | nodeType () const |
Return the type of letter. More... | |
const TaQLNodeRep * | getRep () const |
Get read access to the letter. More... | |
TaQLNodeResult | visit (TaQLNodeVisitor &visitor) const |
Let the visitor visit the node. More... | |
void | show (std::ostream &os) const |
Print the node (recursively) in the given stream. More... | |
void | save (AipsIO &aio) const |
Save and restore the entire parse tree. More... | |
void | saveNode (AipsIO &aio) const |
Helper functions for save/restore of tree. More... | |
Static Public Member Functions | |
static TaQLNode | parse (const String &command) |
Parse a TaQL command and return the result. More... | |
static TaQLNode | restore (AipsIO &aio) |
static TaQLNode | restoreNode (AipsIO &aio) |
static TaQLMultiNode | restoreMultiNode (AipsIO &aio) |
Static Public Attributes | |
static TaQLNode | theirNode |
The object getting the final tree. More... | |
static std::vector< TaQLNode * > | theirNodesCreated |
A list of objects created by the parser and deleted at the end. More... | |
static TaQLStyle | theirStyle |
Keep the TaQL style to use. More... | |
static std::mutex | theirMutex |
Use a mutex to guard the statics. More... | |
Protected Attributes | |
std::shared_ptr< TaQLNodeRep > | itsRep |
Static Private Member Functions | |
static void | clearNodesCreated () |
Delete all nodes that were created by the parser. More... | |
Envelope class for a node in the raw TaQL parse tree.
Internal
The result of parsing a TaQL command is stored in TaQLNode objects. Each part of the command can have its own specialized TaQLNodeRep object, which forms the letter in the TaQLNode envelope.
The actual scanning/parsing of the command is done using flex/bison as defined in the TableGram files.
The letter-envelope idiom (counted pointer) makes if much easier to keep track of memory, especially in the case of exceptions.
Definition at line 83 of file TaQLNode.h.
|
inline |
Default constructor.
Definition at line 87 of file TaQLNode.h.
|
inline |
Construct for given letter.
It takes over the pointer.
Definition at line 91 of file TaQLNode.h.
References itsRep.
|
inline |
Copy constructor (reference semantics).
Definition at line 95 of file TaQLNode.h.
References itsRep.
|
inline |
Destructor deletes the letter if no more references.
Definition at line 111 of file TaQLNode.h.
|
staticprivate |
Delete all nodes that were created by the parser.
|
inline |
|
inline |
|
inline |
Parse a TaQL command and return the result.
An exception is thrown in case of parse errors. The parse tree is deleted by function clearNodeCreated.
|
static |
void casacore::TaQLNode::save | ( | AipsIO & | aio | ) | const |
Save and restore the entire parse tree.
void casacore::TaQLNode::saveNode | ( | AipsIO & | aio | ) | const |
Helper functions for save/restore of tree.
|
inline |
Print the node (recursively) in the given stream.
Definition at line 137 of file TaQLNode.h.
References itsRep.
|
inline |
|
inline |
Let the visitor visit the node.
If no node, return an empty result.
Definition at line 133 of file TaQLNode.h.
References itsRep.
Referenced by casacore::TaQLNodeVisitor::visitNode().
|
protected |
Definition at line 147 of file TaQLNode.h.
Referenced by getRep(), isValid(), nodeType(), operator=(), show(), style(), TaQLNode(), and visit().
|
static |
Use a mutex to guard the statics.
Definition at line 168 of file TaQLNode.h.
|
static |
The object getting the final tree.
Definition at line 162 of file TaQLNode.h.
|
static |
A list of objects created by the parser and deleted at the end.
Definition at line 164 of file TaQLNode.h.
|
static |
Keep the TaQL style to use.
Definition at line 166 of file TaQLNode.h.