Now that it’s debugged, here’s some source for a lexer, and associated testapp.
- Matches literal tokens only at the moment, not regexps (which I leave as an exercise to the reader).
- Has Ansi and Unicode and Ordinal (numeric versions).
- Also has some nifty arbitrary size set handling code.
- Is not optimised: Some of the list and transition handling is (relatively) slow compared to compiled lexers. Also an exercise for the reader.
Some of my apps like to use SSL, and use the OpenSSL libraries. The most recent version can be found here:
The source code to this web page parsing program:
Is now available, bugs, unfinished bits and all. You can get the source here.
A while back I wrote a backup application which allows you to compare folder structures on different disks. I still use it, and it’s useful for keeping Dropbox folders, USB keys etc. in sync.
I haven’t written much documentation for it, so you’ll just have to try it carefully. Best to have a go with some files that aren’t utterly vital, as it’s perfectly possible to delete lots of stuff. 32 bit MSI, and 64 bit MSI available for download.
To showcase the parsing code I’ve written, I now have a demo app which allows you to view the structure of pages, not unlike the debuggers in MS Edge, Chrome etc. For example:
It’s not perfect, but it does pretty well on most pages, and I am still improving the underlying code.
If you’d like to get hold of the source code or like the parsers as a library, then feel free to contact me, and we can discuss your educational or research use, or negotiate licensing terms.
Here are the 32 bit MSI and 64 bit MSI installers.
A couple of years back I wrote a simple fractal generator to test some of my threading libraries, and a custom streaming system that I had written. It generates very pretty pictures like this:
I have MSI installers for both 32 Bit Windows and 64 Bit Windows. The application comes with HTML help, and lots of sample files.
For those wanting to get techy, and as it contains plenty of good sample code, the source can be found here.