lua-users home
lua-l archive

About FuncState

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


/* state needed to generate code for a given function */
typedef struct FuncState {
 Proto *f; /* current function header */
 Table *h; /* table to find (and reuse) elements in `k' */
 struct FuncState *prev; /* enclosing function */
 struct LexState *ls; /* lexical state */
 struct lua_State *L; /* copy of the Lua state */
 struct BlockCnt *bl; /* chain of current blocks */
 int pc; /* next position to code (equivalent to `ncode') */
 int lasttarget; /* `pc' of last `jump target' */
 int jpc; /* list of pending jumps to `pc' */
 int freereg; /* first free register */
 int nk; /* number of elements in `k' */
 int np; /* number of elements in `p' */
 short nlocvars; /* number of elements in `locvars' */
 lu_byte nactvar; /* number of active local variables */
 upvaldesc upvalues[LUAI_MAXUPVALUES]; /* upvalues */
 unsigned short actvar[LUAI_MAXVARS]; /* declared-variable stack */
} FuncState;
I know the struct FuncState is important for parsing. But I don't
understand clearly the expression parsing and assignment parsing. I'm
stumbled especially by the member 'freereg' and 'nactvar' of
FuncState.
Would you explain the detailed information of 'freereg' and 'nactvar'?

AltStyle によって変換されたページ (->オリジナル) /