2 # Written by Greg J. Badros, <gjb@cs.washington.edu>
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
;
15 /^
[ \t]*%%%
/ { copy = $
0;
16 gsub(/[ \t]*%%%
/, "", copy
);
17 gsub(/\$\$\$.
*$
/, "", copy
);
18 print copy
> dot_x_file
}
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
);
29 numargs =
gsub(/SCM
/,"", copy
);
30 numcommas =
gsub(/,/,"", copy
);
31 numactuals = $
2 + $
3 + $
4;
33 gsub(/\"/,"",location
);
34 sub(/^
[ \t]*/,"",location
);
35 sub(/[ \t]*$
/,"",location
);
36 sub(/: /,":",location
);
37 gsub(/[ \t]*\
|.
*$
/,"",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
; }
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; }