LRDE Tiger Compiler
1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
frame.hh
Go to the documentation of this file.
1
6
#ifndef FRAME_FRAME_HH
7
# define FRAME_FRAME_HH
8
9
# include <iosfwd>
10
11
# include <
temp/fwd.hh
>
12
# include <
frame/fwd.hh
>
13
# include <
temp/label.hh
>
14
15
namespace
frame
16
{
17
41
class
Frame
42
{
43
public
:
44
Frame
(
const
temp::Label
& label);
49
Frame
(
const
temp::Label
& label,
const
bool_list_type
& escapes);
51
Frame
(
const
Frame
& src);
52
54
~Frame
();
55
56
Frame
&
operator=
(
const
Frame
& src);
57
60
public
:
61
temp::Label
label_get
()
const
;
62
const
access_list_type
&
formals_get
()
const
;
63
int
get_current_frame_size
()
const
;
69
public
:
71
const
In_Frame
*
frame_alloc
();
72
76
const
Access
*
local_alloc
(
bool
escapes);
77
81
const
Access
*
formal_alloc
(
bool
escapes);
82
84
void
formal_alloc
(
const
bool_list_type
& escapes);
85
90
void
arg_add
(
size_t
n);
91
92
93
protected
:
94
const
Access
*
alloc
(
bool
escapes);
95
96
protected
:
98
temp::Label
label_
;
99
109
access_list_type
formals_
;
110
access_list_type
locals_
;
111
113
size_t
offset_
= 0;
115
size_t
arg_offset_
= 0;
116
};
117
119
std::ostream&
operator<<
(std::ostream& o,
const
Frame
& f);
120
121
}
// namespace frame
122
123
#endif // !FRAME_FRAME_HH
frame
frame.hh
Generated on Wed Mar 5 2014 15:47:36 for LRDE Tiger Compiler by
1.8.1.2