|
||
---|---|---|
doc | ||
examples/example1 | ||
idl | ||
lm-c99 | ||
.gitignore | ||
Makefile | ||
README.md |
README.md
pEpACIDLang
"The current problem at hand is to replace a handwritten C API with a pEpACIDlang generated one."
pEpACIDLang stands for "pEp Abstract C Interface Description Language".
pEpACIDLang is language to describe a programming interface.
'Abstract', because the interfaces defined in pEpACIDLang are agnostic to the target language.
'C' because the syntax and some concepts are based on the C language.
A concrete interface and client code using the interface can be generated for any language where there exist a language mapping for.
A language mapping consists of:
- A language mapping specification (lms)
- An interface generator (ig)
pEp-IDL
The pEp interface description language ...
TODO:
-
ODR checks for types (global)
-
ODR checks for func param names
-
ODR checks for struct field names
-
STATUS enum from throws statements
-
new / free functions for struct types
-
list implementation
-
array support in structs
-
struct field 'optional' (for constructor)
-
!!!decouple ig-c99 from idl using idl-api