class TemplateParser implements Parser {

    static List<String> splitAssign(String value) {
        List<String> list = new ArrayList<String>();
        int i = value.indexOf('=');
        while ((i = value.indexOf('=', i + 1)) > 0) {
            if (i + 1 < value.length() && value.charAt(i + 1) == '=') {
                i++;
            } else if (value.charAt(i - 1) != '>'
                    && value.charAt(i - 1) != '<'
                    && value.charAt(i - 1) != '!'
                    && isEndString(value.substring(0, i - 1))) {
                String sub = value.substring(0, i);
                int j = sub.lastIndexOf(',');
                int k = sub.lastIndexOf('>');
                if (j > 0 && j < k) {
                    int g = 0;
                    for (int n = k; n >= 0; n--) {
                        char c = sub.charAt(n);
                        if (c == '>') {
                            g++;
                        } else if (c == '<') {
                            g--;
                        }
                        if (g == 0) {
                            sub = sub.substring(0, n);
                            j = sub.lastIndexOf(',');
                            break;
                        }
                    }
                }
                if (j > 0) {
                    list.add(value.substring(0, j));
                    value = value.substring(j + 1);
                    i = i - j - 1;
                } else {
                    break;
                }
            }
        }
        list.add(value);
        return list;
    }

}