Markdown is quirk mode plain text. That was probably ok for its original purpose but it is not for what it is used nowadays. There are much better plain text like formats around and it's a shame markdown is in the position it is now. IMHO a well-defined subset of LaTeX (or context) with almost plain text markup for the 10 most commonly used commands would have been the better solution on the long run.
Then people can extend their tools to use that single variant and standard parser/grammar.
Most [good] languages were implemented first without a formal grammar - lex/yacc/bnf usually came later, if at all.