LeanDoc is a semantic document language based on AsciiDoc, while being formally specified and parsable by a single recursive descent parser