|
casacore
|
#include <TaQLNode.h>
Public Member Functions | |
| TaQLNode () | |
| Default constructor. | |
| TaQLNode (TaQLNodeRep *rep) | |
| Construct for given letter. | |
| TaQLNode (const TaQLNode &that) | |
| Copy constructor (reference semantics). | |
| TaQLNode & | operator= (const TaQLNode &that) |
| Assignment (reference semantics). | |
| const TaQLStyle & | style () const |
| Get the TaQL style. | |
| virtual | ~TaQLNode () noexcept=default |
| Bool | isValid () const |
| Does the envelope contain a letter? | |
| char | nodeType () const |
| Return the type of letter. | |
| const TaQLNodeRep * | getRep () const |
| Get read access to the letter. | |
| TaQLNodeResult | visit (TaQLNodeVisitor &visitor) const |
| Let the visitor visit the node. | |
| void | show (std::ostream &os) const |
| Print the node (recursively) in the given stream. | |
| void | save (AipsIO &aio) const |
| Save and restore the entire parse tree. | |
| void | saveNode (AipsIO &aio) const |
| Helper functions for save/restore of tree. | |
Static Public Member Functions | |
| static TaQLNode | parse (const String &command) |
| Parse a TaQL command and return the result. | |
| 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. | |
| static std::vector< TaQLNode * > | theirNodesCreated |
| A list of objects created by the parser and deleted at the end. | |
| static TaQLStyle | theirStyle |
| Keep the TaQL style to use. | |
| static std::mutex | theirMutex |
| Use a mutex to guard the statics. | |
Protected Attributes | |
| std::shared_ptr< TaQLNodeRep > | itsRep |
Static Private Member Functions | |
| static void | clearNodesCreated () |
| Delete all nodes that were created by the parser. | |
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 81 of file TaQLNode.h.
|
inline |
Default constructor.
Definition at line 85 of file TaQLNode.h.
Referenced by casacore::TaQLMultiNode::add(), operator=(), parse(), restore(), restoreNode(), and TaQLNode().
|
inline |
Construct for given letter.
It takes over the pointer.
Definition at line 89 of file TaQLNode.h.
References itsRep.
|
inline |
Copy constructor (reference semantics).
Definition at line 93 of file TaQLNode.h.
References itsRep, and TaQLNode().
|
virtualdefaultnoexcept |
|
staticprivate |
Delete all nodes that were created by the parser.
|
inline |
|
inline |
Does the envelope contain a letter?
Definition at line 116 of file TaQLNode.h.
References isValid(), and itsRep.
Referenced by isValid().
|
inline |
Assignment (reference semantics).
Definition at line 97 of file TaQLNode.h.
References itsRep, and TaQLNode().
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.
References parse(), and TaQLNode().
Referenced by parse().
References TaQLNode().
|
static |
References TaQLNode().
| 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 133 of file TaQLNode.h.
References itsRep.
|
inline |
|
inline |
Let the visitor visit the node.
If no node, return an empty result.
Definition at line 129 of file TaQLNode.h.
References itsRep.
Referenced by casacore::TaQLNodeVisitor::visitNode().
|
protected |
Definition at line 143 of file TaQLNode.h.
Referenced by getRep(), isValid(), nodeType(), operator=(), show(), style(), TaQLNode(), TaQLNode(), and visit().
|
static |
Use a mutex to guard the statics.
Definition at line 164 of file TaQLNode.h.
|
static |
The object getting the final tree.
Definition at line 158 of file TaQLNode.h.
|
static |
A list of objects created by the parser and deleted at the end.
Definition at line 160 of file TaQLNode.h.
|
static |
Keep the TaQL style to use.
Definition at line 162 of file TaQLNode.h.