LUACC allows you write C code in lua
Lua C
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Makefile
README.md
luacc.c
luacc.lua
test.lua

README.md

LUACC allows you write C code in lua .

It seems like Cython to python.

Export C routine for lua

local luacc = require "luacc"

local f = luacc.routine [[
	[in] a int
	[in] b int
	[ret] c int
	[ret] d int

	int c = a + b;
	int d = a - b;
]]

print(f(2,1))	-- 3	1

Import C function for later call from C routine

local luacc = require "luacc"

luacc.cfunction [[

int max(int a, int b) {
	return a > b ? a:b;
}

int min(int a, int b) {
	return a < b ? a:b;
}

]]

local f = luacc.routine [[
	[in] a int
	[in] b int
	[ret] c int
	[ret] d int

	int c = max(a,b);
	int d = min(a,b);
]]

print(f(2,1))	-- 2	1

Define user type

local luacc = require "luacc"

luacc.struct ( "foo", { x = "int" , y = "int" })

local luacc.cfunction [[
void swap(foo &f) {
	int temp = f->x;
	f->x = f->y;
	f->y = temp;
}
]]

local f = luacc.routine [[
	[inout] x foo
	
	swap(&x);
]]

local foo = { x = 1, y = 2}
f(foo)

print(foo.x, foo.y)	-- 2	1

It doesn't support nest type yet.

Build-in types

  • int
  • bool
  • float
  • double
  • string (const char *)
  • object (string table userdata nil)

Make

Question ?