ROSE 0.11.145.290
|
Specialization of the defect_t template for the case of an edge integrity defect.
#include <Rose/AST/Defect.h>
Public Types | |
enum class | Reason { invalid , incompatible , unallocated } |
![]() | |
using | self_t = defect_t< Kind::any > |
Public Member Functions | |
defect_t (SgNode *source_, SgNode *target_, std::string label_, bool traversed_, bool container_, VariantT expected_, VariantT found_, Reason reason_) | |
virtual void | print (std::ostream &out) const |
![]() | |
defect_t (Kind kind_) | |
Public Attributes | |
SgNode * | source |
Pointer to the source node of the edge (always a valid pointer and node) | |
SgNode * | target |
Pointer to the target node of the edge. Either the pointer or the node are invalid. | |
std::string | label |
Label of this edge in the grammar. | |
bool | traversed |
Traversed edges forms the structure of the AST while the other one represent relations like types and symbols. | |
bool | container |
If the edge have multiplicity (like a node with a std::vector<SgExpression*>) | |
VariantT | expected |
The expected variant for target (like V_SgExpression) | |
VariantT | found |
The actual variant of target if the pointer is valid (obtained by finding the pointer in the memory pool) | |
enum Rose::AST::Defects::defect_t< Kind::integrity_edges >::Reason | reason |
![]() | |
Kind | kind |
Static Public Attributes | |
static constexpr Kind | __kind = Kind::integrity_edges |
Needed to create defects from the typename instead of the kind. | |
![]() | |
static std::set< self_t * > | all |
Set of all defects. | |
Additional Inherited Members | |
![]() | |
template<Kind k, typename... Args> | |
static defect_t< k > const & | record (Args... args) |
Call new for the specific kind of defect, forwards all argument to the constructor. Add pointer to all. | |
template<typename DefectT , typename... Args> | |
static DefectT const & | record (Args... args) |
Call new for the specific defect type, forwards all argument to the constructor (requires the specialization to declare __kind) | |
static void | clear () |
Delete all stored defect and clear the container. | |
static void | display (std::ostream &out) |
|
strong |
|
virtual |
Implements Rose::AST::Defects::defect_t< Kind::any >.
|
staticconstexpr |
SgNode* Rose::AST::Defects::defect_t< Kind::integrity_edges >::source |
SgNode* Rose::AST::Defects::defect_t< Kind::integrity_edges >::target |
std::string Rose::AST::Defects::defect_t< Kind::integrity_edges >::label |
bool Rose::AST::Defects::defect_t< Kind::integrity_edges >::traversed |
bool Rose::AST::Defects::defect_t< Kind::integrity_edges >::container |
VariantT Rose::AST::Defects::defect_t< Kind::integrity_edges >::expected |
VariantT Rose::AST::Defects::defect_t< Kind::integrity_edges >::found |