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.

48 lines
1.2 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 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. // use: readonly in parm, ownership remains with caller
  19. decl use @type @name (mode=use) alias parm;
  20. // supply: inout parm, ownership remains with caller
  21. decl supply @type @name (mode=supply) alias parm;
  22. // create: factory delivers this, ownership goes to caller
  23. decl create @type @name (mode=create) alias parm;
  24. // provide: in parm, ownership goes to callee
  25. decl provide @type @name (mode=provide) alias parm;
  26. // return: out parm, ownership goes to callee
  27. decl return @type @name (mode=return) alias parm;
  28. decl throws @except;
  29. decl caveat(mode=caveat) alias doc;
  30. package pEp {
  31. api transport include ./transport_api.yml2
  32. api message include ./message_api.yml2
  33. api keymanagement include ./keymanagement_api.yml2
  34. api basic include ./basic_api.yml2
  35. }