diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/boost/libs/spirit/test/qi/grammar_fail.cpp | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/spirit/test/qi/grammar_fail.cpp')
-rw-r--r-- | src/boost/libs/spirit/test/qi/grammar_fail.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/boost/libs/spirit/test/qi/grammar_fail.cpp b/src/boost/libs/spirit/test/qi/grammar_fail.cpp new file mode 100644 index 00000000..72b3a566 --- /dev/null +++ b/src/boost/libs/spirit/test/qi/grammar_fail.cpp @@ -0,0 +1,39 @@ +/*============================================================================= + Copyright (c) 2001-2010 Hartmut Kaiser + + 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 <boost/spirit/include/qi_operator.hpp> +#include <boost/spirit/include/qi_char.hpp> +#include <boost/spirit/include/qi_string.hpp> +#include <boost/spirit/include/qi_numeric.hpp> +#include <boost/spirit/include/qi_nonterminal.hpp> +#include <boost/spirit/include/qi_parse.hpp> + +namespace qi = boost::spirit::qi; + +struct num_list : qi::grammar<char const*, qi::rule<char const*> > +{ + num_list() : base_type(start) + { + num = qi::int_; + start = num >> *(',' >> num); + } + + qi::rule<char const*, qi::rule<char const*> > start, num; +}; + +// this test must fail compiling +int main() +{ + char const* input = "some input, it doesn't matter"; + char const* end = &input[strlen(input)]; + + num_list g; + qi::phrase_parse(input, end, g, + qi::space | ('%' >> *~qi::char_('\n') >> '\n')); + + return 0; +} |