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:
parent
31df51ac8e
commit
d14f119a37
102 changed files with 258 additions and 167 deletions
|
|
@ -60,6 +60,7 @@ namespace xo {
|
|||
using Super = DSyntaxStateMachine<DLambdaSsm>;
|
||||
using DLocalSymtab = xo::scm::DLocalSymtab;
|
||||
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;
|
||||
|
|
@ -189,7 +190,8 @@ namespace xo {
|
|||
///@{
|
||||
|
||||
/** gc support: visit gc-aware child pointers **/
|
||||
void visit_gco_children(obj<AGCObjectVisitor> gc) noexcept;
|
||||
void visit_gco_children(VisitReason reason,
|
||||
obj<AGCObjectVisitor> gc) noexcept;
|
||||
|
||||
///@}
|
||||
|
||||
|
|
|
|||
|
|
@ -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(DLambdaSsm & 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(DLambdaSsm & self, obj<AGCObjectVisitor> gc);
|
||||
static void visit_gco_children(DLambdaSsm & self, VisitReason reason, obj<AGCObjectVisitor> gc);
|
||||
///@}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue