You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vmassembler/src/parser.cpp

35 lines
669 B

#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 )
{
vinstrs.push_back( { label_name } );
}
void parse_t::add_vinstr( std::string vinstr_name )
{
vinstrs.back().vinstrs.push_back( { vinstr_name, false, 0u } );
}
void parse_t::add_vinstr( std::string vinstr_name, std::uintptr_t imm_val )
{
vinstrs.back().vinstrs.push_back( { vinstr_name, true, imm_val } );
}
bool parse_t::for_each( callback_t callback )
{
for ( auto &entry : vinstrs )
if ( !callback( &entry ) )
return false;
return true;
}