1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3<head> 4<title>Acknowledgements</title> 5<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 6<link rel="stylesheet" href="theme/style.css" type="text/css"> 7</head> 8<body text="#000000" background="theme/bkd.gif"> 9<table width="100%" border="0" cellspacing="2" background="theme/bkd2.gif"> 10 <tr> 11 <td width="21"> <h1></h1></td> 12 <td width="885"> <font face="Verdana, Arial, Helvetica, sans-serif"><b><font size="6">Acknowledgements</font></b></font></td> 13 <td width="96"><a href="http://www.boost.org"><img src="theme/wave.gif" width="93" height="68" align="right" border="0"></a></td> 14 </tr> 15</table> 16<br> 17<table border="0"> 18 <tr> 19 <td width="10"></td> 20 <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td> 21 <td width="30"><a href="wave_driver.html"><img src="theme/l_arr.gif" width="20" height="19" border="0"></a></td> 22 <td width="30"><a href="references.html"><img src="theme/r_arr.gif" border="0"></a></td> 23 </tr> 24</table> 25<p>Special thanks to:</p> 26<blockquote> 27 <p> <b>Paul Mensonides</b> for his invaluable help while developing the macro 28 expansion engine and his insightful tips. He developed the recursive macro 29 expansion algorithm implemented herein and also contributed most of the small 30 testcases used for testing the correctness of the macro expansion.</p> 31 <p><b>Dan Nuffer</b>, who wrote the initial Re2C based C++ lexer and the Slex 32 (Spirit Lex) scanner generator sample.</p> 33 <p><b>Martin Wille</b> for helping with the port to Linux, testing on Linux and for contributing 34 the automated test scripts.</p> 35 <p><b>Vladimir Prus</b> for helping with the command line and config file options 36 analysis for the <tt>Wave</tt> driver executable.</p> 37 <p><b>Juan Carlos Arevalo-Baeza</b>, who wrote the Spirit cpp_lexer sample, 38 from which are taken some ideas.</p> 39 <p> <strong>Andrei Alexandrescu</strong> for allowing to use his flex_string class, 40a policy based std::basic_string<> compatible string implementation.</p> 41 <p><strong>Reece Dunn</strong>, <strong>Vesa Karvonen</strong>, <strong>Faisal Vali</strong>, <strong>Porter Schermerhorn, Juergen Hunold, Jozsef Mihalicza</strong> and <strong>Daniel Fontijne</strong> for 42 reporting several problems and bugs.</p> 43 <p><strong>Tarmo Pikaro</strong> for reporting several bug while compiling specific 44 headers from the Microsoft Windows SDK.</p> 45 <p><strong>Rob Stewart</strong> helped a lot with proof reading the documentation. </p> 46 <p><strong>Stefan Seefeld</strong> for integrating Wave into his Synopsis library and finding a couple of bugs along the way. </p> 47 <p><strong>Andreas Sæbjørnsen</strong> and <strong>Felipe Magno de Almeida</strong> for suggesting some extensions and corrections to the <tt>Wave</tt> preprocessing hook interface and related testing. </p> 48 <p><strong>Tobias Schwinger</strong> for suggesting the '<span class="preprocessor">pragma wave option(output:...)</span>' and '<span class="preprocessor">#pragma message("...")</span>' functionalities and reporting a couple of bugs. </p> 49 <p><strong>Richard Guenther</strong> for fixing a nasty buffer overrun problem in the Re2C lexer. </p> 50 <p><strong>Danny Havenith</strong> for contributing his partial C++ parser <tt>hannibal</tt> as a sample to <tt>Wave</tt>. </p> 51</blockquote> 52<p>and last but not least </p> 53<blockquote> 54 <p><b>Joel de Guzman</b> for nudging me into this adventure and for his work 55 on the <tt>Spirit</tt> parser framework, without which the <tt>Wave</tt> library 56 wouldn't have been possible.</p> 57</blockquote> 58<p> Special thanks also to people who gave feedback and valuable comments, particularly members of Boost and Spirit mailing lists. This includes all those who participated in the Boost review: 59<blockquote> 60 <p><strong>Tom Brinkman</strong> (who volunteered to be the review manager), <strong>David Abrahams</strong>, <strong>Beman Dewes</strong>, <strong>Reece Dunn</strong>, <strong>Larry Evans</strong>, <strong>Doug Gregor</strong>, <strong>Joel de Guzman</strong>, <strong>Baptiste Lepilleur</strong>, <strong>Andy Little</strong>, <strong>Paul Mensonides</strong>, <strong>Dan Nuffer</strong>, <strong>Andreas Pokorny</strong>, <strong>Vladimir Prus</strong>, <strong>Gennadiy Rozental</strong>, <strong>Michiel Salters</strong>, <strong>Jonathan Turkanis</strong>, <strong>Chris Uzdavinis</strong>, <strong>Pavel Vozenilek</strong>, <strong>Michael Walter</strong></p> 61 </blockquote> 62<p>The <tt>Wave</tt> library uses the following <tt>Boost</tt> <a href="references.html#boost">[8]</a> 63 libraries:</p> 64<blockquote> 65 <p><b><img src="theme/bullet.gif" width="13" height="13" id="IMG1"></b> Boost 66 Spirit (LL parser framework that represents parsers directly as EBNF grammars 67 in inlined C++)<br> 68 <b><img src="theme/bullet.gif" width="13" height="13" id="IMG2"></b> Boost 69 Iterator Adaptor Library (Adapt a base type into a standard conforming iterator)<br> 70 <b><img src="theme/bullet.gif" width="13" height="13" id="IMG3"></b> Boost 71 Filesystem Library (Portable paths, iteration over directories, and other 72 useful filesystem operations)<br> 73 <b><img src="theme/bullet.gif" width="13" height="13" id="IMG4"></b> Boost Program 74 options and arguments library</p> 75</blockquote> 76<p>and other small parts of different <tt>Boost</tt> libraries. </p> 77<table border="0"> 78 <tr> 79 <td width="10"></td> 80 <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td> 81 <td width="30"><a href="wave_driver.html"><img src="theme/l_arr.gif" width="20" height="19" border="0"></a></td> 82 <td width="30"><a href="references.html"><img src="theme/r_arr.gif" border="0"></a></td> 83 </tr> 84</table> 85<hr size="1"> 86<p class="copyright">Copyright © 2003-2011 Hartmut Kaiser<br> 87 <br> 88 <font size="2">Distributed under the Boost Software 89 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 90 </font> </p> 91<span class="updated">Last updated: 92 <!-- #BeginDate format:fcAm1m -->Wednesday, June 21, 2006 22:22<!-- #EndDate --> 93</span> 94</body> 95</html> 96