luaL_checklstring, luaL_optlstring, luaL_checknumber and luaL_optnumber, luaL_checkany, luaL_checktype, luaL_checkstack, luaL_typerror, luaL_argerror, luaL_argcheck,
1 luaL_checklstring
const char *luaL_checklstring (lua_State *L, int numArg, size_t *l);
#define luaL_checkstring(L,n) (luaL_checklstring(L, (n), NULL))
½ºÅÿ¡ ¹®ÀÚ¿ÀÌ ÀÖ´ÂÁö °Ë»çÇÒ ¶§ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. ÁöÁ¤µÈ À妽º¿¡ ¹®ÀÚ¿ÀÌ ÀÖ´Â °æ¿ì ±× ¹®ÀÚ¿À» ¹ÝȯÇϰí, ¾ø´Â °æ¿ì ½ºÅÿ¡´Ù ¿¡·¯ ¸Þ½ÃÁö¸¦ Ǫ½¬Çϰí, ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
- L : ·ç¾Æ ½ºÅ×ÀÌÆ®
- numArg : ½ºÅà À妽º
- l : ÇØ´çÇÏ´Â À§Ä¡¿¡ ÀÖ´Â ¾ÆÀÌÅÛÀÌ ¹®ÀÚ¿ÀÏ °æ¿ì, ÀÌ Àμö°¡ NULLÀÌ ¾Æ´Ï¸é ¹®ÀÚ¿ÀÇ ±æÀ̰¡ µé¾î°£´Ù.
¹®ÀÚ¿ÀÇ ±æÀÌ¿¡ º°·Î °ü½ÉÀÌ ¾ø´Ù¸é, luaL_checkstring ÇÔ¼ö¸¦ ÀÌ¿ëÇ϶ó.
2 luaL_optlstring
const char *luaL_optlstring (lua_State *L, int numArg, const char *def, size_t *l);
#define luaL_optstring(L,n,d) (luaL_optlstring(L, (n), (d), NULL))
½ºÅÿ¡ ¹®ÀÚ¿ÀÌ ÀÖ´ÂÁö °Ë»çÇÒ ¶§ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. ÁöÁ¤µÈ À妽º¿¡ ¹®ÀÚ¿ÀÌ ÀÖ´Â °æ¿ì, ±× ¹®ÀÚ¿À» ¹ÝȯÇϰí, ¾ø´Â °æ¿ì def ¹®ÀÚ¿À» ´ë½Å ¹ÝȯÇÑ´Ù.
- L : ·ç¾Æ ½ºÅ×ÀÌÆ®
- numArg : ½ºÅà À妽º
- def : ÇØ´çÇÏ´Â À§Ä¡ÀÇ ½ºÅÿ¡ ¹®ÀÚ¿ÀÌ ¾ø´Â °æ¿ì, ¹ÝȯÇÒ ¹®ÀÚ¿
- l : ÇØ´çÇÏ´Â À§Ä¡¿¡ ÀÖ´Â ¹®ÀÚ¿ÀÇ ±æÀ̰¡ µé¾î°¥ º¯¼ö
¹®ÀÚ¿ÀÇ ±æÀÌ¿¡ º°·Î °ü½ÉÀÌ ¾ø´Ù¸é, luaL_optstring ÇÔ¼ö¸¦ ÀÌ¿ëÇ϶ó.
3 luaL_checknumber and luaL_optnumber
lua_Number luaL_checknumber (lua_State *L, int numArg);
lua_Number luaL_optnumber (lua_State *L, int nArg, lua_Number def);
#define luaL_checkint(L,n) ((int)luaL_checknumber(L, n))
#define luaL_checklong(L,n) ((long)luaL_checknumber(L, n))
#define luaL_optint(L,n,d) ((int)luaL_optnumber(L, n,(lua_Number)(d)))
#define luaL_optlong(L,n,d) ((long)luaL_optnumber(L, n,(lua_Number)(d)))
luaL_checkstring ÇÔ¼ö¿Í luaL_optlstring ÇÔ¼öÀÇ ¼ýÀÚ ¹öÀüÀ̶ó°í »ý°¢ÇÏ¸é µÈ´Ù. luaL_checkint, luaL_optint, luaL_checklong, luaL_optlong ÇÔ¼öµµ ¸¶Âù°¡Áö´Ù.
4 luaL_checkany
void luaL_checkany (lua_State *L, int narg);
narg À妽ºÀÇ ¾ÆÀÌÅÛÀÌ Á¸ÀçÇÏ´ÂÁö Á¶»çÇÑ´Ù. Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì, ½ºÅÿ¡´Ù ¿¡·¯ ¸Þ½ÃÁö¸¦ Ǫ½ÃÇϰí, ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
5 luaL_checktype
void luaL_checktype (lua_State *L, int narg, int t);
narg À妽ºÀÇ ¾ÆÀÌÅÛÀÌ Å¸ÀÔ t ¿Í °°Àº ŸÀÔÀÎÁö Á¶»çÇÑ´Ù. ´Ù¸¥ ŸÀÔÀÏ °æ¿ì ½ºÅÿ¡´Ù ¿¡·¯ ¸Þ½ÃÁö¸¦ Ǫ½ÃÇϰí, ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
6 luaL_checkstack
void luaL_checkstack (lua_State *L, int sz, const char *msg);
ÁÖ¾îÁø sz ¸¸Å ½ºÅÃÀÇ Å©±â¸¦ ´Ã¸°´Ù. ½ºÅà ũ±â¸¦ ´Ã¸®´Â µ¥ ½ÇÆÐÇÑ °æ¿ì¿¡´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ Ǫ½ÃÇϰí, ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.
7 luaL_typerror
int luaL_typerror (lua_State *L, int narg, const char *tname);
numarg À妽º¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡ ´ëÇÑ "%s expected, got %s" Çü½ÄÀÇ ¿¡·¯ ¸Þ½ÃÁö¸¦ ½ºÅÿ¡´Ù Ǫ½¬ÇÑ´Ù. ½ÇÁ¦ ÇÔ¼ö ³»¿ëÀº...
int luaL_typerror (lua_State *L, int narg, const char *tname) {
const char *msg = lua_pushfstring(L, "%s expected, got %s",
tname, lua_typename(L, lua_type(L,narg)));
return luaL_argerror(L, narg, msg);
}
µüÈ÷ ¹º°¡ ¿ëµµ°¡ Àִٱ⠺¸´Ù´Â ´Ù¸¥ ÇÔ¼öµé¿¡¼ ¿¡·¯ º¸°í¿ëÀ¸·Î ¾²ÀÌ´Â ÇÔ¼ö´Ù.
8 luaL_argerror
int luaL_argerror (lua_State *L, int numarg, const char *extramsg);
numarg À妽º¿¡ ÀÖ´Â ¾ÆÀÌÅÛ¿¡ ´ëÇÑ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ǫ½ÃÇϰí, ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù. extramsg ¹®ÀÚ¿ÀÌ NULLÀÌ ¾Æ´Ñ °æ¿ì, ¿¡·¯ ¹®ÀÚ¿¿¡ Ãß°¡µÈ´Ù. µüÈ÷ ¹º°¡ ¿ëµµ°¡ Àִٱ⠺¸´Ù´Â ´Ù¸¥ ÇÔ¼öµé¿¡¼ ¿¡·¯ º¸°í¿ëÀ¸·Î ¾²ÀÌ´Â ÇÔ¼ö´Ù. (ÇÔ¼ö È£Ãâ½Ã À߸øµÈ Àμö¸¦ Àü´ÞÇÑ °æ¿ì, ¿¡·¯¸¦ Ãâ·ÂÇϱâ À§Çؼ »ç¿ëµÇ´Â ÇÔ¼ö)
9 luaL_argcheck
#define luaL_argcheck(L, cond, numarg, extramsg) if (!(cond)) \
luaL_argerror(L, numarg,extramsg)
º¸´Ù½ÃÇÇ ÁÖ¾îÁø cond Á¶°ÇÀÌ falseÀÎ °æ¿ì, luaL_argerror(L, numarg, extramsg) ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
SeriousMoin v1 (koMoinMoin 1.0a4 Modified)