/usr/share/doc/bison-doc/html/Lexical.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 | <html lang="en">
<head>
<title>Lexical - 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="Interface.html#Interface" title="Interface">
<link rel="prev" href="Parser-Delete-Function.html#Parser-Delete-Function" title="Parser Delete Function">
<link rel="next" href="Error-Reporting.html#Error-Reporting" title="Error Reporting">
<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="Lexical"></a>
<p>
Next: <a rel="next" accesskey="n" href="Error-Reporting.html#Error-Reporting">Error Reporting</a>,
Previous: <a rel="previous" accesskey="p" href="Parser-Delete-Function.html#Parser-Delete-Function">Parser Delete Function</a>,
Up: <a rel="up" accesskey="u" href="Interface.html#Interface">Interface</a>
<hr>
</div>
<h3 class="section">4.6 The Lexical Analyzer Function <code>yylex</code></h3>
<p><a name="index-yylex-281"></a><a name="index-lexical-analyzer-282"></a>
The <dfn>lexical analyzer</dfn> function, <code>yylex</code>, recognizes tokens from
the input stream and returns them to the parser. Bison does not create
this function automatically; you must write it so that <code>yyparse</code> can
call it. The function is sometimes referred to as a lexical scanner.
<p>In simple programs, <code>yylex</code> is often defined at the end of the
Bison grammar file. If <code>yylex</code> is defined in a separate source
file, you need to arrange for the token-type macro definitions to be
available there. To do this, use the ‘<samp><span class="samp">-d</span></samp>’ option when you run
Bison, so that it will write these macro definitions into the separate
parser header file, <samp><var>name</var><span class="file">.tab.h</span></samp>, which you can include in
the other source files that need it. See <a href="Invocation.html#Invocation">Invoking Bison</a>.
<ul class="menu">
<li><a accesskey="1" href="Calling-Convention.html#Calling-Convention">Calling Convention</a>: How <code>yyparse</code> calls <code>yylex</code>.
<li><a accesskey="2" href="Token-Values.html#Token-Values">Token Values</a>: How <code>yylex</code> must return the semantic value
of the token it has read.
<li><a accesskey="3" href="Token-Locations.html#Token-Locations">Token Locations</a>: How <code>yylex</code> must return the text location
(line number, etc.) of the token, if the
actions want that.
<li><a accesskey="4" href="Pure-Calling.html#Pure-Calling">Pure Calling</a>: How the calling convention differs in a pure parser
(see <a href="Pure-Decl.html#Pure-Decl">A Pure (Reentrant) Parser</a>).
</ul>
</body></html>
|