Today I tested the lexer generator for Poly/ML. It mostly worked but there was a subtle problem with the Poly/ML runtime: it doesn't seem to have any last-chance exception handling, when an exception is raised and escapes to the top level the program exits without any error message, and worse still, with a zero (success) exit status.
To work around it I had to add my own exception handler to my main function. I posted about it on the Poly/ML mailing list.
JSON library from SML/NJ
I used the lexer to build the JSON part of the SML/NJ library. It turned out that the lexer specification there was actually for the more modern ml-ulex tool, so I had to modify it (and the modules that depend on it). Fortunately that was easy.