lexing mostly complete with some refactoring
spec.h for better output in tests