def split(string, separator=None, max_splits=-1):
    """:yaql:split

    Returns a list of tokens in the string, using separator as the
    delimiter.

    :signature: string.split(separator => null, maxSplits => -1)
    :receiverArg string: value to be splitted
    :argType string: string
    :arg separator: delimiter for splitting. null by default, which means
        splitting with whitespace characters
    :argType separator: string
    :arg maxSplits: maximum number of splittings. -1 by default, which means
        all possible splits are done
    :argType maxSplits: integer
    :returnType: list

    .. code::

        yaql> "abc     de  f".split()
        ["abc", "de", "f"]
        yaql> "abc     de  f".split(maxSplits => 1)
        ["abc", "de  f"]
        yaql> "abcde".split("c")
        ["ab", "de"]
    """
    return string.split(separator, max_splits)