'Check for a valid subsection header.  Return 1 (true) or None (false).
When a new section is reached that isn\'t a subsection of the current
section, back up the line count (use ``previous_line(-x)``), then
``raise EOFError``.  The current StateMachine will finish, then the
calling StateMachine can re-examine the title.  This will work its way
back up the calling chain until the correct section level isreached.
@@@ Alternative: Evaluate the title, store the title info & level, and
back up the chain until that level is reached.  Store in memo? Or
return in results?
:Exception: `EOFError` when a sibling or supersection encountered.'

def check_subsection(self, source, style, lineno):

    memo = self.memo
    title_styles = memo.title_styles
    mylevel = memo.section_level
    try:
        level = (title_styles.index(style) + 1)
    except ValueError:
        if (len(title_styles) == memo.section_level):
            title_styles.append(style)
            return 1
        else:
            self.parent += self.title_inconsistent(source, lineno)
            return None
    if (level <= mylevel):
        memo.section_level = level
        if (len(style) == 2):
            memo.section_bubble_up_kludge = 1
        self.state_machine.previous_line((len(style) + 1))
        raise EOFError
    if (level == (mylevel + 1)):
        return 1
    else:
        self.parent += self.title_inconsistent(source, lineno)
        return None
