Lightweight resilient recursive parsing