${node.retval.type.ctype}
${node.symbol}
${node.parent.ctype} *
self
% for arg in node.parameters:
% if arg.type.ctype == '':
% else:
${arg.type.ctype}
${arg.argname}
% endif
% endfor
${node.symbol}
${node.retval.type.ctype} ${node.symbol} (${node.parent.ctype} *self\
% if len(node.parameters) == 0:
);
% else:
,
% endif
% for arg, ix in zip(node.parameters, range(len(node.parameters))):
${' ' * (len(node.retval.type.ctype) + len(node.symbol) + 3)}\
% if arg.type.ctype == '':
...\
% else:
${arg.type.ctype} ${arg.argname}\
% endif
% if ix == len(node.parameters) - 1:
);
% else:
,
%endif
% endfor
${format(node.doc)}