def parse_dict(var_dict: dict, backend, **kwargs) ->dict:
    """Parses a dictionary with variable information and creates backend variables from that information.

    Parameters
    ----------
    var_dict
        Contains key-value pairs for each variable that should be translated into the backend graph.
        Each value is a dictionary again containing the variable information (needs at least a field for `vtype`).
    backend
        Backend instance that the variables should be added to.
    kwargs
        Additional keyword arguments to be passed to the backend methods.

    Returns
    -------
    dict
        Key-value pairs with the backend variable names and handles.
    """
    var_dict_new = {}
    for var_name, var in var_dict.items():
        if var['vtype'] == 'raw':
            var_dict_new[var_name] = var['value']
        else:
            var.update(kwargs)
            if var_name == 'y' or var_name == 'y_delta':
                print(
                    f'Warning: Variable name {var_name} is reserved for pyrates-internal state variables. Variable was renamed to {var_name}1.'
                    )
                var_name = f'{var_name}1'
            var_dict_new[var_name] = backend.add_var(name=var_name, **var)
    return var_dict_new
