Yacc equivalent for Java
If you specifically want YACC-like behavior (table-driven), the only one I know is CUP. In the Java world, it seems that more people lean toward recursive descent parsers like ANTLR or JavaCC. And efficiency is seldom a reason to pick a parser generator.