10 #include "roseInternal.h"
31 typedef size_t size_type;
152 bool is_past_the_end()
const;
154 std::string current_node_id()
const;
156 std::string parent_node_id()
const;
158 void print_top_element()
const;
165 bool _skipChildrenOnForward;
166 bool _withNullValues;
170 static const int ROOT_NODE_INDEX=-2;
172 typedef struct {
SgNode* node;
int index;} stack_element;
173 std::stack<stack_element> _stack;
174 SgNode* access_node_by_parent_and_index(
SgNode* p,
int index)
const;
177 int num_children(
SgNode* p)
const;
193 std::list<SgFunctionDeclaration*> findFunctionDeclarationsByName(std::string name);
202 static bool isSubTypeOf(VariantT DerivedClassVariant, VariantT BaseClassVariant);
204 static bool isSubType(VariantT DerivedClassVariant, VariantT BaseClassVariant);
205 void setWithNullValues(
bool flag);
206 void setWithTemplates(
bool flag);
212 bool _withNullValues;
static bool isSubTypeOf(VariantT DerivedClassVariant, VariantT BaseClassVariant)
determines based on VariantT whether a ROSE-AST node is a subtype of another node type.
bool operator!=(const iterator &x) const
Test iterator inequality.
SgNode * operator*() const
Dereference an iterator.
iterator & operator++()
Advance the iterator.
iterator begin()
Iterator positioned at root of subtree.
void skipChildrenOnForward()
Cause children to be skipped on the next advancement.
Interface for iterating over an AST.
RoseAst(SgNode *astNode)
Defines the starting node for traversal.
iterator & withoutNullValues()
Mode to enable or disable skipping null child pointers.
bool operator==(const iterator &x) const
Test iterator equality.
static bool isTemplateInstantiationNode(SgNode *node)
determines whether a node is used to represent the root node of a template instantiation
This class represents the base class for all IR nodes within Sage III.
int stack_size() const
Depth of traversal.
SgNode * parent() const
Parent AST node relative to the iteration.
static bool isTemplateNode(SgNode *node)
determines whether a node is used to represent the root node of a template.
This class represents the concept of a scope in C++ (e.g. global scope, fuction scope,...
iterator & withNullValues()
Mode to enable or disable skipping null child pointers.
iterator end()
Iterator positioned at the end of the traversal.
bool is_at_first_child() const
Test whether iterator is at the first child of its parent.
bool is_at_root() const
Test whether iterator is pointing to root node of AST to be traversed.
iterator()
Default constructor.
bool is_at_last_child() const
Test whether iterator as at the last child of its parent.
static bool isSubType(VariantT DerivedClassVariant, VariantT BaseClassVariant)
deprecated, use isSubTypeOf instead