Skip to content
Snippets Groups Projects
Select Git revision
  • 3369b1f2a70de3702f353e14cd4a625ce6ad06b6
  • develop default protected
  • feature/advection
  • feature/composite-scheme-other-fluxes
  • origin/stage/bouguettaia
  • save_clemence
  • feature/local-dt-fsi
  • feature/variational-hydro
  • feature/gmsh-reader
  • feature/reconstruction
  • feature/kinetic-schemes
  • feature/composite-scheme-sources
  • feature/serraille
  • feature/composite-scheme
  • hyperplastic
  • feature/polynomials
  • feature/gks
  • feature/implicit-solver-o2
  • feature/coupling_module
  • feature/implicit-solver
  • feature/merge-local-dt-fsi
  • v0.5.0 protected
  • v0.4.1 protected
  • v0.4.0 protected
  • v0.3.0 protected
  • v0.2.0 protected
  • v0.1.0 protected
  • Kidder
  • v0.0.4 protected
  • v0.0.3 protected
  • v0.0.2 protected
  • v0 protected
  • v0.0.1 protected
33 results

ASTNodeDataType.cpp

Blame
  • OStreamProcessor.hpp 1.00 KiB
    #ifndef OSTREAM_PROCESSOR_HPP
    #define OSTREAM_PROCESSOR_HPP
    
    #include <node_processor/INodeProcessor.hpp>
    
    #include <Demangle.hpp>
    
    class OStreamProcessor final : public INodeProcessor
    {
      ASTNode& m_node;
      std::ostream& m_os;
    
     public:
      std::string
      describe() const
      {
        return demangle<decltype(*this)>();
      }
    
      void
      execute(ExecUntilBreakOrContinue& exec_policy)
      {
        for (size_t i = 0; i < m_node.children.size(); ++i) {
          m_node.children[i]->execute(exec_policy);
          std::visit(
            [&](auto&& value) {
              using ValueT = std::decay_t<decltype(value)>;
              if constexpr (not std::is_same_v<std::monostate, ValueT>) {
                if constexpr (std::is_same_v<bool, ValueT>) {
                  m_os << std::boolalpha << value;
                } else {
                  m_os << value;
                }
              }
            },
            m_node.children[i]->m_value);
        }
      }
    
      OStreamProcessor(ASTNode& node, std::ostream& os) : m_node{node}, m_os(os)
      {
        ;
      }
    };
    
    #endif   // OSTREAM_PROCESSOR_HPP