def descend(type, token)
    return unless OPENING_TOKENS.include?(token)

    case type
    when :group, :assertion