blob: 088f3a0087cb618444552f61ed6741d765f8bf7a [file] [log] [blame]
// Copyright (c) 2005 Carl Barron. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include "tag.hpp"
#include <iostream>
#include <algorithm>
namespace
{
struct print_pair
{
template <class P>
void operator () (const P &x)
{
std::cout << '\t' << x.first << ':' << x.second <<'\n';
}
};
}
void walk_data::operator () (const std::string &x)
{
std::cout << "String:" << x <<'\n';
}
void walk_data::operator () (const tag &t)
{
std::cout << "Tag:" << t.id << '\n';
std::cout << "Attributes\n";
std::for_each
(
t.attributes.begin(),
t.attributes.end(),
print_pair()
);
std::cout << "Children:\n";
std::for_each
(
t.children.begin(),
t.children.end(),
boost::apply_visitor(*this)
);
std::cout << "End of tag:" << t.id << '\n';
}