|  | 
| void | sg::report_error (std::string desc, const char *file=nullptr, size_t ln=0) | 
|  | 
| void | sg::unexpected_node (const SgNode &n, const char *file=nullptr, size_t ln=0) | 
|  | 
| template<class T > | 
| T & | sg::deref (T *ptr, const char *file=0, size_t ln=0) | 
|  | dereferences an object (= checked dereference in debug mode) 
 | 
|  | 
| template<class RoseVisitor > | 
| std::remove_const< typename std::remove_reference< RoseVisitor >::type >::type | sg::_dispatch (RoseVisitor &&rv, SgNode *n) | 
|  | 
| template<class RoseVisitor > | 
| std::remove_const< typename std::remove_reference< RoseVisitor >::type >::type | sg::dispatch (RoseVisitor &&rv, SgNode *n) | 
|  | uncovers the type of SgNode and passes it to an function "handle" in RoseVisitor.  More... 
 | 
|  | 
| template<class RoseVisitor > | 
| std::remove_const< typename std::remove_reference< RoseVisitor >::type >::type | sg::dispatch (RoseVisitor &&rv, const SgNode *n) | 
|  | 
| template<class AncestorNode , class QualSgNode > | 
| AncestorNode * | sg::_ancestor (QualSgNode &n) | 
|  | implements the ancestor search  More... 
 | 
|  | 
| template<class AncestorNode > | 
| AncestorNode * | sg::ancestor (SgNode *n) | 
|  | finds an ancestor node with a given type  More... 
 | 
|  | 
| template<class AncestorNode > | 
| const AncestorNode * | sg::ancestor (const SgNode *n) | 
|  | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 
 | 
|  | 
| template<class AncestorNode > | 
| AncestorNode & | sg::ancestor (SgNode &n) | 
|  | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 
 | 
|  | 
| template<class AncestorNode > | 
| const AncestorNode & | sg::ancestor (const SgNode &n) | 
|  | This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 
 | 
|  | 
| template<class SageNode , class SageChild > | 
| void | sg::swap_child (SageNode &lhs, SageNode &rhs, SageChild *(SageNode::*getter)() const, void(SageNode::*setter)(SageChild *)) | 
|  | swaps children (of equal kind) between two ancestor nodes of the same type  More... 
 | 
|  | 
| template<class SageParent , class SageChild > | 
| void | sg::linkParentChild (SageParent &parent, SageChild &child, void(SageParent::*setter)(SageChild *)) | 
|  | 
|  | 
| template<class SageNode > | 
| SageNode * | sg::assert_sage_type (SgNode *n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode * | sg::assert_sage_type (const SgNode *n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| SageNode & | sg::assert_sage_type (SgNode &n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode & | sg::assert_sage_type (const SgNode &n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
|  | 
| template<class SageNode > | 
| SageNode::base_node_type & | sg::asBaseType (SageNode &n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode::base_node_type & | sg::asBaseType (const SageNode &n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| SageNode::base_node_type * | sg::asBaseType (SageNode *n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode::base_node_type * | sg::asBaseType (const SageNode *n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
|  | 
| template<class SageNode > | 
| SageNode * | sg::assert_sage_type (SgNode *n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode * | sg::assert_sage_type (const SgNode *n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| SageNode & | sg::assert_sage_type (SgNode &n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode & | sg::assert_sage_type (const SgNode &n, const char *f=0, size_t ln=0) | 
|  | asserts that n has type SageNode  More... 
 | 
|  | 
|  | 
| template<class SageNode > | 
| SageNode::base_node_type & | sg::asBaseType (SageNode &n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode::base_node_type & | sg::asBaseType (const SageNode &n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| SageNode::base_node_type * | sg::asBaseType (SageNode *n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
| template<class SageNode > | 
| const SageNode::base_node_type * | sg::asBaseType (const SageNode *n) | 
|  | returns the same node n upcasted to its base type  More... 
 | 
|  | 
This file implements generic (template) sage query functions Currently this includes functions for:
- dispatching according to the type of a sage node (dispatch)
- finding the ancestor with a specific node type (ancestor)
- recovering the type of a sage node assertively (assert_node_type) 
Definition in file sageGeneric.h.