Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

m-schmoock/lcpp

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

===

lcpp - a C-PreProcessor for Lua 5.1 and LuaJIT ffi integration

This module offers a standard preprocessor for C code in pure Lua. The primary usecase is to enable LuaJIT ffi preprocessing. But you can also preprocess any other stuff (even Lua code itself)

Links

Usage

-- load lcpp (ffi.cdef wrapper turned on per default)
local lcpp = require("lcpp")
    
-- just use LuaJIT ffi and lcpp together
ffi.cdef("#include <your_header.h>")

-- or compile some code by hand
local result = lcpp.compile("...")
local out = lcpp.compile([[
    #define MAXPATH 260
    typedef struct somestruct_t {
        void*          base;
        size_t         size;
        wchar_t        path[MAXPATH];
    } t_exe;
]])

Supports

features:
    transparent LuaJIT ffi extension
    replacement macros
    macro chaining
    functional macros
    multiline macros
    expressions (defined(xyz) && ...)
    concat operator ("##")
    screen C single- and multiline comments
    
directives:
    #include
    #define
    #undef
    #pragma
    #error
    #if 
    #ifdef 
    #ifndef
    #else 
    #else if 
    #elif 
    #endif
    
macros:
    __LINE__
    __FILE__
    __DATE__
    __TIME__
    __LCPP_INDENT__

Make targets

make test      # run the included test cases
make doc       # ldoc must be installed

License

MIT licencse included in lua modue.

2012-2014 Michael Schmoock michael@schmoock.net

About

A Lua C PreProcessor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Morty Proxy This is a proxified and sanitized view of the page, visit original site.