...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
I am indebted to Joel de Guzman and Hartmut Kaiser for their expert advice during the early states of xpressive's development. Much of static xpressive's syntax is owes a large debt to Spirit, including the syntax for xpressive's semantic actions. I am thankful for John Maddock's excellent work on his proposal to add regular expressions to the standard library, and for various ideas borrowed liberally from his regex implementation. I'd also like to thank Andrei Alexandrescu for his input regarding the behavior of nested regex objects, and Dave Abrahams for his suggestions regarding the regex domain-specific embedded language. Noel Belcourt helped porting xpressive to the Metrowerks CodeWarrior compiler. Markus Schöpflin helped to track down a bug on HP Tru64, and Steven Watanabe suggested the fix.
Special thanks are due to David Jenkins who contributed both ideas, code and
documentation for xpressive's semantic actions, symbol tables and attributes.
Xpressive's ternary search trie implementation is David's, as is the number
parser example in libs/xpressive/example/numbers.cpp
and
the documentation for symbol tables and attributes.
Thanks to John Fletcher for helping track down a runtime assertion when using xpressive with Howard Hinnant's most excellent libc++.
Finally, I would like to thank Thomas Witt for acting as xpressive's review manager.