Lexer tests

This seems like it could expand to a lot of files! Does it take `make` a noticeable amount of time to include this file? An alternative would perhaps be to just pass the root directory into the tool itself and the tool manually walks all the directories.