/** * roll::= ndice ; roll | ndice xdice::= dice | N X dice dice::= die bonus? dtail XXXX| * FA(die,bonus,N) dtail dtail::= & dice | <nothing> die::= (N)? dN bonus::= + N | -N */ public static Vector<DieRoll> parseRoll(String s) { StringStream ss = new StringStream(s.toLowerCase()); Vector<DieRoll> v = parseRollInner(ss, new Vector<DieRoll>()); if (ss.isEmpty()) return v; return null; }