| 984 | } |
| 985 | |
| 986 | bool |
| 987 | Probabilities::parse_group_probabilities(bool is_equal, std::string &error_msg, const std::string &line) |
| 988 | { |
| 989 | string s; |
| 990 | if (is_equal) |
| 991 | s = StringUtils::get_substring(line, GroupProbElem::equal_open_delim, GroupProbElem::equal_close_delim); |
| 992 | else |
| 993 | s = StringUtils::get_substring(line, GroupProbElem::group_open_delim, GroupProbElem::group_close_delim); |
| 994 | |
| 995 | if (s.empty()) { |
| 996 | error_msg = "empty group probabilities!"; |
| 997 | return false; |
| 998 | } |
| 999 | std::vector<string> elems; |
| 1000 | StringUtils::split_string(s, elems, GroupProbElem::group_sep_char); |
| 1001 | if (elems.size() <= 1) { |
| 1002 | error_msg = "invalid group probabilities format!"; |
| 1003 | return false; |
| 1004 | } |
| 1005 | return setup_group_probabilities(is_equal, elems); |
| 1006 | } |
| 1007 | |
| 1008 | int |
| 1009 | Probabilities::parse_single_elem(bool is_equal, ProbElem *elem, const std::string &line) |