summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/metaparse/example/meta_hs/token.hpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/metaparse/example/meta_hs/token.hpp
parentInitial commit. (diff)
downloadceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.tar.xz
ceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/metaparse/example/meta_hs/token.hpp')
-rw-r--r--src/boost/libs/metaparse/example/meta_hs/token.hpp168
1 files changed, 168 insertions, 0 deletions
diff --git a/src/boost/libs/metaparse/example/meta_hs/token.hpp b/src/boost/libs/metaparse/example/meta_hs/token.hpp
new file mode 100644
index 000000000..23ec0bf79
--- /dev/null
+++ b/src/boost/libs/metaparse/example/meta_hs/token.hpp
@@ -0,0 +1,168 @@
+#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 <ast.hpp>
+#include <except_keywords.hpp>
+
+#include <boost/metaparse/string.hpp>
+#include <boost/metaparse/token.hpp>
+#include <boost/metaparse/always_c.hpp>
+#include <boost/metaparse/lit_c.hpp>
+#include <boost/metaparse/one_of.hpp>
+#include <boost/metaparse/last_of.hpp>
+#include <boost/metaparse/return_.hpp>
+#include <boost/metaparse/int_.hpp>
+#include <boost/metaparse/foldl_reject_incomplete_start_with_parser.hpp>
+#include <boost/metaparse/alphanum.hpp>
+#include <boost/metaparse/transform.hpp>
+#include <boost/metaparse/letter.hpp>
+#include <boost/metaparse/keyword.hpp>
+#include <boost/metaparse/optional.hpp>
+
+#include <boost/mpl/lambda.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/vector.hpp>
+
+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<boost::metaparse::lit_c<'('> >
+ open_bracket;
+
+ typedef
+ boost::metaparse::token<boost::metaparse::lit_c<')'> >
+ close_bracket;
+
+ typedef
+ boost::metaparse::token<boost::metaparse::lit_c<'='> >
+ define;
+
+ typedef boost::metaparse::token<boost::metaparse::int_> 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<boost::mpl::_1, boost::mpl::_2>
+ >::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<boost::metaparse::string<'i','f'> >
+ >
+ if_;
+
+ typedef
+ boost::metaparse::token<
+ boost::metaparse::keyword<boost::metaparse::string<'t','h','e','n'> >
+ >
+ then;
+
+ typedef
+ boost::metaparse::token<
+ boost::metaparse::keyword<boost::metaparse::string<'e','l','s','e'> >
+ >
+ else_;
+}
+
+#endif
+
+