import os
import sys
import ctypes
import cffi

ffi = cffi.FFI()
with open('./v4k.lua') as f:
    lines = [line for line in f if not line.startswith('#')]
    lines = [line for line in lines if not 'va_list' in line]
    lines = [line for line in lines if not 'inline ' in line]
    lines = [line for line in lines if not line.startswith('typedef union ') ]
    lines = [line for line in lines if not '//lcpp INF' in line ]
    data = ''.join(lines)
    data = data[data.find('[[')+2:data.find(']]')]
    data = '''
    typedef struct vec2i { float x,y; } vec2i;
    typedef struct vec3i { float x,y,z; } vec3i;
    typedef struct vec2 { float x,y; } vec2;
    typedef struct vec3 { float x,y,z; } vec3;
    typedef struct vec4 { float x,y,z,w; } vec4;
    typedef struct quat { float x,y,z,w; } quat;
    typedef union frustum frustum;
    typedef union json_t json_t;
    ''' + data
    ffi.cdef(data)
v4k = ffi.dlopen('./v4k.dll')