#define BOOST_SPIRIT_DEBUG
#include <boost/spirit/core.hpp>
#include <boost/spirit/attribute.hpp>
#include <boost/spirit/utility.hpp>
struct my_parser : boost::spirit::grammar<my_parser>
{
template <typename ScannerT>
struct definition
{
definition(my_parser const& self)
{
using namespace boost::spirit;
using namespace phoenix;
expr = /* define rule here. */;
BOOST_SPIRIT_DEBUG_RULE(expr);
}
boost::spirit::rule expr;
boost::spirit::rule const&
start() const { return expr; }
};
};
BOOST_SPIRIT_DEBUGとBOOST_SPIRIT_DEBUG_RULEで綺麗なツリー表示をしてくれるようになる。
試行したルールを順番に成功失敗の記号とともにツリー型に表示。