Defines | Typedefs | Enumerations | Functions

lua/lcode.h File Reference

#include "llex.h"
#include "lobject.h"
#include "lopcodes.h"
#include "lparser.h"
Include dependency graph for lcode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define NO_JUMP   (-1)
#define getcode(fs, e)   ((fs)->f->code[(e)->u.info])
#define luaK_codeAsBx(fs, o, A, sBx)   luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx)
#define luaK_setmultret(fs, e)   luaK_setreturns(fs, e, LUA_MULTRET)
#define luaK_jumpto(fs, t)   luaK_patchlist(fs, luaK_jump(fs), t)

Typedefs

typedef enum BinOpr BinOpr
typedef enum UnOpr UnOpr

Enumerations

enum  BinOpr {
  OPR_ADD, OPR_SUB, OPR_MUL, OPR_DIV,
  OPR_MOD, OPR_POW, OPR_CONCAT, OPR_EQ,
  OPR_LT, OPR_LE, OPR_NE, OPR_GT,
  OPR_GE, OPR_AND, OPR_OR, OPR_NOBINOPR
}
enum  UnOpr { OPR_MINUS, OPR_NOT, OPR_LEN, OPR_NOUNOPR }

Functions

LUAI_FUNC int luaK_codeABx (FuncState *fs, OpCode o, int A, unsigned int Bx)
LUAI_FUNC int luaK_codeABC (FuncState *fs, OpCode o, int A, int B, int C)
LUAI_FUNC int luaK_codek (FuncState *fs, int reg, int k)
LUAI_FUNC void luaK_fixline (FuncState *fs, int line)
LUAI_FUNC void luaK_nil (FuncState *fs, int from, int n)
LUAI_FUNC void luaK_reserveregs (FuncState *fs, int n)
LUAI_FUNC void luaK_checkstack (FuncState *fs, int n)
LUAI_FUNC int luaK_stringK (FuncState *fs, TString *s)
LUAI_FUNC int luaK_numberK (FuncState *fs, lua_Number r)
LUAI_FUNC void luaK_dischargevars (FuncState *fs, expdesc *e)
LUAI_FUNC int luaK_exp2anyreg (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_exp2anyregup (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_exp2nextreg (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_exp2val (FuncState *fs, expdesc *e)
LUAI_FUNC int luaK_exp2RK (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_self (FuncState *fs, expdesc *e, expdesc *key)
LUAI_FUNC void luaK_indexed (FuncState *fs, expdesc *t, expdesc *k)
LUAI_FUNC void luaK_goiftrue (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_goiffalse (FuncState *fs, expdesc *e)
LUAI_FUNC void luaK_storevar (FuncState *fs, expdesc *var, expdesc *e)
LUAI_FUNC void luaK_setreturns (FuncState *fs, expdesc *e, int nresults)
LUAI_FUNC void luaK_setoneret (FuncState *fs, expdesc *e)
LUAI_FUNC int luaK_jump (FuncState *fs)
LUAI_FUNC void luaK_ret (FuncState *fs, int first, int nret)
LUAI_FUNC void luaK_patchlist (FuncState *fs, int list, int target)
LUAI_FUNC void luaK_patchtohere (FuncState *fs, int list)
LUAI_FUNC void luaK_patchclose (FuncState *fs, int list, int level)
LUAI_FUNC void luaK_concat (FuncState *fs, int *l1, int l2)
LUAI_FUNC int luaK_getlabel (FuncState *fs)
LUAI_FUNC void luaK_prefix (FuncState *fs, UnOpr op, expdesc *v, int line)
LUAI_FUNC void luaK_infix (FuncState *fs, BinOpr op, expdesc *v)
LUAI_FUNC void luaK_posfix (FuncState *fs, BinOpr op, expdesc *v1, expdesc *v2, int line)
LUAI_FUNC void luaK_setlist (FuncState *fs, int base, int nelems, int tostore)

Define Documentation

#define getcode (   fs,
  e 
)    ((fs)->f->code[(e)->u.info])
#define luaK_codeAsBx (   fs,
  o,
  A,
  sBx 
)    luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx)

Definition at line 41 of file lcode.h.

Referenced by forbody(), and luaK_jump().

#define luaK_jumpto (   fs,
  t 
)    luaK_patchlist(fs, luaK_jump(fs), t)

Definition at line 45 of file lcode.h.

Referenced by whilestat().

#define luaK_setmultret (   fs,
  e 
)    luaK_setreturns(fs, e, LUA_MULTRET)

