|
|
- // p≡p API Y language
-
- // Copyleft (c) 2019, p≡p foundation
- // this file is under GNU General Public License 3.0
- // see LICENSE.txt
-
- // written by Volker Birk
-
-
- decl package @name;
- decl api @name (type=api) alias package;
- decl type @name;
- decl extends @type;
- decl enum @name;
- decl item @name;
- decl struct @name;
- decl field @type @name;
- decl hex is item (output=hex);
- decl flag @name;
- decl protocol @name;
- decl method @name;
- decl construct, new is construct;
-
- // use: readonly in parm, ownership remains with caller
- decl use @type @name (mode=use) alias parm;
-
- // supply: inout parm, ownership remains with caller
- decl supply @type @name (mode=supply) alias parm;
-
- // create: factory delivers this, ownership goes to caller
- decl create @type @name (mode=create) alias parm;
-
- // provide: in parm, ownership goes to callee
- decl provide @type @name (mode=provide) alias parm;
-
- // return: out parm, ownership goes to callee
- decl return @type @name (mode=return) alias parm;
-
- decl throws @except;
- decl caveat(mode=caveat) alias doc;
-
-
- // base types
-
- // string: text
- // int: integer number
- // blob: Binary Large Object
- // size_t: size in memory
- // bool: true or false
-
-
- // collections
-
- // list: one or more elements, which have a sequence
- // set: one or more elements, which do not have a sequence
- // pair: two elements in sequence
-
-
-
- package pEp {
- api transport include ./transport_api.yml2
- api message include ./message_api.yml2
- api keymanagement include ./keymanagement_api.yml2
- api basic include ./basic_api.yml2
- }
-
|