Bardzo podoba mi się C __LINE__
i __FILE__
... czy lua zapewnia coś podobnego? (Uważam, że przydaje się do śledzenia plików printf ..., aby wiedzieć, który plik i której linii pochodzi wiadomość).lua equiv z __LINE__ i __FILE__?
Dzięki!
Bardzo podoba mi się C __LINE__
i __FILE__
... czy lua zapewnia coś podobnego? (Uważam, że przydaje się do śledzenia plików printf ..., aby wiedzieć, który plik i której linii pochodzi wiadomość).lua equiv z __LINE__ i __FILE__?
Dzięki!
function __FILE__() return debug.getinfo(2,'S').source end
function __LINE__() return debug.getinfo(2, 'l').currentline end
Nietestowane, credit goes here.
używam coś takiego uzyskania numer wiersza z boku c:
int lua_getline(lua_State* L, int level) {
lua_Debug ar;
lua_getstack(L, level, &ar);
lua_getinfo(L, "l", &ar);
return ar.currentline;
}
Wywołanie lua_getinfo z „ls” wypełni pola źródłowego struktury lua_Debug choć nie zawsze może być nazwa pliku IIRC.
Należy zauważyć, że generalnie trudno jest nazwać symbole globalne zaczynając od podwójnego podkreślenia. Takie nazwy zwykle należą do implementatorów językowych. –