Definition at line 43 of file lcode.h.

Referenced by funcargs(), lastlistfield(), and retstat().

#define NO_JUMP   (-1)

Typedef Documentation

typedef enum BinOpr BinOpr
typedef enum UnOpr UnOpr

Enumeration Type Documentation

enum BinOpr
Enumerator:
OPR_ADD 
OPR_SUB 
OPR_MUL 
OPR_DIV 
OPR_MOD 
OPR_POW 
OPR_CONCAT 
OPR_EQ 
OPR_LT 
OPR_LE 
OPR_NE 
OPR_GT 
OPR_GE 
OPR_AND 
OPR_OR 
OPR_NOBINOPR 

Definition at line 26 of file lcode.h.

enum UnOpr
Enumerator:
OPR_MINUS 
OPR_NOT 
OPR_LEN 
OPR_NOUNOPR 

Definition at line 36 of file lcode.h.


Function Documentation

LUAI_FUNC void luaK_checkstack ( FuncState fs,
int  n 
)

Definition at line 261 of file lcode.c.

References cast_byte, FuncState::f, FuncState::freereg, FuncState::ls, luaX_syntaxerror(), MAXSTACK, and Proto::maxstacksize.

Referenced by forlist(), and luaK_reserveregs().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_codeABC ( FuncState fs,
OpCode  o,
int  A,
int  B,
int  C 
)

Definition at line 227 of file lcode.c.

References CREATE_ABC, getBMode, getCMode, getOpMode, iABC, lua_assert, luaK_code(), MAXARG_A, MAXARG_B, MAXARG_C, and OpArgN.

Referenced by check_conflict(), code_label(), codearith(), codenot(), condjump(), constructor(), discharge2reg(), forbody(), funcargs(), luaK_dischargevars(), luaK_nil(), luaK_ret(), luaK_self(), luaK_setlist(), luaK_storevar(), recfield(), and simpleexp().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_codeABx ( FuncState fs,
OpCode  o,
int  A,
unsigned int  Bx 
)

Definition at line 236 of file lcode.c.

References CREATE_ABx, getCMode, getOpMode, iABx, iAsBx, lua_assert, luaK_code(), MAXARG_A, MAXARG_Bx, and OpArgN.

Referenced by codeclosure(), and luaK_codek().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_codek ( FuncState fs,
int  reg,
int  k 
)

Definition at line 250 of file lcode.c.

References codeextraarg(), luaK_codeABx(), MAXARG_Bx, OP_LOADK, and OP_LOADKX.

Referenced by discharge2reg(), and fornum().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_concat ( FuncState fs,
int *  l1,
int  l2 
)

Definition at line 198 of file lcode.c.

References fixjump(), getjump(), and NO_JUMP.

Referenced by exp2reg(), luaK_goiffalse(), luaK_goiftrue(), luaK_jump(), luaK_patchtohere(), luaK_posfix(), and test_then_block().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_dischargevars ( FuncState fs,
expdesc e 
)

Definition at line 384 of file lcode.c.

References freereg(), expdesc::ind, expdesc::info, expdesc::k, luaK_codeABC(), luaK_setoneret(), OP_GETUPVAL, expdesc::u, VCALL, VINDEXED, VLOCAL, VUPVAL, and VVARARG.

Referenced by codenot(), discharge2reg(), luaK_exp2anyreg(), luaK_exp2nextreg(), luaK_exp2val(), luaK_goiffalse(), luaK_goiftrue(), luaK_posfix(), and prefixexp().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_exp2anyreg ( FuncState fs,
expdesc e 
)

Definition at line 501 of file lcode.c.

References exp2reg(), hasjumps, expdesc::info, expdesc::k, luaK_dischargevars(), luaK_exp2nextreg(), FuncState::nactvar, expdesc::u, and VNONRELOC.

Referenced by luaK_exp2anyregup(), luaK_exp2RK(), luaK_exp2val(), luaK_prefix(), luaK_self(), luaK_storevar(), and retstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_exp2anyregup ( FuncState fs,
expdesc e 
)

Definition at line 515 of file lcode.c.

References hasjumps, expdesc::k, luaK_exp2anyreg(), and VUPVAL.

Referenced by fieldsel(), and primaryexp().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_exp2nextreg ( FuncState fs,
expdesc e 
)

Definition at line 493 of file lcode.c.

References exp2reg(), freeexp(), FuncState::freereg, luaK_dischargevars(), and luaK_reserveregs().

