This file is indexed.

/usr/share/doc/bison-doc/html/Java-Scanner-Interface.html is in bison-doc 1:3.0.2-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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- 
This manual (23 October 2013) is for GNU Bison (version
3.0.2), the GNU parser generator.

Copyright (C) 1988-1993, 1995, 1998-2013 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 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Bison 3.0.2: Java Scanner Interface</title>

<meta name="description" content="Bison 3.0.2: Java Scanner Interface">
<meta name="keywords" content="Bison 3.0.2: Java Scanner Interface">
<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="Java-Parsers.html#Java-Parsers" rel="up" title="Java Parsers">
<link href="Java-Action-Features.html#Java-Action-Features" rel="next" title="Java Action Features">
<link href="Java-Parser-Interface.html#Java-Parser-Interface" rel="prev" title="Java Parser Interface">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
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" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Java-Scanner-Interface"></a>
<div class="header">
<p>
Next: <a href="Java-Action-Features.html#Java-Action-Features" accesskey="n" rel="next">Java Action Features</a>, Previous: <a href="Java-Parser-Interface.html#Java-Parser-Interface" accesskey="p" rel="prev">Java Parser Interface</a>, Up: <a href="Java-Parsers.html#Java-Parsers" accesskey="u" rel="up">Java Parsers</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="Java-Scanner-Interface-1"></a>
<h4 class="subsection">10.2.5 Java Scanner Interface</h4>

<p>There are two possible ways to interface a Bison-generated Java parser
with a scanner: the scanner may be defined by <code>%code lexer</code>, or
defined elsewhere.  In either case, the scanner has to implement the
<code>Lexer</code> inner interface of the parser class.  This interface also
contain constants for all user-defined token names and the predefined
<code>EOF</code> token.
</p>
<p>In the first case, the body of the scanner class is placed in
<code>%code lexer</code> blocks.  If you want to pass parameters from the
parser constructor to the scanner constructor, specify them with
<code>%lex-param</code>; they are passed before <code>%parse-param</code>s to the
constructor.
</p>
<p>In the second case, the scanner has to implement the <code>Lexer</code> interface,
which is defined within the parser class (e.g., <code>YYParser.Lexer</code>).
The constructor of the parser object will then accept an object
implementing the interface; <code>%lex-param</code> is not used in this
case.
</p>
<p>In both cases, the scanner has to implement the following methods.
</p>
<dl>
<dt><a name="index-yyerror-on-Lexer"></a>Method on Lexer: <em>void</em> <strong>yyerror</strong> <em>(Location <var>loc</var>, String <var>msg</var>)</em></dt>
<dd><p>This method is defined by the user to emit an error message.  The first
parameter is omitted if location tracking is not active.  Its type can be
changed using <code>%define api.location.type {<var>class-name</var>}</code>.
</p></dd></dl>

<dl>
<dt><a name="index-yylex-on-Lexer"></a>Method on Lexer: <em>int</em> <strong>yylex</strong> <em>()</em></dt>
<dd><p>Return the next token.  Its type is the return value, its semantic
value and location are saved and returned by the their methods in the
interface.
</p>
<p>Use &lsquo;<samp>%define lex_throws</samp>&rsquo; to specify any uncaught exceptions.
Default is <code>java.io.IOException</code>.
</p></dd></dl>

<dl>
<dt><a name="index-getStartPos-on-Lexer"></a>Method on Lexer: <em>Position</em> <strong>getStartPos</strong> <em>()</em></dt>
<dt><a name="index-getEndPos-on-Lexer"></a>Method on Lexer: <em>Position</em> <strong>getEndPos</strong> <em>()</em></dt>
<dd><p>Return respectively the first position of the last token that
<code>yylex</code> returned, and the first position beyond it.  These
methods are not needed unless location tracking is active.
</p>
<p>The return type can be changed using <code>%define api.position.type
{<var>class-name</var>}</code>.
</p></dd></dl>

<dl>
<dt><a name="index-getLVal-on-Lexer"></a>Method on Lexer: <em>Object</em> <strong>getLVal</strong> <em>()</em></dt>
<dd><p>Return the semantic value of the last token that yylex returned.
</p>
<p>The return type can be changed using &lsquo;<samp>%define api.value.type
{<var>class-name</var>}</samp>&rsquo;.
</p></dd></dl>

<hr>
<div class="header">
<p>
Next: <a href="Java-Action-Features.html#Java-Action-Features" accesskey="n" rel="next">Java Action Features</a>, Previous: <a href="Java-Parser-Interface.html#Java-Parser-Interface" accesskey="p" rel="prev">Java Parser Interface</a>, Up: <a href="Java-Parsers.html#Java-Parsers" accesskey="u" rel="up">Java Parsers</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>