0ac381dcf3
[SVN r44371]
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
/*=============================================================================
|
|
Copyright (c) 2004 Joao Abecasis
|
|
http://spirit.sourceforge.net/
|
|
|
|
Use, modification and distribution is subject to 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 <boost/spirit/include/classic_core.hpp>
|
|
|
|
#include <boost/spirit/include/classic_closure.hpp>
|
|
|
|
#include <boost/spirit/include/classic_ast.hpp>
|
|
#include <boost/spirit/include/classic_parse_tree.hpp>
|
|
|
|
using namespace BOOST_SPIRIT_CLASSIC_NS;
|
|
|
|
struct test_closure : public closure<test_closure, int>
|
|
{
|
|
member1 value;
|
|
};
|
|
|
|
struct test_grammar : public grammar<test_grammar>
|
|
{
|
|
template <typename ScannerT>
|
|
struct definition
|
|
{
|
|
definition(const test_grammar&)
|
|
{
|
|
}
|
|
|
|
rule<ScannerT, test_closure::context_t> const & start() const
|
|
{
|
|
return first;
|
|
}
|
|
|
|
rule<ScannerT, test_closure::context_t> first;
|
|
};
|
|
};
|
|
|
|
int main()
|
|
{
|
|
parse("abcd", test_grammar());
|
|
pt_parse("abcd", test_grammar());
|
|
ast_parse("abcd", test_grammar());
|
|
}
|
|
|
|
|