xo-reader2: + SyntaxStateMachine.forward_children method

Support gc traversal with goal of making ParserStateMachine a gc root
This commit is contained in:
Roland Conybeare 2026-03-24 17:43:45 -04:00
commit 3af72fec64
91 changed files with 626 additions and 39 deletions

View file

@ -29,8 +29,7 @@ namespace xo {
class DSequenceSsm : public DSyntaxStateMachine<DSequenceSsm> {
public:
using Super = DSyntaxStateMachine<DSequenceSsm>;
//using Sequence = xo::scm::Sequence;
//using Lambda = xo::scm::Lambda;
using ACollector = xo::mm::ACollector;
using AAllocator = xo::mm::AAllocator;
using DArena = xo::mm::DArena;
using ppindentinfo = xo::print::ppindentinfo;
@ -87,13 +86,20 @@ namespace xo {
ParserStateMachine * p_psm);
///@}
/** @defgroup scm-sequencessm-printable-facet printable facet **/
/** @defgroup scm-sequencessm-printable-facet printable facet methods **/
///@{
/** pretty printing support **/
bool pretty(const ppindentinfo & ppii) const;
///@}
/** @defgroup scm-sequencessm-gcobject-facet gcobject facet methods **/
///@{
/** gc support: visit gc-aware child pointers **/
void forward_children(obj<ACollector> gc) noexcept;
///@}
private:
explicit DSequenceSsm(DSequenceExpr * seq_expr);