Why split lexing and parsing into two separate phases? | Hacker News Reader