sourcepawn/decompiler/decompiler.h
author Nicholas Hastings <skamonkey@gmail.com>
Sun Aug 25 11:01:55 2013 -0400 (2013-08-25)
changeset 4061 fffdcac63ac3
parent 2325 7a24ee5557fb
permissions -rw-r--r--
Add missing MarkNativeAsOptional calls for cstrike.inc (r=me).
dvander@2320
     1
#ifndef _INCLUDE_SP_DECOMP_ENGINE_H_
dvander@2320
     2
#define _INCLUDE_SP_DECOMP_ENGINE_H_
dvander@2320
     3
dvander@2320
     4
#include <stdio.h>
dvander@2320
     5
#include "file_format.h"
dvander@2320
     6
#include "code_analyzer.h"
dvander@2320
     7
dvander@2320
     8
class PrintBuffer
dvander@2320
     9
{
dvander@2320
    10
public:
dvander@2320
    11
	PrintBuffer();
dvander@2320
    12
	~PrintBuffer();
dvander@2320
    13
public:
dvander@2320
    14
	void Set(const char *fmt, ...);
dvander@2320
    15
	void Append(const char *fmt, ...);
dvander@2320
    16
	void Prepend(const char *fmt, ...);
dvander@2320
    17
	void Reset();
dvander@2320
    18
	void Dump(FILE *fp);
dvander@2320
    19
private:
dvander@2320
    20
	void Grow(size_t len);
dvander@2320
    21
private:
dvander@2320
    22
	char *printbuf;
dvander@2320
    23
	size_t printbuf_alloc;
dvander@2320
    24
	size_t printbuf_pos;
dvander@2320
    25
};
dvander@2320
    26
dvander@2320
    27
struct sp_decomp_t
dvander@2320
    28
{
dvander@2320
    29
	sp_file_t *plugin;
dvander@2320
    30
	sp_opdef_t opdef[OP_TOTAL+1];
dvander@2320
    31
	FunctionInfo *funcs;
dvander@2320
    32
	cell_t *pcode_map;
dvander@2325
    33
	FunctionInfo *natives;
dvander@2320
    34
};
dvander@2320
    35
dvander@2320
    36
sp_decomp_t *Sp_InitDecomp(const char *file, int *err);
dvander@2320
    37
void Sp_FreeDecomp(sp_decomp_t *decomp);
dvander@2320
    38
dvander@2320
    39
#endif //_INCLUDE_SP_DECOMP_ENGINE_H_