\@addtocsec{htoc}{1}{-1}{\@print{Chapter 1}\quad{}Introduction} \newlabel{sec:introduction}{{1}{X}} \@addtocsec{htoc}{2}{0}{\@print{1.1}\quad{}Obtaining and installing \protect\Frown} \newlabel{sec:install}{{1.1}{X}} \@addtocsec{htoc}{3}{0}{\@print{1.2}\quad{}Reporting bugs} \@addtocsec{htoc}{4}{0}{\@print{1.3}\quad{}License} \@addtocsec{htoc}{5}{0}{\@print{1.4}\quad{}Credits} \@addtocsec{htoc}{6}{-1}{\@print{Chapter 2}\quad{}Quick start} \newlabel{fig:tiger}{{2.1}{X}} \@addtocsec{htoc}{7}{-1}{\@print{Chapter 3}\quad{}Tour de \protect\Frown} \@addtocsec{htoc}{8}{0}{\@print{3.1}\quad{}Preliminaries: monads} \@addtocsec{htoc}{9}{0}{\@print{3.2}\quad{}Basic features} \@addtocsec{htoc}{10}{1}{\@print{3.2.1}\quad{}Pure grammars} \newlabel{sec:pure}{{3.2.1}{X}} \newlabel{fig:ex1}{{3.1}{X}} \newlabel{fig:auto1}{{3.2}{X}} \@addtocsec{htoc}{11}{1}{\@print{3.2.2}\quad{}Attributes} \newlabel{sec:attributes}{{3.2.2}{X}} \@addtocsec{htoc}{12}{1}{\@print{3.2.3}\quad{}Interfacing with a lexer} \newlabel{sec:lexer}{{3.2.3}{X}} \newlabel{fig:terminal}{{3.3}{X}} \newlabel{fig:lexer}{{3.4}{X}} \@addtocsec{htoc}{13}{1}{\@print{3.2.4}\quad{}Monadic actions} \newlabel{sec:monadicactions}{{3.2.4}{X}} \@addtocsec{htoc}{14}{1}{\@print{3.2.5}\quad{}Backtracking parsers} \newlabel{sec:backtracking}{{3.2.5}{X}} \newlabel{fig:let1}{{3.5}{X}} \@addtocsec{htoc}{15}{1}{\@print{3.2.6}\quad{}Precedences and associativity} \newlabel{sec:prec}{{3.2.6}{X}} \@addtocsec{htoc}{16}{1}{\@print{3.2.7}\quad{}Multiple start symbols} \newlabel{sec:multiple}{{3.2.7}{X}} \@addtocsec{htoc}{17}{1}{\@print{3.2.8}\quad{}Monadic attributes} \newlabel{sec:reader}{{3.2.8}{X}} \newlabel{fig:reader}{{3.6}{X}} \@addtocsec{htoc}{18}{0}{\@print{3.3}\quad{}Error reporting and correction} \newlabel{sec:error-reporting}{{3.3}{X}} \@addtocsec{htoc}{19}{1}{\@print{3.3.1}\quad{}Monadic lexers} \newlabel{sec:mlexer}{{3.3.1}{X}} \newlabel{fig:mlexer1}{{3.7}{X}} \@addtocsec{htoc}{20}{1}{\@print{3.3.2}\quad{}Error reporting} \newlabel{sec:reporting}{{3.3.2}{X}} \newlabel{fig:mlexer2}{{3.8}{X}} \@addtocsec{htoc}{21}{1}{\@print{3.3.3}\quad{}Expected tokens} \newlabel{sec:expected}{{3.3.3}{X}} \newlabel{fig:session}{{3.9}{X}} \@addtocsec{htoc}{22}{1}{\@print{3.3.4}\quad{}Error correction} \newlabel{sec:errorcorrection}{{3.3.4}{X}} \@addtocsec{htoc}{23}{0}{\@print{3.4}\quad{}Advanced features} \@addtocsec{htoc}{24}{1}{\@print{3.4.1}\quad{}Rule schemes} \@addtocsec{htoc}{25}{1}{\@print{3.4.2}\quad{}A second look at terminal symbols} \newlabel{sec:terminal2}{{3.4.2}{X}} \newlabel{fig:varcalc}{{3.10}{X}} \@addtocsec{htoc}{26}{1}{\@print{3.4.3}\quad{}Look-ahead} \newlabel{sec:look-ahead}{{3.4.3}{X}} \@addtocsec{htoc}{27}{1}{\@print{3.4.4}\quad{}Debugging and tracing} \newlabel{sec:tracing}{{3.4.4}{X}} \@addtocsec{htoc}{28}{1}{\@print{3.4.5}\quad{}Output formats and optimizations} \newlabel{sec:optimizations}{{3.4.5}{X}} \@addtocsec{htoc}{29}{-1}{\@print{Chapter 4}\quad{}Tips and tricks} \@addtocsec{htoc}{30}{0}{\@print{4.1}\quad{}Irrefutable patterns} \newlabel{sec:irrefutable}{{4.1}{X}} \@addtocsec{htoc}{31}{0}{\@print{4.2}\quad{}Inherited attributes} \newlabel{sec:inherited}{{4.2}{X}} \@addtocsec{htoc}{32}{0}{\@print{4.3}\quad{}Dealing with conflicts} \newlabel{sec:conflicts}{{4.3}{X}} \@addtocsec{htoc}{33}{0}{\@print{4.4}\quad{}Multiple attributes} \newlabel{sec:multattr}{{4.4}{X}} \@addtocsec{htoc}{34}{-1}{\@print{Chapter 5}\quad{}Reference manual} \@addtocsec{htoc}{35}{0}{\@print{5.1}\quad{}Lexical syntax of \protect\Frown} \@addtocsec{htoc}{36}{0}{\@print{5.2}\quad{}Syntax of \protect\Frown} \@addtocsec{htoc}{37}{0}{\@print{5.3}\quad{}Predefined schemes} \newlabel{sec:stdenv}{{5.3}{X}} \@addtocsec{htoc}{38}{1}{\@print{5.3.1}\quad{}Optional elements} \@addtocsec{htoc}{39}{1}{\@print{5.3.2}\quad{}Repetition of elements} \@addtocsec{htoc}{40}{1}{\@print{5.3.3}\quad{}Repetition of elements separated by a second element} \@addtocsec{htoc}{41}{1}{\@print{5.3.4}\quad{}Repetition of possibly empty elements separated by a second element} \@addtocsec{htoc}{42}{0}{\@print{5.4}\quad{}Output formats} \newlabel{sec:formats}{{5.4}{X}} \newlabel{fig:ex1cc}{{5.1}{X}} \newlabel{fig:ex1cs}{{5.2}{X}} \newlabel{fig:ex1cg}{{5.3}{X}} \@addtocsec{htoc}{43}{0}{\@print{5.5}\quad{}Invocation and options} \newlabel{sec:options}{{5.5}{X}} \bibcite{DuS00Fun}{1} \bibcite{HiP05Typ}{2} \bibcite{Hug86Nov}{3}