mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-28 13:43:02 +00:00
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:
@@ -1,64 +1,47 @@
|
||||
#line 7036 "../../doc/bison.texinfo"
|
||||
#ifndef CALCXX_DRIVER_HH
|
||||
# define CALCXX_DRIVER_HH
|
||||
# include <string>
|
||||
# include <map>
|
||||
|
||||
/// Forward declarations.
|
||||
#line 7051 "../../doc/bison.texinfo"
|
||||
// Forward declarations.
|
||||
union YYSTYPE;
|
||||
|
||||
namespace yy
|
||||
{
|
||||
class calcxx_parser;
|
||||
class location;
|
||||
class calcxx_parser;
|
||||
}
|
||||
|
||||
class calcxx_driver;
|
||||
|
||||
#line 7069 "../../doc/bison.texinfo"
|
||||
// Announce to Flex the prototype we want for lexing function, ...
|
||||
# define YY_DECL \
|
||||
# define YY_DECL \
|
||||
int yylex (YYSTYPE* yylval, yy::location* yylloc, calcxx_driver& driver)
|
||||
// ... and declare it for the parser's sake.
|
||||
YY_DECL;
|
||||
|
||||
/// Conducting the whole scanning and parsing of Calc++.
|
||||
#line 7082 "../../doc/bison.texinfo"
|
||||
// Conducting the whole scanning and parsing of Calc++.
|
||||
class calcxx_driver
|
||||
{
|
||||
public:
|
||||
calcxx_driver ();
|
||||
virtual ~calcxx_driver ();
|
||||
|
||||
/// The variables.
|
||||
std::map<std::string, int> variables;
|
||||
|
||||
/// \name Handling the scanner.
|
||||
/// \{
|
||||
/// Open \a file for scanning.
|
||||
void scan_begin ();
|
||||
/// End scanning, clean up memory.
|
||||
void scan_end ();
|
||||
/// Whether to enable scanner traces.
|
||||
bool trace_scanning;
|
||||
/// \}
|
||||
|
||||
/// \name Handling the parser.
|
||||
/// \{
|
||||
/// Parse the file \a f.
|
||||
void parse (const std::string& f);
|
||||
/// The file being parsed.
|
||||
std::string file;
|
||||
/// Whether to enable parsing traces.
|
||||
bool trace_parsing;
|
||||
/// \}
|
||||
|
||||
/// The result.
|
||||
int result;
|
||||
|
||||
/// \name Error handling.
|
||||
/// \{
|
||||
/// Register a located error.
|
||||
#line 7101 "../../doc/bison.texinfo"
|
||||
// Handling the scanner.
|
||||
void scan_begin ();
|
||||
void scan_end ();
|
||||
bool trace_scanning;
|
||||
#line 7112 "../../doc/bison.texinfo"
|
||||
// Handling the parser.
|
||||
void parse (const std::string& f);
|
||||
std::string file;
|
||||
bool trace_parsing;
|
||||
#line 7126 "../../doc/bison.texinfo"
|
||||
// Error handling.
|
||||
void error (const yy::location& l, const std::string& m);
|
||||
/// Register an error.
|
||||
void error (const std::string& m);
|
||||
/// \}
|
||||
};
|
||||
#endif
|
||||
#endif // ! CALCXX_DRIVER_HH
|
||||
|
||||
Reference in New Issue
Block a user