00001
00007
#ifndef DECODEOUT_HPP_INCLUDED
00008
#define DECODEOUT_HPP_INCLUDED
00009
00010
#include <ostream>
00011
#include <string>
00012
00013
class DecodeContext;
00014
00021 class DecodeOut
00022 {
00023
public:
00029
DecodeOut(std::ostream & output_stream,
00030
DecodeContext & decode_context);
00031
00032
public:
00033
00038
void
00039
putSectionName(std::string
const &
section_name)
const;
00040
00046
void
00047
putField(std::string
const & field_name,
00048
unsigned width_of_field_in_bits)
const;
00049
00050
public:
00051
00056
void
00057
putLoopControl(std::string
const & loop_control)
const;
00058
00062
bool
00063
testLoopExit()
const;
00064
00072
bool
00073
putIf(std::string
const & field_name,
00074 std::string
const & operation,
00075
unsigned long const & value)
const;
00076
00081
bool
00082
putElse();
00083
00084
public:
00088
void
00089
enterBlock();
00090
00094
void
00095
leaveBlock();
00096
00097
private:
00098 std::string indent()
const;
00099
00100
private:
00101 std::ostream & out_;
00102
DecodeContext & context_;
00103
unsigned depth_;
00104 };
00105
00106
#endif // defined DECODEOUT_HPP_INCLUDED
00107