Referenced by adjust_assign(), closelistfield(), codeclosure(), constructor(), exp1(), explist(), funcargs(), lastlistfield(), luaK_exp2anyreg(), luaK_infix(), luaK_posfix(), primaryexp(), and retstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_exp2RK ( FuncState fs,
expdesc e 
)

Definition at line 529 of file lcode.c.

References boolK(), expdesc::info, expdesc::k, luaK_exp2anyreg(), luaK_exp2val(), luaK_numberK(), MAXINDEXRK, nilK(), FuncState::nk, expdesc::nval, RKASK, expdesc::u, VFALSE, VK, VKNUM, VNIL, and VTRUE.

Referenced by codearith(), codecomp(), luaK_indexed(), luaK_infix(), luaK_self(), luaK_storevar(), and recfield().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_exp2val ( FuncState fs,
expdesc e 
)

Definition at line 521 of file lcode.c.

References hasjumps, luaK_dischargevars(), and luaK_exp2anyreg().

Referenced by luaK_exp2RK(), luaK_posfix(), and yindex().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_fixline ( FuncState fs,
int  line 
)

Definition at line 863 of file lcode.c.

References FuncState::f, Proto::lineinfo, and FuncState::pc.

Referenced by codearith(), forbody(), funcargs(), and funcstat().

Here is the caller graph for this function:

LUAI_FUNC int luaK_getlabel ( FuncState fs  ) 

Definition at line 94 of file lcode.c.

References FuncState::lasttarget, and FuncState::pc.

Referenced by code_label(), exp2reg(), luaK_patchtohere(), repeatstat(), and whilestat().

Here is the caller graph for this function:

LUAI_FUNC void luaK_goiffalse ( FuncState fs,
expdesc e 
)

Definition at line 646 of file lcode.c.

References expdesc::f, expdesc::info, jumponcond(), expdesc::k, luaK_concat(), luaK_dischargevars(), luaK_patchtohere(), expdesc::t, expdesc::u, VFALSE, VJMP, and VNIL.

Referenced by luaK_infix(), and test_then_block().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_goiftrue ( FuncState fs,
expdesc e 
)

Definition at line 622 of file lcode.c.

References expdesc::f, expdesc::info, invertjump(), jumponcond(), expdesc::k, luaK_concat(), luaK_dischargevars(), luaK_patchtohere(), expdesc::t, expdesc::u, VJMP, VK, VKNUM, and VTRUE.

Referenced by cond(), luaK_infix(), and test_then_block().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_indexed ( FuncState fs,
expdesc t,
expdesc k 
)

Definition at line 704 of file lcode.c.

References check_exp, hasjumps, expdesc::ind, expdesc::info, expdesc::k, lua_assert, luaK_exp2RK(), expdesc::u, vkisinreg, and VUPVAL.

Referenced by fieldsel(), primaryexp(), and singlevar().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_infix ( FuncState fs,
BinOpr  op,
expdesc v 
)

Definition at line 787 of file lcode.c.

References isnumeral(), luaK_exp2nextreg(), luaK_exp2RK(), luaK_goiffalse(), luaK_goiftrue(), OPR_ADD, OPR_AND, OPR_CONCAT, OPR_DIV, OPR_MOD, OPR_MUL, OPR_OR, OPR_POW, and OPR_SUB.

Referenced by subexpr().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_jump ( FuncState fs  ) 

Definition at line 59 of file lcode.c.

References FuncState::jpc, luaK_codeAsBx, luaK_concat(), NO_JUMP, and OP_JMP.

Referenced by condjump(), exp2reg(), forbody(), leaveblock(), statement(), and test_then_block().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_nil ( FuncState fs,
int  from,
int  n 
)

Definition at line 37 of file lcode.c.

References Proto::code, FuncState::f, GET_OPCODE, GETARG_A, GETARG_B, FuncState::lasttarget, luaK_codeABC(), OP_LOADNIL, FuncState::pc, SETARG_A, and SETARG_B.

Referenced by adjust_assign(), and discharge2reg().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_numberK ( FuncState fs,
lua_Number  r 
)

Definition at line 326 of file lcode.c.

References addk(), incr_top, LexState::L, FuncState::ls, luaS_newlstr(), setnvalue, setsvalue, and lua_State::top.

Referenced by discharge2reg(), fornum(), and luaK_exp2RK().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_patchclose ( FuncState fs,
int  list,
int  level 
)

Definition at line 179 of file lcode.c.

