| 
|   | Graph_visitor (std::filesystem::path graphsDir, const bool graphs, const bool fullGraph, const bool jsonOut, std::filesystem::path filename) | 
|   | 
| const char *  | getPrevType (const PrevType &prev_type) | 
|   | Maps PrevType to string.  
  | 
|   | 
| const char *  | getType (const VertexType &v_type) | 
|   | Maps VertexType to string.  
  | 
|   | 
| void  | process (std::vector< Graph * > &controlGraphsArray, std::vector< Graph * > &parserGraphsArray) | 
|   | 
| void  | writeGraphToFile (const Graph &g, const std::string &name) | 
|   | 
| 
vertex_t  | add_and_connect_vertex (const cstring &name, VertexType type) | 
|   | 
| 
void  | add_edge (const vertex_t &from, const vertex_t &to, const cstring &name) | 
|   | 
| void  | add_edge (const vertex_t &from, const vertex_t &to, const cstring &name, unsigned cluster_id) | 
|   | 
| 
vertex_t  | add_vertex (const cstring &name, VertexType type) | 
|   | 
| std::optional< vertex_t >  | merge_other_statements_into_vertex () | 
|   | 
| const IR::Node *  | apply_visitor (const IR::Node *, const char *name=0) override | 
|   | 
| profile_t  | init_apply (const IR::Node *root) override | 
|   | 
| 
virtual void  | loop_revisit (const IR::Node *) | 
|   | 
| 
virtual void  | postorder (const IR::Node *) | 
|   | 
| virtual bool  | preorder (const IR::Node *) | 
|   | 
| 
virtual void  | revisit (const IR::Node *) | 
|   | 
| 
void  | revisit_visited () | 
|   | 
| 
bool  | visit_in_progress (const IR::Node *n) const | 
|   | 
| void  | visitAgain () const override | 
|   | 
| void  | visitOnce () const override | 
|   | 
| 
virtual bool  | check_global (cstring) | 
|   | 
| 
virtual void  | clear_globals () | 
|   | 
| 
virtual Visitor *  | clone () const | 
|   | 
| 
virtual ControlFlowVisitor *  | controlFlowVisitor () | 
|   | 
| 
virtual void  | end_apply () | 
|   | 
| 
virtual void  | end_apply (const IR::Node *root) | 
|   | 
| 
virtual void  | erase_global (cstring) | 
|   | 
| 
template<class T >  | 
| const T *  | findContext () const | 
|   | 
| 
template<class T >  | 
| const T *  | findContext (const Context *&c) const | 
|   | 
| 
template<class T >  | 
| const T *  | findOrigCtxt () const | 
|   | 
| 
template<class T >  | 
| const T *  | findOrigCtxt (const Context *&c) const | 
|   | 
| 
virtual Visitor &  | flow_clone () | 
|   | 
| virtual void  | flow_merge (Visitor &) | 
|   | 
| 
virtual bool  | flow_merge_closure (Visitor &) | 
|   | 
| 
virtual void  | flow_merge_global_from (cstring) | 
|   | 
| virtual void  | flow_merge_global_to (cstring) | 
|   | 
| 
const Context *  | getChildContext () const | 
|   | 
| 
int  | getChildrenVisited () const | 
|   | 
| 
const Context *  | getContext () const | 
|   | 
| 
int  | getContextDepth () const | 
|   | 
| const IR::Node *  | getCurrentNode () const | 
|   | 
| 
template<class T >  | 
| const T *  | getCurrentNode () const | 
|   | 
| 
const IR::Node *  | getOriginal () const | 
|   | 
| 
template<class T >  | 
| const T *  | getOriginal () const | 
|   | 
| 
template<class T >  | 
| const T *  | getParent () const | 
|   | 
| 
virtual bool  | has_flow_joins () const | 
|   | 
| 
profile_t  | init_apply (const IR::Node *root, const Context *parent_context) | 
|   | 
| 
bool  | isInContext (const IR::Node *n) const | 
|   | 
| 
virtual const char *  | name () const | 
|   | 
| 
template<class T >  | 
| void  | parallel_visit (const IR::Vector< T > &v, const char *name, int cidx) | 
|   | 
| 
template<class T >  | 
| void  | parallel_visit (const IR::Vector< T > &v, const char *name=0) | 
|   | 
| 
template<class T >  | 
| void  | parallel_visit (IR::Vector< T > &v, const char *name, int cidx) | 
|   | 
| 
template<class T >  | 
| void  | parallel_visit (IR::Vector< T > &v, const char *name=0) | 
|   | 
| 
void  | print_context () const | 
|   | 
| 
const Visitor &  | setCalledBy (const Visitor *visitor) | 
|   | 
| 
void  | setName (const char *name) | 
|   | 
| 
void  | visit (const IR::Node &n, const char *name, int cidx) | 
|   | 
| 
void  | visit (const IR::Node &n, const char *name=0) | 
|   | 
| 
void  | visit (const IR::Node *&n, const char *name, int cidx) | 
|   | 
| 
void  | visit (const IR::Node *&n, const char *name=0) | 
|   | 
| 
void  | visit (const IR::Node *const &n, const char *name, int cidx) | 
|   | 
| 
void  | visit (const IR::Node *const &n, const char *name=0) | 
|   | 
| 
void  | visit (IR::Node &n, const char *name, int cidx) | 
|   | 
| 
void  | visit (IR::Node &n, const char *name=0) | 
|   | 
| 
void  | visit (IR::Node *&, const char *=0, int=0) | 
|   | 
| 
template<class T , typename  = std::enable_if_t<Util::has_SourceInfo_v<T>>, class... Args>  | 
| void  | warn (const int kind, const char *format, const T &node, Args &&...args) | 
|   | The const ref variant of the above. 
  | 
