NOUSERMACRO(terminal nonterminal member token files)

DEFINEMACRO(manual)(0)()

SUBST(BSSP)(\ )
SUBST(MYEMAIL)(f.b.brokken@rug.nl)
SUBST(MAILTO)(CHAR(109)ailto:MYEMAIL)
SUBST(URLEMAIL)(url(email)(MAILTO))
SUBST(OPENPAR)(CHAR(40))
SUBST(CLOSEPAR)(CHAR(41))
SUBST(AFFILIATION)(url(University of Groningen)(http://www.rug.nl/))

sethtmlfigureext(.gif)  COMMENT(While converting figures to .jpg)

IFDEF(latex)
(\
    latexoptions(a4paper,twoside)\
    latexpackage(latin1)(inputenc)\
    latexpackage()(makeidx)\
    COMMENT(
        latexpackage()(pandora)\
        latexpackage()(bookman)\
    )\
    latexpackage()(newcent)\
    latexpackage()(epsf)\
    IFDEF(us)(\
        latexpackage()(cplusplusus)\
    )(\
        latexpackage()(cplusplus)\
    )\
    makeindex()\
    sloppyhfuzz(70)\
    noxlatin()\
    latexlayoutcmds(\setcounter{secnumdepth}{3})\
    latexlayoutcmds(\pagestyle{headings})\
)()

DEFINEMACRO(itx)(0)(it())
DEFINEMACRO(itemlist)(1)(ARG1)

DEFINEMACRO(turl)(2)(\
    IFDEF(html)\
        (htmlcommand(<a target=_top href="ARG2">)ARG1+htmlcommand(</a>))\
        (url(ARG1)(ARG2)))

DEFINEMACRO(tlurl)(1)(\
    IFDEF(html)\
        (htmlcommand(<a target=_top href="ARG1">)ARG1+htmlcommand(</a>))\
        (lurl(ARG1)))

DEFINEMACRO(lshift)(0)(\
    IFDEF(latex)(\
        NOTRANS($<<$)\
    )(\
        NOTRANS(<<)\
    )\
)

DEFINEMACRO(rshift)(0)(\
    IFDEF(latex)(\
        NOTRANS($>>$)\
    )(\
        NOTRANS(>>)\
    )\
)

DEFINEMACRO(oplshift)(0)(\
    tt(operator)\
    IFDEF(latex)(\
        NOTRANS($<<$)\
    )(\
        NOTRANS(<<)\
    )\
    tt(())\
)

DEFINEMACRO(oprshift)(0)(\
    tt(operator)\
    IFDEF(latex)(\
        NOTRANS($>>$)\
    )(\
        NOTRANS(>>)\
    )\
    tt(())\
)

DEFINEMACRO(decrement)(0)(\
    IFDEF(latex)(\
        NOTRANS($--$)\
    )(\
        NOTRANS(--)\
    )\
)

DEFINEMACRO(opdecrement)(0)(\
    tt(operator)\
    IFDEF(latex)(\
        NOTRANS($--$)\
    )(\
        NOTRANS(--)\
    )\
    tt(())\
)
DEFINEMACRO(iopdecrement)(0)(\
    hix(operator--())\
    opdecrement()\
)

DEFINECOUNTER(htmlAnchor)(0)

def(x)(1)(IFDEF(html)(htmlcommand(<!--!)ARG1+htmlcommand(!-->))()ARG1)
def(linkit)(2)(it()link(Chapter )(ARG1)ref(ARG1)link(: ARG2.)(ARG1))
def(itt)(1)(it()tt(ARG1))

def(centt)(1)(\
    verb(        ARG1)\
)

def(rangett)(1)(tt(CHAR(91)ARG1+CHAR(41)))
def(endOfFile)(1)(tt(CHAR(69)CHAR(79)CHAR(70)))

def(c)(1)(COMMENT(ARG1))

def(hix)(1)(\
    IFDEF(html)(\
        label(an+USECOUNTER(htmlAnchor))\
        htmlcommand(
<index) \
        COUNTERVALUE(htmlAnchor) \
        ARG1\
        +htmlcommand(>
)\
    )(\
        IFDEF(latex)(\
            latexcommand(\index{)\
            ARG1\
            +latexcommand(})\
        )()\
    )\
)

def(fst)(1)(tt(FIRST(ARG1)))
def(flw)(1)(tt(FOLLOW(ARG1)))
def(fstrow)(3)(row(cell(ARG1)cell(ARG2)cell( )cell(ARG3)))
def(ttrow)(4)(row(cell(tt(ARG1))cell()cell(tt(ARG2))cell()cell(tt(ARG3))
              cell()cell(ARG4)))

def(hi)(1)(hix(ARG1))
def(i)(1)(hix(ARG1)ARG1)
def(ti)(1)(hix(ARG1)tt(ARG1))
def(bi)(1)(hix(ARG1)bf(ARG1))
def(emi)(1)(hix(ARG1)em(ARG1))
def(iti)(1)(it()ti(ARG1))
def(rangeti)(1)(ti(CHAR(91)ARG1+CHAR(41)))
def(itht)(2)(it()hix(ARG1)tt(ARG2))
def(ittq)(2)(it()ti(ARG1):quote(ARG2))
def(ithtq)(3)(it()hix(ARG1)tt(ARG2):quote(ARG3))

DEFINEMACRO(laoption)(2)(\
    bf(--ARG1)=tt(ARG2)\
)
DEFINEMACRO(lsoption)(3)(\
    bf(--ARG1)=tt(ARG3) (bf(-ARG2))\
)
DEFINEMACRO(loption)(1)(\
    bf(--ARG1)\
)
DEFINEMACRO(soption)(1)(\
    bf(-ARG1)\
)

DEFINEMACRO(bic)(0)(bf(bisonc++))
DEFINEMACRO(Bic)(0)(bf(Bisonc++))

DEFINEMACRO(epsilon)(0)(\
    IFDEF(html)(\
        htmlcommand(&epsilon;)
    )\
    (\
        IFDEF(latex)(\
            latexcommand(\epsilon)\
        )\
        (e)\
    )\
)
