
INCWSLEVEL()

DEFINESYMBOL(latex)()

COMMENT(
                                 Yodl
                             PREDEFINDED
                               COUNTERS
END COMMENT)

COMMENT(
    XXonlyblanks is defined by Yodl to indicate that only blanks were 
    inserted since PARAGRAPH() was called. It can be used to prevent the 
    output of multiple blank lines.

    To prevent the calling of PARAGRAPH in a certain context, use
    PUSHMACRO(PARAGRAPH)(0)() at the begin of the context, and
    POPMACRO(PARAGRAPH) at the end of the context.

    Just before PARAGRAPH is called, the symbol XXparagraph is set to the
whitespace text that would have been inserted if PARAGRAPH wasn't
defined. This does not happen if XXparagraph is not defined. It is NOT defined
by default. 

    The ifonlyblanks()() macro can be used to distinguish between series of
PARAGRAPH() activations and the first time PARAGRAPH is called following other
output. 

    If PARAGRAPH() would be called from within PARAGRAPH() itself its literal
whitespace text is output at that point. No nested calls of PARAGRAPH will
occur from an automated call of PARAGRAPH. It is possible, however, to call
PARAGRAPH recursively yourself (at your own risk)

END COMMENT)


DEFINECOUNTER(XXchaptercounter)(0)      COMMENT(for chapters)
DEFINECOUNTER(XXenumcounter)(0)         COMMENT(for ordered enums)
DEFINECOUNTER(XXpartcounter)(0)         COMMENT(for parts)
DEFINECOUNTER(XXsectcounter)(0)         COMMENT(for sections)
DEFINECOUNTER(XXsubsectcounter)(0)      COMMENT(for subsections)
DEFINECOUNTER(XXsubsubsectcounter)(0)   COMMENT(for subsubsections)

DEFINECOUNTER(XXtablewidth)(0)          COMMENT(the width of a table)
DEFINECOUNTER(XXcol)(0)                 COMMENT(col nr or idx in table/tbl)
DEFINECOUNTER(XXcenter)(0)              COMMENT(incremented in center(...))
DEFINECOUNTER(XXtr)(0)          \// 1 inside tr.
DEFINECOUNTER(XXtwrap)(0)       \// if != 0 then man-table cell contents are 
                                \//   wrapped in a T{ ... T} block (set by 
                                \//   twrap(value)
DEFINECOUNTER(XXx)(0)           \// scratch counter: no assumptions, and not
                                \//   necessarily unaltered after macro calls

COMMENT(
                                 Yodl
                             PREDEFINDED
                               SYMBOLS
END COMMENT)

COMMENT( 
        XXincludePath set by Yodl holds the current includepath XXincludePath
is Interrogated at file openings

        XXparagraph may be defined by the user. If defined, then it will
contain the white space that triggered the call of PARAGRAPH just before 
PARAGRAPH is called. 

        XXyodlVersion is set to Yodl's current version

END COMMENT)


DEFINESYMBOL(XXabstracttext)        ()
DEFINESYMBOL(XXaffilstring)         ()
DEFINESYMBOL(XXauthorstring)        ()
DEFINESYMBOL(XXchapterstring)       (Chapter)
DEFINESYMBOL(XXdatestring)          ()
        COMMENT(Documentclass should be set to:
                    book
                    report
                    article
                )
DEFINESYMBOL(XXdocumentclass)       (unknown)
DEFINESYMBOL(XXfigurestring)        (Figure)
DEFINESYMBOL(XXgeneratetoc)         (true)
DEFINESYMBOL(XXlastnumber)          ()

DEFINESYMBOL(XXpartstring)          (Part)
DEFINESYMBOL(XXtitlestring)         ()
DEFINESYMBOL(XXtitleclearpage)      ()
DEFINESYMBOL(XXtocstring)           (Table of Contents)

DEFINESYMBOL(XXtablealign)          ()
DEFINESYMBOL(XXalign)()         \// in txt mode: the default text indentation
DEFINESYMBOL(XXtao)()           \// tbl align override
DEFINESYMBOL(XXsym)()           \// scratch symbol value: no assumptions,
                                \//   and not kept at macro calls

DEFINESYMBOL(XXfigureext)           (.ps)
DEFINESYMBOL(XXlocalpackage)        ()
DEFINESYMBOL(XXlocaldocopts)        ()
DEFINESYMBOL(XXlocallayout)         ()
DEFINESYMBOL(XXaddressitems)        ()
DEFINESYMBOL(XXaddenda)             ()

DEFINESYMBOL(XXownlayout)(\
    NOTRANS(\setlength{\parskip}{3mm} % height between par)\
    XXnl()\
    NOTRANS(\setlength{\parindent}{0mm} % no par indent)\
)

