| 109 | |
| 110 | /* state needed to generate code for a given function */ |
| 111 | typedef struct FuncState { |
| 112 | Proto *f; /* current function header */ |
| 113 | struct FuncState *prev; /* enclosing function */ |
| 114 | struct LexState *ls; /* lexical state */ |
| 115 | struct BlockCnt *bl; /* chain of current blocks */ |
| 116 | int pc; /* next position to code (equivalent to 'ncode') */ |
| 117 | int lasttarget; /* 'label' of last 'jump label' */ |
| 118 | int jpc; /* list of pending jumps to 'pc' */ |
| 119 | int nk; /* number of elements in 'k' */ |
| 120 | int np; /* number of elements in 'p' */ |
| 121 | int firstlocal; /* index of first local var (in Dyndata array) */ |
| 122 | short nlocvars; /* number of elements in 'f->locvars' */ |
| 123 | lu_byte nactvar; /* number of active local variables */ |
| 124 | lu_byte nups; /* number of upvalues */ |
| 125 | lu_byte freereg; /* first free register */ |
| 126 | } FuncState; |
| 127 | |
| 128 | |
| 129 | LUAI_FUNC LClosure *luaY_parser (lua_State *L, ZIO *z, Mbuffer *buff, |
nothing calls this directly
no outgoing calls
no test coverage detected