\entry{introduction}{1}{introduction}
\entry{context-free grammar}{13}{context-free grammar}
\entry{grammar, context-free}{13}{grammar, context-free}
\entry{BNF}{13}{BNF}
\entry{Backus-Naur form}{13}{Backus-Naur form}
\entry{symbols (abstract)}{13}{symbols (abstract)}
\entry{token}{13}{token}
\entry{syntactic grouping}{13}{syntactic grouping}
\entry{grouping, syntactic}{13}{grouping, syntactic}
\entry{start symbol}{14}{start symbol}
\entry{Bison grammar}{14}{Bison grammar}
\entry{grammar, Bison}{14}{grammar, Bison}
\entry{formal grammar}{14}{formal grammar}
\entry{semantic value}{15}{semantic value}
\entry{value, semantic}{15}{value, semantic}
\entry{semantic actions}{15}{semantic actions}
\entry{actions, semantic}{15}{actions, semantic}
\entry{Bison parser}{16}{Bison parser}
\entry{Bison utility}{16}{Bison utility}
\entry{lexical analyzer, purpose}{16}{lexical analyzer, purpose}
\entry{parser}{16}{parser}
\entry{stages in using Bison}{17}{stages in using Bison}
\entry{using Bison}{17}{using Bison}
\entry{grammar file}{17}{grammar file}
\entry{file format}{17}{file format}
\entry{format of grammar file}{17}{format of grammar file}
\entry{layout of Bison grammar}{17}{layout of Bison grammar}
\entry{simple examples}{19}{simple examples}
\entry{examples, simple}{19}{examples, simple}
\entry{reverse polish notation}{19}{reverse polish notation}
\entry{polish notation calculator}{19}{polish notation calculator}
\entry{rpcalc}{19}{\code {rpcalc}}
\entry{calculator, simple}{19}{calculator, simple}
\entry{writing a lexical analyzer}{22}{writing a lexical analyzer}
\entry{lexical analyzer, writing}{22}{lexical analyzer, writing}
\entry{controlling function}{23}{controlling function}
\entry{main function in simple example}{23}{main function in simple example}
\entry{error reporting routine}{23}{error reporting routine}
\entry{running Bison (introduction)}{24}{running Bison (introduction)}
\entry{compiling the parser}{24}{compiling the parser}
\entry{infix notation calculator}{25}{infix notation calculator}
\entry{calc}{25}{\code {calc}}
\entry{calculator, infix notation}{25}{calculator, infix notation}
\entry{error recovery, simple}{26}{error recovery, simple}
\entry{multi-function calculator}{27}{multi-function calculator}
\entry{mfcalc}{27}{\code {mfcalc}}
\entry{calculator, multi-function}{27}{calculator, multi-function}
\entry{symbol table example}{29}{symbol table example}
\entry{exercises}{33}{exercises}
\entry{C declarations section}{35}{C declarations section}
\entry{declarations, C}{35}{declarations, C}
\entry{Bison declarations (introduction)}{35}{Bison declarations (introduction)}
\entry{declarations, Bison (introduction)}{35}{declarations, Bison (introduction)}
\entry{grammar rules section}{35}{grammar rules section}
\entry{rules section for grammar}{35}{rules section for grammar}
\entry{additional C code section}{36}{additional C code section}
\entry{C code, section for additional}{36}{C code, section for additional}
\entry{nonterminal symbol}{36}{nonterminal symbol}
\entry{terminal symbol}{36}{terminal symbol}
\entry{token type}{36}{token type}
\entry{symbol}{36}{symbol}
\entry{character token}{36}{character token}
\entry{literal token}{36}{literal token}
\entry{single-character literal}{36}{single-character literal}
\entry{string token}{37}{string token}
\entry{literal string token}{37}{literal string token}
\entry{multi-character literal}{37}{multi-character literal}
\entry{rule syntax}{37}{rule syntax}
\entry{grammar rule syntax}{37}{grammar rule syntax}
\entry{syntax of grammar rules}{37}{syntax of grammar rules}
\entry{{\tt\char '174}}{38}{\code {{\tt\char '174}}}
\entry{recursive rule}{38}{recursive rule}
\entry{left recursion}{38}{left recursion}
\entry{right recursion}{38}{right recursion}
\entry{mutual recursion}{39}{mutual recursion}
\entry{defining language semantics}{39}{defining language semantics}
\entry{language semantics, defining}{39}{language semantics, defining}
\entry{semantic value type}{39}{semantic value type}
\entry{value type, semantic}{39}{value type, semantic}
\entry{data types of semantic values}{39}{data types of semantic values}
\entry{default data type}{39}{default data type}
\entry{action}{40}{action}
\entry{$$}{40}{\code {$$}}
\entry{$n}{40}{\code {$\var {n}}}
\entry{default action}{40}{default action}
\entry{action data types}{41}{action data types}
\entry{data types in actions}{41}{data types in actions}
\entry{actions in mid-rule}{41}{actions in mid-rule}
\entry{mid-rule actions}{41}{mid-rule actions}
\entry{declarations, Bison}{43}{declarations, Bison}
\entry{Bison declarations}{43}{Bison declarations}
\entry{declaring token type names}{44}{declaring token type names}
\entry{token type names, declaring}{44}{token type names, declaring}
\entry{declaring literal string tokens}{44}{declaring literal string tokens}
\entry{%token}{44}{\code {%token}}
\entry{precedence declarations}{44}{precedence declarations}
\entry{declaring operator precedence}{44}{declaring operator precedence}
\entry{operator precedence, declaring}{44}{operator precedence, declaring}
\entry{declaring value types}{45}{declaring value types}
\entry{value types, declaring}{45}{value types, declaring}
\entry{%union}{45}{\code {%union}}
\entry{declaring value types, nonterminals}{45}{declaring value types, nonterminals}
\entry{value types, nonterminals, declaring}{45}{value types, nonterminals, declaring}
\entry{%type}{45}{\code {%type}}
\entry{suppressing conflict warnings}{46}{suppressing conflict warnings}
\entry{preventing warnings about conflicts}{46}{preventing warnings about conflicts}
\entry{warnings, preventing}{46}{warnings, preventing}
\entry{conflicts, suppressing warnings of}{46}{conflicts, suppressing warnings of}
\entry{%expect}{46}{\code {%expect}}
\entry{declaring the start symbol}{46}{declaring the start symbol}
\entry{start symbol, declaring}{46}{start symbol, declaring}
\entry{default start symbol}{46}{default start symbol}
\entry{%start}{46}{\code {%start}}
\entry{reentrant parser}{46}{reentrant parser}
\entry{pure parser}{46}{pure parser}
\entry{%pure{\_}parser}{46}{\code {%pure{\_}parser}}
\entry{Bison declaration summary}{47}{Bison declaration summary}
\entry{declaration summary}{47}{declaration summary}
\entry{summary, Bison declaration}{47}{summary, Bison declaration}
\entry{C-language interface}{49}{C-language interface}
\entry{interface}{49}{interface}
\entry{yyparse}{49}{\code {yyparse}}
\entry{YYACCEPT}{49}{\code {YYACCEPT}}
\entry{YYABORT}{49}{\code {YYABORT}}
\entry{yylex}{49}{\code {yylex}}
\entry{lexical analyzer}{49}{lexical analyzer}
\entry{yylval}{50}{\code {yylval}}
\entry{yylloc}{51}{\code {yylloc}}
\entry{YYLTYPE}{51}{\code {YYLTYPE}}
\entry{YYPARSE{\_}PARAM}{52}{\code {YYPARSE_PARAM}}
\entry{YYLEX{\_}PARAM}{52}{\code {YYLEX_PARAM}}
\entry{error reporting function}{53}{error reporting function}
\entry{yyerror}{53}{\code {yyerror}}
\entry{parse error}{53}{parse error}
\entry{syntax error}{53}{syntax error}
\entry{YYERROR{\_}VERBOSE}{53}{\code {YYERROR{\_}VERBOSE}}
\entry{yynerrs}{53}{\code {yynerrs}}
\entry{summary, action features}{53}{summary, action features}
\entry{action features summary}{53}{action features summary}
\entry{YYBACKUP}{54}{\code {YYBACKUP}}
\entry{YYEMPTY}{54}{\code {YYEMPTY}}
\entry{YYERROR}{54}{\code {YYERROR}}
\entry{@n}{55}{\code {@\var {n}}}
\entry{Bison parser algorithm}{57}{Bison parser algorithm}
\entry{algorithm of parser}{57}{algorithm of parser}
\entry{shifting}{57}{shifting}
\entry{reduction}{57}{reduction}
\entry{parser stack}{57}{parser stack}
\entry{stack, parser}{57}{stack, parser}
\entry{look-ahead token}{57}{look-ahead token}
\entry{yychar}{58}{\code {yychar}}
\entry{conflicts}{58}{conflicts}
\entry{shift/reduce conflicts}{58}{shift/reduce conflicts}
\entry{dangling else}{58}{dangling \code {else}}
\entry{else, dangling}{58}{\code {else}, dangling}
\entry{operator precedence}{59}{operator precedence}
\entry{precedence of operators}{59}{precedence of operators}
\entry{associativity}{60}{associativity}
\entry{%left}{60}{\code {%left}}
\entry{%right}{60}{\code {%right}}
\entry{%nonassoc}{60}{\code {%nonassoc}}
\entry{context-dependent precedence}{61}{context-dependent precedence}
\entry{unary operator precedence}{61}{unary operator precedence}
\entry{precedence, context-dependent}{61}{precedence, context-dependent}
\entry{precedence, unary operator}{61}{precedence, unary operator}
\entry{%prec}{61}{\code {%prec}}
\entry{finite-state machine}{62}{finite-state machine}
\entry{parser state}{62}{parser state}
\entry{state (of parser)}{62}{state (of parser)}
\entry{reduce/reduce conflict}{62}{reduce/reduce conflict}
\entry{conflicts, reduce/reduce}{62}{conflicts, reduce/reduce}
\entry{LR(1)}{64}{LR(1)}
\entry{LALR(1)}{64}{LALR(1)}
\entry{stack overflow}{65}{stack overflow}
\entry{parser stack overflow}{65}{parser stack overflow}
\entry{overflow of parser stack}{65}{overflow of parser stack}
\entry{YYMAXDEPTH}{65}{\code {YYMAXDEPTH}}
\entry{default stack limit}{65}{default stack limit}
\entry{YYINITDEPTH}{65}{\code {YYINITDEPTH}}
\entry{error recovery}{67}{error recovery}
\entry{recovery from errors}{67}{recovery from errors}
\entry{error}{67}{\code {error}}
\entry{yyerrok}{68}{\code {yyerrok}}
\entry{yyclearin}{68}{\code {yyclearin}}
\entry{YYRECOVERING}{68}{\code {YYRECOVERING}}
\entry{lexical tie-in}{70}{lexical tie-in}
\entry{YYDEBUG}{73}{\code {YYDEBUG}}
\entry{yydebug}{73}{\code {yydebug}}
\entry{debugging}{73}{debugging}
\entry{tracing the parser}{73}{tracing the parser}
\entry{YYPRINT}{73}{\code {YYPRINT}}
\entry{invoking Bison}{75}{invoking Bison}
\entry{Bison invocation}{75}{Bison invocation}
\entry{options for invoking Bison}{75}{options for invoking Bison}
\entry{invoking Bison under VMS}{77}{invoking Bison under VMS}
\entry{VMS}{77}{VMS}
\entry{Bison symbols, table of}{79}{Bison symbols, table of}
\entry{symbols in Bison, table of}{79}{symbols in Bison, table of}
\entry{glossary}{83}{glossary}
