let assign_var (name : string) (state : string) (m1 : string) (name2 : string) (state2 : string) (m2 : string) : unit =
          let (exist_match,sub) = get_match_message_story name state m1 name2 state2 m2 (!untyped_variable) in
        if(exist_match<>(-1))
        then (
                if(sub<>[]) then assign_sub name2 sub
        )
        else (
                let res = match_message name state m1 name2 state2 m2 in
                if(res)then(
                        let (exist_match,sub) = get_match_message_story name state m1 name2 state2 m2 (!untyped_variable) in
                        if(exist_match<>(-1)) then assign_sub name2 sub
                )
        )