p≡p engine fork for my own dirty testing of stuff
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.

66 lines
1.5 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. // p≡p API Y language
  2. // Copyleft (c) 2019, p≡p foundation
  3. // this file is under GNU General Public License 3.0
  4. // see LICENSE.txt
  5. // written by Volker Birk
  6. decl package @name;
  7. decl api @name (type=api) alias package;
  8. decl type @name;
  9. decl extends @type;
  10. decl enum @name;
  11. decl item @name;
  12. decl struct @name;
  13. decl field @type @name;
  14. decl hex is item (output=hex);
  15. decl flag @name;
  16. decl protocol @name;
  17. decl method @name;
  18. decl construct, new is construct;
  19. // use: readonly in parm, ownership remains with caller
  20. decl use @type @name (mode=use) alias parm;
  21. // supply: inout parm, ownership remains with caller
  22. decl supply @type @name (mode=supply) alias parm;
  23. // create: factory delivers this, ownership goes to caller
  24. decl create @type @name (mode=create) alias parm;
  25. // provide: in parm, ownership goes to callee
  26. decl provide @type @name (mode=provide) alias parm;
  27. // return: out parm, ownership goes to callee
  28. decl return @type @name (mode=return) alias parm;
  29. decl throws @except;
  30. decl caveat(mode=caveat) alias doc;
  31. // base types
  32. // string: text
  33. // int: integer number
  34. // blob: Binary Large Object
  35. // size_t: size in memory
  36. // bool: true or false
  37. // collections
  38. // list: one or more elements, which have a sequence
  39. // set: one or more elements, which do not have a sequence
  40. // pair: two elements in sequence
  41. package pEp {
  42. api transport include ./transport_api.yml2
  43. api message include ./message_api.yml2
  44. api keymanagement include ./keymanagement_api.yml2
  45. api basic include ./basic_api.yml2
  46. }