P4C
The P4 Compiler
 
Loading...
Searching...
No Matches
graphs::ParserGraphs Class Reference
Inheritance diagram for graphs::ParserGraphs:

Classes

struct  TransitionEdge
 

Public Member Functions

 ParserGraphs (P4::ReferenceMap *refMap, const cstring &graphsDir)
 
Graph * CreateSubGraph (Graph &currentSubgraph, const cstring &name)
 
void postorder (const IR::P4Parser *parser) override
 
void postorder (const IR::ParserState *state) override
 
void postorder (const IR::PathExpression *expression) override
 
void postorder (const IR::SelectExpression *expression) override
 
- Public Member Functions inherited from graphs::Graphs
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)
 used to connect subgraphs
 
vertex_t add_vertex (const cstring &name, VertexType type)
 
std::optional< vertex_t > merge_other_statements_into_vertex ()
 

Public Attributes

std::vector< Graph * > parserGraphsArray {}
 

Protected Attributes

std::map< const IR::P4Parser *, safe_vector< const IR::ParserState * > > states
 
std::map< const IR::P4Parser *, safe_vector< const TransitionEdge * > > transitions
 
- Protected Attributes inherited from graphs::Graphs
vertex_t exit_v {}
 
Graph * g {nullptr}
 
Parents parents {}
 
vertex_t start_v {}
 
std::vector< const IR::Statement * > statementsStack {}
 

Additional Inherited Members

- Public Types inherited from graphs::Graphs
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
}