summaryrefslogtreecommitdiffhomepage
path: root/Readme.mdown
blob: 6deb78b3b82b1a6884c971cc772d6f871d4faf6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
![FelBind](https://github.com/realtradam/FelBind/blob/master/logos/felbind-logo-text.png?raw=true)

[![MIT License](https://img.shields.io/github/license/realtradam/felbind?style=flat)](https://github.com/realtradam/FelBind/blob/master/LICENSE)
[![Ko-Fi](https://img.shields.io/static/v1?message=Buy%20me%20a%20coffee&logo=kofi&labelColor=ff5e5b&color=434B57&logoColor=white&label=%20)](https://ko-fi.com/tradam)


A binding assistant and generator for C/C++ to mruby(Under heavy WIP)

---

### How I plan for it to work:

1. Run the scanner which will generate a glue.json file. This json file will contain all functions(and their params) as well as all structs(and their params)
2. Create a configuration file where you can reference specific functions and how you want their bindings to be generated differently
	- for example, under what module or class a function should belong
	- if a certain param should use self instead of passing in something
	- ignore some functions if you dont need them
	- insert bindings you made yourself
3. Run the generator with the configuration file - this generates the resulting binding code

Todo:

- [X] parse C files for function and struct declarations
- [X] plan for DSL for configuration file
- [ ] create generator's default output
	- [X] phase 1 - bind returnless, paramless functions
	- [ ] phase 2 - bind standard type return functions(e.g string or int), but still paramless
		- bool
		- int
		- float
		- double
		- string
	- [ ] phase 3 - bind standard type return or params
	- [ ] phase 4 - bind struct construction(returning struct objects)
	- [ ] phase 5 - bind struct params(unwrapping structs)
- [ ] have generator use config DSL file to customize bindings
- [ ] do it all again for C++