let decompose (m1 : string) : string list =
let l = String.length m1 in
let index_brack = indexStr "(" m1 in
if(index_brack<>(-1) && (String.sub m1 (l-1) 1)=")")
then(
let tmp = String.sub m1 ((index_brack)+1) (l-index_brack-2) in
let l2 = l-index_brack-2 in
let rec aux l_tmp tmp res =
let separator = find_separator "," 0 tmp in
if(separator<>(-1))
then (aux (l_tmp-separator-1) (String.sub tmp (separator+1) (l_tmp-separator-1)) ((String.sub tmp 0 separator)::res))
else ((String.sub m1 0 index_brack)::((List.rev res)@[tmp]))
in
if(tmp<>"")
then aux l2 tmp []
else [(String.sub m1 0 index_brack)];
)
else []