Mercurial > hg > octave-nkf
view src/mkgendoc @ 5018:1c65a8e44ef9 ss-2-1-59
[project @ 2004-09-22 03:33:29 by jwe]
author | jwe |
---|---|
date | Wed, 22 Sep 2004 03:33:29 +0000 |
parents | 02fcb550f20c |
children | ac8d64b9e76a |
line wrap: on
line source
#! /bin/sh SED=${SED:-'sed'} 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 mkgendoc #if defined (__DECCXX) #define __USE_STD_IOSTREAM #endif #include <iostream> #include <string> #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \ print_doc_string (#name, doc); #define XDEFUN_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \ print_doc_string (#name, doc); #define XDEFCONSTFUN_INTERNAL(name, args_name, nargout_name, \ is_text_fcn, doc) \ print_doc_string (#name, doc); #define XDEFUNX_INTERNAL(name, fname, 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, defn, 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, \ ch_map_flag, can_ret_cmplx_for_real, doc) \ print_doc_string (#name, doc); static void print_doc_string (const std::string& name, const std::string& doc) { std::cout << ""; size_t len = name.length (); if (name[0] == '"' && name[len-1] == '"') std::cout << name.substr (1, len-2); else std::cout << name; std::cout << "\n" << 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