15 /* |
15 /* |
16 ** Expression descriptor |
16 ** Expression descriptor |
17 */ |
17 */ |
18 |
18 |
19 typedef enum { |
19 typedef enum { |
20 VVOID, /* no value */ |
20 VVOID, /* no value */ |
21 VNIL, |
21 VNIL, |
22 VTRUE, |
22 VTRUE, |
23 VFALSE, |
23 VFALSE, |
24 VK, /* info = index of constant in `k' */ |
24 VK, /* info = index of constant in `k' */ |
25 VKNUM, /* nval = numerical value */ |
25 VKNUM, /* nval = numerical value */ |
26 VLOCAL, /* info = local register */ |
26 VLOCAL, /* info = local register */ |
27 VUPVAL, /* info = index of upvalue in `upvalues' */ |
27 VUPVAL, /* info = index of upvalue in `upvalues' */ |
28 VGLOBAL, /* info = index of table; aux = index of global name in `k' */ |
28 VGLOBAL, /* info = index of table; aux = index of global name in `k' */ |
29 VINDEXED, /* info = table register; aux = index register (or `k') */ |
29 VINDEXED, /* info = table register; aux = index register (or `k') */ |
30 VJMP, /* info = instruction pc */ |
30 VJMP, /* info = instruction pc */ |
31 VRELOCABLE, /* info = instruction pc */ |
31 VRELOCABLE, /* info = instruction pc */ |
32 VNONRELOC, /* info = result register */ |
32 VNONRELOC, /* info = result register */ |
33 VCALL, /* info = instruction pc */ |
33 VCALL, /* info = instruction pc */ |
34 VVARARG /* info = instruction pc */ |
34 VVARARG /* info = instruction pc */ |
35 } expkind; |
35 } expkind; |
36 |
36 |
37 typedef struct expdesc { |
37 typedef struct expdesc { |
38 expkind k; |
38 expkind k; |
39 union { |
39 union { |