Zach Laine
f2a8cb9d51
detail/default_eval.hpp -> detail/transform.hpp
2018-02-25 15:11:03 -06:00
Zach Laine
0dbd7592b8
Fix transform() in the case that a default-handled nonterminal does not come
...
from an expression template; as_expr_result -> minimal_expr.
Fixes #60 .
2018-02-25 14:58:52 -06:00
Zach Laine
f85c018dd8
Remove TODO.
...
Fixes #66 .
2018-02-25 14:21:16 -06:00
Zach Laine
74eab425e7
Substantially rewrite the description of transform() semantics.
...
Fixes #47 .
Fixes #50 .
2018-02-25 14:18:21 -06:00
Zach Laine
eef55d0f96
Flesh out note about mixing and matching ETs in a single expression;
...
miscellaneous copy editing.
Fixes #61 .
2018-02-25 00:45:52 -06:00
Zach Laine
a562edb346
Flesh out commentary in let.cpp; add it to the docs as an example.
2018-02-24 23:58:41 -06:00
Zach Laine
d8b2181185
Copy editing.
2018-02-24 23:58:11 -06:00
Zach Laine
746787cc82
Add section on the idiomatic use of YAP.
...
Fixes #44 .
2018-02-24 22:45:32 -06:00
Zach Laine
b861f977a4
Change the semantics of replacements() and replace_placeholders() so that they
...
replace placeholders with YAP terminals instead of values.
2018-02-24 17:11:03 -06:00
Zach Laine
bc4ea3f81d
Factor placeholder replacement out into its own transform object, available
...
via replacements() and replace_placeholders().
2018-02-24 15:57:43 -06:00
Zach Laine
260dc0e82d
Remove the now-redundant uses of as_expr().
2018-02-23 21:50:06 -06:00
Zach Laine
bcbcd8fa26
Don't needlessly return the nth element of a vector as a copy in take_nth.
...
Fixes #39 .
2018-02-23 21:50:06 -06:00
Zach Laine
46d9b4fe22
Improve vector_alloc_test based on review feedback.
...
Fixes #53 .
2018-02-23 21:50:06 -06:00
Zach Laine
746adaabfe
Condition the 'let' example build on the availability of cosntexpr if.
2018-02-23 02:03:46 -06:00
Zach Laine
3337d2eb11
Remove previous evaluate() implementation cruft.
2018-02-23 01:58:54 -06:00
Zach Laine
efecff22b7
Add a template that can be used to create evaluation transform objects, and
...
use this in evaluate().
2018-02-23 01:56:55 -06:00
Zach Laine
91e8c682b5
Remove customization point cruft from example/mixed.cpp.
2018-02-23 01:50:40 -06:00
Zach Laine
2391313a48
Take an arbitrary number of transform objects in transform{,_strict}().
2018-02-23 00:01:34 -06:00
Zach Laine
ebe94b698a
Add transform_strict().
...
Fixes #57 .
2018-02-22 23:18:43 -06:00
Zach Laine
6bb94c1082
Remove redundant case from iota_terminal_transform.
2018-02-22 23:18:43 -06:00
Zach Laine
54d1b14237
Wrap the first argument to transform() by calling as_expr() on it, so that
...
as_expr() is rarely needed outside of transform().
Continue to accept rvalue transform objects in the top-level transform(), but
do not perfectly forward it into the implementation details of transform().
This fixes the potential bug of stealing the movable contents of a transform.
Simplify the implementation of transform() considerably.
Fixes #62 .
2018-02-22 23:18:39 -06:00
Zach Laine
4b383f9343
Add example implementing a version of Boost.Phoenex's let() syntax.
2018-02-20 23:27:40 -06:00
Zach Laine
cb10bae121
Correct subtle error in value(). When value() is given a terminal, it must
...
return an lvalue reference if the terminal's tuple's single element is an
lvalue reference.
2018-02-20 23:24:49 -06:00
Zach Laine
c0dbeb3d3c
Clang format.
2018-02-20 23:21:15 -06:00
Zach Laine
20e4faa593
Clang format in include/ and test/.
...
Fixes #42 .
2018-02-20 01:15:52 -06:00
Zach Laine
36fdafaf38
Changes based on Part 3 of Steven Watanabe's review.
2018-02-20 01:02:41 -06:00
Zach Laine
7b7935b0d0
Rewrite "Features" section of intro, based on review feedback.
...
Fixes #46 .
2018-02-18 16:09:54 -06:00
Zach Laine
b80f06a4c6
Finish integrating the two new examples into the docs.
2018-02-18 15:53:12 -06:00
Zach Laine
25d4acf6d6
Add extensive comments to pipable_algorithms.cpp; use snippets from it in the
...
intro; add it as an example.
2018-02-18 13:33:53 -06:00
Zach Laine
98acc2b2e7
Add pipable_algorithms example.
2018-02-18 12:35:54 -06:00
Zach Laine
f86431905d
Update docs copyright year.
2018-02-17 21:17:32 -06:00
Zach Laine
b4d2d93fbb
Docs copy editing.
2018-02-17 21:17:32 -06:00
Zach Laine
32de54e53d
Cruft removal.
2018-02-17 00:21:17 -06:00
Zach Laine
b652079acb
Take any hana::IntegralConstant as the "i" argument to get().
...
Fixes #36 .
2018-02-17 00:14:26 -06:00
Zach Laine
5d011d83a0
Tweak comment.
2018-02-16 23:45:15 -06:00
Zach Laine
22b8ab969f
Make the calc3 get_arity transform a little nicer based on review feedback.
...
Fixes #43 .
2018-02-16 23:23:48 -06:00
Zach Laine
07848d6236
Simplify the overload set used in the transformf in transform_terminals.
...
Fixes #38 .
2018-02-16 23:07:38 -06:00
Zach Laine
123ea1df6a
Fix malformed expr_kind::call overload in transform_terminals example.
2018-02-16 23:02:59 -06:00
Zach Laine
8712988c25
Add expr_tag template to handle expr_kind <-> tag mapping.
...
Fixes #49 .
2018-02-16 22:34:09 -06:00
Zach Laine
0dc4966ca7
Copy editing.
2018-02-16 21:56:53 -06:00
Zach Laine
fc247a1f2d
Remove another probably unneeded reference to Proto.
2018-02-16 21:56:53 -06:00
Zach Laine
d1834c6c01
Add references to specific examples alluded to in a general reference to "Examples".
2018-02-16 21:56:53 -06:00
Zach Laine
99f4e4355f
Remove reference to Proto from the intro.
2018-02-16 21:56:53 -06:00
Zach Laine
0f4e144edc
Add terminal transform example; not working due to longstanding call_expr tag
...
transform matching bug.
2018-02-15 23:02:26 -06:00
Zach Laine
27380020d7
Revert "Transform terminals before they are unwrapped and given as arguments to"
...
This reverts commit 4e68505bab
.
Fixes #40 .
2018-02-15 21:24:20 -06:00
Zach Laine
191aa0c0ae
Consolidate expression<> code into a single header.
...
Fixes #37 .
2018-02-15 19:17:10 -06:00
Zach Laine
e1fcacccdd
detail::tag_for() -> to_tag(); add its compliment, to_kind().
2018-02-15 18:53:01 -06:00
Zach Laine
3709cd2eb3
Flatten the doc section nesting; extend intro; add primer.
2018-02-15 18:10:30 -06:00
Zach Laine
acfebf5643
Minor adjustments to get the docs building again; remove some doc cruft.
2018-02-15 18:07:53 -06:00
Zach Laine
8282c4b10e
Add Boost license copyright headers to all C++ files.
...
Fixes #31 .
2018-02-15 18:07:48 -06:00