V-Gears 0
Free Final Fantasy VII engine.
Graph.h File Reference
#include <ostream>
#include <utility>
#include <vector>
#include <boost/format.hpp>
#include <boost/version.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/intrusive_ptr.hpp>
#include "instruction/Instruction.h"
#include "RefCounted.h"
Include dependency graph for Graph.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  IsJump
 Structure representing whether or not an edge is a jump. More...
 
class  boost::ArrowheadWriter< Name >
 Property writer for the IsJump property. More...
 
struct  CodeLine
 Structure representing a line of code. More...
 
struct  Group
 Structure representing a group of instructions. More...
 
struct  GraphProperties
 Type used to set properties for dot output. More...
 

Namespaces

namespace  boost
 

Typedefs

typedef boost::intrusive_ptr< GroupGroupPtr
 
typedef boost::property< boost::vertex_name_t, GroupPtrGroupProperty
 
typedef boost::property< boost::vertex_index_t, int, GroupPropertyGraphProperty
 
typedef boost::property< boost::edge_attribute_t, IsJumpEdgeProperty
 
typedef boost::adjacency_list< boost::setS, boost::listS, boost::bidirectionalS, GraphProperty, EdgePropertyGraph
 
typedef Graph::vertex_descriptor GraphVertex
 
typedef Graph::vertex_iterator VertexIterator
 
typedef Graph::edge_descriptor GraphEdge
 
typedef Graph::out_edge_iterator OutEdgeIterator
 
typedef Graph::in_edge_iterator InEdgeIterator
 
typedef std::pair< VertexIterator, VertexIteratorVertexRange
 
typedef std::pair< OutEdgeIterator, OutEdgeIteratorOutEdgeRange
 
typedef std::pair< InEdgeIterator, InEdgeIteratorInEdgeRange
 
typedef std::vector< Group * > ElseEnds
 
typedef ElseEnds::iterator ElseEndIterator
 

Enumerations

enum  GROUP_TYPE {
  GROUP_TYPE_NORMAL , GROUP_TYPE_WHILE , GROUP_TYPE_DO_WHILE , GROUP_TYPE_IF ,
  GROUP_TYPE_BREAK , GROUP_TYPE_CONTINUE
}
 Enumeration representing the different kinds of groups. More...
 

Functions

template<class Name >
ArrowheadWriter< Name > boost::MakeArrowheadWriter (Name n)
 Creates an arrowhead property writer. More...
 

Typedef Documentation

◆ EdgeProperty

typedef boost::property<boost::edge_attribute_t, IsJump> EdgeProperty

◆ ElseEndIterator

typedef ElseEnds::iterator ElseEndIterator

◆ ElseEnds

typedef std::vector<Group *> ElseEnds

◆ Graph

typedef boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, GraphProperty, EdgeProperty> Graph

◆ GraphEdge

typedef Graph::edge_descriptor GraphEdge

◆ GraphProperty

typedef boost::property<boost::vertex_index_t, int, GroupProperty> GraphProperty

◆ GraphVertex

typedef Graph::vertex_descriptor GraphVertex

◆ GroupProperty

typedef boost::property<boost::vertex_name_t, GroupPtr> GroupProperty

◆ GroupPtr

typedef boost::intrusive_ptr<Group> GroupPtr

◆ InEdgeIterator

typedef Graph::in_edge_iterator InEdgeIterator

◆ InEdgeRange

◆ OutEdgeIterator

typedef Graph::out_edge_iterator OutEdgeIterator

◆ OutEdgeRange

◆ VertexIterator

typedef Graph::vertex_iterator VertexIterator

◆ VertexRange

Enumeration Type Documentation

◆ GROUP_TYPE

enum GROUP_TYPE

Enumeration representing the different kinds of groups.

Enumerator
GROUP_TYPE_NORMAL 

Normal group.

GROUP_TYPE_WHILE 

Group is the condition check for a while-loop.

GROUP_TYPE_DO_WHILE 

Group is the condition check for a do-while-loop.

GROUP_TYPE_IF 

Group is the condition check for an if.

GROUP_TYPE_BREAK 

Group is a break.

GROUP_TYPE_CONTINUE 

Group is a continue.