/* file pretty_parserstatemachine.cpp * * author: Roland Conybeare, Jul 2025 */ #include "pretty_parserstatemachine.hpp" #include "pretty_exprstatestack.hpp" #include "pretty_envframestack.hpp" #include "exprstatestack.hpp" namespace xo { namespace print { bool ppdetail::print_pretty(const ppindentinfo & ppii, const xo::scm::parserstatemachine & x) { ppstate * pps = ppii.pps(); if (ppii.upto()) { if (!pps->print_upto("print_upto_tag("stack", &x.xs_stack_)) return false; if (!pps->print_upto_tag("env_stack", &x.env_stack_)) return false; return pps->print_upto(">"); } else { pps->write("newline_pretty_tag(ppii.ci1(), "stack", &x.xs_stack_); pps->newline_pretty_tag(ppii.ci1(), "env_stack", &x.env_stack_); pps->write(">"); return false; } } bool ppdetail::print_pretty(const ppindentinfo & ppii, const xo::scm::parserstatemachine * x) { if (x) { return ppdetail::print_pretty(ppii, *x); } else { if (ppii.upto()) { return ppii.pps()->print_upto(""); } else { ppii.pps()->write(""); return false; } } } } /*namespace print*/ } /*namespace xo*/