def split_phonemes(letter, onset=True, nucleus=True, coda=True):
if len(letter) != <NUM_LIT:1> or not is_hangul(letter):<EOL><INDENT>raise ValueError('<STR_LIT>' % letter)<EOL><DEDENT>offset = ord(letter) - FIRST_HANGUL_OFFSET<EOL>phonemes = [None] * <NUM_LIT:3><EOL>if onset:<EOL><INDENT>phonemes[<NUM_LIT:0>] = ONSETS[offset // (NUM_NUCLEUSES * NUM_CODAS)]<EOL><DEDENT>if nucleus:<EOL><INDENT>phonemes[<NUM_LIT:1>] = NUCLEUSES[(offset // NUM_CODAS) % NUM_NUCLEUSES]<EOL><DEDENT>if coda:<EOL><INDENT>phonemes[<NUM_LIT:2>] = CODAS[offset % NUM_CODAS]<EOL><DEDENT>return tuple(phonemes)<EOL>
Splits Korean phonemes as known as "자소" from a Hangul letter.

    :returns: (onset, nucleus, coda)
    :raises ValueError: `letter` is not a Hangul single letter.