I wrote a Mathematica parser in 300 lines of OCaml code under contract for Wolfram Research and found it to be quite easy because the grammar is clearly documented in their literature and any ambiguities are easily found by playing with Mathematica itself.