I've written recursive-descent parsers in several languages (including Java), and complete compilers in Scheme and C++. I have years of experience with Java, and consider it my "primary" language. Extending an existing compiler's grammar to have a few new features, the ones described in the spec in particular, is a fairly involved task but not exactly difficult either.