gateway: simplify stopping the cleanup timer
[olsrd.git] / lib / tas / src / lua / lcode.h
1
2 /*
3 ** $Id: lcode.h,v 1.38 2002/12/11 12:34:22 roberto Exp $
4 ** Code generator for Lua
5 ** See Copyright Notice in lua.h
6 */
7
8 #ifndef lcode_h
9 #define lcode_h
10
11 #include "llex.h"
12 #include "lobject.h"
13 #include "lopcodes.h"
14 #include "lparser.h"
15
16
17 /*
18 ** Marks the end of a patch list. It is an invalid value both as an absolute
19 ** address, and as a list link (would link an element to itself).
20 */
21 #define NO_JUMP (-1)
22
23
24 /*
25 ** grep "ORDER OPR" if you change these enums
26 */
27 typedef enum BinOpr {
28   OPR_ADD, OPR_SUB, OPR_MULT, OPR_DIV, OPR_POW,
29   OPR_CONCAT,
30   OPR_NE, OPR_EQ,
31   OPR_LT, OPR_LE, OPR_GT, OPR_GE,
32   OPR_AND, OPR_OR,
33   OPR_NOBINOPR
34 } BinOpr;
35
36 #define binopistest(op) ((op) >= OPR_NE)
37
38 typedef enum UnOpr { OPR_MINUS, OPR_NOT, OPR_NOUNOPR } UnOpr;
39
40
41 #define getcode(fs,e)   ((fs)->f->code[(e)->info])
42
43 #define luaK_codeAsBx(fs,o,A,sBx)       luaK_codeABx(fs,o,A,(sBx)+MAXARG_sBx)
44
45 int luaK_code(FuncState * fs, Instruction i, int line);
46 int luaK_codeABx(FuncState * fs, OpCode o, int A, unsigned int Bx);
47 int luaK_codeABC(FuncState * fs, OpCode o, int A, int B, int C);
48 void luaK_fixline(FuncState * fs, int line);
49 void luaK_nil(FuncState * fs, int from, int n);
50 void luaK_reserveregs(FuncState * fs, int n);
51 void luaK_checkstack(FuncState * fs, int n);
52 int luaK_stringK(FuncState * fs, TString * s);
53 int luaK_numberK(FuncState * fs, lua_Number r);
54 void luaK_dischargevars(FuncState * fs, expdesc * e);
55 int luaK_exp2anyreg(FuncState * fs, expdesc * e);
56 void luaK_exp2nextreg(FuncState * fs, expdesc * e);
57 void luaK_exp2val(FuncState * fs, expdesc * e);
58 int luaK_exp2RK(FuncState * fs, expdesc * e);
59 void luaK_self(FuncState * fs, expdesc * e, expdesc * key);
60 void luaK_indexed(FuncState * fs, expdesc * t, expdesc * k);
61 void luaK_goiftrue(FuncState * fs, expdesc * e);
62 void luaK_goiffalse(FuncState * fs, expdesc * e);
63 void luaK_storevar(FuncState * fs, expdesc * var, expdesc * e);
64 void luaK_setcallreturns(FuncState * fs, expdesc * var, int nresults);
65 int luaK_jump(FuncState * fs);
66 void luaK_patchlist(FuncState * fs, int list, int target);
67 void luaK_patchtohere(FuncState * fs, int list);
68 void luaK_concat(FuncState * fs, int *l1, int l2);
69 int luaK_getlabel(FuncState * fs);
70 void luaK_prefix(FuncState * fs, UnOpr op, expdesc * v);
71 void luaK_infix(FuncState * fs, BinOpr op, expdesc * v);
72 void luaK_posfix(FuncState * fs, BinOpr op, expdesc * v1, expdesc * v2);
73
74
75 #endif