* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
(C++ Bison Interface): Fix lalr1.cc skeleton name.
(C++ Parser Interface): Fix semantic_type and location_type names.
Document yy::parser::token.
Reported by Jerry Quinn.
+2010-05-10 Akim Demaille <demaille@gostai.com>
+
+ doc: fix lalr1.cc documentation.
+ * doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
+ (C++ Bison Interface): Fix lalr1.cc skeleton name.
+ (C++ Parser Interface): Fix semantic_type and location_type names.
+ Document yy::parser::token.
+ Reported by Jerry Quinn.
+
2010-05-07 Akim Demaille <demaille@gostai.com>
doc: fix typo.
2010-05-07 Akim Demaille <demaille@gostai.com>
doc: fix typo.
H. Merijn Brand h.m.brand@hccnet.nl
Hans Aberg haberg@matematik.su.se
Jan Nieuwenhuizen janneke@gnu.org
H. Merijn Brand h.m.brand@hccnet.nl
Hans Aberg haberg@matematik.su.se
Jan Nieuwenhuizen janneke@gnu.org
+Jerry Quinn jlquinn@optonline.net
Jesse Thilo jthilo@gnu.org
Jim Kent jkent@arch.sel.sony.com
Jim Meyering jim@meyering.net
Jesse Thilo jthilo@gnu.org
Jim Kent jkent@arch.sel.sony.com
Jim Meyering jim@meyering.net
@c - initial action
The C++ @acronym{LALR}(1) parser is selected using the skeleton directive,
@c - initial action
The C++ @acronym{LALR}(1) parser is selected using the skeleton directive,
-@samp{%skeleton "lalr1.c"}, or the synonymous command-line option
-@option{--skeleton=lalr1.c}.
+@samp{%skeleton "lalr1.cc"}, or the synonymous command-line option
+@option{--skeleton=lalr1.cc}.
@xref{Decl Summary}.
When run, @command{bison} will create several entities in the @samp{yy}
@xref{Decl Summary}.
When run, @command{bison} will create several entities in the @samp{yy}
it describes an additional member of the parser class, and an
additional argument for its constructor.
it describes an additional member of the parser class, and an
additional argument for its constructor.
-@defcv {Type} {parser} {semantic_value_type}
-@defcvx {Type} {parser} {location_value_type}
+@defcv {Type} {parser} {semantic_type}
+@defcvx {Type} {parser} {location_type}
The types for semantics value and locations.
@end defcv
The types for semantics value and locations.
@end defcv
+@defcv {Type} {parser} {token}
+A structure that contains (only) the definition of the tokens as the
+@code{yytokentype} enumeration. To refer to the token @code{FOO}, the
+scanner should use @code{yy::parser::token::FOO}. The scanner can use
+@samp{typedef yy::parser::token token;} to ``import'' the token enumeration
+(@pxref{Calc++ Scanner}).
+@end defcv
+
@deftypemethod {parser} {} parser (@var{type1} @var{arg1}, ...)
Build a new parser object. There are no arguments by default, unless
@samp{%parse-param @{@var{type1} @var{arg1}@}} was used.
@deftypemethod {parser} {} parser (@var{type1} @var{arg1}, ...)
Build a new parser object. There are no arguments by default, unless
@samp{%parse-param @{@var{type1} @var{arg1}@}} was used.
parsers, C++ parsers are always pure: there is no point in using the
@code{%define api.pure} directive. Therefore the interface is as follows.
parsers, C++ parsers are always pure: there is no point in using the
@code{%define api.pure} directive. Therefore the interface is as follows.
-@deftypemethod {parser} {int} yylex (semantic_value_type& @var{yylval}, location_type& @var{yylloc}, @var{type1} @var{arg1}, ...)
+@deftypemethod {parser} {int} yylex (semantic_type* @var{yylval}, location_type* @var{yylloc}, @var{type1} @var{arg1}, ...)
Return the next token. Its type is the return value, its semantic
value and location being @var{yylval} and @var{yylloc}. Invocations of
@samp{%lex-param @{@var{type1} @var{arg1}@}} yield additional arguments.
Return the next token. Its type is the return value, its semantic
value and location being @var{yylval} and @var{yylloc}. Invocations of
@samp{%lex-param @{@var{type1} @var{arg1}@}} yield additional arguments.
@end deftypeivar
@deftypeop {Constructor} {Location} {} Location (Position @var{loc})
@end deftypeivar
@deftypeop {Constructor} {Location} {} Location (Position @var{loc})
-Create a @code{Location} denoting an empty range located at a given point.
+Create a @code{Location} denoting an empty range located at a given point.
@end deftypeop
@deftypeop {Constructor} {Location} {} Location (Position @var{begin}, Position @var{end})
@end deftypeop
@deftypeop {Constructor} {Location} {} Location (Position @var{begin}, Position @var{end})
@end deffn
@deffn {Statement} {return YYERROR;}
@end deffn
@deffn {Statement} {return YYERROR;}
-Start error recovery without printing an error message.
+Start error recovery without printing an error message.
@xref{Error Recovery}.
@end deffn
@xref{Error Recovery}.
@end deffn