| /* |
| ** tree.h |
| ** TecCGraf - PUC-Rio |
| ** $Id: tree.h,v 1.17 1997/05/14 18:38:29 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; /* != NOT_USED if this is a constant */ |
| } 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 *lua_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 |