#include <cassert>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include "graphite2/Segment.h"
#include "inc/Code.h"
#include "inc/Face.h"
#include "inc/GlyphFace.h"
#include "inc/GlyphCache.h"
#include "inc/Machine.h"
#include "inc/Rule.h"
#include "inc/Silf.h"
#include <cstdio>
#ifdef NDEBUG
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wunused-parameter"
#endif
#endif
usingnamespacegraphite2;
usingnamespacevm;
namespace {
inline bool is_return(const instr i) { … }
struct context
{ … };
}
class Machine::Code::decoder
{ … };
struct Machine::Code::decoder::limits
{ … };
inline Machine::Code::decoder::decoder(limits & lims, Code &code, enum passtype pt) throw()
: … { … }
Machine::Code::Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end,
uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face,
enum passtype pt, byte * * const _out)
: … { … }
Machine::Code::~Code() throw ()
{ … }
bool Machine::Code::decoder::load(const byte * bc, const byte * bc_end)
{ … }
opcode Machine::Code::decoder::fetch_opcode(const byte * bc)
{ … }
void Machine::Code::decoder::analyse_opcode(const opcode opc, const int8 * arg) throw()
{ … }
bool Machine::Code::decoder::emit_opcode(opcode opc, const byte * & bc)
{ … }
void Machine::Code::decoder::apply_analysis(instr * const code, instr * code_end)
{ … }
inline
bool Machine::Code::decoder::validate_opcode(const byte opc, const byte * const bc)
{ … }
bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw()
{ … }
inline
bool Machine::Code::decoder::test_ref(int8 index) const throw()
{ … }
bool Machine::Code::decoder::test_context() const throw()
{ … }
bool Machine::Code::decoder::test_attr(attrCode) const throw()
{ … }
inline
void Machine::Code::failure(const status_t s) throw() { … }
inline
void Machine::Code::decoder::set_ref(int index) throw() { … }
inline
void Machine::Code::decoder::set_noref(int index) throw() { … }
inline
void Machine::Code::decoder::set_changed(int index) throw() { … }
void Machine::Code::release_buffers() throw()
{ … }
int32 Machine::Code::run(Machine & m, slotref * & map) const
{ … }