1#line 10057 "../../doc/bison.texi"
2#ifndef CALCXX_DRIVER_HH
3# define CALCXX_DRIVER_HH
4# include <string>
5# include <map>
6# include "calc++-parser.hh"
7#line 10073 "../../doc/bison.texi"
8// Tell Flex the lexer's prototype ...
9# define YY_DECL                                        \
10  yy::calcxx_parser::token_type                         \
11  yylex (yy::calcxx_parser::semantic_type* yylval,      \
12         yy::calcxx_parser::location_type* yylloc,      \
13         calcxx_driver& driver)
14// ... and declare it for the parser's sake.
15YY_DECL;
16#line 10089 "../../doc/bison.texi"
17// Conducting the whole scanning and parsing of Calc++.
18class calcxx_driver
19{
20public:
21  calcxx_driver ();
22  virtual ~calcxx_driver ();
23
24  std::map<std::string, int> variables;
25
26  int result;
27#line 10107 "../../doc/bison.texi"
28  // Handling the scanner.
29  void scan_begin ();
30  void scan_end ();
31  bool trace_scanning;
32#line 10118 "../../doc/bison.texi"
33  // Run the parser.  Return 0 on success.
34  int parse (const std::string& f);
35  std::string file;
36  bool trace_parsing;
37#line 10132 "../../doc/bison.texi"
38  // Error handling.
39  void error (const yy::location& l, const std::string& m);
40  void error (const std::string& m);
41};
42#endif // ! CALCXX_DRIVER_HH
43