V-Gears 0
Free Final Fantasy VII engine.
Group Struct Reference

Structure representing a group of instructions. More...

#include <Graph.h>

Inheritance diagram for Group:
Collaboration diagram for Group:

Public Member Functions

 Group ()
 Parameterless constructor. More...
 
 Group (GraphVertex vertex, InstIterator start, InstIterator end, GroupPtr prev)
 Constructor. More...
 

Public Attributes

GraphVertex vertex
 Vertex the group belongs to. More...
 
InstIterator start
 First instruction in the group. More...
 
InstIterator end
 Last instruction in the group. More...
 
int stack_level
 Level of the stack upon entry. More...
 
GROUP_TYPE type
 Type of the group. More...
 
bool start_else
 Group is start of an else block. More...
 
ElseEnds end_else
 Group is end of an else block. More...
 
Groupprev
 Pointer to the previous group, when ordered by address. More...
 
Groupnext
 Pointer to the next group, when ordered by address. More...
 
std::vector< CodeLinecode
 Decompiled lines of code. More...
 
bool coalesced_else
 Indicates if an starting else coalesces with another block. More...
 

Friends

std::ostream & operator<< (std::ostream &output, GroupPtr group)
 Output a group to an stream as a graphviz label. More...
 

Additional Inherited Members

- Protected Member Functions inherited from RefCounted
 RefCounted ()
 
virtual ~RefCounted ()
 

Detailed Description

Structure representing a group of instructions.

Constructor & Destructor Documentation

◆ Group() [1/2]

Group::Group ( )

Parameterless constructor.

Required for use with STL and Boost, should not be called manually.

◆ Group() [2/2]

Group::Group ( GraphVertex  vertex,
InstIterator  start,
InstIterator  end,
GroupPtr  prev 
)

Constructor.

Parameters
[in]vertexThe vertex the group belongs to.
[in]startFirst instruction in the group.
[in]endLast instruction in the group.
[in]prevPointer to the previous group, when ordered by address.

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  output,
GroupPtr  group 
)
friend

Output a group to an stream as a graphviz label.

Parameters
[out]outputThe stream to output to.
[in]groupThe Group to output.
Returns
The stream used for output.

Member Data Documentation

◆ coalesced_else

bool Group::coalesced_else

Indicates if an starting else coalesces with another block.

True if an else starting has been coalesced with another block (e.g. "else if"). If true, an else starting here should not be closed explicitly, but left to the other block.

◆ code

std::vector<CodeLine> Group::code

Decompiled lines of code.

◆ end

InstIterator Group::end

Last instruction in the group.

◆ end_else

ElseEnds Group::end_else

Group is end of an else block.

◆ next

Group* Group::next

Pointer to the next group, when ordered by address.

◆ prev

Group* Group::prev

Pointer to the previous group, when ordered by address.

Used for short-circuit analysis.

◆ stack_level

int Group::stack_level

Level of the stack upon entry.

◆ start

InstIterator Group::start

First instruction in the group.

◆ start_else

bool Group::start_else

Group is start of an else block.

◆ type

GROUP_TYPE Group::type

Type of the group.

◆ vertex

GraphVertex Group::vertex

Vertex the group belongs to.


The documentation for this struct was generated from the following files: