Commit Graph

4777 Commits

Author SHA1 Message Date
Joel de Guzman
f6b78c4464 Merge branch 'lit-leaks-attribute' of https://github.com/redbaron/spirit into redbaron-lit-leaks-attribute
Conflicts:
	test/Jamfile
	test/x3/sequence.cpp
2014-04-01 10:47:57 +08:00
Joel de Guzman
131e64bd98 Added x3 tests to Jamfile (reverted from commit c3935ca442) 2014-04-01 10:30:47 +08:00
Joel de Guzman
5e1c8a2dd8 Merge pull request #8 from redbaron/fix-one-element-seq
Fix one element seq
2014-04-01 10:25:52 +08:00
Joel de Guzman
01608a1294 added missing unused.hpp file 2014-04-01 08:28:30 +08:00
Joel de Guzman
b23c6c741b Merge branch 'develop' 2014-04-01 08:21:32 +08:00
Joel de Guzman
be00816174 added jamfile 2014-04-01 08:10:03 +08:00
Joel de Guzman
5368c19e4c - fixed move_to handling when src and dest are the same
- added jamfile
2014-04-01 08:09:21 +08:00
Maxim Ivanov
6f5e169987 Move move_to condition to template
Even if branch is never taken it still must be compiled
properly, which can cause compile errors. Moving condition
to template eliminates branching.
2014-03-26 09:52:28 +00:00
Maxim Ivanov
8ea47e5025 Fix for the case when fusion assoc seq is on either side of seq 2014-03-26 09:52:28 +00:00
Maxim Ivanov
dfed8f3dea Added test for parsing to fusion map with keys parsed in alternative<> 2014-03-26 09:44:43 +00:00
Maxim Ivanov
19d2da2f5b Support alternative over keys to be used as a key for fussion assoc
Adds support for parsers like:
auto key1 = lit("key1=") >> attr(key1());
auto key2 = lit("key2=") >> attr(key2());
auto value = int();
auto pair = key1|key2 >> value;

where attribute passed to pair.parse() is fusion associative sequence
2014-03-26 09:44:43 +00:00
Maxim Ivanov
bb16f871ae Merge branch 'fix-one-element-seq' into parse-into-fusion-map 2014-03-25 10:14:57 +00:00
Maxim Ivanov
58e177beb7 Support parsing into fusion adapted structs 2014-03-25 10:14:46 +00:00
Maxim Ivanov
2f1659413b Fix for sequences with only one element producing attr
If in a sequence only one element produces attribute, then make whole
sequence to produce that attribute,rather than wrapping it into
fusion::deque. Not doing so breaks alternative<> parser, when such
sequences are on left and right side of it, because it then generates
variant attribute over fusion:deque<> attributes, which is not
what it is supposed to do. Plus it breaks traits::move_to when both
source and destination are single element fusions sequences. Hence this
fix to put everything back to normal for this edge case.
2014-03-24 23:48:28 +00:00
Maxim Ivanov
3dc3960e67 Added test for fusion::map parsing 2014-03-20 11:25:22 +00:00
Maxim Ivanov
641029c983 Avoid needless construction of sequence<> parser 2014-03-20 11:25:22 +00:00
Maxim Ivanov
b11cfb5bc5 Make it possible to parse 2 element sequences directly into fusion map
If parser produces 2 element tuple, then fusion::map can be passed
as an attribute to it. Type of first element in produces tuple is used
as a key and second element is a value stored in map.

Few notes how does it work:
- parsing to fusion::map is treated as parsing to container
- special parse_into_container logic call's parser with it's native
  attribute type (fusion::deque<> for sequences) and then updates
  fusion::map with values from it.
