Add 'xo-reader/' from commit 'c46c0f1cc4'

git-subtree-dir: xo-reader
git-subtree-mainline: dacdeb2cd7
git-subtree-split: c46c0f1cc4
This commit is contained in:
Roland Conybeare 2025-05-11 01:40:20 -05:00
commit 0ae98c211d
48 changed files with 5184 additions and 0 deletions

View file

@ -0,0 +1,47 @@
/* file expect_symbol_xs.cpp
*
* author: Roland Conybeare
*/
#include "expect_symbol_xs.hpp"
#include "parserstatemachine.hpp"
#include "exprstatestack.hpp"
namespace xo {
namespace scm {
std::unique_ptr<expect_symbol_xs>
expect_symbol_xs::make() {
return std::make_unique<expect_symbol_xs>(expect_symbol_xs());
}
void
expect_symbol_xs::start(parserstatemachine * p_psm)
{
p_psm->push_exprstate(expect_symbol_xs::make());
}
expect_symbol_xs::expect_symbol_xs()
: exprstate(exprstatetype::expect_symbol)
{}
void
expect_symbol_xs::on_symbol_token(const token_type & tk,
parserstatemachine * p_psm)
{
constexpr bool c_debug_flag = true;
scope log(XO_DEBUG(c_debug_flag));
log && log(xtag("tk", tk));
/* have to do pop first, before sending symbol to
* the o.g. symbol-requester
*/
std::unique_ptr<exprstate> self = p_psm->pop_exprstate();
p_psm->on_symbol(tk.text());
}
} /*namespace scm*/
} /*namespace xo*/
/* end expect_symbol_xs.cpp */