%language "c++" %require "3.2" %defines %define api.namespace {tpr} %define api.parser.class {TempProfileParser} %define parse.error verbose %code requires{ namespace tpr { class TempProfileScanner; } } %parse-param { TempProfileScanner &scanner } %code { #include #include #include #include #include #include #undef yylex #define yylex scanner.yylex } %define api.value.type variant %locations %start tpr_file %token foo %% tpr_file: foo | tpr_file foo ; %% void tpr::TempProfileParser::error(const location_type &l, const std::string &err_message) { std::cerr << "Error " << err_message << " at " << l << std::endl; std::abort(); }