One parser to rule them all
Pure and declarative syntax definition: paradise lost and regained