def camel_case_to_under_score(camel_case_name):
result = []<EOL>for letter in camel_case_name:<EOL><INDENT>if letter.lower() != letter:<EOL><INDENT>result.append("<STR_LIT:_>" + letter.lower())<EOL><DEDENT>else:<EOL><INDENT>result.append(letter.lower())<EOL><DEDENT><DEDENT>if result[<NUM_LIT:0>].startswith("<STR_LIT:_>"):<EOL><INDENT>result[<NUM_LIT:0>] = result[<NUM_LIT:0>][<NUM_LIT:1>:]<EOL><DEDENT>return "<STR_LIT>".join(result)<EOL>
Return the underscore name of a camel case name.

    :param str camel_case_name: a name in camel case such as
      ``"ACamelCaseName"``
    :return: the name using underscores, e.g. ``"a_camel_case_name"``
    :rtype: str