xo-interpreter2: scaffold repl + alloc measurement frameowkr

This commit is contained in:
Roland Conybeare 2026-02-02 21:55:34 -05:00
commit f6aae4190e
42 changed files with 1398 additions and 198 deletions

View file

@ -36,6 +36,7 @@ namespace xo {
class SchematikaReader {
public:
using AAllocator = xo::mm::AAllocator;
using MemorySizeInfo = xo::mm::MemorySizeInfo;
using span_type = xo::mm::span<const char>;
using size_type = std::size_t;
@ -43,6 +44,9 @@ namespace xo {
SchematikaReader(const ReaderConfig & config,
obj<AAllocator> expr_alloc);
std::size_t _n_store() const noexcept;
MemorySizeInfo _store_info(std::size_t i) const noexcept;
/** true iff parser is at top-level.
* false iff parser is working on incomplete expression
**/
@ -53,6 +57,11 @@ namespace xo {
**/
void begin_interactive_session();
/** prepare batch session
* (limits expression types at toplevel)
**/
void begin_batch_session();
/** consume input @p input_cstr **/
const ReaderResult & read_expr(span_type input_span, bool eof);