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
fragment.hh
Go to the documentation of this file.
1
6
#ifndef ASSEM_FRAGMENT_HH
7
# define ASSEM_FRAGMENT_HH
8
9
# include <
tree/fragment.hh
>
10
11
# include <
assem/fwd.hh
>
12
# include <
assem/instrs.hh
>
13
# include <
temp/label.hh
>
14
15
namespace
assem
16
{
17
18
/*-----------.
19
| Fragment. |
20
`-----------*/
21
23
class
Fragment
24
{
25
public
:
26
Fragment
();
27
virtual
~Fragment
();
28
29
virtual
std::ostream&
dump
(std::ostream& os)
const
= 0;
30
33
public
:
35
virtual
void
accept
(
Visitor
& v) = 0;
36
virtual
void
accept
(
ConstVisitor
& v)
const
= 0;
38
};
// class Fragment
39
41
std::ostream&
operator<<
(std::ostream& ostr,
const
Fragment
& fragment);
42
43
44
/*-----------.
45
| DataFrag. |
46
`-----------*/
47
49
class
DataFrag
:
public
Fragment
50
{
51
public
:
52
DataFrag
(
const
tree::DataFrag
& frag);
53
~DataFrag
();
54
55
virtual
std::ostream&
dump
(std::ostream& ostr)
const override
;
56
59
public
:
61
virtual
void
accept
(
Visitor
& v)
override
;
62
virtual
void
accept
(
ConstVisitor
& v)
const override
;
65
public
:
66
const
tree::DataFrag
&
data_get
()
const
;
67
68
protected
:
69
tree::DataFrag
data_frag_
;
70
};
71
72
73
74
/*-----------.
75
| ProcFrag. |
76
`-----------*/
77
78
80
class
ProcFrag
:
public
Fragment
81
{
82
public
:
83
ProcFrag
(
const
tree::ProcFrag
& frag);
84
~ProcFrag
();
85
86
virtual
std::ostream&
dump
(std::ostream& ostr)
const override
;
87
89
frame::Frame
&
frame_get
();
91
const
misc::symbol
&
name_get
()
const
;
93
temp::Label
label_get
()
const
;
97
std::string
file_name
(
const
std::string& p =
""
,
98
const
std::string& s =
""
)
const
;
99
102
void
instrs_set
(
assem::Instrs
& instrs);
104
assem::Instrs
&
instrs_get
();
106
const
assem::Instrs
&
instrs_get
()
const
;
107
110
public
:
112
virtual
void
accept
(
Visitor
& v)
override
;
113
virtual
void
accept
(
ConstVisitor
& v)
const override
;
116
protected
:
118
frame::Frame
frame_
;
120
misc::symbol
name_
;
122
temp::Label
label_
;
124
assem::Instrs
instrs_
;
125
};
// class DataFrag
126
127
128
}
// namespace assem
129
130
# include <
assem/fragment.hxx
>
131
132
#endif // !ASSEM_FRAGMENT_HH
assem
fragment.hh
Generated on Wed Mar 5 2014 15:47:36 for LRDE Tiger Compiler by
1.8.1.2