summaryrefslogtreecommitdiff
path: root/libguile/snarf.h
diff options
context:
space:
mode:
authorGreg J. Badros <gjb@cs.washington.edu>1999-12-12 23:37:40 +0000
committerGreg J. Badros <gjb@cs.washington.edu>1999-12-12 23:37:40 +0000
commit3dc81fbacea7ccac0e9f1a1f97f93ed7d2e00aba (patch)
tree858747dd8b54b11a54c3f0aab8368653a26f2ad9 /libguile/snarf.h
parent66c24ad36ac680c72b67050d16f6fd7549969265 (diff)
downloadguile-3dc81fbacea7ccac0e9f1a1f97f93ed7d2e00aba.tar.gz
* snarf.h: Drop SCM_PROC, SCM_PROC1. Added extra output for
guile-doc-snarf script. * guile-doc-snarf.in, guile-doc-snarf.awk: New, simple doc extraction system. Builds foo.x, foo.doc from foo.{c,cc}. There are dependencies between these files and snarf.h. This replaces guile-snarf. * guile-snarf.in: Drop everything after $$$ for the new snarf.h macros. This is obsoleted by guile-doc-snarf, but kept here for now for good measure. * Makefile.am: Added guile-doc-snarf, guile-doc-snarf.awk to bin_SCRIPTS. Added .doc to SUFFIXES, and give rule for creating .doc files to use guile-doc-snarf. Update the rule for creating .x files to use guile-doc-snarf.
Diffstat (limited to 'libguile/snarf.h')
-rw-r--r--libguile/snarf.h33
1 files changed, 17 insertions, 16 deletions
diff --git a/libguile/snarf.h b/libguile/snarf.h
index 999ffe3d7..2900820c1 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -65,48 +65,49 @@ SCM FNAME ARGLIST
#define SCM_GPROC(RANAME, STR, REQ, OPT, VAR, CFN, GF) \
static const char RANAME[]=STR; \
static SCM GF = 0
-#define SCM_PROC1(RANAME, STR, TYPE, CFN) \
- static const char RANAME[]=STR
#define SCM_GPROC1(RANAME, STR, TYPE, CFN, GF) \
static const char RANAME[]=STR; \
static SCM GF = 0
#else
#if defined(__cplusplus) || defined(GUILE_CPLUSPLUS_SNARF)
+/* for C++ snarfing */
#define GUILE_PROC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
%%% scm_make_gsubr (s_ ## FNAME, REQ, OPT, VAR, (SCM (*)(...)) FNAME); \
-$$$ primname #ARGLIST req opt var @@@ docstring @!!!
+$$$P PRIMNAME #ARGLIST | REQ | OPT | VAR | __FILE__:__LINE__ | @@@ DOCSTRING @!!!
#define GUILE_PROC1(FNAME, PRIMNAME, TYPE, ARGLIST, DOCSTRING) \
%%% scm_make_subr (s_ ## FNAME, TYPE, FNAME); \
-$$1 primname #ARGLIST type @@@ docstring @!!!
+$$$1 PRIMNAME #ARGLIST | 2 | 0 | 0 | __FILE__:__LINE__ | @@@ DOCSTRING @!!!
#define SCM_REGISTER_PROC(RANAME, STR, REQ, OPT, VAR, CFN) \
-%%% scm_make_gsubr (RANAME, REQ, OPT, VAR, (SCM (*)(...)) CFN) \
-$$R RANAMEprimname #ARGLIST type @@@ docstring @!!!
+%%% scm_make_gsubr (RANAME, REQ, OPT, VAR, (SCM (*)(...)) CFN); \
+$$$R RANAME CFN STR REQ OPT VAR @!!!
#define SCM_GPROC(RANAME, STR, REQ, OPT, VAR, CFN, GF) \
%%% scm_make_gsubr_with_generic (RANAME, REQ, OPT, VAR, (SCM (*)(...))CFN, &GF)
-#define SCM_PROC1(RANAME, STR, TYPE, CFN) \
-%%% scm_make_subr(RANAME, TYPE, (SCM (*)(...))CFN)
+
#define SCM_GPROC1(RANAME, STR, TYPE, CFN, GF) \
%%% scm_make_subr_with_generic(RANAME, TYPE, (SCM (*)(...))CFN, &GF)
+
#else
+/* for ANSI C snarfing, not C++ */
#define GUILE_PROC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
-%%% scm_make_gsubr (s_ ## FNAME, REQ, OPT, VAR, (SCM (*)()) FNAME);
-#define GUILE_PROC1(FNAME, PRIMNAME, TYPE, ARGLIST, DOCSTRING) \
-%%% scm_make_subr (s_ ## FNAME, TYPE, FNAME);
+%%% scm_make_gsubr (s_ ## FNAME, REQ, OPT, VAR, (SCM (*)()) FNAME); \
+$$$P PRIMNAME #ARGLIST | REQ | OPT | VAR | __FILE__:__LINE__ | @@@ DOCSTRING @!!!
+#define GUILE_PROC1(FNAME, PRIMNAME, TYPE, ARGLIST, DOCSTRING) \
+%%% scm_make_subr (s_ ## FNAME, TYPE, FNAME); \
+$$$1 PRIMNAME #ARGLIST | 2 | 0 | 0 | __FILE__:__LINE__ | @@@ DOCSTRING @!!!
-#define SCM_PROC(RANAME, STR, REQ, OPT, VAR, CFN) \
-%%% scm_make_gsubr (RANAME, REQ, OPT, VAR, (SCM (*)()) CFN)
#define SCM_REGISTER_PROC(RANAME, STR, REQ, OPT, VAR, CFN) \
-%%% scm_make_gsubr (RANAME, REQ, OPT, VAR, (SCM (*)()) CFN)
+%%% scm_make_gsubr (RANAME, REQ, OPT, VAR, (SCM (*)()) CFN); \
+$$$R RANAME CFN STR REQ OPT VAR @!!!
+
#define SCM_GPROC(RANAME, STR, REQ, OPT, VAR, CFN, GF) \
%%% scm_make_gsubr_with_generic (RANAME, REQ, OPT, VAR, (SCM (*)()) CFN, &GF)
-#define SCM_PROC1(RANAME, STR, TYPE, CFN) \
-%%% scm_make_subr(RANAME, TYPE, CFN)
+
#define SCM_GPROC1(RANAME, STR, TYPE, CFN, GF) \
%%% scm_make_subr_with_generic(RANAME, TYPE, CFN, &GF)
#endif