You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
heck a83f26a818 a construct statement seems like a conncept for generating implementation, not interface. 2 years ago
doc Move review_positron.md into doc/ 2 years ago
examples/example1 style: s/};/}/g - never required. might be confusing for readers 2 years ago
idl throws has bee added 2 years ago
lm-c99 style: s/};/}/g - never required. might be confusing for readers 2 years ago
.gitignore .gitignore 2 years ago
Makefile Build: update for renamed tests 2 years ago
README.md a construct statement seems like a conncept for generating implementation, not interface. 2 years ago

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