I have included a LALR(1) grammar for Java 1.1 in the SableCC distribution
(http://www.sable.mcgill.ca/sablecc/). This grammar is based on the LALR(1)
grammar from chapter 19 of the Java Language Specification (JLS), to which I
have added the changes proposed in the Inner Classes Specification(ICS)
document, pages 19 to 23. I had to resolve a couple of LALR(1) conflicts
introduced by these changes.

I did run your example through this grammar and I've found 2 errors
according to the specification.

(1) The spurious ";" following the declaration of class A is not allowed by
the grammar of the JLS + ICS.
(2) The construct de.new A() is not allowed, because the grammar for a class
instance creation expression is:

This version runs without any problem. So what is the real Java 1.1 grammar?
Is it the officially documented grammar, or the grammar accepted by Sun
Microsystems inc. "javac"? I hope it is the former, since the number of bugs
in the later (specially in the area of inner classes) would mean that the
Java 1.1 grammar is a relatively unknown and changing target...

My guts feeling is that the ICS is as buggy (and ambiguous) as javac. I am
still waiting for a complete and precise ISO standard specification for
Java;-) Meanwhile, I will continue to distribute the documented grammar with
SableCC, and hope for the open process to take place.