This file is indexed.

/usr/share/doc/bison-doc/html/Grammar-in-Bison.html is in bison-doc 1:2.5-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<html lang="en">
<head>
<title>Grammar in Bison - Bison 2.5</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Bison 2.5">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Concepts.html#Concepts" title="Concepts">
<link rel="prev" href="Language-and-Grammar.html#Language-and-Grammar" title="Language and Grammar">
<link rel="next" href="Semantic-Values.html#Semantic-Values" title="Semantic Values">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This manual (14 May 2011) is for GNU Bison (version
2.5), the GNU parser generator.

Copyright (C) 1988-1993, 1995, 1998-2011 Free Software
Foundation, Inc.

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.3 or any later version published by the Free Software
     Foundation; with no Invariant Sections, with the Front-Cover texts
     being ``A GNU Manual,'' and with the Back-Cover Texts as in (a)
     below.  A copy of the license is included in the section entitled
     ``GNU Free Documentation License.''

     (a) The FSF's Back-Cover Text is: ``You have the freedom to copy
     and modify this GNU manual.  Buying copies from the FSF supports
     it in developing GNU and promoting software freedom.''
   -->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Grammar-in-Bison"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Semantic-Values.html#Semantic-Values">Semantic Values</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Language-and-Grammar.html#Language-and-Grammar">Language and Grammar</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Concepts.html#Concepts">Concepts</a>
<hr>
</div>

<h3 class="section">1.2 From Formal Rules to Bison Input</h3>

<p><a name="index-Bison-grammar-18"></a><a name="index-grammar_002c-Bison-19"></a><a name="index-formal-grammar-20"></a>
A formal grammar is a mathematical construct.  To define the language
for Bison, you must write a file expressing the grammar in Bison syntax:
a <dfn>Bison grammar</dfn> file.  See <a href="Grammar-File.html#Grammar-File">Bison Grammar Files</a>.

   <p>A nonterminal symbol in the formal grammar is represented in Bison input
as an identifier, like an identifier in C.  By convention, it should be
in lower case, such as <code>expr</code>, <code>stmt</code> or <code>declaration</code>.

   <p>The Bison representation for a terminal symbol is also called a <dfn>token
type</dfn>.  Token types as well can be represented as C-like identifiers.  By
convention, these identifiers should be upper case to distinguish them from
nonterminals: for example, <code>INTEGER</code>, <code>IDENTIFIER</code>, <code>IF</code> or
<code>RETURN</code>.  A terminal symbol that stands for a particular keyword in
the language should be named after that keyword converted to upper case. 
The terminal symbol <code>error</code> is reserved for error recovery. 
See <a href="Symbols.html#Symbols">Symbols</a>.

   <p>A terminal symbol can also be represented as a character literal, just like
a C character constant.  You should do this whenever a token is just a
single character (parenthesis, plus-sign, etc.): use that same character in
a literal as the terminal symbol for that token.

   <p>A third way to represent a terminal symbol is with a C string constant
containing several characters.  See <a href="Symbols.html#Symbols">Symbols</a>, for more information.

   <p>The grammar rules also have an expression in Bison syntax.  For example,
here is the Bison rule for a C <code>return</code> statement.  The semicolon in
quotes is a literal character token, representing part of the C syntax for
the statement; the naked semicolon, and the colon, are Bison punctuation
used in every rule.

<pre class="example">     stmt:   RETURN expr ';'
             ;
</pre>
   <p class="noindent">See <a href="Rules.html#Rules">Syntax of Grammar Rules</a>.

   </body></html>