DEFINESYMBOL(XXsloppyhfuzz)(\
    NOTRANS(\hfuzz=4pt % don't fuss when less than 4pt)\
)

DEFINESYMBOL(XXusexlatin)(\
    NOTRANS(\input{/usr/share/yodl/xlatin1.tex})\
)
DEFINESYMBOL(XXlatexverbchar)       (CHAR(`))
DEFINESYMBOL(XXtocclearpage)        ()

DEFINEMACRO(abstract)(1)(\
    SETSYMBOL(XXabstracttext)(ARG1)\
)

DEFINEMACRO(addntosymbol)(3)(\
    SETCOUNTER(XXx)(ARG2)\
    XXaddntosymbol(ARG1)(ARG3)\
)

DEFINEMACRO(affiliation)(1)(\
    setaffilstring(ARG1)\
)

DEFINEMACRO(AfourEnlarged)(0)(\
    latexlayoutcmds(\addtolength{\voffset}{-2cm})\
    latexlayoutcmds(\addtolength{\textheight}{4cm})\
)

DEFINEMACRO(appendix)(0)(\
    SETCOUNTER(XXchaptercounter)(0)\
    SETCOUNTER(XXsectcounter)(0)\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    setchapterstring(Appendix)\
    NOTRANS(\appendix)\
)

DEFINEMACRO(article)(3)(\
    redef(chapter)(1)(ERROR(chapters only available in reports or books!))\
    redef(part)(1)(ERROR(parts only available in books!))\
    redef(nchapter)(1)(chapter())\
    redef(npart)(1)(part())\
    XXstartdocument(article)\
    XXsetdocumentheader(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(attrib)(1)(\
)

DEFINEMACRO(attribclear)(0)(\
)

DEFINEMACRO(attribinsert)(0)(\
)

DEFINEMACRO(bf)(1)(\
    NOTRANS(\textbf{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(bind)(1)(\
    ARG1\
    +CHAR(~)\
)

DEFINEMACRO(book)(3)(\
    XXstartdocument(book)\
    XXsetdocumentheader(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(cell)(1)(\
    ADDTOCOUNTER(XXcol)(1)\
    ARG1\
    +IFEQUAL(XXcol)(XXtablewidth)()
    (
        NOTRANS( & )\
    )\
)

DEFINEMACRO(cells)(2)(\
    ADDTOCOUNTER(XXcol)(ARG1)\
    NOTRANS(\multicolumn{)\
    ARG1\
    +NOTRANS(}{c}{)\
    ARG2\
    +CHAR(})\
    +XXifneq(XXcol)(XXtablewidth)(\
        NOTRANS( & )\
    )\
)

DEFINEMACRO(cellsline)(2)(\
    SETCOUNTER(XXx)(ARG1-1)\
    EVAL(NOTRANS(ADDTOCOUNTER(XXx))(NOTRANS(-)COUNTERVALUE(XXcol)))\
    IFGREATER(XXx)(-1)(\
        ADDTOCOUNTER(XXcol)(XXx+ARG2)\
        NOTRANS( \cline{)\
        SETCOUNTER(XXx)(ARG1+ARG2-1)\
        ARG1-COUNTERVALUE(XXx)\
        +CHAR(})\
    )()\
)

DEFINEMACRO(center)(1)(\
    ADDTOCOUNTER(XXcenter)(1)\
    NOTRANS(\begin{center})\
    ARG1\
    +NOTRANS(\end{center})\
    ADDTOCOUNTER(XXcenter)(-1)\
)

DEFINEMACRO(chapter)(1)(\
    SETCOUNTER(XXsectcounter)(0)\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    ADDTOCOUNTER(XXchaptercounter)(1)\
    XXsetlastnumber(COUNTERVALUE(XXchaptercounter))\
    NOTRANS(\cleardoublepage)\
    NOTRANS(\chapter{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(cindex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(cite)(1)(\
    NOTRANS(\cite{)ARG1+CHAR(})\
)

DEFINEMACRO(clearpage)(0)(\
    NOTRANS(\clearpage)\
)

DEFINEMACRO(code)(1)(\
    NOTRANS(\texttt{)\
    NOEXPAND(ARG1)\
    +CHAR(})\
)

DEFINEMACRO(columnline)(2)(\
    SETCOUNTER(XXx)(ARG1)\
    NOTRANS( \cline{)\
    ARG1-ARG2\
    +CHAR(})\
    XXnl()\
)

DEFINEMACRO(dashes)(1)(\
PUSHSUBST(0)\
    NOTRANS(\texttt{--})\
POPSUBST()\
)

DEFINEMACRO(def)(3)(\
    DEFINEMACRO(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(description)(1)(\
    NOTRANS(\begin{description})\
    ARG1\
    +NOTRANS(\end{description})\
)

DEFINEMACRO(dit)(1)(\
    NOTRANS(\item[)ARG1+CHAR(])\
)

DEFINEMACRO(eit)(0)(\
    NOTRANS(\item )\
)

DEFINEMACRO(ellipsis)(0)(\
    NOTRANS(\ldots)\
)

DEFINEMACRO(em)(1)(\
    NOTRANS(\emph{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(email)(1)(\
    nemail(ARG1)(ARG1)\
)

DEFINEMACRO(enumerate)(1)(\
    enumeration(ARG1)\
)

DEFINEMACRO(enumeration)(1)(\
    PUSHCOUNTER(XXenumcounter)(0)\
    NOTRANS(\begin{enumerate})\
    ARG1\
    +NOTRANS(\end{enumerate})\
    POPCOUNTER(XXenumcounter)\
)

DEFINEMACRO(euro)(0)(\
    latexcommand({\euro})\
)

DEFINEMACRO(evalsymbol)(2)(\
    EVAL(SETSYMBOL+nop()(ARG1)(ARG2))\
)

DEFINEMACRO(fig)(1)(\
    getfigurestring() \
    ref(ARG1)\
)

DEFINEMACRO(figure)(3)(\
    NOTRANS(\begin{figure}[tbp])\
    XXnl()\
    NOTRANS(\centerline{\epsffile{)ARG1+SYMBOLVALUE(XXfigureext)\
    NOTRANS(}})\
    XXnl()\
    NOTRANS(\caption{\label{ARG3})ARG2+CHAR(})\
    XXnl()\
    NOTRANS(\end{figure})\
)

DEFINEMACRO(file)(1)(\
    NOTRANS(\texttt{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(findex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(footnote)(1)(\
    NOTRANS(\footnote{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(gagmacrowarning)(1)(\
    NOUSERMACRO(ARG1)\
)

DEFINEMACRO(getaffilstring)(0)(\
    SYMBOLVALUE(XXaffilstring)\
)

DEFINEMACRO(getauthorstring)(0)(\
    SYMBOLVALUE(XXauthorstring)\
)

DEFINEMACRO(getchapterstring)(0)(\
    SYMBOLVALUE(XXchapterstring)\
)

DEFINEMACRO(getdatestring)(0)(\
    SYMBOLVALUE(XXdatestring)\
)

DEFINEMACRO(getfigurestring)(0)(\
    SYMBOLVALUE(XXfigurestring)\
)

DEFINEMACRO(getpartstring)(0)(\
    SYMBOLVALUE(XXpartstring)\
)

DEFINEMACRO(gettitlestring)(0)(\
    SYMBOLVALUE(XXtitlestring)\
)

DEFINEMACRO(gettocstring)(0)(\
    SYMBOLVALUE(XXtocstring)\
)

DEFINEMACRO(htmlbodyopt)(2)(\
)

DEFINEMACRO(htmlcommand)(1)(\
)

DEFINEMACRO(htmlheadfile)(1)(\
)

DEFINEMACRO(htmlheadopt)(1)(\
)

DEFINEMACRO(htmlnewfile)(0)(\
)

DEFINEMACRO(htmlstyle)(2)(\
)

DEFINEMACRO(htmlstylesheet)(1)(\
)

DEFINEMACRO(htmltag)(2)(\
    IFZERO(ARG2)(\
        NOTRANS(</ARG1>)\
    )(\
        XXtag(ARG1))\
)

DEFINEMACRO(ifnewparagraph)(2)(\
    IFZERO(XXwrotetext)(\
        ARG2
    )(\
        ARG1)\
)

DEFINEMACRO(includefile)(1)(\
    TYPEOUT(Yodl: including file ARG1)\
    NOTRANS(\typeout{Original Yodl file: ARG1})\
    INCLUDEFILE(ARG1)\
)

DEFINEMACRO(includeverbatim)(1)(\
    PUSHCHARTABLE()\
    NOEXPANDINCLUDE(ARG1)\
    POPCHARTABLE()\
)

DEFINEMACRO(it)(0)(\
    NOTRANS(\item )\
)

DEFINEMACRO(itdesc)(2)(\
    dit(ARG1)XXnl()\
    quote(ARG2)\
)

DEFINEMACRO(itemization)(1)(\
    NOTRANS(\begin{itemize})\
    ARG1\
    +NOTRANS(\end{itemize})\
)

DEFINEMACRO(kindex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(label)(1)(\
    NOTRANS(\label{ARG1})\
)

DEFINEMACRO(langle)(0)(\
    NOTRANS($^\langle$)\
)

DEFINEMACRO(languagedutch)(0)(\
    setaffilstring(Organisatie)\
    setauthorstring(Auteur)\
    setchapterstring(Hoofdstuk)\
    setdatestring(Datum)\
    setfigurestring(Figuur)\
    setpartstring(Deel)\
    settitlestring(Titel)\
    settocstring(Inhoudsopgave)\
)

DEFINEMACRO(languageenglish)(0)(\
    settocstring(Table of Contents)\
    setaffilstring(Affiliation)\
    setauthorstring(Author)\
    setchapterstring(Chapter)\
    setdatestring(Date)\
    setfigurestring(Figure)\
    setpartstring(Part)\
    settitlestring(Title)\
)

DEFINEMACRO(languageportugese)(0)(\
    setaffilstring(AFILIAÇÃO)\
    setauthorstring(AUTOR)\
    setchapterstring(Capítulo)\
    setdatestring(DATA)\
    setfigurestring(figura)\
    setpartstring(Parte)\
    settitlestring(TÍTULO)\
    settocstring(Índice)\
)

DEFINEMACRO(LaTeX)(0)(\
    NOTRANS(\LaTeX{})\
)

DEFINEMACRO(latexaddlayout)(1)(\
    ADDTOSYMBOL(XXlocallayout)(ARG1+XXnl())\
)

DEFINEMACRO(latexcommand)(1)(\
    NOTRANS(ARG1)\
)

DEFINEMACRO(latexdocumentclass)(1)(\
    SETSYMBOL(XXdocumentclass)(ARG1)\
)

DEFINEMACRO(latexlayoutcmds)(1)(\
    ADDTOSYMBOL(XXlocallayout)(NOTRANS(ARG1)XXnl())\
)

DEFINEMACRO(latexoptions)(1)(\
    SETSYMBOL(XXlocaldocopts)(NOTRANS(ARG1))\
)

DEFINEMACRO(latexpackage)(2)(\
    ADDTOSYMBOL(XXlocalpackage)(\
        NOTRANS(\usepackage)\
    )
    XXifnempty(ARG1)(\
        ADDTOSYMBOL(XXlocalpackage)(NOTRANS([)ARG1+CHAR(])))\
    ADDTOSYMBOL(XXlocalpackage)(\
        CHAR({)ARG2+CHAR(})\
        XXnl()\
    )\
)

DEFINEMACRO(lchapter)(2)(\
    SETCOUNTER(XXsectcounter)(0)\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    ADDTOCOUNTER(XXchaptercounter)(1)\
    XXsetlastnumber(COUNTERVALUE(XXchaptercounter))\
    NOTRANS(\cleardoublepage)\
    NOTRANS(\chapter{)\
    ARG2\
    +CHAR(})\
    label(ARG1)\
)

DEFINEMACRO(letter)(6)(\
    redef(subsubsection)(1)(ERROR(XXXsections not available in letters!))\
    redef(subsection)(1)(subsubsection())\
    redef(section)(1)(subsubsection())\
    redef(chapter)(1)(ERROR(chapters only available in reports or books!))\
    redef(part)(1)(ERROR(parts only available in books!))\
    redef(nsubsubsection)(1)(subsubsection())\
    redef(nsubsection)(1)(subsubsection())\
    redef(nsection)(1)(subsubsection())\
    redef(nchapter)(1)(chapter())\
    redef(npart)(1)(part())\
    notableofcontents()\
    latexpackage(ARG1)(babel)\
    XXifnempty(ARG2)(\
        latexaddlayout(NOTRANS(\datum{ARG2})))\
    latexaddlayout(NOTRANS(\betreft{)ARG3+CHAR(}))\
    IFEMPTY(SYMBOLVALUE(XXlocaldocopts))(\
        latexoptions(ARG1)\
    )(\
        ADDTOSYMBOL(XXlocaldocopts)(,ARG1))\
    XXstartdocument(brief)\
    NOTRANS(\begin{document})
    ATEXIT(XXnl()NOTRANS(\end{document}))\
    XXnl()\
    NOTRANS(\begin{brief}{)\
    SYMBOLVALUE(XXaddressitems)\
    ATEXIT(XXnl()NOTRANS(\end{brief}))\
    ATEXIT(XXnl()SYMBOLVALUE(XXaddenda))\
    ATEXIT(XXnl()NOTRANS(\ondertekening{)ARG6+NOTRANS(}))\
    ATEXIT(XXnl()NOTRANS(\afsluiting{)ARG5+NOTRANS(}))\
    XXnl()\
    NOTRANS(})\
    XXnl()\
    NOTRANS(\opening{)\
    ARG4\
    NOTRANS(})
)

DEFINEMACRO(letteraddenda)(2)(\
    ADDTOSYMBOL(\
        XXaddenda)(\
            NOTRANS(\)\
            ARG1\
            +NOTRANS({)\
            ARG2\
            +NOTRANS(})\
            XXnl()\
    )\
)

DEFINEMACRO(letteradmin)(2)(\
    IFEMPTY(ARG1)(\
        latexlayoutcmds(\uwbriefvan{-{}- })\
    )(\
        latexlayoutcmds(\uwbriefvan{ARG1 }))\
    IFEMPTY(ARG2)(\
        latexlayoutcmds(\uwkenmerk{-{}- })\
    )(\
        latexlayoutcmds(\uwkenmerk{ARG2 }))\
)

DEFINEMACRO(letterfootitem)(2)(\
    latexlayoutcmds(\voetitem{ARG1}{ARG2})\
)

DEFINEMACRO(letterreplyto)(3)(\
    latexlayoutcmds(\antwoordadres{ARG1 \\ ARG2 \\ ARG3})\
)

DEFINEMACRO(letterto)(1)(\
    IFEMPTY(SYMBOLVALUE(XXaddressitems))(\
        SETSYMBOL(XXaddressitems)(ARG1)\
    )(\
        ADDTOSYMBOL(XXaddressitems)( NOTRANS(\\ )ARG1))\
)

DEFINEMACRO(link)(2)(\
    ARG1\
)

DEFINEMACRO(lref)(2)(\
    ARG1 \
    NOTRANS(\ref{)\
    ARG2\
    +CHAR(})\
)

DEFINEMACRO(lsect)(2)(\
    XXsectCounter()\
    XXsect(ARG2)\
    label(ARG1)\
)

DEFINEMACRO(lsubsect)(2)(\
    XXsubsectCounter()\
    XXsubsect(ARG2)\
    label(ARG1)\
)

DEFINEMACRO(lsubsubsect)(2)(\
    XXsubsubsectCounter()\
    XXsubsubsect(ARG2)\
    label(ARG1)\
)

DEFINEMACRO(lsubsubsubsect)(2)(\
    subsubsubsect(ARG2)\
    label(ARG1)\
)

DEFINEMACRO(lurl)(1)(\
    url(ARG1)(ARG1)\
)

DEFINEMACRO(mailto)(1)(\
)

DEFINEMACRO(makeindex)(0)(\
    NOTRANS(\makeindex )
)

DEFINEMACRO(mancommand)(1)(\
)

DEFINEMACRO(manpage)(5)(\
    notableofcontents()\
    XXstartdocument(article)\
    ATEXIT(XXcheckmanpage())\
    ATEXIT(INTERNALINDEX(copy))\
    ERROR(man-page conversions only for yodl2man and yodl2html)
)

DEFINEMACRO(manpageauthor)(0)(\
    manpagesection(AUTHOR)\
    DEFINESYMBOL(XXmanpageAuthor)()\
)

DEFINEMACRO(manpagebugs)(0)(\
    manpagesection(BUGS)\
)

DEFINEMACRO(manpagedescription)(0)(\
    manpagesection(DESCRIPTION)\
)

DEFINEMACRO(manpagediagnostics)(0)(\
    manpagesection(DIAGNOSTICS)\
)

DEFINEMACRO(manpagefiles)(0)(\
    manpagesection(FILES)\
)

DEFINEMACRO(manpagename)(2)(\
    manpagesection(NAME)\
    DEFINESYMBOL(XXmanpageName)()\
    ARG1 -- ARG2\
)

DEFINEMACRO(manpageoptions)(0)(\
    manpagesection(OPTIONS)\
)

DEFINEMACRO(manpagesection)(1)(\
    IFDEF(XXmanpageAuthor)
    (\
        ERROR(manpageauthor() MUST be the last section of the manpage.)
    )()\
    dit(ARG1)\
)

DEFINEMACRO(manpageseealso)(0)(\
    manpagesection(SEE ALSO)\
)

DEFINEMACRO(manpagesynopsis)(0)(\
    manpagesection(SYNOPSIS)\
)

DEFINEMACRO(manttquoted)(1)(\
)

DEFINEMACRO(mbox)(1)(\
    NOTRANS(\mbox{)\
    ARG1\
    +CHAR(})\
)

PUSHWSLEVEL()\
DEFINEMACRO(metaC)(1)(\
    IFSTRSUB(ARG1)(
)
    (\
        WARNING(NOEXPAND(metaC()) ignored: multiple lines in argument)\
    )
    (\
        NOTRANS( %)ARG1\
    )\
)\
POPWSLEVEL()

DEFINEMACRO(metaCOMMENT)(1)(\
)

DEFINEMACRO(mscommand)(1)(\
)

DEFINEMACRO(nbsp)(1)(\
    IFEMPTY(ARG1)(\
        XXnbsp(1)\
    )(\
        XXnbsp(ARG1))\
)

DEFINEMACRO(nchapter)(1)(\
    SETCOUNTER(XXsectcounter)(0)\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    NOTRANS(\chapter*{)ARG1+CHAR(})\
)

DEFINEMACRO(nemail)(2)(\
    mbox(ARG1)\
    code(<ARG2>)\
)

DEFINEMACRO(nl)(0)(\
    NOTRANS(\ \\ )\
)

DEFINEMACRO(nodenmame)(1)(
)

DEFINEMACRO(nodeprefix)(1)(
)

DEFINEMACRO(nodetext)(1)(\
)

DEFINEMACRO(nohtmlfive)(0)(\
)

DEFINEMACRO(nohtmlimgstyle)(0)(\
)

DEFINEMACRO(nop)(1)(\
    ARG1\
)

DEFINEMACRO(nosloppyhfuzz)(0)(\
    SETSYMBOL(XXsloppyhfuzz)()\
)

DEFINEMACRO(notableofcontents)(0)(\
    SETSYMBOL(XXgeneratetoc)()\
)

DEFINEMACRO(notitleclearpage)(0)(\
    SETSYMBOL(XXtitleclearpage)()\
)

DEFINEMACRO(notocclearpage)(0)(\
    SETSYMBOL(XXtocclearpage)()\
)

DEFINEMACRO(notransinclude)(1)(\
    PUSHCHARTABLE()\
    NOEXPANDINCLUDE(ARG1)\
    POPCHARTABLE()\
)

DEFINEMACRO(noxlatin)(0)(\
    SETSYMBOL(XXusexlatin)()\
)

DEFINEMACRO(nparagraph)(1)(\
    paragraph(ARG1)\
)

DEFINEMACRO(npart)(1)(\
    NOTRANS(\part*{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(nsect)(1)(\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    NOTRANS(\section*{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(nsubsect)(1)(\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    NOTRANS(\subsection*{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(nsubsubsect)(1)(\
    NOTRANS(\subsubsection*{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(nsubsubsubsect)(1)(\
    subsubsubsect(ARG1)\
)

DEFINEMACRO(PageEnlarged)(4)(\
    latexlayoutcmds(\addtolength{\voffset}{-ARG1})\
    latexlayoutcmds(\addtolength{\textheight}{ARG2})\
    latexlayoutcmds(\addtolength{\hoffset}{-ARG3})\
    latexlayoutcmds(\addtolength{\textwidth}{ARG4})\
)

DEFINEMACRO(paragraph)(1)
(
    NOTRANS(\subparagraph{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(part)(1)(\
    ADDTOCOUNTER(XXpartcounter)(1)\
    XXsetlastnumber(COUNTERVALUE(XXpartcounter))\
    NOTRANS(\part{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(pindex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(plainhtml)(1)(\
)

DEFINEMACRO(printindex)(0)(\
)

DEFINEMACRO(quote)(1)
(
    NOTRANS(\begin{quote})
    ARG1
    +NOTRANS(\end{quote})\
)

DEFINEMACRO(rangle)(0)(\
    NOTRANS($^\rangle$)\
)

DEFINEMACRO(redef)(3)(\
    DELETEMACRO(ARG1)\
    DEFINEMACRO(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(redefinemacro)(3)(\
    redef(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(ref)(1)(\
    NOTRANS(\ref{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(report)(3)(\
    redef(part)(1)(ERROR(parts only available in books!))\
    redef(npart)(1)(part())\
    XXstartdocument(report)\
    XXsetdocumentheader(ARG1)(ARG2)(ARG3)\
)

DEFINEMACRO(roffcmd)(4)(\
)

DEFINEMACRO(row)(1)(\
    PUSHCOUNTER(XXcol)(0)\
    +XXnl()\
    ARG1 \
    NOTRANS(\\)
    +XXnl()\
    POPCOUNTER(XXcol)\
)

DEFINEMACRO(rowline)(0)(\
    NOTRANS(\hline)\
    XXnl()\
)

DEFINEMACRO(sc)(1)(\
    NOTRANS(\textsc{)ARG1+CHAR(})\
)

DEFINEMACRO(sect)(1)(\
    XXsectCounter()\
    XXsect(ARG1)\
)

DEFINEMACRO(setaffilstring)(1)(\
    SETSYMBOL(XXaffilstring)(ARG1)\
)

DEFINEMACRO(setauthorstring)(1)(\
    SETSYMBOL(XXauthorstring)(ARG1)\
)

DEFINEMACRO(setchapterstring)(1)(\
    SETSYMBOL(XXchapterstring)(ARG1)\
)

DEFINEMACRO(setdatestring)(1)(\
    SETSYMBOL(XXdatestring)(ARG1)\
)

DEFINEMACRO(setfigureext)(1)(\
    SETSYMBOL(XXfigureext)(ARG1)\
)

DEFINEMACRO(setfigurestring)(1)(\
    SETSYMBOL(XXfigurestring)(ARG1)\
)

DEFINEMACRO(sethtmlfigureext)(1)(\
)

DEFINEMACRO(htmlmetacharset)(1)(\
)

DEFINEMACRO(setincludepath)(1)(\
    IFSTRSUB(ARG1)(.:)
    ()(\
        WARNING("No .: specification in ARG1))\
    SETSYMBOL(XXincludePath)(ARG1)\
)

DEFINEMACRO(setlanguage)(1)(\
    IFMACRO(languageARG1)(\
        languageARG1()\
    )(\
        ERROR(language ARG1 not yet supported))\
)

DEFINEMACRO(setlatexalign)(1)(\
    SETSYMBOL(XXtablealign)(ARG1)\
)

DEFINEMACRO(setlatexfigureext)(1)(\
    SETSYMBOL(XXfigureext)(ARG1)\
)

DEFINEMACRO(setlatexverbchar)(1)(\
    SETSYMBOL(XXlatexverbchar)(ARG1)\
)

DEFINEMACRO(setmanalign)(1)(\
)

DEFINEMACRO(setpartstring)(1)(\
    SETSYMBOL(XXpartstring)(ARG1)\
)

DEFINEMACRO(setrofftab)(1)(\
)

DEFINEMACRO(setrofftableoptions)(1)(\
)

DEFINEMACRO(settitlestring)(1)(\
    SETSYMBOL(XXtitlestring)(ARG1)\
)

DEFINEMACRO(settocstring)(1)(\
    SETSYMBOL(XXtocstring)(ARG1)\
)

DEFINEMACRO(sgmlcommand)(1)(\
)

DEFINEMACRO(sgmltag)(2)(\
    htmltag(ARG1)(ARG2)\
)

DEFINEMACRO(sloppyhfuzz)(1)(\
    SETSYMBOL(XXsloppyhfuzz)
        (NOTRANS(\hfuzz=ARG1pt % don't fuss when less than ARG1pt))
)

DEFINEMACRO(standardlayout)(0)(\
    SETSYMBOL(XXownlayout)()\
)

DEFINEMACRO(XXstarttableatt)(2)(\
    PUSHCOUNTER(XXtablewidth)(ARG1)\
    NOTRANS(\begin{tabular}{)\
    ARG2\
    +NOTRANS(})\
    XXnl()\
)

DEFINEMACRO(strong)(1)(\
    ARG1
)

DEFINEMACRO(subs)(1)(\
    NOTRANS($_{)\
    ARG1\
    +NOTRANS(}$)\
)

DEFINEMACRO(subsect)(1)(\
    XXsubsectCounter()\
    XXsubsect(ARG1)\
)

DEFINEMACRO(subsubsect)(1)(\
    XXsubsubsectCounter()\
    XXsubsubsect(ARG1)\
)

DEFINEMACRO(subsubsubsect)(1)
(
    NOTRANS(\paragraph{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(sups)(1)(\
    NOTRANS($^{)\
    ARG1\
    +NOTRANS(}$)\
)

DEFINEMACRO(table)(3)(\
    XXstarttable(ARG1)(ARG2)\
    XXendtable(ARG3)\
)

DEFINEMACRO(tableatt)(3)(\
    XXstarttableatt(ARG1)(ARG2)\
    XXendtable(ARG3)\
)

DEFINEMACRO(tac)(2)(\
    NOTRANS(    \makecell[)\
    IFSTREQUAL(XXtao)()(\
        ARG1\
    )(\
        SYMBOLVALUE(XXtao))\
    +XXtc(ARG2)(1)()\
)

DEFINEMACRO(tao)(2)(\
    IFDEF(ARG1)(\
        SETSYMBOL(XXtao)(ARG2)\
    )()\
)

DEFINEMACRO(tbl)(2)(\
    XXtblbegin(ARG1)\
    XXtblend(ARG2)\
)

DEFINEMACRO(tc)(1)(\
    NOTRANS(    \makecell[)\
    IFSTREQUAL(XXtao)()(\
        SUBSTR(XXtablealign)(XXcol)(1)\//       specify this cell's alignment
    )(\
        SYMBOLVALUE(XXtao))\
    XXtc(ARG1)(1)()\
)

DEFINEMACRO(tcell)(1)(\
    cell(ARG1)\
)

DEFINEMACRO(telycommand)(1)(\
)

DEFINEMACRO(TeX)(0)(\
    NOTRANS(\TeX{})\
)

DEFINEMACRO(texinfocommand)(1)(\
)

DEFINEMACRO(tindex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(titleclearpage)(0)(\
    SETSYMBOL(XXtitleclearpage)()\
)

DEFINEMACRO(tline)(2)(\
    IFEMPTY(ARG2)(\//                    no endline was specified: end the row
        XXtlineEnd(ARG1)\
    )(\
        XXtlinePart(ARG1)(ARG2))\
)

DEFINEMACRO(tnac)(3)(\
    NOTRANS(    \multicolumn{)\
    ARG1\
    +NOTRANS(}{c}{\makecell[)\
    IFSTREQUAL(XXtao)()(\
        ARG2\
    )(\
        SYMBOLVALUE(XXtao))\
    +XXtc(ARG3)(ARG1)(NOTRANS(}))\
)

DEFINEMACRO(tnc)(2)(\
    NOTRANS(    \multicolumn{)\
    ARG1\
    +NOTRANS(}{c}{\makecell[)\
    IFSTREQUAL(XXtao)()(\
        NOTRANS(c)\
    )(\
        SYMBOLVALUE(XXtao))\
    XXtc(ARG2)(ARG1)(NOTRANS(}))\
)

DEFINEMACRO(tocclearpage)(0)(\
    SETSYMBOL(XXtocclearpage)(1)\
)

DEFINEMACRO(tr)(1)(\
    PUSHCOUNTER(XXtr)(1)\
    PUSHCOUNTER(XXcol)(0)\
    ARG1 \
    NOTRANS(\\)\
    XXnl()\
    POPCOUNTER(XXcol)\
    POPCOUNTER(XXtr)\
)

DEFINEMACRO(tt)(1)(\
    NOTRANS(\texttt{)\
    NOEXPAND(ARG1)\
    CHAR(})\
)

DEFINEMACRO(ttbegin)(0)(\
    NOTRANS(\texttt{)\
)

DEFINEMACRO(ttend)(0)(\
    CHAR(})\
)

DEFINEMACRO(twrap)(1)(\
)

DEFINEMACRO(txtcommand)(1)(\
)

DEFINEMACRO(url)(2)(\
    IFSTREQUAL(ARG1)(ARG2)(\
        code(ARG1)\
    )(\
        code(ARG1)footnote(ARG2))\
)

DEFINEMACRO(verb)(1)(\
    PUSHSUBST(0)\
    verborg(ARG1)\
    POPSUBST()\
)

DEFINEMACRO(verbinclude)(1)(\
    PUSHCHARTABLE()\
    NOTRANS(\begin{verbatim})\
    XXnl()\
    NOEXPANDINCLUDE(ARG1)\
    NOTRANS(\end{verbatim})\
    XXnl()\
    POPCHARTABLE()\
)

DEFINEMACRO(verbinsert)(1)(\
    PIPETHROUGH(yodlverbinsert -N ARG1)()\
)

DEFINEMACRO(verborg)(1)(\
    PUSHCHARTABLE()\
    NOTRANS(\begin{verbatim})\
    XXnl()\
    NOEXPAND(ARG1)\
    XXnl()\
    NOTRANS(\end{verbatim})\
    XXnl()\
    POPCHARTABLE()\
)

DEFINEMACRO(verbpipe)(2)(\
    PUSHCHARTABLE()\
    PIPETHROUGH(ARG1)(ARG2)()\
    POPCHARTABLE()\
)

DEFINEMACRO(vindex)(1)(\
    NOTRANS(\index{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(whenhtml)(1)(\
)

DEFINEMACRO(whenlatex)(1)(\
    ARG1\
)

DEFINEMACRO(whenman)(1)(\
)

DEFINEMACRO(whenms)(1)(\
)

DEFINEMACRO(whensgml)(1)(\
)

DEFINEMACRO(whentely)(1)(\
)

DEFINEMACRO(whentexinfo)(1)(\
)

DEFINEMACRO(whentxt)(1)(\
)

DEFINEMACRO(whenxml)(1)(\
)

DEFINEMACRO(xit)(1)(\
)

DEFINEMACRO(xmlcommand)(1)(\
)

DEFINEMACRO(xmlmenu)(3)(\
)

DEFINEMACRO(xmlnewfile)(0)(\
)

DEFINEMACRO(xmlsetdocumentbase)(1)(\
)

DEFINEMACRO(xmltag)(2)(\
    htmltag(ARG1)(ARG2)\
)

DEFINEMACRO(XXabstract)(0)(\
    IFSTREQUAL(XXabstracttext)()
    ()(\
        IFSTREQUAL(XXdocumentclass)(book)(
            ERROR(abstracts cannot appear in books!))()\
        XXnl()\
        NOTRANS(\abstract{)\
        SYMBOLVALUE(XXabstracttext)\
        CHAR(})\
        XXnl()\
    )\
)

DEFINEMACRO(XXaddntosymbol)(2)(\
    XXifnzero(XXx)(\
        ADDTOSYMBOL(ARG1)(ARG2)\
        ADDTOCOUNTER(XXx)(-1)\
        XXaddntosymbol(ARG1)(ARG2)\// recursive call for the next symbol
    )\
)

DEFINEMACRO(XXchapternum)(0)(\
    IFSTREQUAL(XXdocumentclass)(article)
    ()(\
        COUNTERVALUE(XXchaptercounter).\
    )\
)

DEFINEMACRO(XXcheckmanpage)(0)(\
    IFSYMBOL(XXmanpageName)
    ()(\
        ERROR(manpage has missing manpagename()() entry)
    )\
    IFSYMBOL(XXmanpageAuthor)
    ()(\
        ERROR(manpage has missing manpageauthor() entry)
    )\
)

DEFINEMACRO(XXendtable)(1)(\
    ARG1\
    +XXnl()\
    NOTRANS(\end{tabular})\
    POPCOUNTER(XXtablewidth)\
)


DEFINEMACRO(XXhtmlclass)(2)(\
)

DEFINEMACRO(XXifnempty)(2)(\
    IFSTREQUAL(ARG1)()
    ()(\
        ARG2\
    )\
)

DEFINEMACRO(XXifneq)(3)(\
    IFEQUAL(ARG1)(ARG2)\
    ()
    (\
        ARG3\
    )\
)

DEFINEMACRO(XXifnzero)(2)(\
    IFZERO(ARG1)
    ()(\
        ARG2\
    )\
)


DEFINEMACRO(XXmanclass)(1)(\
)













DEFINEMACRO(XXnbsp)(1)(\
    XXifnzero(ARG1)(\
        NOTRANS(~)\
        SETCOUNTER(XXx)(ARG1-1)\
        EVAL(XXnbsp+nop()(COUNTERVALUE(XXx)))\
    )\
)

PUSHWSLEVEL(0)\
DEFINEMACRO(XXnl)(0)(\
    CHAR(
)\
)\
POPWSLEVEL()


DEFINEMACRO(XXroffcmd)(4)(\
    XXnl()\
    NOTRANS(ARG1) ARG2\
    +XXifnempty(ARG3)
    (\
        XXnl()\
        ARG3\
    )\
    XXifnempty(ARG4)
    (\
        XXnl()\
        NOTRANS(ARG4)\
    )\
    INTERNALINDEX(ignorews)
    XXnl()\
)

DEFINEMACRO(XXsect)(1)(\
    NOTRANS(\section{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(XXsectCounter)(0)(\
    SETCOUNTER(XXsubsectcounter)(0)\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    ADDTOCOUNTER(XXsectcounter)(1)\
    XXsetlastnumber(XXchapternum()COUNTERVALUE(XXsectcounter))\
)

DEFINEMACRO(XXsetdocumentheader)(3)(\
    XXsetlatexdocumentheader(ARG1)(ARG2)(ARG3)\
)


DEFINEMACRO(XXsetlastnumber)(1)(\
)

DEFINEMACRO(XXsetlatexdocumentheader)(3)(\
    IFEMPTY(ARG1)(\
        NOTRANS(% no \title{..} info)\
    )(\
        TYPEOUT(Document title: ARG1)\
        NOTRANS(\title{)ARG1+CHAR(})\
    )
    XXnl()\
    IFEMPTY(ARG2)(\
        NOTRANS(% no \author{..} info)\
    )(\
        NOTRANS(\author{)ARG2\
        +XXifnempty(XXaffilstring)
        (\
            nl()\
            XXnl()\
            SYMBOLVALUE(XXaffilstring)\
        )\
        CHAR(})\
    )\
    XXnl()\
    IFEMPTY(ARG3)(\
        NOTRANS(% no \date{..} info)\
    )(\
        NOTRANS(\date{)ARG3+CHAR(}))\
    XXnl()\
    NOTRANS(\begin{document})
    IFEMPTY(ARG1)(\
        NOTRANS(% no \author{..}, no \maketitle required here)\
    )(\
        NOTRANS(\maketitle))\
    XXnl()\
    XXabstract()\
    XXnl()\
    IFEMPTY(ARG1)(\
        NOTRANS(% no title, so no \maketitle)
    )(\
        XXsettitleclearpage())\
    XXnl()\
    XXtableofcontents()\
    ATEXIT(\
        NOTRANS(\end{document})\
        XXnl()\
    )\
)

DEFINEMACRO(XXsetmandocumentheader)(3)(\
    XXifnempty(ARG1)(\
        XXroffcmd(.TH)(NOTRANS(")ARG1+NOTRANS(") NOTRANS(")\
            ARG3+NOTRANS("))()(.PP)\
        XXroffcmd(.SH)(NOTRANS(")ARG1+NOTRANS("))()()
    )\
    XXifnempty(ARG2)(\
        XXroffcmd(.SH)(NOTRANS(")ARG2+NOTRANS("))()()\
    )\
    XXifnempty(XXaffilstring)(\
        XXroffcmd(.SH)(NOTRANS(")SYMBOLVALUE(XXaffilstring)NOTRANS("))()()\
    )\
    XXifnempty(ARG3)(\
        XXroffcmd(.SH)(NOTRANS(")ARG3+NOTRANS("))()()\
    )\
)    

DEFINEMACRO(XXsettitleclearpage)(0)(\
    XXifnempty(XXtitleclearpage)
    (\
        IFSTREQUAL(XXdocumentclass)(article)
        ()(\
            clearpage()\
        )\
    )\
)

DEFINEMACRO(XXsettocclearpage)(0)(\
    XXifnempty(XXtocclearpage)
    (\
        clearpage()\
    )\
)



DEFINEMACRO(XXstartdocument)(1)(\
    TYPEOUT(Yodl is processing a+nop()(n) ARG1)\
    SETSYMBOL(XXdocumentclass)(ARG1)\
    NOTRANS(\documentclass)\
    XXifnempty(XXlocaldocopts)
    (\
        CHAR([)\
        SYMBOLVALUE(XXlocaldocopts)\
        +CHAR(])\
    )\
    CHAR({)\
    SYMBOLVALUE(XXdocumentclass)\
    CHAR(})\
    XXnl()\
    SYMBOLVALUE(XXlocalpackage)\
    XXnl()\
    NOTRANS(\usepackage[T1]{fontenc})\
    XXnl()\
    NOTRANS(\usepackage{makecell})\
    XXnl()\
    SYMBOLVALUE(XXsloppyhfuzz)\
    XXnl()\
    SYMBOLVALUE(XXusexlatin)\
    XXnl()\
    SYMBOLVALUE(XXownlayout)\
    XXnl()\
    SYMBOLVALUE(XXlocallayout)\
    XXnl()\
)

DEFINEMACRO(XXstarttable)(2)(\
    PUSHCOUNTER(XXtablewidth)(ARG1)\
    NOTRANS(\begin{tabular}{)\
    ARG2\
    +NOTRANS(})\
    XXnl()\
)

DEFINEMACRO(XXsubsect)(1)(\
    NOTRANS(\subsection{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(XXsubsectCounter)(0)(\
    SETCOUNTER(XXsubsubsectcounter)(0)\
    ADDTOCOUNTER(XXsubsectcounter)(1)\
    XXsetlastnumber(\
        XXchapternum()\
        COUNTERVALUE(XXsectcounter).\
        COUNTERVALUE(XXsubsectcounter)\
    )\
)

DEFINEMACRO(XXsubsubsect)(1)(\
    NOTRANS(\subsubsection{)\
    ARG1\
    +CHAR(})\
)

DEFINEMACRO(XXsubsubsectCounter)(0)(\
    ADDTOCOUNTER(XXsubsubsectcounter)(1)\
    XXsetlastnumber(\
        XXchapternum()\
        COUNTERVALUE(XXsectcounter).\
        COUNTERVALUE(XXsubsectcounter).\
        COUNTERVALUE(XXsubsubsectcounter)\
    )\
)


DEFINEMACRO(XXtableofcontents)(0)(\
    IFSTREQUAL(XXgeneratetoc)()(\
        NOTRANS(% no \tableofcontents generated)
    )(\
        NOTRANS(\tableofcontents)\
        XXnl()\
        XXsettocclearpage()\
    )\
)

DEFINEMACRO(XXtag)(1)(\
    NOTRANS(<)ARG1 attribinsert()\
    NOTRANS(>)\
)\

DEFINEMACRO(XXtblbegin)(1)(\
    EVAL(PUSHCOUNTER+nop()(XXtablewidth)(STRLEN(ARG1)))\
    PUSHSYMBOL(XXtablealign)(ARG1)\
    NOTRANS(\begin{tabular}{)\
    ARG1\
    +NOTRANS(})\
    XXnl()\
)

DEFINEMACRO(XXtblend)(1)(\
    ARG1\
    +NOTRANS(\end{tabular})\
    POPSYMBOL(XXtablealign)\
    XXnl()\
    POPCOUNTER(XXtablewidth)\
)

DEFINEMACRO(XXtc)(3)(\
    NOTRANS(]{)\
    ARG1\
    +NOTRANS(})\
    ARG3 \
    ADDTOCOUNTER(XXcol)(ARG2)\
    XXifneq(XXcol)(XXtablewidth)(\
        NOTRANS( & ))\
    XXnl()\
    SETSYMBOL(XXtao)()\
)

DEFINEMACRO(XXtlineClose)(1)(\
    ADDTOCOUNTER(XXcol)(-1)\
    IFGREATER(XXcol)(XXtablewidth)(\
        ERROR(Table width (COUNTERVALUE(XXtablewidth)) exceeded))()\
    POPCOUNTER(XXcol)\
    XXnl()\
    XXnl()\
)

DEFINEMACRO(XXtlineEnd)(1)(\
    IFZERO(XXcol)(\//            first call: do a row line
        XXtlineRow(ARG1)\
    )(\
        XXtlineClose())\//           previously called: end partial line(s)
)

DEFINEMACRO(XXtlineFirst)(1)(\
    PUSHCOUNTER(XXcol)(1)\//     colnr specified by XXcol; 
)

DEFINEMACRO(XXtlineNext)(2)(\
    NOTRANS(    \cline{)\
    SETCOUNTER(XXx)(ARG2-1)\
    ARG1-COUNTERVALUE(XXx)\
    +CHAR(})\
    SETCOUNTER(XXcol)(ARG2)\
)

DEFINEMACRO(XXtlinePart)(2)(\
    IFZERO(XXcol)(\//             first tline(beginNr)(endNr) call
        XXtlineFirst(ARG1))
    ()\
    SETCOUNTER(XXx)(ARG2+1)\
    EVAL(XXtlineNext+nop()(ARG1)(COUNTERVALUE(XXx)))\
)

DEFINEMACRO(XXtlineRow)(1)(\
    NOTRANS(    )\
    rowline()\
)

DEFINEMACRO(XXtlineSpan)(3)(\
)

DEFINEMACRO(XXtocentry)(1)(\
)

DECWSLEVEL()
