27#ifndef FCML_STATEFUL_DISASSEMBLER_HPP_
28#define FCML_STATEFUL_DISASSEMBLER_HPP_
55 _disassembler(disassembler),
56 _disassemblerContext(context) {
57 _renderer = enableRendering ?
91 _disassembler.disassemble(_disassemblerContext, _disassemblerResult);
93 instruction = _disassemblerResult.getInstruction();
119 _disassembler.disassemble(_disassemblerContext, _disassemblerResult);
121 _rendererConfig.setThrowExceptionOnError(
true);
122 _renderer->render(_rendererConfig, _disassemblerResult, instruction);
143 *
this >> instruction;
146 ostream << instruction << _endOfLine;
158 return _rendererConfig;
168 return _rendererConfig;
188 _endOfLine = endOfLine;
Disassembler configuration.
Definition fcml_disassembler.hpp:58
void setThrowExceptionOnError(bool throwExceptionOnError)
Sets the way how the error handling is done.
Definition fcml_disassembler.hpp:164
void setIncrementIp(bool incrementIp)
Definition fcml_disassembler.hpp:132
Disassembler context.
Definition fcml_disassembler.hpp:183
Disassembler result.
Definition fcml_disassembler.hpp:1877
Disassembler wrapper.
Definition fcml_disassembler.hpp:2211
Dialect & getDialect() const
Gets dialect associated with the disassembler.
Definition fcml_disassembler.hpp:2313
Illegal state exception.
Definition fcml_common.hpp:253
Describes an instruction.
Definition fcml_common.hpp:7185
Renderer configuration.
Definition fcml_renderer.hpp:52
Renderer wrapper.
Definition fcml_renderer.hpp:163
StatefulDisassembler(Disassembler &disassembler, DisassemblerContext &context, bool enableRendering=false)
Creates a stateful disassembler for given FCML disassembler and context.
Definition fcml_stateful_disassembler.hpp:53
RenderConfig & getRendererConfig()
Gets renderer configuration used by the instruction buffer.
Definition fcml_stateful_disassembler.hpp:157
const RenderConfig & getRendererConfig() const
Gets renderer configuration used by the internally managed instruction renderer.
Definition fcml_stateful_disassembler.hpp:167
const fcml_cstring & getEndOfLine() const
Gets end of line characters sequence used by the renderer.
Definition fcml_stateful_disassembler.hpp:177
void setEndOfLine(const fcml_cstring &endOfLine)
Sets dedicated end of line characters.
Definition fcml_stateful_disassembler.hpp:187
virtual ~StatefulDisassembler()
Destructor.
Definition fcml_stateful_disassembler.hpp:69
StatefulDisassembler & operator>>(Instruction &instruction)
Disassembles the next instruction pointed by the disassembler state.
Definition fcml_stateful_disassembler.hpp:82
std::basic_ostringstream< fcml_char > fcml_costream
String output stream.
Definition fcml_common.hpp:59
std::basic_string< fcml_char > fcml_cstring
By using this type definition here, it will be definitely much easier to support UNICODE in future re...
Definition fcml_common.hpp:53
C++ wrapper for the FCML disassembler.
C++ wrapper for FCML renderer.
#define FCML_TEXT(x)
Used to code literal strings.
Definition fcml_types.h:61