.ec k \
.nd _refman_insert_loaded 0
.if _refman_insert_loaded
. tm Ignoring reload of clu;refman insert
. nx
. en
.nr _refman_insert_loaded 1
.dv xgp
.fo 0 fonts1;30vrx rwskst
.fo 1 fonts1;nonmb1 rwskst
.fo 2 fonts1;30vrix ebmkst
.fo 3 37vrb
\k this is used in an appendix
.fo 4 30vrb
\k this is used for some meta syntax characters
.fo 5 40vgl
\k this is used for a not-equal sign
.fo 6 plunk
\k this is used for small super- and sub-scripts
.fo 7 20vg
\k this is used for some special characters
.fo 8 fonts1;31sym jcskst
\k this is used for some meta syntax characters
.fo 9 s30grk
\k Barbara uses greek letters (why? I don't know!)
.fo A fonts1;52meta rwskst
.fo D 25vg
.fo E 25vgb
.ls 1.5
.tr ` 
.nr verbose 1
.nr tty_table_of_contents 1
.nr print_page1_headings 1
.nr chapter_starts_page 1
.sr left_heading 4DRAFT*
.sr right_heading date
.nr both_sides 1
.nr figure_font 0
.nr chapter_toc_font 4
.nr section_toc_font 4
.sr chapter_toc_form 3\section_number.t(toc1)\section_title * pn(\page)
.sr section_toc_form ```\section_numbert(toc2)\section_title pn(\page)
.sr appendix_toc_form 3\section_number_title.t(toc3)\section_title * pn(\page)
.sr achapter_toc_form ```\section_number.t(toc2)\section_title pn(\page)
\k
\k Note: the first module, which adds "part a" to the toc
\k sets the tabs as well.
\k
.so r;r macros
.so r;div rmac
.so clu;clukey r
.so clu;clusym r
.
\k to output a page number in the toc
.
.de pn
.	\0
.br
.em
.
.am chapter			\k Ignore this
. if font
.  tm "Current font not 0 at chapter end!"
.  en
. em
.
.am section			\k Ignore this
. if font
.  tm "Current font not 0 at section end!"
.  en
  em
.
\k para macro - do a .para before every paragraph
.
.de para
. ne 3
. ti 4
. em
.
\k show macro - to start an indented example in nofill, single-spaced
\k	takes the number of lines to keep together as an optional argument
.
.de show
. be show_block
.  nv ols ls
.  nv ls 100
.  sp (ols-100)/100
.  hv indent indent 8
.  nf
.  if nargs>0
.   ne \0l
.   en
. em
.
\k eshow macro - to end a .show
.
.de eshow
.  fi
.  en
. sp (ls-100)/100
. em
.
\k s macro - s(n) sets "tab" n at the current horizontal position
.
.de s
. nr tab_pos\0 hpos
. em
.
\k t macro - t(n) resets the horizontal position to "tab" n
.
.de t
. if hpos>tab_pos\0
.  tm Tabbed backwards with tab \0 at \lineno
.  en
. hs (tab_pos\0-hpos)m
. em
.
\k b macro - b(n) does a line break and then goes to "tab" n
.
.de b
. br
. hs (tab_pos\0-hpos)m
. em
.
\k long_def - .long_def <non-term>	for defining the longest non-terminal
\k	after a .long_def, use only .def1's, don't do a .def
.
.de long_def
. width "\0  "
. nr d_stop0 width+indent
. width "def"
. nr d_stop1 d_stop0+(width/2)
. width "def  "
. nr d_stop2 d_stop0+width
. em
.
\k def macro - .def foo <opt-alt>	for showing full BNF syntax of "foo"
\k	first alternative is <opt-alt>, if present, else text following .def line
.
.de def
\0  
. nr d_stop0 hpos
. width "def"
. nr d_stop1 hpos+(width/2)
def  
. nr d_stop2 hpos
. if nargs>1
\1
.  en
. em
.
\k def1 macro - .def1 foo <opt-alt>	for showing full BNF syntax of "foo"
\k	to be used only after a .def or .long_def has been done, to line up the ::='s
\k	first alternative is <opt-alt>, if present, else text following .def line
.
.de def1
\0
. hp d_stop0!m
def
. hp d_stop2!m
. if nargs>1
\1
.  en
. em
.
\k or macro - .or <opt-alt>		for starting next alternative in BNF
\k	next alternative is <opt-alt>, if present, else text following .or line
.
.de or
. br
. hs (d_stop1-hpos)m
orbar
. hs (d_stop2-hpos)m
. if nargs
\0
.  en
. em
.
\k nlist macro   -   for numbered lists
.
.sr list_indent 3
.sr list_space .5
.
.de nlist
. ilist
. nnum
. em
.
\k nnext macro   -   for starting the next element in a numbered list
.
.de nnext
. next
. nnum
. em
.
\k end_list macro   -   for ending a numbered list
.
.de end_list
. br
. en
. rtabs
. sp (ls-100)/100
. em
.
\k internal macro only
.
.de nnum
\list_count.	
. em
.
\k internal macro only
.
.de ibegin_list
. br
. nv ls
. nv indent indent
. nv rindent rindent
. nv tab_stop
. sv list_indent \list_indent
. sv list_space \list_space
. nv list_count 0
. if nargs>1
.  sr list_indent \1
.  en
. if nargs>2
.  sr list_space \2
.  en
. in +\list_left_margin
. if \0
.  in +\list_indent
.  sr list_indent -\list_indent
.  en
. ta indent!m
. ir +\list_right_margin
. nr tab_stop indent
. ls \list_spacing
. ns
. next
. rs
. em
.
.de width
. ignore
. nv indent
. nv ll 30000
. nv start hpos
\0
. nr width hpos-start
. nr ha habove
. nr hb hbelow
. end_ignore
. em
