lvm.h revision 1.3
1/*	$NetBSD: lvm.h,v 1.3 2015/02/02 14:03:05 lneto Exp $	*/
2
3/*
4** Id: lvm.h,v 2.34 2014/08/01 17:24:02 roberto Exp
5** Lua virtual machine
6** See Copyright Notice in lua.h
7*/
8
9#ifndef lvm_h
10#define lvm_h
11
12
13#include "ldo.h"
14#include "lobject.h"
15#include "ltm.h"
16
17
18#if !defined(LUA_NOCVTN2S)
19#define cvt2str(o)	ttisnumber(o)
20#else
21#define cvt2str(o)	0	/* no conversion from numbers to strings */
22#endif
23
24
25#if !defined(LUA_NOCVTS2N)
26#define cvt2num(o)	ttisstring(o)
27#else
28#define cvt2num(o)	0	/* no conversion from strings to numbers */
29#endif
30
31
32#ifndef _KERNEL
33#define tonumber(o,n) \
34	(ttisfloat(o) ? (*(n) = fltvalue(o), 1) : luaV_tonumber_(o,n))
35#else /* _KERNEL */
36#define tonumber       tointeger
37#endif
38
39#define tointeger(o,i) \
40	(ttisinteger(o) ? (*(i) = ivalue(o), 1) : luaV_tointeger_(o,i))
41
42#define intop(op,v1,v2) l_castU2S(l_castS2U(v1) op l_castS2U(v2))
43
44#define luaV_rawequalobj(t1,t2)		luaV_equalobj(NULL,t1,t2)
45
46
47LUAI_FUNC int luaV_equalobj (lua_State *L, const TValue *t1, const TValue *t2);
48LUAI_FUNC int luaV_lessthan (lua_State *L, const TValue *l, const TValue *r);
49LUAI_FUNC int luaV_lessequal (lua_State *L, const TValue *l, const TValue *r);
50LUAI_FUNC int luaV_tonumber_ (const TValue *obj, lua_Number *n);
51LUAI_FUNC int luaV_tointeger_ (const TValue *obj, lua_Integer *p);
52LUAI_FUNC void luaV_gettable (lua_State *L, const TValue *t, TValue *key,
53                                            StkId val);
54LUAI_FUNC void luaV_settable (lua_State *L, const TValue *t, TValue *key,
55                                            StkId val);
56LUAI_FUNC void luaV_finishOp (lua_State *L);
57LUAI_FUNC void luaV_execute (lua_State *L);
58LUAI_FUNC void luaV_concat (lua_State *L, int total);
59LUAI_FUNC lua_Integer luaV_div (lua_State *L, lua_Integer x, lua_Integer y);
60LUAI_FUNC lua_Integer luaV_mod (lua_State *L, lua_Integer x, lua_Integer y);
61LUAI_FUNC lua_Integer luaV_shiftl (lua_Integer x, lua_Integer y);
62LUAI_FUNC void luaV_objlen (lua_State *L, StkId ra, const TValue *rb);
63
64#endif
65