pEpACIDLang stands for "pEp Abstract C Interface Description Language".
 
Go to file
heck 705b212cdd struct field add mandatory param 'optional' 2023-06-22 11:59:26 +02:00
doc Move review_positron.md into doc/ 2023-06-05 13:14:38 +02:00
examples/example1 struct field add mandatory param 'optional' 2023-06-22 11:59:26 +02:00
idl struct field add mandatory param 'optional' 2023-06-22 11:59:26 +02:00
lm-c99 struct field add mandatory param 'optional' 2023-06-22 11:59:26 +02:00
.gitignore .gitignore 2023-06-15 22:35:22 +02:00
Makefile Build: update for renamed tests 2023-06-21 20:55:38 +02:00
README.md a construct statement seems like a conncept for generating implementation, not interface. 2023-06-22 11:38:25 +02:00

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