p≡p engine
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.
 
 
 
 

70 lines
1.5 KiB

// 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;
// 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
// const:
// identity:
// message:
// rating:
// enc_format:
// hash:
// TID:
// 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
}