• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3     Copyright (c) 2001-2011 Hartmut Kaiser
4 
5     Distributed under the Boost Software License, Version 1.0. (See accompanying
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 =============================================================================*/
8 #if !defined(BOOST_SPIRIT_CONJURE_FUNCTION_HPP)
9 #define BOOST_SPIRIT_CONJURE_FUNCTION_HPP
10 
11 #include "statement.hpp"
12 
13 namespace client { namespace parser
14 {
15     ///////////////////////////////////////////////////////////////////////////////
16     //  The function grammar
17     ///////////////////////////////////////////////////////////////////////////////
18     template <typename Iterator, typename Lexer>
19     struct function : qi::grammar<Iterator, ast::function()>
20     {
21         typedef error_handler<typename Lexer::base_iterator_type, Iterator>
22             error_handler_type;
23 
24         function(error_handler_type& error_handler, Lexer const& l);
25 
26         statement<Iterator, Lexer> body;
27 
28         qi::rule<Iterator, ast::identifier()> identifier;
29         qi::rule<Iterator, std::list<ast::identifier>()> argument_list;
30         qi::rule<Iterator, ast::function()> start;
31     };
32 }}
33 
34 #endif
35 
36 
37