+\def\@setf{setf}
+
+\def\fmtspecs#1#2{%
+ \if!#2!\else\count@\z@\toks@{}#1\@fmtspecs@i#2,\q@,\fi}
+\def\@fmtspecs@i#1,{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\q@%
+ \ifcase\count@(no args?!)%
+ \or% nothin' doin
+ \or \space and %
+ \else, and %
+ \fi%
+ \the\toks@%
+ \else%
+ \ifnum\count@>\@ne, \fi%
+ \the\toks@%
+ \toks@{\code{#1}}\advance\count@\@ne%
+ \expandafter\@fmtspecs@i%
+ \fi%
+}
+
+%% \parse@dhd{NEXT}[MOD]{CAT}{...}...[NAME]{SYNOPSIS}
+%% call NEXT{MOD}{CAT}{{...}...}{NAME}{SYNOPSIS}
+%% #1 #2 #3 #4 #5
+\def\@setf{setf}
+\def\parse@dhd#1{% {NEXT}
+ \@ifnextchar[{\parse@dhd@a{#1}}{\parse@dhd@c{#1}}}
+\def\parse@dhd@a#1[#2]#3{% {NEXT}[MOD]{CAT}
+ \@desc@dispatch{descargs}{#3}{\parse@dhd@ab{#1}{#2}{#3}}}
+\def\parse@dhd@ab#1#2#3#4{% {NEXT}{MOD}{CAT}{{...}...}
+ \@ifnextchar[{\parse@dhd@ac{#1}{#2}{#3}{#4}}{\parse@dhd@ad{#1}{#2}{#3}{#4}}}
+\def\parse@dhd@ac#1#2#3#4[#5]#6{% {NEXT}{MOD}{CAT}{{...}...}[NAME]{SYNOPSIS}
+ #1{#2}{#3}{#4}{#5}{#6}}
+\def\parse@dhd@ad#1#2#3#4#5{% {NEXT}{MOD}{CAT}{{...}...}{NAME [ARGS...]}
+ \parse@dhd@ae{#1}{#2}{#3}{#4}{#5}#5 \q@}
+\def\parse@dhd@ae#1#2#3#4#5#6 #7\q@{%
+ % {NEXT}{MOD}{CAT}{{...}...}{SYNSOPSIS}NAME [ARGS...]\q@
+ #1{#2}{#3}{#4}{#6}{#5}}