Lines Matching full:pure
235 * Pure Decl:: Requesting a reentrant parser.
263 * Pure Calling:: How the calling convention differs in a pure parser
264 (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}).
346 * Calc++ Scanner:: A pure C++ Flex scanner
4383 * Pure Decl:: Requesting a reentrant parser.
4978 @node Pure Decl
4979 @subsection A Pure (Reentrant) Parser
4981 @cindex pure parser
4982 @findex %define api.pure
4985 execution; in other words, it consists entirely of @dfn{pure} (read-only)
4997 Alternatively, you can generate a pure, reentrant parser. The Bison
4998 declaration @code{%define api.pure} says that you want the parser to be
5002 %define api.pure full
5008 @code{yylex}. @xref{Pure Calling, ,Calling Conventions for Pure
5015 Whether the parser is pure has nothing to do with the grammar rules.
5016 You can generate either a pure parser or a nonreentrant parser from any
5046 a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}). The only
5052 %define api.pure full
5056 There is a major notable functional difference between the pure push parser
5057 and the impure push parser. It is acceptable for a pure push parser to have
5068 of using a pure push parser would look like this:
5125 Adding the @code{%define api.pure full} declaration does exactly the same thing
5230 Unless your parser is pure, the parser header file declares
5231 @code{yylval} as an external variable. @xref{Pure Decl, ,A Pure
5319 @deffn {Directive} %pure-parser
5320 Deprecated version of @code{%define api.pure} (@pxref{%define
5321 Summary,,api.pure}), for which Bison is more careful to warn about
5478 @c ================================================== api.pure
5479 @item @code{api.pure}
5480 @findex %define api.pure
5485 @item Purpose: Request a pure (reentrant) parser program.
5486 @xref{Pure Decl, ,A Pure (Reentrant) Parser}.
5493 When @code{%define api.pure full} is used, the parser is made reentrant. This
5494 changes the signature for @code{yylex} (@pxref{Pure Calling}), and also that of
5502 I.e., if @samp{%locations %define api.pure} is passed then the prototypes for
5510 But if @samp{%locations %define api.pure %parse-param @{int *nastiness@}} is
5980 Or, if both @code{%define api.pure full} (or just @code{%define api.pure})
6084 * Pure Calling:: How the calling convention differs in a pure parser
6085 (@pxref{Pure Decl, ,A Pure (Reentrant) Parser}).
6236 @node Pure Calling
6237 @subsection Calling Conventions for Pure Parsers
6239 When you use the Bison declaration @code{%define api.pure full} to request a
6240 pure, reentrant parser, the global communication variables @code{yylval}
6241 and @code{yylloc} cannot be used. (@xref{Pure Decl, ,A Pure (Reentrant)
6289 If @code{%define api.pure full} (or just @code{%define api.pure}) is added:
6351 Obviously, in location tracking pure parsers, @code{yyerror} should have
6352 an access to the current location. With @code{%define api.pure}, this is
6354 historical reasons, and this is the why @code{%define api.pure full} should be
6355 prefered over @code{%define api.pure}.
6357 When @code{%locations %define api.pure full} is used, @code{yyerror} has the
6379 request a pure parser (@pxref{Pure Decl, ,A Pure (Reentrant) Parser})
9669 @c - Always pure
9987 @c - Pure interface to yylex
9991 parsers, C++ parsers are always pure: there is no point in using the
9992 @code{%define api.pure full} directive. Therefore the interface is as follows.
10017 * Calc++ Scanner:: A pure C++ Flex scanner
10042 To support a pure interface with the parser (and the scanner) the
10125 To demonstrate pure handling of parse errors, instead of simply
10222 This provides a simple but effective pure interface, not relying on
10565 Therefore, all Java parsers are ``pure'', and the @code{%pure-parser}
10566 and @code{%define api.pure full} directives does not do anything when used in
11149 although I did specify @samp{%define api.pure full}.
11701 @code{yylex} should accept. @xref{Pure Calling,, Calling Conventions
11702 for Pure Parsers}.
11765 @deffn {Directive} %pure-parser
11766 Deprecated version of @code{%define api.pure} (@pxref{%define
11767 Summary,,api.pure}), for which Bison is more careful to warn about
11843 lookahead token. (In a pure parser, it is a local variable within
11915 @xref{Pure Calling,, Calling Conventions for Pure Parsers}.
11920 numbers associated with a token. (In a pure parser, it is a local
11937 value associated with a token. (In a pure parser, it is a local
11952 (In a pure parser, it is a local variable within @code{yyparse}. In a
11953 pure push parser, it is a member of yypstate.)
12006 is supported only for Yacc like parsers. @xref{Pure Calling,, Calling
12007 Conventions for Pure Parsers}.
12195 invocations. @xref{Pure Decl, ,A Pure (Reentrant) Parser}.