This file is indexed.

/usr/share/doc/bison-doc/html/Rpcalc-Rules.html is in bison-doc 1:3.0.4-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
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- 
This manual (22 January 2015) is for GNU Bison (version
3.0.4), the GNU parser generator.

Copyright (C) 1988-1993, 1995, 1998-2015 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." -->
<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Bison 3.0.4: Rpcalc Rules</title>

<meta name="description" content="Bison 3.0.4: Rpcalc Rules">
<meta name="keywords" content="Bison 3.0.4: Rpcalc Rules">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Index-of-Terms.html#Index-of-Terms" rel="index" title="Index of Terms">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="RPN-Calc.html#RPN-Calc" rel="up" title="RPN Calc">
<link href="Rpcalc-Input.html#Rpcalc-Input" rel="next" title="Rpcalc Input">
<link href="Rpcalc-Declarations.html#Rpcalc-Declarations" rel="prev" title="Rpcalc Declarations">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space: nowrap}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: serif; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en">
<a name="Rpcalc-Rules"></a>
<div class="header">
<p>
Next: <a href="Rpcalc-Lexer.html#Rpcalc-Lexer" accesskey="n" rel="next">Rpcalc Lexer</a>, Previous: <a href="Rpcalc-Declarations.html#Rpcalc-Declarations" accesskey="p" rel="prev">Rpcalc Declarations</a>, Up: <a href="RPN-Calc.html#RPN-Calc" accesskey="u" rel="up">RPN Calc</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Terms.html#Index-of-Terms" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Grammar-Rules-for-rpcalc"></a>
<h4 class="subsection">2.1.2 Grammar Rules for <code>rpcalc</code></h4>

<p>Here are the grammar rules for the reverse polish notation calculator.
</p>
<div class="example">
<pre class="example">input:
  %empty
| input line
;
</pre><pre class="example">
</pre><pre class="example">line:
  '\n'
| exp '\n'      { printf (&quot;%.10g\n&quot;, $1); }
;
</pre><pre class="example">
</pre><pre class="example">exp:
  NUM           { $$ = $1;           }
| exp exp '+'   { $$ = $1 + $2;      }
| exp exp '-'   { $$ = $1 - $2;      }
| exp exp '*'   { $$ = $1 * $2;      }
| exp exp '/'   { $$ = $1 / $2;      }
| exp exp '^'   { $$ = pow ($1, $2); }  /* Exponentiation */
| exp 'n'       { $$ = -$1;          }  /* Unary minus    */
;
</pre><pre class="example">%%
</pre></div>

<p>The groupings of the rpcalc &ldquo;language&rdquo; defined here are the expression
(given the name <code>exp</code>), the line of input (<code>line</code>), and the
complete input transcript (<code>input</code>).  Each of these nonterminal
symbols has several alternate rules, joined by the vertical bar &lsquo;<samp>|</samp>&rsquo;
which is read as &ldquo;or&rdquo;.  The following sections explain what these rules
mean.
</p>
<p>The semantics of the language is determined by the actions taken when a
grouping is recognized.  The actions are the C code that appears inside
braces.  See <a href="Actions.html#Actions">Actions</a>.
</p>
<p>You must specify these actions in C, but Bison provides the means for
passing semantic values between the rules.  In each action, the
pseudo-variable <code>$$</code> stands for the semantic value for the grouping
that the rule is going to construct.  Assigning a value to <code>$$</code> is the
main job of most actions.  The semantic values of the components of the
rule are referred to as <code>$1</code>, <code>$2</code>, and so on.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Rpcalc-Input.html#Rpcalc-Input" accesskey="1">Rpcalc Input</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Explanation of the <code>input</code> nonterminal
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Rpcalc-Line.html#Rpcalc-Line" accesskey="2">Rpcalc Line</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Explanation of the <code>line</code> nonterminal
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Rpcalc-Expr.html#Rpcalc-Expr" accesskey="3">Rpcalc Expr</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Explanation of the <code>expr</code> nonterminal
</td></tr>
</table>

<hr>
<div class="header">
<p>
Next: <a href="Rpcalc-Lexer.html#Rpcalc-Lexer" accesskey="n" rel="next">Rpcalc Lexer</a>, Previous: <a href="Rpcalc-Declarations.html#Rpcalc-Declarations" accesskey="p" rel="prev">Rpcalc Declarations</a>, Up: <a href="RPN-Calc.html#RPN-Calc" accesskey="u" rel="up">RPN Calc</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index-of-Terms.html#Index-of-Terms" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>