Extract calc++ from the documentation.

* doc/bison.texinfo (Calc++): Add the extraction marks.
* examples/extexi: New, from the aborted GNU Programming 2E.
Separate the different paragraph of a file with empty lines.
* examples/Makefile: Use it to extract the whole calc++ example.
This commit is contained in:
Akim Demaille
2005-07-05 07:21:30 +00:00
parent 8a0adb0183
commit 1c59e0a121
9 changed files with 235 additions and 66 deletions

View File

@@ -1,33 +1,28 @@
%{ /* -*- C++ -*- */
%{ /* -*- C++ -*- */
# include <string>
# include <cerrno>
# include "calc++-driver.hh"
# include "calc++-parser.hh"
%}
%option noyywrap nounput debug batch
%option noyywrap nounput batch debug
id [a-zA-Z][a-zA-Z_0-9]*
int [0-9]+
blank [ \t]
%%
%{
# define YY_USER_ACTION yylloc->columns (yyleng);
yylloc->step ();
# define YY_USER_ACTION yylloc->columns (yyleng);
%}
{blank}+ yylloc->step ();
[\n]+ yylloc->lines (yyleng); yylloc->step ();
[-+*/] return yytext[0];
":=" return TOKEN_ASSIGN;
{int} yylval->ival = atoi (yytext); return TOKEN_NUMBER;
{id} yylval->sval = new std::string (yytext); return TOKEN_IDENTIFIER;
. driver.error (*yylloc, "invalid character");
%%
void