References Proto::code, FuncState::f, GET_OPCODE, GETARG_A, getjump(), lua_assert, next, NO_JUMP, OP_JMP, and SETARG_A.

Referenced by findlabel(), leaveblock(), movegotosout(), and repeatstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_patchlist ( FuncState fs,
int  list,
int  target 
)

Definition at line 169 of file lcode.c.

References lua_assert, luaK_patchtohere(), NO_REG, patchlistaux(), and FuncState::pc.

Referenced by closegoto(), forbody(), and repeatstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_patchtohere ( FuncState fs,
int  list 
)

Definition at line 192 of file lcode.c.

References FuncState::jpc, luaK_concat(), and luaK_getlabel().

Referenced by exp2reg(), forbody(), ifstat(), leaveblock(), luaK_goiffalse(), luaK_goiftrue(), luaK_patchlist(), test_then_block(), and whilestat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_posfix ( FuncState fs,
BinOpr  op,
expdesc v1,
expdesc v2,
int  line 
)
LUAI_FUNC void luaK_prefix ( FuncState fs,
UnOpr  op,
expdesc v,
int  line 
)

Definition at line 763 of file lcode.c.

References codearith(), codenot(), expdesc::f, isnumeral(), expdesc::k, lua_assert, luaK_exp2anyreg(), expdesc::nval, OP_LEN, OP_UNM, OPR_LEN, OPR_MINUS, OPR_NOT, expdesc::t, and expdesc::u.

Referenced by subexpr().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_reserveregs ( FuncState fs,
int  n 
)

Definition at line 271 of file lcode.c.

References FuncState::freereg, and luaK_checkstack().

Referenced by adjust_assign(), check_conflict(), discharge2anyreg(), forbody(), fornum(), luaK_exp2nextreg(), luaK_self(), luaK_setreturns(), and parlist().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_ret ( FuncState fs,
int  first,
int  nret 
)

Definition at line 69 of file lcode.c.

References luaK_codeABC(), and OP_RETURN.

Referenced by close_func(), and retstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_self ( FuncState fs,
expdesc e,
expdesc key 
)

Definition at line 586 of file lcode.c.

References freeexp(), FuncState::freereg, expdesc::info, expdesc::k, luaK_codeABC(), luaK_exp2anyreg(), luaK_exp2RK(), luaK_reserveregs(), OP_SELF, and expdesc::u.

Referenced by primaryexp().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_setlist ( FuncState fs,
int  base,
int  nelems,
int  tostore 
)

Definition at line 868 of file lcode.c.

References codeextraarg(), FuncState::freereg, LFIELDS_PER_FLUSH, FuncState::ls, lua_assert, luaK_codeABC(), luaX_syntaxerror(), MAXARG_Ax, MAXARG_C, and OP_SETLIST.

Referenced by closelistfield(), and lastlistfield().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_setoneret ( FuncState fs,
expdesc e 
)

Definition at line 372 of file lcode.c.

References GETARG_A, getcode, expdesc::info, expdesc::k, SETARG_B, expdesc::u, VCALL, and VVARARG.

Referenced by assignment(), and luaK_dischargevars().

Here is the caller graph for this function:

LUAI_FUNC void luaK_setreturns ( FuncState fs,
expdesc e,
int  nresults 
)

Definition at line 360 of file lcode.c.

References FuncState::freereg, getcode, expdesc::k, luaK_reserveregs(), SETARG_A, SETARG_B, SETARG_C, VCALL, and VVARARG.

Referenced by adjust_assign().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC void luaK_storevar ( FuncState fs,
expdesc var,
expdesc e 
)

Definition at line 559 of file lcode.c.

References exp2reg(), freeexp(), expdesc::ind, expdesc::info, expdesc::k, lua_assert, luaK_codeABC(), luaK_exp2anyreg(), luaK_exp2RK(), OP_SETTABLE, OP_SETTABUP, OP_SETUPVAL, expdesc::u, VINDEXED, VLOCAL, and VUPVAL.

Referenced by assignment(), and funcstat().

Here is the call graph for this function:

Here is the caller graph for this function:

LUAI_FUNC int luaK_stringK ( FuncState fs,
TString s 
)

Definition at line 319 of file lcode.c.

References addk(), LexState::L, FuncState::ls, and setsvalue.

Referenced by codestring().

Here is the call graph for this function:

Here is the caller graph for this function:

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by doxygen 1.7.1 on Fri May 25 2012 01:06:18 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs