-# simple(CMD, SUMMARY, DETAIL, [[NAME,DESCR], [NAME,DESCR], ...],)
+sub c_in_decl {
+ my $arg = shift;
+
+ my $type = $arg->[0];
+ my $name = $arg->[1];
+ if($type eq 'string') {
+ return "const char *$name";
+ } elsif($type eq 'integer') {
+ return "long $name";
+ } else {
+ die "$0: unknown type '$type'\n";
+ }
+}
+
+sub c_out_decl {
+ my $arg = shift;
+
+ my $type = $arg->[0];
+ my $name = $arg->[1];
+ if($type eq 'string') {
+ return "char **${name}p";
+ } elsif($type eq 'integer') {
+ return "long *${name}p";
+ } else {
+ die "$0: unknown type '$type'\n";
+ }
+}
+
+sub c_param_docs {
+ my $args = shift;
+ return map(" * \@param $_->[1] $_->[2]\n", @$args);
+}
+
+# simple(CMD, SUMMARY, DETAIL, [[TYPE,NAME,DESCR], [TYPE,NAME,DESCR], ...],)