#line 10057 "../../doc/bison.texi" #ifndef CALCXX_DRIVER_HH # define CALCXX_DRIVER_HH # include <string> # include <map> # include "calc++-parser.hh" #line 10073 "../../doc/bison.texi" // Tell Flex the lexer's prototype ... # define YY_DECL \ yy::calcxx_parser::token_type \ yylex (yy::calcxx_parser::semantic_type* yylval, \ yy::calcxx_parser::location_type* yylloc, \ calcxx_driver& driver) // ... and declare it for the parser's sake. YY_DECL; #line 10089 "../../doc/bison.texi" // Conducting the whole scanning and parsing of Calc++. class calcxx_driver { public: calcxx_driver (); virtual ~calcxx_driver (); std::map<std::string, int> variables; int result; #line 10107 "../../doc/bison.texi" // Handling the scanner. void scan_begin (); void scan_end (); bool trace_scanning; #line 10118 "../../doc/bison.texi" // Run the parser. Return 0 on success. int parse (const std::string& f); std::string file; bool trace_parsing; #line 10132 "../../doc/bison.texi" // Error handling. void error (const yy::location& l, const std::string& m); void error (const std::string& m); }; #endif // ! CALCXX_DRIVER_HH