aboutsummaryrefslogtreecommitdiffstats

luatablegen

FOSSA Status

luatablegen takes a list of C structures and generates lua tables in C.
The input is in the form of a JSON file that describes the C structure and the Lua types you want.
Each structure will have it's own pair of C source and header. There is an option for an aggregate header which will include all the headers and in has a function that registers all the tables with Lua.
luatablegen will generate a lua file that includes default constructors for all tables which you can use in Lua with require. luatablegen will also generate a markdown file listing the methods for the tables.
For an example you can look under the test directory.

Lua Version

The generated code is supposed to be used with lua 5.3.

table gen file

Each entry in the JSON file should have the following fields:
* field_name: a list of the names of the C structure field names.
* field_type: a list of the names of the C types for the C structure fields.
* lua_type: a list of the names of the lua types that the Lua table fields corresponding to the C structure fields will have.
* methods: a list of the methods that will be generated for the Lua table corresponding to the C structure.

Options

  -h, --help            show this help message and exit
  --out OUT             output directory
  --tbg TBG             the table gen file
  --pre PRE             path to source code file to add after header
                        guard/extern c
  --post POST           path to source code file to add before header
                        guard/extern c end
  --luaheader LUAHEADER
                        path to lua header files
  --dbg                 debug
  --singlefile          should all the generated code be added to a single
                        file
  --makemacro           generate a makefile containing all objects in a macro
                        to be included by another makefile
  --outfile OUTFILE     name of the output file if signlefile is set, ignored
                        otherwise
  --headeraggr HEADERAGGR
                        header aggregate file name
  --lualibpath LUALIBPATH
                        where the lua module file will be placed
  --docpath DOCPATH     where the doc file will be placed

Projects

The list of the projects that use luatablegen:
* bruiser

TODO

  • fields should be able to reference each other.
  • add more options for the table fileds.

License

FOSSA Status