From 20b105d90993c934377cdbbf630ad676077314e2 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 19 Nov 2025 09:39:03 -0500 Subject: [PATCH] xo-reader: fix hardwired debug flag --- xo-reader/examples/exprreplxx/exprreplxx.cpp | 8 ++++++-- xo-reader/include/xo/reader/parser.hpp | 6 +++++- xo-reader/include/xo/reader/reader.hpp | 2 ++ xo-reader/src/reader/exprstate.cpp | 6 ++---- xo-reader/src/reader/exprstatestack.cpp | 4 ++-- xo-reader/src/reader/progress_xs.cpp | 6 ++---- xo-reader/src/reader/reader.cpp | 3 +-- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/xo-reader/examples/exprreplxx/exprreplxx.cpp b/xo-reader/examples/exprreplxx/exprreplxx.cpp index db1f3e1c..51d6e8d9 100644 --- a/xo-reader/examples/exprreplxx/exprreplxx.cpp +++ b/xo-reader/examples/exprreplxx/exprreplxx.cpp @@ -7,7 +7,10 @@ // presumeably replxx assumes input is a tty // -bool replxx_getline(bool interactive, std::size_t parser_stack_size, replxx::Replxx & rx, std::string& input) +bool replxx_getline(bool interactive, + std::size_t parser_stack_size, + replxx::Replxx & rx, + std::string& input) { using namespace std; @@ -58,7 +61,8 @@ welcome(std::ostream& os) } int -main() { +main() +{ using namespace replxx; using namespace xo::scm; using xo::scm::Expression; diff --git a/xo-reader/include/xo/reader/parser.hpp b/xo-reader/include/xo/reader/parser.hpp index 952fa9d6..9ef70f83 100644 --- a/xo-reader/include/xo/reader/parser.hpp +++ b/xo-reader/include/xo/reader/parser.hpp @@ -165,7 +165,11 @@ namespace xo { **/ explicit parser(bool debug_flag); - /** true if parser is at top-level, i.e. ready for next top-level expression **/ + bool debug_flag() const { return psm_.debug_flag(); } + + /** true if parser is at top-level, + * i.e. ready for next top-level expression + **/ bool is_at_toplevel() const { return stack_size() == 0; } /** for diagnostics: number of entries in parser stack **/ diff --git a/xo-reader/include/xo/reader/reader.hpp b/xo-reader/include/xo/reader/reader.hpp index 69c42885..546b923c 100644 --- a/xo-reader/include/xo/reader/reader.hpp +++ b/xo-reader/include/xo/reader/reader.hpp @@ -80,6 +80,8 @@ namespace xo { public: explicit reader(bool debug_flag); + bool debug_flag() const { return parser_.debug_flag(); } + /** call once before calling .read_expr() * for a new interactive session **/ diff --git a/xo-reader/src/reader/exprstate.cpp b/xo-reader/src/reader/exprstate.cpp index 476c6420..0a8b0d32 100644 --- a/xo-reader/src/reader/exprstate.cpp +++ b/xo-reader/src/reader/exprstate.cpp @@ -68,8 +68,7 @@ namespace xo { exprstate::on_def_token(const token_type & tk, parserstatemachine * p_psm) { - constexpr bool c_debug_flag = true; - scope log(XO_DEBUG(c_debug_flag)); + scope log(XO_DEBUG(p_psm->debug_flag())); log && log(xtag("exstype", p_psm->top_exprstate().exs_type())); @@ -357,8 +356,7 @@ namespace xo { exprstate::on_input(const token_type & tk, parserstatemachine * p_psm) { - constexpr bool c_debug_flag = true; - scope log(XO_DEBUG(c_debug_flag)); + scope log(XO_DEBUG(p_psm->debug_flag())); log && log(xtag("tk", tk)); log && log(xtag("state", *this)); log && log(xtag("psm", p_psm)); diff --git a/xo-reader/src/reader/exprstatestack.cpp b/xo-reader/src/reader/exprstatestack.cpp index 4ccad6d6..96852b73 100644 --- a/xo-reader/src/reader/exprstatestack.cpp +++ b/xo-reader/src/reader/exprstatestack.cpp @@ -28,7 +28,7 @@ namespace xo { void exprstatestack::push_exprstate(std::unique_ptr exs) { - constexpr bool c_debug_flag = true; + constexpr bool c_debug_flag = false; scope log(XO_DEBUG(c_debug_flag), xtag("exs", exs.get())); @@ -41,7 +41,7 @@ namespace xo { std::unique_ptr exprstatestack::pop_exprstate() { - constexpr bool c_debug_flag = true; + constexpr bool c_debug_flag = false; scope log(XO_DEBUG(c_debug_flag), xtag("top.exstype", top_exprstate().exs_type())); diff --git a/xo-reader/src/reader/progress_xs.cpp b/xo-reader/src/reader/progress_xs.cpp index e7047945..c99aaaa6 100644 --- a/xo-reader/src/reader/progress_xs.cpp +++ b/xo-reader/src/reader/progress_xs.cpp @@ -339,8 +339,7 @@ namespace xo { progress_xs::on_expr_with_semicolon(bp expr, parserstatemachine * p_psm) { - constexpr bool c_debug_flag = true; - scope log(XO_DEBUG(c_debug_flag)); + scope log(XO_DEBUG(p_psm->debug_flag())); log && log(xtag("lhs", lhs_), xtag("op", op_type_), xtag("expr", expr)); @@ -606,8 +605,7 @@ namespace xo { progress_xs::on_operator_token(const token_type & tk, parserstatemachine * p_psm) { - constexpr bool c_debug_flag = true; - scope log(XO_DEBUG(c_debug_flag)); + scope log(XO_DEBUG(p_psm->debug_flag())); constexpr const char * c_self_name = "progress_xs::on_operator_token"; diff --git a/xo-reader/src/reader/reader.cpp b/xo-reader/src/reader/reader.cpp index 5889462a..2fb59d72 100644 --- a/xo-reader/src/reader/reader.cpp +++ b/xo-reader/src/reader/reader.cpp @@ -31,8 +31,7 @@ namespace xo { reader_result reader::read_expr(const span_type & input_arg, bool eof) { - constexpr bool c_debug_flag = true; - scope log(XO_DEBUG(c_debug_flag)); + scope log(XO_DEBUG(this->debug_flag())); span_type input = input_arg;