Implement ruleset_t::add_token

This commit is contained in:
Madeline Busig 2025-04-29 05:55:13 -07:00
parent 487c5c5a69
commit 66fe6ba388
2 changed files with 16 additions and 2 deletions

View File

@ -30,7 +30,7 @@ enum class token_type_e {
}; };
struct token_t { struct token_t {
token_type_e m_token = token_type_e::empty; token_type_e m_type = token_type_e::empty;
mtl::fixed m_value; mtl::fixed m_value;
}; };
@ -111,7 +111,6 @@ public:
* *
* @ret @c token_id_t of the newly added token, local to this ruleset * @ret @c token_id_t of the newly added token, local to this ruleset
* *
* @exception @c mtl::invalid_argument if the given token type is invalid
* @exception @c mtl::length_error if the maximum number of tokens is reached * @exception @c mtl::length_error if the maximum number of tokens is reached
*/ */
token_id_t add_token(token_type_e type, mtl::fixed value = 0); token_id_t add_token(token_type_e type, mtl::fixed value = 0);

View File

@ -8,6 +8,21 @@ namespace log = mtl::log;
namespace fractal { namespace fractal {
bool ruleset_t::tokens_full() const {
return m_tokens.full();
}
token_id_t ruleset_t::add_token(token_type_e type, mtl::fixed value) {
if (m_tokens.full()) {
throw mtl::length_error();
}
token_t tok { .m_type = type, .m_value = value };
m_tokens.push_back(tok);
return m_tokens.size() - 1;
}
#if 0 #if 0
token_id_t generator_t::add_token(token_type_e type, mtl::fixed value) { token_id_t generator_t::add_token(token_type_e type, mtl::fixed value) {
log::debug << "Adding token with type " << (int)type << endl; log::debug << "Adding token with type " << (int)type << endl;