mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-28 14:56:06 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
		
			800 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			800 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
| * min.c -- a minimal Lua interpreter
 | |
| * loads stdin only with minimal error handling.
 | |
| * no interaction, and no standard library, only a "print" function.
 | |
| */
 | |
| 
 | |
| #include <stdio.h>
 | |
| 
 | |
| #include "lua.h"
 | |
| #include "lauxlib.h"
 | |
| 
 | |
| static int print(lua_State *L)
 | |
| {
 | |
|  int n=lua_gettop(L);
 | |
|  int i;
 | |
|  for (i=1; i<=n; i++)
 | |
|  {
 | |
|   if (i>1) printf("\t");
 | |
|   if (lua_isstring(L,i))
 | |
|    printf("%s",lua_tostring(L,i));
 | |
|   else if (lua_isnil(L,i))
 | |
|    printf("%s","nil");
 | |
|   else if (lua_isboolean(L,i))
 | |
|    printf("%s",lua_toboolean(L,i) ? "true" : "false");
 | |
|   else
 | |
|    printf("%s:%p",luaL_typename(L,i),lua_topointer(L,i));
 | |
|  }
 | |
|  printf("\n");
 | |
|  return 0;
 | |
| }
 | |
| 
 | |
| int main(void)
 | |
| {
 | |
|  lua_State *L=lua_open();
 | |
|  lua_register(L,"print",print);
 | |
|  if (luaL_dofile(L,NULL)!=0) fprintf(stderr,"%s\n",lua_tostring(L,-1));
 | |
|  lua_close(L);
 | |
|  return 0;
 | |
| }
 | 
