?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. /*
  2. * min.c -- a minimal Lua interpreter
  3. * loads stdin only with minimal error handling.
  4. * no interaction, and no standard library, only a "print" function.
  5. */
  6.  
  7. #include <stdio.h>
  8.  
  9. #include "lua.h"
  10. #include "lauxlib.h"
  11.  
  12. static int print(lua_State *L)
  13. {
  14.  int n=lua_gettop(L);
  15.  int i;
  16.  for (i=1; i<=n; i++)
  17.  {
  18.   if (i>1) printf("\t");
  19.   if (lua_isstring(L,i))
  20.    printf("%s",lua_tostring(L,i));
  21.   else if (lua_isnil(L,i))
  22.    printf("%s","nil");
  23.   else if (lua_isboolean(L,i))
  24.    printf("%s",lua_toboolean(L,i) ? "true" : "false");
  25.   else
  26.    printf("%s:%p",luaL_typename(L,i),lua_topointer(L,i));
  27.  }
  28.  printf("\n");
  29.  return 0;
  30. }
  31.  
  32. int main(void)
  33. {
  34.  lua_State *L=lua_open();
  35.  lua_register(L,"print",print);
  36.  if (luaL_dofile(L,NULL)!=0) fprintf(stderr,"%s\n",lua_tostring(L,-1));
  37.  lua_close(L);
  38.  return 0;
  39. }
  40.