%if EXISTS("_ASAMLIB_") == 0
%assign _ASAMLIB_ = 1
%function SLibCreateParameterGroup(block,name) void
%if !ISFIELD(block, "NumParameterGroups")
%<LibAddIdentifier(block,"NumParameterGroups",1)>
%else
%assign block.NumParameterGroups = NumParameterGroups + 1
%endif
%assign tmpVar = ParameterGroup { Name name; NumMembers 0 }
%assign block = block + ParameterGroup
%return block.ParameterGroup[NumParameterGroups-1]
%endfunction
%function SLibAddMember(block,group,param) void
%assign tmpVar = Member { Reference param ; NumMembers 0 }
%assign group = group + Member
%assign group.NumMembers = group.NumMembers + 1
%return group.Member[group.NumMembers-1]
%endfunction
%endif