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
level.hh
Go to the documentation of this file.
1
6
#ifndef TRANSLATE_LEVEL_HH
7
# define TRANSLATE_LEVEL_HH
8
9
# include <iosfwd>
10
# include <
misc/fwd.hh
>
11
# include <
frame/fwd.hh
>
12
# include <
translate/fwd.hh
>
13
14
namespace
translate
15
{
27
class
Level
28
{
29
public
:
30
// \brief Ctor for all the inner levels.
31
//
32
// \param name of this function.
33
// \param parent link the Level of the (static) parent, i.e. the
34
// function declaring this function in the source.
35
// \param formal_escapes
36
// list of Booleans: whether the arguments escape.
37
// Not const since we need to add the static link in there.
38
Level
(
const
misc::symbol
& name,
39
const
Level
* parent =
nullptr
,
40
frame::bool_list_type
formal_escapes =
frame::bool_list_type
());
41
50
~Level
();
51
52
public
:
56
const
Level
*
parent_get
()
const
;
58
frame::Frame
&
frame_get
();
60
const
frame::Frame
&
frame_get
()
const
;
62
temp::Label
label_get
()
const
;
64
const
access_list_type
&
formals_get
()
const
;
66
int
frame_size_get
()
const
;
68
69
71
tree::rExp
sl
()
const
;
72
88
tree::rExp
fp
(
const
Level
& use)
const
;
89
91
std::ostream&
dump
(std::ostream& o)
const
;
92
93
public
:
97
const
Access
*
local_alloc
(
bool
escapes);
99
const
Access
*
formal_alloc
(
bool
escapes);
100
101
private
:
103
const
Level
*
parent_
;
105
frame::Frame
*
frame_
;
107
access_list_type
formals_
;
109
access_list_type
locals_
;
110
};
111
112
114
std::ostream&
operator<<
(std::ostream& o,
const
Level
&
l
);
115
116
}
117
118
# include <
translate/level.hxx
>
119
120
#endif // !TRANSLATE_LEVEL_HH
translate
level.hh
Generated on Wed Mar 5 2014 15:47:37 for LRDE Tiger Compiler by
1.8.1.2