static L ai_buParser_parseWeightedProductions() { new L l; for (S s : mL(ai_language() + " bottom-up groupings")) { S sWeight = trailingAngleBracketStuff(s); double weight = nempty(sWeight) ? parseDouble(sWeight) : 1.0; s = dropTrailingAngleBracketStuff(s); L tok = javaTokWithAngleBracketsC(s); if (l(tok) == 5) l.add(WeightedProduction(tok.get(0), tok.get(2), tok.get(4), weight)); else if (l(tok) == 3) l.add(WeightedProduction(tok.get(0), tok.get(2), weight)); } ret l; }