xo-interpreter2/src/interpreter2/init_interpreter2.cpp

48 lines
1.3 KiB
C++

/** @file init_interpreter2.cpp
*
* @author Roland Conybeare, Jan 2026
**/
#include "init_interpreter2.hpp"
#include "interpreter2_register_primitives.hpp"
#include "interpreter2_register_facets.hpp"
#include "interpreter2_register_types.hpp"
#include <xo/reader2/init_reader2.hpp>
#include <xo/alloc2/CollectorTypeRegistry.hpp>
namespace xo {
using xo::scm::interpreter2_register_primitives;
using xo::scm::interpreter2_register_facets;
using xo::scm::interpreter2_register_types;
using xo::scm::PrimitiveRegistry;
using xo::mm::CollectorTypeRegistry;
void
InitSubsys<S_interpreter2_tag>::init()
{
interpreter2_register_facets();
CollectorTypeRegistry::instance().register_types(&interpreter2_register_types);
PrimitiveRegistry::instance().register_primitives(&interpreter2_register_primitives);
}
InitEvidence
InitSubsys<S_interpreter2_tag>::require()
{
scope log(XO_DEBUG(true));
InitEvidence retval;
/* direct subsystem deps for xo-interpreter2/ */
retval ^= InitSubsys<S_reader2_tag>::require();
/* xo-interpreter2/'s own initialization code */
retval ^= Subsystem::provide<S_interpreter2_tag>("interpreter2", &init);
return retval;
}
} /*namespace xo*/
/* end init_interpreter2.cpp */