/usr/share/doc/bison-doc/html/Action-Features.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 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | <!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: Action Features</title>
<meta name="description" content="Bison 3.0.4: Action Features">
<meta name="keywords" content="Bison 3.0.4: Action Features">
<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="Interface.html#Interface" rel="up" title="Interface">
<link href="Internationalization.html#Internationalization" rel="next" title="Internationalization">
<link href="Error-Reporting.html#Error-Reporting" rel="prev" title="Error Reporting">
<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="Action-Features"></a>
<div class="header">
<p>
Next: <a href="Internationalization.html#Internationalization" accesskey="n" rel="next">Internationalization</a>, Previous: <a href="Error-Reporting.html#Error-Reporting" accesskey="p" rel="prev">Error Reporting</a>, Up: <a href="Interface.html#Interface" accesskey="u" rel="up">Interface</a> [<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="Special-Features-for-Use-in-Actions"></a>
<h3 class="section">4.8 Special Features for Use in Actions</h3>
<a name="index-summary_002c-action-features"></a>
<a name="index-action-features-summary"></a>
<p>Here is a table of Bison constructs, variables and macros that
are useful in actions.
</p>
<dl>
<dt><a name="index-_0024_0024"></a>Variable: <strong>$$</strong></dt>
<dd><p>Acts like a variable that contains the semantic value for the
grouping made by the current rule. See <a href="Actions.html#Actions">Actions</a>.
</p></dd></dl>
<dl>
<dt><a name="index-_0024n"></a>Variable: <strong>$<var>n</var></strong></dt>
<dd><p>Acts like a variable that contains the semantic value for the
<var>n</var>th component of the current rule. See <a href="Actions.html#Actions">Actions</a>.
</p></dd></dl>
<dl>
<dt><a name="index-_0024_003ctypealt_003e_0024"></a>Variable: <strong>$<<var>typealt</var>>$</strong></dt>
<dd><p>Like <code>$$</code> but specifies alternative <var>typealt</var> in the union
specified by the <code>%union</code> declaration. See <a href="Action-Types.html#Action-Types">Data
Types of Values in Actions</a>.
</p></dd></dl>
<dl>
<dt><a name="index-_0024_003ctypealt_003en"></a>Variable: <strong>$<<var>typealt</var>><var>n</var></strong></dt>
<dd><p>Like <code>$<var>n</var></code> but specifies alternative <var>typealt</var> in the
union specified by the <code>%union</code> declaration.
See <a href="Action-Types.html#Action-Types">Data Types of Values in Actions</a>.
</p></dd></dl>
<dl>
<dt><a name="index-YYABORT-2"></a>Macro: <strong>YYABORT</strong> <em><code>;</code></em></dt>
<dd><p>Return immediately from <code>yyparse</code>, indicating failure.
See <a href="Parser-Function.html#Parser-Function">The Parser Function <code>yyparse</code></a>.
</p></dd></dl>
<dl>
<dt><a name="index-YYACCEPT-2"></a>Macro: <strong>YYACCEPT</strong> <em><code>;</code></em></dt>
<dd><p>Return immediately from <code>yyparse</code>, indicating success.
See <a href="Parser-Function.html#Parser-Function">The Parser Function <code>yyparse</code></a>.
</p></dd></dl>
<dl>
<dt><a name="index-YYBACKUP"></a>Macro: <strong>YYBACKUP</strong> <em>(<var>token</var>, <var>value</var>)<code>;</code></em></dt>
<dd><a name="index-YYBACKUP-1"></a>
<p>Unshift a token. This macro is allowed only for rules that reduce
a single value, and only when there is no lookahead token.
It is also disallowed in GLR parsers.
It installs a lookahead token with token type <var>token</var> and
semantic value <var>value</var>; then it discards the value that was
going to be reduced by this rule.
</p>
<p>If the macro is used when it is not valid, such as when there is
a lookahead token already, then it reports a syntax error with
a message ‘<samp>cannot back up</samp>’ and performs ordinary error
recovery.
</p>
<p>In either case, the rest of the action is not executed.
</p></dd></dl>
<dl>
<dt><a name="index-YYEMPTY"></a>Macro: <strong>YYEMPTY</strong></dt>
<dd><p>Value stored in <code>yychar</code> when there is no lookahead token.
</p></dd></dl>
<dl>
<dt><a name="index-YYEOF"></a>Macro: <strong>YYEOF</strong></dt>
<dd><p>Value stored in <code>yychar</code> when the lookahead is the end of the input
stream.
</p></dd></dl>
<dl>
<dt><a name="index-YYERROR-1"></a>Macro: <strong>YYERROR</strong> <em><code>;</code></em></dt>
<dd><p>Cause an immediate syntax error. This statement initiates error
recovery just as if the parser itself had detected an error; however, it
does not call <code>yyerror</code>, and does not print any message. If you
want to print an error message, call <code>yyerror</code> explicitly before
the ‘<samp>YYERROR;</samp>’ statement. See <a href="Error-Recovery.html#Error-Recovery">Error Recovery</a>.
</p></dd></dl>
<dl>
<dt><a name="index-YYRECOVERING"></a>Macro: <strong>YYRECOVERING</strong></dt>
<dd><a name="index-YYRECOVERING-1"></a>
<p>The expression <code>YYRECOVERING ()</code> yields 1 when the parser
is recovering from a syntax error, and 0 otherwise.
See <a href="Error-Recovery.html#Error-Recovery">Error Recovery</a>.
</p></dd></dl>
<dl>
<dt><a name="index-yychar"></a>Variable: <strong>yychar</strong></dt>
<dd><p>Variable containing either the lookahead token, or <code>YYEOF</code> when the
lookahead is the end of the input stream, or <code>YYEMPTY</code> when no lookahead
has been performed so the next token is not yet known.
Do not modify <code>yychar</code> in a deferred semantic action (see <a href="GLR-Semantic-Actions.html#GLR-Semantic-Actions">GLR Semantic Actions</a>).
See <a href="Lookahead.html#Lookahead">Lookahead Tokens</a>.
</p></dd></dl>
<dl>
<dt><a name="index-yyclearin-1"></a>Macro: <strong>yyclearin</strong> <em><code>;</code></em></dt>
<dd><p>Discard the current lookahead token. This is useful primarily in
error rules.
Do not invoke <code>yyclearin</code> in a deferred semantic action (see <a href="GLR-Semantic-Actions.html#GLR-Semantic-Actions">GLR Semantic Actions</a>).
See <a href="Error-Recovery.html#Error-Recovery">Error Recovery</a>.
</p></dd></dl>
<dl>
<dt><a name="index-yyerrok"></a>Macro: <strong>yyerrok</strong> <em><code>;</code></em></dt>
<dd><p>Resume generating error messages immediately for subsequent syntax
errors. This is useful primarily in error rules.
See <a href="Error-Recovery.html#Error-Recovery">Error Recovery</a>.
</p></dd></dl>
<dl>
<dt><a name="index-yylloc"></a>Variable: <strong>yylloc</strong></dt>
<dd><p>Variable containing the lookahead token location when <code>yychar</code> is not set
to <code>YYEMPTY</code> or <code>YYEOF</code>.
Do not modify <code>yylloc</code> in a deferred semantic action (see <a href="GLR-Semantic-Actions.html#GLR-Semantic-Actions">GLR Semantic Actions</a>).
See <a href="Actions-and-Locations.html#Actions-and-Locations">Actions and Locations</a>.
</p></dd></dl>
<dl>
<dt><a name="index-yylval"></a>Variable: <strong>yylval</strong></dt>
<dd><p>Variable containing the lookahead token semantic value when <code>yychar</code> is
not set to <code>YYEMPTY</code> or <code>YYEOF</code>.
Do not modify <code>yylval</code> in a deferred semantic action (see <a href="GLR-Semantic-Actions.html#GLR-Semantic-Actions">GLR Semantic Actions</a>).
See <a href="Actions.html#Actions">Actions</a>.
</p></dd></dl>
<dl>
<dt><a name="index-_0040_0024"></a>Value: <strong>@$</strong></dt>
<dd><p>Acts like a structure variable containing information on the textual
location of the grouping made by the current rule. See <a href="Tracking-Locations.html#Tracking-Locations">Tracking Locations</a>.
</p>
</dd></dl>
<dl>
<dt><a name="index-_0040n"></a>Value: <strong>@<var>n</var></strong></dt>
<dd><a name="index-_0040n-1"></a>
<p>Acts like a structure variable containing information on the textual
location of the <var>n</var>th component of the current rule. See <a href="Tracking-Locations.html#Tracking-Locations">Tracking Locations</a>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Internationalization.html#Internationalization" accesskey="n" rel="next">Internationalization</a>, Previous: <a href="Error-Reporting.html#Error-Reporting" accesskey="p" rel="prev">Error Reporting</a>, Up: <a href="Interface.html#Interface" accesskey="u" rel="up">Interface</a> [<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>
|