From: David Bien (davidbien_at_[hidden])
Date: 2021-09-13 18:58:50
That I have been working on over the past 23 years (when not working for actual money).
Directed Graph Template Library: https://github.com/davidbien/dgraph
Original email to boost mailing list from year 2000: https://lists.boost.org/Archives/boost/2000/04/2834.php
Lexical Analyzer Generator Template Library: https://github.com/davidbien/lexang
Original email to boost mailing list from year 2000: https://lists.boost.org/Archives/boost/2000/04/2837.php
This depends on the dgraph git submodule above.
The above are written in "old" C++ - but updated to compiler in the latest compilers (MSVC, clang11).
Built on the above:
XML Parser/Writer/DOM Template Library: https://github.com/davidbien/xmlpinc
This I developed over the last winter. It is written in C++20 and requires msvc19 or clang11. I heavily use C++20 concepts. There is a lack of documentation.
XML Parser/Writer/DOM Development Environment: https://github.com/davidbien/xmlp
This contains the LEX specifications (which are written using overridden C++ operators in a namespace) that produce the state machines for UTF8, UTF16 and UTF32 versions of the XML parser - which are then, upon modification, checked into: https://github.com/davidbien/xmlpinc
This as well requires the nearly latest versions of MSVC or clang. Once again: There is a lack of documentation.
I don't use boost in these libraries - preferring not to have a dependency on it.
I also published: https://github.com/davidbien/bienutil
Which contains a lot of stuff from year 2000, but also contains some new stuff which is pretty cool:
1. An actually performant and memory-conservative implementation of a Van Emde Boas Tree: https://github.com/davidbien/bienutil/blob/master/_vebtree.h
2. An "exponential chunked array" (misnamed as "logarray.h") that uses a single piece of memory initially: https://github.com/davidbien/bienutil/blob/master/_logarray.h
3. A bunch of other stuff that I wrote back in 2000 since there wasn't much available back then in terms of C++ utility templates.
There is a testbed for the dgraph impl but I haven't yet converted them to CMAKE/googletest.
There is also a testbed for the vebtree impl but once again not converted to CMAKE/googletest. (I only have so many fingers).
Anyway, I'd like to know what people think.
The XML parser is meant to be fully compliant with XML Version 1.0 and meant to be a development environment that can be used to extend to full compatibility.
I am currently working on a Parser Generator Template Library (think replacement for yacc or bison) that will work with my LEX replacement and allow use of the LEX terminals in the EBNF for the parser specification (which will again be encoding using C++ overridden operators in a namespace).
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk