sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
lcode.h
Go to the documentation of this file.
1
/*
2
** $Id: lcode.h $
3
** Code generator for Lua
4
** See Copyright Notice in lua.h
5
*/
6
11
#ifndef lcode_h
12
#define lcode_h
13
14
#include "
llex.h
"
15
#include "
lobject.h
"
16
#include "
lopcodes.h
"
17
#include "
lparser.h
"
18
19
20
/*
21
** Marks the end of a patch list. It is an invalid value both as an absolute
22
** address, and as a list link (would link an element to itself).
23
*/
24
#define NO_JUMP (-1)
25
26
27
/*
28
** grep "ORDER OPR" if you change these enums (ORDER OP)
29
*/
30
typedef
enum
BinOpr {
31
/* arithmetic operators */
32
OPR_ADD, OPR_SUB, OPR_MUL, OPR_MOD, OPR_POW,
33
OPR_DIV, OPR_IDIV,
34
/* bitwise operators */
35
OPR_BAND, OPR_BOR, OPR_BXOR,
36
OPR_SHL, OPR_SHR,
37
/* string operator */
38
OPR_CONCAT,
39
/* comparison operators */
40
OPR_EQ, OPR_LT, OPR_LE,
41
OPR_NE, OPR_GT, OPR_GE,
42
/* logical operators */
43
OPR_AND, OPR_OR,
44
OPR_NOBINOPR
45
} BinOpr;
46
47
48
/* true if operation is foldable (that is, it is arithmetic or bitwise) */
49
#define foldbinop(op) ((op) <= OPR_SHR)
50
51
52
#define luaK_codeABC(fs,o,a,b,c) luaK_codeABCk(fs,o,a,b,c,0)
53
54
55
typedef
enum
UnOpr { OPR_MINUS, OPR_BNOT, OPR_NOT, OPR_LEN, OPR_NOUNOPR } UnOpr;
56
57
58
/* get (pointer to) instruction of given 'expdesc' */
59
#define getinstruction(fs,e) ((fs)->f->code[(e)->u.info])
60
61
62
#define luaK_setmultret(fs,e) luaK_setreturns(fs, e, LUA_MULTRET)
63
64
#define luaK_jumpto(fs,t) luaK_patchlist(fs, luaK_jump(fs), t)
65
66
LUAI_FUNC
int
luaK_code (
FuncState
*fs, Instruction i);
67
LUAI_FUNC
int
luaK_codeABx (
FuncState
*fs, OpCode o,
int
A,
unsigned
int
Bx);
68
LUAI_FUNC
int
luaK_codeAsBx (
FuncState
*fs, OpCode o,
int
A,
int
Bx);
69
LUAI_FUNC
int
luaK_codeABCk (
FuncState
*fs, OpCode o,
int
A,
70
int
B,
int
C,
int
k);
71
LUAI_FUNC
int
luaK_isKint (
expdesc
*e);
72
LUAI_FUNC
int
luaK_exp2const (
FuncState
*fs,
const
expdesc
*e,
TValue
*v);
73
LUAI_FUNC
void
luaK_fixline (
FuncState
*fs,
int
line);
74
LUAI_FUNC
void
luaK_nil (
FuncState
*fs,
int
from,
int
n);
75
LUAI_FUNC
void
luaK_reserveregs (
FuncState
*fs,
int
n);
76
LUAI_FUNC
void
luaK_checkstack (
FuncState
*fs,
int
n);
77
LUAI_FUNC
void
luaK_int (
FuncState
*fs,
int
reg, lua_Integer n);
78
LUAI_FUNC
void
luaK_dischargevars (
FuncState
*fs,
expdesc
*e);
79
LUAI_FUNC
int
luaK_exp2anyreg (
FuncState
*fs,
expdesc
*e);
80
LUAI_FUNC
void
luaK_exp2anyregup (
FuncState
*fs,
expdesc
*e);
81
LUAI_FUNC
void
luaK_exp2nextreg (
FuncState
*fs,
expdesc
*e);
82
LUAI_FUNC
void
luaK_exp2val (
FuncState
*fs,
expdesc
*e);
83
LUAI_FUNC
int
luaK_exp2RK (
FuncState
*fs,
expdesc
*e);
84
LUAI_FUNC
void
luaK_self (
FuncState
*fs,
expdesc
*e,
expdesc
*key);
85
LUAI_FUNC
void
luaK_indexed (
FuncState
*fs,
expdesc
*t,
expdesc
*k);
86
LUAI_FUNC
void
luaK_goiftrue (
FuncState
*fs,
expdesc
*e);
87
LUAI_FUNC
void
luaK_goiffalse (
FuncState
*fs,
expdesc
*e);
88
LUAI_FUNC
void
luaK_storevar (
FuncState
*fs,
expdesc
*var,
expdesc
*e);
89
LUAI_FUNC
void
luaK_setreturns (
FuncState
*fs,
expdesc
*e,
int
nresults);
90
LUAI_FUNC
void
luaK_setoneret (
FuncState
*fs,
expdesc
*e);
91
LUAI_FUNC
int
luaK_jump (
FuncState
*fs);
92
LUAI_FUNC
void
luaK_ret (
FuncState
*fs,
int
first,
int
nret);
93
LUAI_FUNC
void
luaK_patchlist (
FuncState
*fs,
int
list,
int
target);
94
LUAI_FUNC
void
luaK_patchtohere (
FuncState
*fs,
int
list);
95
LUAI_FUNC
void
luaK_concat (
FuncState
*fs,
int
*l1,
int
l2);
96
LUAI_FUNC
int
luaK_getlabel (
FuncState
*fs);
97
LUAI_FUNC
void
luaK_prefix (
FuncState
*fs, UnOpr op,
expdesc
*v,
int
line);
98
LUAI_FUNC
void
luaK_infix (
FuncState
*fs, BinOpr op,
expdesc
*v);
99
LUAI_FUNC
void
luaK_posfix (
FuncState
*fs, BinOpr op,
expdesc
*v1,
100
expdesc
*v2,
int
line);
101
LUAI_FUNC
void
luaK_settablesize (
FuncState
*fs,
int
pc,
102
int
ra,
int
asize,
int
hsize);
103
LUAI_FUNC
void
luaK_setlist (
FuncState
*fs,
int
base,
int
nelems,
int
tostore);
104
LUAI_FUNC
void
luaK_finish (
FuncState
*fs);
105
LUAI_FUNC l_noret luaK_semerror (
LexState
*ls,
const
char
*msg);
106
107
108
#endif
llex.h
lobject.h
lopcodes.h
lparser.h
FuncState
Definition
lparser.h:148
LexState
Definition
llex.h:68
TValue
Definition
lobject.h:71
expdesc
Definition
lparser.h:72
lua
src
lcode.h
Generated by
1.18.0