diff src/mkgendoc @ 3295:35a6d027772c

[project @ 1999-10-19 10:13:02 by jwe]
author jwe
date Tue, 19 Oct 1999 10:13:06 +0000
parents
children 6923abb04e16
line wrap: on
line diff
new file mode 100755
--- /dev/null
+++ b/src/mkgendoc
@@ -0,0 +1,74 @@
+#! /bin/sh
+
+if test $# -ne 1; then
+  echo "usage: mkgendoc f1" 1>&2
+  exit 1
+fi
+
+DOC_FILES=`cat $1`
+
+if test -z "$DOC_FILES"; then
+  echo "mkgendoc: DOC_FILES is empty!" 1>&2
+  exit 1
+fi
+
+cat << \EOF
+// DO NOT EDIT!  Generated automatically by mkbuiltins.
+
+#include <iostream.h>
+#include <string>
+
+#define XDEFUN_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \
+  print_doc_string (#name, doc);
+
+#define XDEFALIAS_INTERNAL(alias, name)
+
+#define XDEFVAR_INTERNAL(name, sname, defn, protect, chg_fcn, doc) \
+  print_doc_string (#name, doc);
+
+#define XDEFCONST_INTERNAL(name, sname, defn, protect, doc) \
+  print_doc_string (#name, doc);
+
+#define XDEFUN_MAPPER_INTERNAL(name, ch_map, d_b_map, c_b_map, d_d_map, \
+			       d_c_map, c_c_map, lo, hi, \
+			       can_ret_cmplx_for_real, doc) \
+  print_doc_string (#name, doc);
+
+static void
+print_doc_string (const string& name, const string& doc)
+{
+  cout << "" << name << "\n";
+  cout << doc << "\n";
+}
+
+EOF
+
+for file in $DOC_FILES; do
+  fcn=`echo $file | sed 's,^\./,,; s/\.df//; s/-/_/g'`
+  echo "static void"
+  echo "print_${fcn}_doc_strings (void)"
+  echo "{"
+  cat $file
+  echo "}"
+  echo ""
+done
+
+cat << \EOF
+
+int
+main (void)
+{
+EOF
+
+for file in $DOC_FILES; do
+  fcn=`echo $file | sed 's,^\./,,; s/\.df//; s/-/_/g'`
+  echo "  print_${fcn}_doc_strings ();"
+done
+
+cat << \EOF
+
+  return 0;
+}
+EOF
+
+exit 0