5 #include "ckbisonflex.hpp"
16 class main_state_lexer {
18 CKIREnvironment irenv;
22 : irenv(), the_tables(&irenv)
26 class main_state_parser :
public main_state_lexer {
28 std::string input_fname;
30 std::string covlinename;
32 main_state_parser() : outp_(&std::cout) {}
34 template<
class the_parser>
37 context ctx(&the_tables, &out(), &cd_);
39 FILE* iff = fopen(input_fname.c_str(),
"r");
42 ctx.message(cecko::errors::NOFILE, 0, input_fname);
46 auto scn = lexer_init(iff);
48 the_parser prs(scn, &ctx);
56 bool dump_tables()
const;
58 bool dump_coverage()
const;
60 std::ostream& out()
const {
return *outp_; }
63 std::unique_ptr< std::ofstream> outp_owner_;
65 coverage::coverage_data cd_;
68 class main_state_code :
public main_state_parser {
74 char** app_argv =
nullptr;
77 : app_argc(0), app_argv(nullptr)
80 bool setup(
int argc,
char** argv);
82 bool dump_code()
const;