xo-interpreter2 stack: + reason arg to visit_gco_children()

Helps streamline DX1Collector in xo-gc/.
Want both forward and verify entry points for the same
representation.
This commit is contained in:
Roland Conybeare 2026-04-10 01:10:03 -04:00
commit d14f119a37
102 changed files with 258 additions and 167 deletions

View file

@ -56,6 +56,7 @@ namespace xo {
public:
using Super = DSyntaxStateMachine<DIfElseSsm>;
using AGCObjectVisitor = xo::mm::AGCObjectVisitor;
using VisitReason = xo::mm::VisitReason;
using AAllocator = xo::mm::AAllocator;
using DArena = xo::mm::DArena;
using TypeDescr = xo::reflect::TypeDescr;
@ -171,7 +172,8 @@ namespace xo {
/** @defgroup scm-ifelsessm-gc-support gc support methods **/
///@{
void visit_gco_children(obj<AGCObjectVisitor> gc) noexcept;
void visit_gco_children(VisitReason reason,
obj<AGCObjectVisitor> gc) noexcept;
///@}

View file

@ -44,6 +44,7 @@ namespace xo {
using TypeDescr = xo::scm::ASyntaxStateMachine::TypeDescr;
using AGCObjectVisitor = xo::scm::ASyntaxStateMachine::AGCObjectVisitor;
using AGCObject = xo::scm::ASyntaxStateMachine::AGCObject;
using VisitReason = xo::scm::ASyntaxStateMachine::VisitReason;
using Copaque = xo::scm::ASyntaxStateMachine::Copaque;
using Opaque = xo::scm::ASyntaxStateMachine::Opaque;
///@}
@ -77,7 +78,7 @@ namespace xo {
/** update state machine for nested quoted literal @p lit **/
static void on_quoted_literal(DIfElseSsm & self, obj<AGCObject> lit, ParserStateMachine * p_psm);
/** gc support: visit immediate gc-aware child pointers with @p gc. Call gc.visit_child() for each **/
static void visit_gco_children(DIfElseSsm & self, obj<AGCObjectVisitor> gc);
static void visit_gco_children(DIfElseSsm & self, VisitReason reason, obj<AGCObjectVisitor> gc);
///@}
};