/*
** $Id: lundump.h,v 1.5 1998/02/06 20:05:39 lhf Exp lhf $
** load pre-compiled Lua chunks
** See Copyright Notice in lua.h
*/

#ifndef lundump_h
#define lundump_h

#include "lobject.h"
#include "lzio.h"

TProtoFunc* luaU_undump1(ZIO* Z);	/* load one chunk */

#define	SIGNATURE	"Lua"
#define	VERSION		0x31		/* last format change was in 3.1 */

#define IsMain(f)	(f->lineDefined==0)

#define ID_CHUNK	27		/* ESC */
#define ID_NUM		'N'
#define ID_STR		'S'
#define ID_FUN		'F'

#define ID_INT4		'l'
#define ID_REAL4	'f'
#define ID_REAL8	'd'
#define ID_NATIVE	'?'

/*
* use a multiple of PI for testing number representation.
* multiplying by 10E8 gives notrivial integer values.
*/
#define	TEST_NUMBER	3.14159265358979323846E8

/* LUA_NUMBER */
/* if you change the definition of real, make sure you set ID_NUMBER
* accordingly, specially if sizeof(long)!=4.
* for types other than the ones listed below, you'll have to write your own
* dump and undump routines.
*/

#if real==float
	#define	ID_NUMBER	ID_REAL4
#elif real==double
	#define	ID_NUMBER	ID_REAL8
#elif real==long
	#define	ID_NUMBER	ID_INT4
#else
	#define	ID_NUMBER	ID_NATIVE
#endif

#endif