Commit Graph

888 Commits

Author SHA1 Message Date
Eric Niebler
93938f5110 add proto::context<>, a default evaluation context, use it to implement lambda_context
[SVN r36671]
2007-01-09 03:08:26 +00:00
Eric Niebler
2b2b5fb4a8 add proto/literal.hpp, remove msvc work-arounds for result_of
[SVN r36670]
2007-01-08 23:45:54 +00:00
Eric Niebler
75ca2d7160 reorg
[SVN r36591]
2007-01-05 07:31:34 +00:00
Eric Niebler
e6367e1cd3 stubs for proto's documentation
[SVN r36590]
2007-01-04 19:52:51 +00:00
Eric Niebler
6eebe11fd5 add always and identity transform, clean up lambda and toy_spirit2 tests
[SVN r36589]
2007-01-04 17:36:49 +00:00
Eric Niebler
b64655d7d7 implement no_case directive in toy Spirit-2 example
[SVN r36575]
2007-01-03 20:43:01 +00:00
Eric Niebler
9530a130fe simple Spirit-2 that does flatten/deep-copy
[SVN r36574]
2007-01-03 19:19:06 +00:00
Eric Niebler
a372d4b3ab fix assorted grammar and tree transform bugs, add proto/debug.hpp
[SVN r36568]
2007-01-03 05:55:30 +00:00
Eric Niebler
e1b5cd618e speed up proto::matches<>, xpressive grammar optimization
[SVN r36556]
2007-01-01 08:11:54 +00:00
Eric Niebler
543723869c minor clean-up
[SVN r36554]
2006-12-31 18:40:17 +00:00
Eric Niebler
6fa3dce8c9 allow meta::binary_expr<mpl::_, Grammar, Grammar> to match any binary expression, lambda example supports evaluation of nullary lambdas
[SVN r36544]
2006-12-31 07:22:13 +00:00
Eric Niebler
96a4604a3e allow non-const reference terminals in proto expression trees
[SVN r36542]
2006-12-30 21:48:20 +00:00
Eric Niebler
d2534e49fd make unary ops obey the ET domain
[SVN r36541]
2006-12-30 08:56:19 +00:00
Eric Niebler
2b9797cacd fix typo
[SVN r36540]
2006-12-30 07:03:47 +00:00
Eric Niebler
d9a957d850 mechanism for disabling and/or overriding operator overloads within a domain
[SVN r36539]
2006-12-30 06:29:56 +00:00
Eric Niebler
429c5228e6 simplification and generalization of proto's operator overloads
[SVN r36538]
2006-12-29 20:31:48 +00:00
Eric Niebler
d732078579 add construct transform, meta::arg and meta::arg_c return references for arrays
[SVN r36523]
2006-12-28 20:41:26 +00:00
Eric Niebler
93171b3b46 proto stores terminals by reference by default, add pass_through transform, all expression generators use pass_through transform by default, many more changes
[SVN r36522]
2006-12-28 02:37:27 +00:00
Eric Niebler
2219f3e5d0 generalize fold_to_list, arg, right and left transforms, identity transforms for the expression generators, expr<> and ref<>
[SVN r36472]
2006-12-21 03:51:42 +00:00
Eric Niebler
2d137ec918 test reorg, add calculator test
[SVN r36445]
2006-12-18 07:00:14 +00:00
Eric Niebler
40f34a6b1a add higher-level fold_to_list transform
[SVN r36443]
2006-12-17 18:17:48 +00:00
Eric Niebler
c1f3c76cdc add tree-transform/grammar integration
[SVN r36436]
2006-12-16 22:45:14 +00:00
Eric Niebler
239a70ff70 minor grammar performance tweak
[SVN r36397]
2006-12-15 02:24:42 +00:00
Eric Niebler
7cfa9aac0c minor tweak to remove unnecessary template parameter
[SVN r36396]
2006-12-15 01:18:27 +00:00
Eric Niebler
6242dfed6d remove BBv1 Jamfiles
[SVN r36391]
2006-12-14 19:13:31 +00:00
Eric Niebler
007c339895 arg, left, and right_transform do the obvious things; misc clean-up using proto::matches to implement is_marker and is_repeater predicates
[SVN r36354]
2006-12-13 02:29:55 +00:00
Eric Niebler
1f4835bf31 add list_compiler, for putting things into a fusion cons list
[SVN r36353]
2006-12-13 01:19:11 +00:00
Eric Niebler
b875dc6c8c fix bug in fold compilers
[SVN r36352]
2006-12-13 00:51:31 +00:00
Eric Niebler
c27776be2f add an .eval() member function to the expr<> struct
[SVN r36305]
2006-12-08 22:24:24 +00:00
Eric Niebler
bbe1d82a57 add checker<>, check and wcheck for grammar-checking static regular expressions
[SVN r36271]
2006-12-05 05:31:34 +00:00
Eric Niebler
c0636c8d2a modest proto::matches perf tweak
[SVN r36252]
2006-12-02 23:56:33 +00:00
Eric Niebler
8ac0e8c2b5 rename all proto tag types, move into tag:: namespace
[SVN r36223]
2006-12-01 05:46:06 +00:00
Eric Niebler
d86814121c remove eager expression id calculation
[SVN r36222]
2006-12-01 02:58:48 +00:00
Eric Niebler
5379c55d92 add missing file
[SVN r36150]
2006-11-22 17:32:22 +00:00
Eric Niebler
173bcb3a80 rename Expr::id to Expr::id_type
[SVN r36135]
2006-11-21 17:33:47 +00:00
Eric Niebler
26f5383d57 all expr types have nested ::id, add deep_copy() for storing all nodes by value, and BOOST_PROTO_AUTO(var, expr) as a shortcut for BOOST_AUTO(var, proto::deep_copy(expr))
[SVN r36134]
2006-11-21 17:28:15 +00:00
Eric Niebler
859862c1b3 rename basic_expr<tag, mpl::vector1<...> > to expr<tag, args1<...> >
[SVN r36099]
2006-11-20 03:41:07 +00:00
Eric Niebler
ecb81f6b5e grammar tweaks, misc clean-up
[SVN r36094]
2006-11-19 21:15:17 +00:00
Eric Niebler
42a89ac300 xpressive grammar allows for narrow literals in wide regexes
[SVN r36085]
2006-11-19 04:50:53 +00:00
Eric Niebler
0453410394 increase performance of proto::matches<>
[SVN r36081]
2006-11-18 22:44:56 +00:00
Eric Niebler
7d290aefb7 reduce template instantiation depth when checking xpressive grammar
[SVN r36080]
2006-11-18 22:04:20 +00:00
Eric Niebler
ee1c317a1d work-around for code warrior
[SVN r36060]
2006-11-16 18:35:22 +00:00
Eric Niebler
1cee46cc18 relatively complete but unoptimized version of XpressiveGrammar
[SVN r36043]
2006-11-15 06:35:30 +00:00
Eric Niebler
8c7c4bdf07 fix matches<> to not instantiate intermediate basic_expr types, preliminary proto meta-grammar for static xpressive
[SVN r36023]
2006-11-13 15:53:45 +00:00
Eric Niebler
ff4734e43e proto grammar for toy spirit
[SVN r36009]
2006-11-12 00:20:48 +00:00
Eric Niebler
3c77fb11fe don't access members of basic_expr directly
[SVN r36004]
2006-11-11 17:48:43 +00:00
Eric Niebler
663e4ac5bd faster proto is_ref, is_extends, is_expr; remove is_basic_expr; eliminate extends_base and extends multiple inheritance, misc. clean-up
[SVN r35967]
2006-11-10 04:09:38 +00:00
Eric Niebler
aec0fa247b don't recompile sub-expressions that don't need to be recompiled
[SVN r35966]
2006-11-10 02:31:22 +00:00
Eric Niebler
bbfe4e2d5b test proto::matches and proto::entends
[SVN r35965]
2006-11-10 02:22:16 +00:00
Eric Niebler
5d06af0bac use segmented_size to efficiently calculate the size of a proto expression tree
[SVN r35946]
2006-11-09 06:45:02 +00:00