2014-03-20 11:25:22 +00:00
Joel de Guzman
af07ca7300 Merge branch 'origin/develop' 2014-03-20 12:34:15 +08:00
Maxim Ivanov
34ff12be41 unify built container for single element fusion::deque
continue to reduce variety of containers floating inside instantiated
templates.
2014-03-19 23:33:46 +00:00
Maxim Ivanov
676f1f882a make x3::omit[] fail at compile time if it is called with non-unused_type attr
It should never be called with anything but unused_type attribute
anyway, but if something did it due to error it is better to be safe and
fail at compile time rather than unexpectedly  update attribute, which
could lead to hard to detect errors.
2014-03-19 22:53:48 +00:00
Maxim Ivanov
ba5b50f691 as x3::lit() is fixes no need to omit[] it anymore 2014-03-19 22:36:01 +00:00
Maxim Ivanov
4f97aa987c stop x3::lit from updating passed container 2014-03-19 22:34:31 +00:00
Maxim Ivanov
c206e3d0ac Added test for recently fixed sequence attribute consistency bug 2014-03-19 20:22:08 +00:00
Maxim Ivanov
84c0c07546 use std::string as a container for char
That is what normally users would pass, so in some situations it
can avoid copying data.
2014-03-19 19:39:13 +00:00
Maxim Ivanov
c3935ca442 Added x3 tests to Jamfile 2014-03-19 15:48:49 +00:00
Joel de Guzman
b91d84f95d Merge pull request #3 from redbaron/parse-into-container-seq-unused-attr
Fix for parsing sequences with x3::unused attribute
2014-03-19 07:25:04 +08:00
Maxim Ivanov
2d862e1d8d Fix for parsing sequences with x3::unused attribute 2014-03-18 18:21:40 +00:00
Joel de Guzman
b69ec696a3 Removing phoenix2 docs and lib stuff 2014-03-18 12:00:08 +08:00
Joel de Guzman
0262419033 fixed wrong include guard 2014-03-18 11:33:10 +08:00
Joel de Guzman
8a35332835 Merging Spirit x3 into devel 2014-03-18 11:06:19 +08:00
Joel de Guzman
5767624292 preparing for migration to boost devel 2014-03-18 10:53:30 +08:00
Joel de Guzman
c2c8d6ace2 moving headers to include to mimic modular boost structure 2014-03-18 10:30:47 +08:00
Joel de Guzman
13f3a50904 some cleanup 2014-03-18 09:31:12 +08:00
Joel de Guzman
f6832411ba Merge pull request #8 from redbaron/kleene-attr-keep-unmodified
Bug fix for parse_into_container_impl to allow partial matches generate consistent container attribute.
2014-03-18 09:08:54 +08:00
Maxim Ivanov
aedd54bf4d make parse_into_container for sequence<> to update attribute only on success 2014-03-18 00:05:05 +00:00
Joel de Guzman
00f0e03a56 Merge pull request #2 from yurivkhan/fix
Fix attribute_size<optional<T> >
2014-03-03 16:54:48 +08:00
Yuri Khan
bdf4fd8d28 Fix attribute_size<optional<T> > 2014-03-03 15:19:12 +07:00
Yuri Khan
555fb29c71 Add test exercising attribute_size<optional<T> > 2014-03-03 15:19:11 +07:00
K-ballo
76f65843ce Added changes needed by resolution of #7730 2014-02-20 20:04:28 -06:00
Joel de Guzman
3c8b12c30a fixed bad link 2014-02-06 05:56:33 +08:00
Joel de Guzman
02ef48736f fixed missing dependency in jamfile 2014-01-23 11:22:49 +08:00
Joel de Guzman
0e0005b7a2 Create README.md 2014-01-22 23:28:34 +08:00
Joel de Guzman
5df5b42f7c merging from develop 2014-01-22 22:33:33 +08:00
Joel de Guzman
254ea86f82 syncing from develop 2014-01-22 22:23:12 +08:00
Joel de Guzman
ca8ca3c729 Merge branch 'develop'
Conflicts:
	doc/what_s_new.qbk
	example/qi/compiler_tutorial/Jamfile
	example/qi/compiler_tutorial/conjure2/error_handler.hpp
	example/qi/typeof.cpp
	include/boost/spirit/home/karma/detail/pass_container.hpp
	include/boost/spirit/home/karma/nonterminal/rule.hpp
	include/boost/spirit/home/karma/operator/alternative.hpp
	include/boost/spirit/home/karma/operator/sequence.hpp
	include/boost/spirit/home/karma/string/symbols.hpp
	include/boost/spirit/home/lex/lexer/lexer.hpp
	include/boost/spirit/home/lex/lexer/support_functions.hpp
	include/boost/spirit/home/lex/qi/plain_tokenid.hpp
	include/boost/spirit/home/qi/copy.hpp
	include/boost/spirit/home/qi/nonterminal/rule.hpp
	include/boost/spirit/home/qi/stream/stream.hpp
	include/boost/spirit/home/qi/string/symbols.hpp
	include/boost/spirit/home/support/attributes.hpp
	include/boost/spirit/home/support/auto.hpp
	include/boost/spirit/home/support/extended_variant.hpp
	include/boost/spirit/home/support/info.hpp
	include/boost/spirit/repository/home/qi/directive/kwd.hpp
	include/boost/spirit/repository/home/qi/operator/detail/keywords.hpp
	repository/test/qi/keywords.cpp
	test/karma/regression_container_variant_sequence.cpp
2014-01-22 22:18:57 +08:00
Joel de Guzman
baece41cc4 Removing conjure3 for now
[SVN r81091] (reverted from commit f39caa2da4)
2014-01-22 22:10:36 +08:00
Joel de Guzman
8a20147b3a Spirit: fixing inspect errors
[SVN r82191]
2014-01-22 22:06:37 +08:00
Joel de Guzman
fc6be25a8c Removing (broken) scheme example.
[SVN r81058]
2014-01-22 21:42:26 +08:00
Joel de Guzman
e974ea7c62 Removing (broken) scheme example.
[SVN r81058]
2014-01-22 21:38:53 +08:00
Joel de Guzman
1d9633a9c9 Support for BOOST_SPIRIT_AUTO and qi::copy.
[SVN r76928]
2014-01-22 21:30:28 +08:00