#ifndef META_HS_TOKEN_HPP #define META_HS_TOKEN_HPP // Copyright Abel Sinkovics (abel@sinkovics.hu) 2012. // 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace token { typedef boost::metaparse::token< boost::metaparse::always_c<'+',boost::metaparse::string<'.','+','.'> > > plus; typedef boost::metaparse::token< boost::metaparse::always_c<'-',boost::metaparse::string<'.','-','.'> > > minus; typedef boost::metaparse::token< boost::metaparse::always_c<'*',boost::metaparse::string<'.','*','.'> > > mult; typedef boost::metaparse::token< boost::metaparse::always_c<'/',boost::metaparse::string<'.','/','.'> > > div; typedef boost::metaparse::token< boost::metaparse::one_of< boost::metaparse::last_of< boost::metaparse::lit_c<'='>, boost::metaparse::lit_c<'='>, boost::metaparse::return_< boost::metaparse::string<'.','=','=','.'> > >, boost::metaparse::last_of< boost::metaparse::lit_c<'/'>, boost::metaparse::lit_c<'='>, boost::metaparse::return_< boost::metaparse::string<'.','/','=','.'> > >, boost::metaparse::last_of< boost::metaparse::lit_c<'<'>, boost::metaparse::one_of< boost::metaparse::always_c< '=', boost::metaparse::string<'.','<','=','.'> >, boost::metaparse::return_< boost::metaparse::string<'.','<','.'> > > >, boost::metaparse::last_of< boost::metaparse::lit_c<'>'>, boost::metaparse::optional< boost::metaparse::always_c< '=', boost::metaparse::string<'.','>','=','.'> >, boost::metaparse::string<'.','>','.'> > > > > cmp; typedef boost::metaparse::token > open_bracket; typedef boost::metaparse::token > close_bracket; typedef boost::metaparse::token > define; typedef boost::metaparse::token int_; typedef boost::metaparse::token< except_keywords< boost::metaparse::foldl_reject_incomplete_start_with_parser< boost::metaparse::one_of< boost::metaparse::alphanum, boost::metaparse::lit_c<'_'> >, boost::metaparse::transform< boost::metaparse::one_of< boost::metaparse::letter, boost::metaparse::lit_c<'_'> >, boost::mpl::lambda< boost::mpl::push_back< boost::metaparse::string<>, boost::mpl::_1 > >::type >, boost::mpl::lambda< boost::mpl::push_back >::type >, boost::mpl::vector< boost::metaparse::string<'i','f'>, boost::metaparse::string<'t','h','e','n'>, boost::metaparse::string<'e','l','s','e'> > > > name; typedef boost::metaparse::token< boost::metaparse::keyword > > if_; typedef boost::metaparse::token< boost::metaparse::keyword > > then; typedef boost::metaparse::token< boost::metaparse::keyword > > else_; } #endif