* Makefile.am: Fix ETAGS_ARGS to recognize GUILE_PROC,
[bpt/guile.git] / libguile / guile-doc-snarf.awk
1 #!/usr/bin/awk -f
2 # Written by Greg J. Badros, <gjb@cs.washington.edu>
3 # 12-Dec-1999
4
5 BEGIN { FS="|";
6 filename = ARGV[1]; ARGV[1] = "";
7 dot_x_file = filename; dot_doc_file = filename;
8 sub(/\..*$/,".x",dot_x_file);
9 sub(/\..*$/,".doc",dot_doc_file);
10 # be sure to put something in the files to help make out
11 printf "" > dot_x_file;
12 printf "" > dot_doc_file;
13 }
14
15 /^[ \t]*%%%/ { copy = $0;
16 gsub(/[ \t]*%%%/, "", copy);
17 gsub(/\$\$\$.*$/, "", copy);
18 print copy > dot_x_file }
19
20 /\$\$\$/,/@@@/ { copy = $0;
21 if (match(copy,/\$\$\$R/)) { registering = 1; }
22 else {registering = 0; }
23 gsub(/.*\$\$\$./,"", copy);
24 gsub(/@@@.*/,"",copy);
25 gsub(/[ \t]+/," ", copy);
26 sub(/^[ \t]*/,"(", copy);
27 gsub(/\"/,"",copy);
28 sub(/ \(/," ",copy);
29 numargs = gsub(/SCM /,"", copy);
30 numcommas = gsub(/,/,"", copy);
31 numactuals = $2 + $3 + $4;
32 location = $5;
33 gsub(/\"/,"",location);
34 sub(/^[ \t]*/,"",location);
35 sub(/[ \t]*$/,"",location);
36 sub(/: /,":",location);
37 gsub(/[ \t]*\|.*$/,"",copy);
38 sub(/ )/,")",copy);
39 if (numargs != numactuals && !registering)
40 { print location ":*** `" copy "' is improperly registered as having " numactuals " arguments"; }
41 print "\f\n" copy (registering?")":"") > dot_doc_file ; }
42
43 /@@@/,/@!!!.*$/ { copy = $0;
44 gsub(/.*@@@/,"",copy);
45 gsub(/^[ \t]*"?/,"", copy);
46 gsub(/\"?[ \t]*@!!!.*$/,"", copy);
47 gsub(/\\\"/,"\"",copy);
48 gsub(/[ \t]*$/,"", copy);
49 if (copy != "") { print copy > dot_doc_file } }
50 /@!!![ \t]/ { print "\ 1[" location "]" >> dot_doc_file; }
51