pEpACIDLang { include pEpACIDLang.yml2 package example { version 1.0; license "License text"; copyleft "Copyleft text"; api api1 { // deftype is used for two things: // * create a type-alias for any type with optional // properties to narrow the definition of the type. // * instantiate a "generic type" into a (concrete) type deftype deftype1 as size; deftype deftype2 as string; deftype stringlist as list; deftype stringlist2 as stringlist; enum enum1 { item item1 doc="item with automatic value"; item item2 23 doc="item with explicit decimal value"; item item3 "0xff" doc= """ hex enum item ------------- specify value in quotes """; }; struct struct1 { field int int1; field size size1 doc="short doc"; field string string1 doc=""" Multiline Doc """; }; // Param Passing Modes // * borrow // * mborrow // * claim // * provide // TEST // ---- // Test comma after param method test_one_param { param borrow size p doc=""" Multiline Doc """; }; method test_two_param { param borrow size p1 doc=""" Multiline Doc """; param borrow size p2 doc=""" Multiline Doc """; }; // TEST // ---- method method_test_all { // primitive basetype param borrow size borrow_primitive_basetype; param mborrow size mborrow_primitive_basetype; //param claim size claim_primitive_basetype; ERROR CASE //param provide size provide_primitive_basetype; ERROR CASE // object basetype param borrow string borrow_obj_basetype; param mborrow string mborrow_obj_basetype; param claim string claim_obj_basetype; param provide string provide_obj_basetype; // enum param borrow enum1 borrow_enum; param mborrow enum1 mborrow_enum; //param claim enum1 claim_enum; ERROR CASE //param provide enum1 provide_enum; ERROR CASE // struct param borrow struct1 borrow_struct; param mborrow struct1 mborrow_struct; param claim struct1 claim_struct; param provide struct1 provide_struct; // deftype of primitive basetype param borrow deftype1 borrow_spec_primitive_basetype; param mborrow deftype1 mborrow_spec_primitive_basetype; //param claim deftype1 claim_spec_primitive_basetype; ERROR CASE //param provide deftype1 provide_spec_primitive_basetype; ERROR CASE // deftype of object basetype object param borrow deftype2 borrow_spec_obj_basetype; param mborrow deftype2 mborrow_spec_obj_basetype; param claim deftype2 claim_spec_obj_basetype; param provide deftype2 provide_spec_obj_basetype; // deftype of list param borrow stringlist borrow_spec_primitive_basetype; param mborrow stringlist mborrow_spec_primitive_basetype; param claim stringlist claim_spec_primitive_basetype; param provide stringlist provide_spec_primitive_basetype; }; }; test_types; }; };