"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)
The pEp interface description language ...
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
array support in structs
struct field 'optional' (for constructor)
!!!decouple ig-c99 from idl using idl-api