blob: c898bb202611950cf53be8676e084130e337c230 [file] [log] [blame]
/*
** tree.h
** TecCGraf - PUC-Rio
** $Id: tree.h,v 1.18 1997/06/09 17:28:14 roberto Exp roberto $
*/
#ifndef tree_h
#define tree_h
#include "types.h"
#define NOT_USED 0xFFFE
typedef struct TaggedString
{
int tag; /* if != LUA_T_STRING, this is a userdata */
struct TaggedString *next;
union {
struct {
Word varindex; /* != NOT_USED if this is a symbol */
Word constindex; /* hint to reuse constant indexes */
} s;
void *v; /* if this is a userdata, here is its value */
} u;
unsigned long hash; /* 0 if not initialized */
int marked; /* for garbage collection; never collect (nor change) if > 1 */
char str[1]; /* \0 byte already reserved */
} TaggedString;
TaggedString *luaI_createstring (char *str);
TaggedString *luaI_createudata (void *udata, int tag);
TaggedString *luaI_strcollector (long *cont);
void luaI_strfree (TaggedString *l);
void luaI_strcallIM (TaggedString *l);
#endif