### scala 579:
import scala.util.parsing.combinator._
object M extends JavaTokenParsers{def i=ident
type P=Parser[Any]
def r:P=n~"("~rep(p)~")"~opt("throws"~rep(t))^^(s=>"\n/**\n $"+s._1._1._2.mkString("")+s._1._1._1+"\n2:"+(s._2.getOrElse(""))+"\n*/")
def n:P=i~i^^(s=>if(s._1=="void")""else"\nreturn $")
def p:P=i~i~opt(",")^^(s=>("\n@param "+s._1._2+" $"))
def t:P=i~opt(",")^^(s=>("\n@throws "+s._1+" $"))
def main (args:Array[String])={val i=parseAll(r,readLine())
println(i.toString().replaceAll(".:.*","").replaceAll("[~(),]","").replaceAll("^[\\[].*","").replaceAll ("\n\n","\n"))}}
I'm sorry, I'm not experienced with TokenParsers. I guess I'm doing it wrong, and there is much room for improvement.