xo-umbrella2/xo-expression/include/xo/expression/pretty_localenv.hpp
Roland Conybeare 043b2d7efc git subrepo clone (merge) git@github.com:Rconybea/xo-expression.git xo-expression
subrepo:
  subdir:   "xo-expression"
  merged:   "fbc5b619"
upstream:
  origin:   "git@github.com:Rconybea/xo-expression.git"
  branch:   "main"
  commit:   "fbc5b619"
git-subrepo:
  version:  "0.4.9"
  origin:   "???"
  commit:   "???"
2026-06-06 22:09:38 -04:00

39 lines
1.2 KiB
C++

/* @file pretty_localenv.hpp */
#pragma once
#include "xo/indentlog/print/pretty.hpp"
#include "xo/refcnt/pretty_refcnt.hpp"
#include "LocalSymtab.hpp"
namespace xo {
namespace print {
template <>
struct ppdetail<xo::scm::SymbolTable> {
static bool print_pretty(const ppindentinfo & ppii, const xo::scm::SymbolTable & x) {
return x.pretty_print(ppii);
}
};
template <>
struct ppdetail<xo::scm::LocalSymtab> {
static bool print_pretty(const ppindentinfo & ppii, const xo::scm::LocalSymtab & x) {
return x.pretty_print(ppii);
}
};
template <>
struct ppdetail<xo::scm::LocalSymtab*> {
static bool print_pretty(const ppindentinfo & ppii, const xo::scm::LocalSymtab* x) {
if (x) {
return x->pretty_print(ppii);
} else {
ppii.pps()->write("<nullptr ");
ppii.pps()->write(reflect::type_name<xo::scm::LocalSymtab>());
ppii.pps()->write(">");
return ppii.pps()->has_margin();
}
}
};
}
}