The third downside is that you'd have to learn some basic ANTLR to get the parser code generated and to make any changes with confidence. I think the basics of ANTLR are simple to learn and there is a good deal of support here if you need it, so I think this, like the previous downsides, is fairly minor.