From ca4181a822f6a3c0a475c85ca6a60ea50f8ecd06 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 13 Jul 2025 21:20:57 -0500 Subject: [PATCH] xo-expression: + pretty_expression.hpp --- .../xo/expression/pretty_expression.hpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 xo-expression/include/xo/expression/pretty_expression.hpp diff --git a/xo-expression/include/xo/expression/pretty_expression.hpp b/xo-expression/include/xo/expression/pretty_expression.hpp new file mode 100644 index 00000000..1fe2bc77 --- /dev/null +++ b/xo-expression/include/xo/expression/pretty_expression.hpp @@ -0,0 +1,37 @@ +/* @file pretty_expression.hpp + * + * author: Roland Conybeare, Jul 2025 + */ + +#pragma once + +#include "xo/indentlog/print/pretty.hpp" +#include "xo/indentlog/print/pretty_tag.hpp" +#include "xo/refcnt/pretty_refcnt.hpp" +#include "Expression.hpp" + +namespace xo { + namespace print { + template<> + struct ppdetail { + static bool print_upto(ppstate * pps, const xo::ast::GeneralizedExpression & x) { + return x.pretty_print(pps, true); + } + + static void print_pretty(ppstate * pps, const xo::ast::GeneralizedExpression & x) { + x.pretty_print(pps, false); + } + }; + + template <> + struct ppdetail { + static bool print_upto(ppstate * pps, const xo::ast::Expression & x) { + return x.pretty_print(pps, true); + } + + static void print_pretty(ppstate * pps, const xo::ast::Expression & x) { + x.pretty_print(pps, false); + } + }; + } +}