#include "parser.h" parse_t::parse_t() { } auto parse_t::get_instance() -> parse_t * { static parse_t obj; return &obj; } void parse_t::add_label( std::string label_name ) { virt_labels.push_back( { label_name } ); } void parse_t::add_vinstr( std::string vinstr_name ) { virt_labels.back().vinstrs.push_back( { vinstr_name, false, 0u } ); } void parse_t::add_vinstr( std::string vinstr_name, std::uintptr_t imm_val ) { virt_labels.back().vinstrs.push_back( { vinstr_name, true, imm_val } ); } bool parse_t::for_each( callback_t callback ) { for ( auto &entry : virt_labels ) if ( !callback( &entry ) ) return false; return true; }