<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _signature_index(self, iexec):
 """Determines where in the call signature the cursor is to decide which parameter needs to have its information returned for the intellisense. """

        #Find out where in the signature the cursor is at the moment.
        call_index = self.context.call_arg_index
        if call_index is not None:
            #We found the index of the parameter whose docstring we want
            #to return.
            param = iexec.get_parameter(call_index)
            paramlist = [ p.name for p in iexec.ordered_parameters ]
            paramlist[call_index] = "*{}*".format(paramlist[call_index])

            if not isinstance(param, list) and param is not None:
                #Write a nice description that includes the parameter type and
                #intent as well as dimension.
                summary = "{} | {}".format(str(param), param.summary)
                #We also want to determine if this parameter has its value changed
                #by the function we are completing on.
                changedby = iexec.changed(param.name)
                if changedby is not None:
                    summary += " *MODIFIED*"
            elif isinstance(param, list) and len(param) > 0:
                act_type = []
                for iparam in param:
                    if iparam is not None and iparam.strtype not in act_type:
                        act_type.append(iparam.strtype)

                act_text = ', '.join(act_type)
                summary = "SUMMARY: {} | ACCEPTS: {}".format(param[0].summary, act_text)

                if iexec.changed(param[0].name):
                    summary += " | *MODIFIED*"
            else:
                summary = "No matching variable definition."

            #Add the name of the module who owns the executable.
            summary += " | MODULE: {}".format(iexec.module.name)

            return dict(
                params=paramlist,
                index=call_index,
                call_name=self.context.el_name,
                description=summary,
            )
        else:
            return result