https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/parsing/