|   | 
| 
template<class T , typename  = std::enable_if_t<Util::has_SourceInfo_v<T>>, class... Args>  | 
| void  | warn (const int kind, const char *format, const T *node, Args &&...args) | 
|   | 
| bool  | warning_enabled (int warning_kind) const | 
|   | 
 | 
| using  | edgeProperties | 
|   | 
| 
using  | Graph = boost::subgraph<Graph_> | 
|   | 
| using  | Graph_ | 
|   | 
| using  | graphProperties | 
|   | 
| using  | GraphvizAttributes = std::map<cstring, cstring> | 
|   | 
| 
using  | Parents = std::vector<std::pair<vertex_t, EdgeTypeIface *>> | 
|   | 
| 
using  | vertex_t = boost::graph_traits<Graph>::vertex_descriptor | 
|   | 
| 
using  | vertexProperties = boost::property<boost::vertex_attribute_t, GraphvizAttributes, Vertex> | 
|   | 
| enum class   | VertexType {  
  TABLE
, KEY
, ACTION
, CONDITION
,  
  SWITCH
, STATEMENTS
, CONTROL
, OTHER
,  
  STATE
, EMPTY
 
 } | 
|   | 
| 
typedef Visitor_Context  | Context | 
|   | 
| 
static cstring  | demangle (const char *) | 
|   | 
| static bool  | warning_enabled (const Visitor *visitor, int warning_kind) | 
|   | 
| 
const Visitor *  | called_by = nullptr | 
|   | 
| 
cstring  | internalName | 
|   | 
| 
SplitFlowVisit_base *&  | split_link | 
|   | 
| 
SplitFlowVisit_base *  | split_link_mem = nullptr | 
|   | 
| 
virtual void  | init_join_flows (const IR::Node *) | 
|   | 
| virtual bool  | join_flows (const IR::Node *) | 
|   | 
| virtual void  | post_join_flows (const IR::Node *, const IR::Node *) | 
|   | 
| 
void  | visit_children (const IR::Node *, std::function< void()> fn) | 
|   | 
| 
vertex_t  | exit_v {} | 
|   | 
| 
Graph *  | g {nullptr} | 
|   | 
| 
Parents  | parents {} | 
|   | 
| 
vertex_t  | start_v {} | 
|   | 
| 
std::vector< const IR::Statement * >  | statementsStack {} | 
|   | 
| 
bool  | dontForwardChildrenBeforePreorder = false | 
|   | 
| 
bool  | joinFlows = false | 
|   | 
| 
bool  | visitDagOnce = true | 
|   | 
"process" function of class is dependent on previous aplication of visitor classes Controls and Parsers onto IR, and can only be run after them.