luagiac.c 734 Bytes
#include <os.h>
#include <lauxlib.h>
#include "luabridge.h"
#include <sys/times.h>

static int caseval(lua_State *L) {
	const char *param = luaL_checkstring(L, 1);
#if 0
	printf("hello %s!\n", param);
	char * ans=malloc(strlen(param)+20);
	strcpy(ans,"hello ");
	strcat(ans,param);
	lua_pushlstring(L,ans,strlen(ans));
	free(ans);
#else
	const char * ans=giac_caseval(param);
	lua_pushlstring(L,ans,strlen(ans));	
#endif
	return 1;
}

static const luaL_reg lualib[] = {
	{"caseval", caseval},
	{NULL, NULL}
};

int main(void) {
	lua_State *L = nl_lua_getstate();
	if (!L) return 0; // not being called as Lua module
	luaL_register(L, "luagiac", lualib);
	//giac_caseval("calc_mode(1);");
	return 0;
}