spirit/classic/example/intermediate/simple_xml/driver.cpp
Hartmut Kaiser aeae1cb7c6 Spirit: cleaning inspect errors
[SVN r56670]
2009-10-09 12:48:51 +00:00

44 lines
1.0 KiB
C++

// 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 "xml_g.hpp"
#include <boost/spirit/include/classic_utility.hpp>
#include <iostream>
namespace std
{
std::ostream & operator << (std::ostream &os,std::pair<std::string,std::string> const &p)
{
return os << p.first << '=' << p.second;
}
std::ostream & operator << (std::ostream &os,const tag &t)
{
return os << t.id;
}
}
int main()
{
const char *test =
// "<A x=\"1\" y=\"2\"> test 1 </A>"
// "<B x=\"3\" y= \"4\" z = \"10\"> test 3 </B>"
// "<C><A></A><V><W></W></V></C>"
// "<D x=\"4\"/>"
"<E>xxx<F>yyy</F>zzz</E>"
;
std::list<tag> tags;
xml_g g(tags);
if(SP::parse(test,g,SP::comment_p("<---","--->")).full)
{
std::for_each(tags.begin(),tags.end(),walk_data());
}
else
{
std::cout << "parse failed\n";
}
}