parameters: (out_f, max_step)
docstring: Generate the make_string template
docstring_summary: Generate the make_string template
docstring_tokens: Generate the make_string template
function: def generate_make_string(out_f, max_step):
      """Generate the make_string template"""
      steps = [2 ** n for n in xrange(int(math.log(max_step, 2)), -1, -1)]
  
      with Namespace(
          out_f,
          ['boost', 'metaparse', 'v{0}'.format(VERSION), 'impl']
      ) as nsp:
          generate_take(out_f, steps, nsp.prefix())
  
          out_f.write(
              '{0}template <int LenNow, int LenRemaining, char... Cs>\n'
              '{0}struct make_string;\n'
              '\n'
              '{0}template <char... Cs>'
              ' struct make_string<0, 0, Cs...> : string<> {{}};\n'
              .format(nsp.prefix())
          )
  
          disable_sun = False
          for i in reversed(steps):
              if i > 64 and not disable_sun:
                  out_f.write('#ifndef __SUNPRO_CC\n')
                  disable_sun = True
              out_f.write(
                  '{0}template <int LenRemaining,{1}char... Cs>'
                  ' struct make_string<{2},LenRemaining,{3}Cs...> :'
                  ' concat<string<{4}>,'
                  ' typename make_string<take(LenRemaining),'
                  'LenRemaining-take(LenRemaining),Cs...>::type> {{}};\n'
                  .format(
                      nsp.prefix(),
                      ''.join('char {0},'.format(n) for n in unique_names(i)),
                      i,
                      ''.join('{0},'.format(n) for n in unique_names(i)),
                      ','.join(unique_names(i))
                  )
              )
          if disable_sun:
              out_f.write('#endif\n')
function_tokens: def generate_make_string ( out_f , max_step ) : steps = [ 2 ** n for n in xrange ( int ( math . log ( max_step , 2 ) ) , - 1 , - 1 ) ] with Namespace ( out_f , [ 'boost' , 'metaparse' , 'v{0}' . format ( VERSION ) , 'impl' ] ) as nsp : generate_take ( out_f , steps , nsp . prefix ( ) ) out_f . write ( '{0}template <int LenNow, int LenRemaining, char... Cs>\n' '{0}struct make_string;\n' '\n' '{0}template <char... Cs>' ' struct make_string<0, 0, Cs...> : string<> {{}};\n' . format ( nsp . prefix ( ) ) ) disable_sun = False for i in reversed ( steps ) : if i > 64 and not disable_sun : out_f . write ( '#ifndef __SUNPRO_CC\n' ) disable_sun = True out_f . write ( '{0}template <int LenRemaining,{1}char... Cs>' ' struct make_string<{2},LenRemaining,{3}Cs...> :' ' concat<string<{4}>,' ' typename make_string<take(LenRemaining),' 'LenRemaining-take(LenRemaining),Cs...>::type> {{}};\n' . format ( nsp . prefix ( ) , '' . join ( 'char {0},' . format ( n ) for n in unique_names ( i ) ) , i , '' . join ( '{0},' . format ( n ) for n in unique_names ( i ) ) , ',' . join ( unique_names ( i ) ) ) ) if disable_sun : out_f . write ( '#endif\n' )