test をする時に、expected と文字列化してから比較するのではなく、直接値を比較して確認するように

してみたけどどうですか。
こっちのほうが正しいと思うけれど、テストの失敗ログが見にくいという話も
indent?
すくなくとも lexer.hpp とは揃っていない.
決まってない?