Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
LUACC allows you write C code in lua
Lua C
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

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 ?

Something went wrong with that request. Please try again.