1#ifndef rose_adapter_INCLUDED
2#define rose_adapter_INCLUDED
8#include "abstract_handle.h"
16 void*
getNode()
const {
return (
void*) mNode; }
24 virtual std::string getFileName()
const;
29 virtual std::string toString()
const;
to specify a construct using a specifier Can be used alone or with parent handles when relative speci...
Users should provide a concrete node implementation especially a constructor/builder to avoid duplica...
Concrete roseNode derived from abstract_node.
virtual AbstractHandle::abstract_node * getParent() const
Get parent node, used for generate parent handle automatically.
virtual std::string getName() const
Get the name of the construct if it is named, like function name.
virtual bool hasSourcePos() const
If the node has meaningful line and column numbers associated with a file.
ROSE_DLL_API friend roseNode * buildroseNode(SgNode *snode)
A builder function to avoid duplicated building.
virtual bool hasName() const
If the node has legal names defined by language standards.
virtual AbstractHandle::abstract_node * getFileNode() const
Get the start source file position of the construct Get the abstract node for file containing the cur...
virtual std::string getConstructTypeName() const
Get the construct' s type name, like function.
virtual AbstractHandle::abstract_node * findNode(std::string construct_type_str, AbstractHandle::specifier mspecifier) const
Find a node of a given type, it also matches the specifier.
void * getNode() const
Get the raw IR node associated with the current abstract node.
virtual size_t getNumbering(const AbstractHandle::abstract_node *another_node) const
Get the ordering of the construct relative to another construct in a higher scope Numbering start fro...
construct specifier could be used to specify a construct by name, position, numbering,...
This class represents the notion of an expression or statement which has a position within the source...
This class represents the base class for all IR nodes within Sage III.
String annotations to uniquely indicate any source constructs.
ROSE_DLL_API roseNode * buildroseNode(SgNode *snode)
A builder function to avoid duplicated building.
ROSE_DLL_API SgLocatedNode * convertHandleToNode(const std::string &handle)
Convert an abstract handle string to a located node in AST.
ROSE_DLL_API abstract_handle * buildAbstractHandle(SgNode *snode)
A default builder function handles all details: file use name, others use numbering
source position information: