parameters: (decl_text)
return_statement: return params
docstring: Split decl_text on commas, but group generic expressions
      together.
  
      For example, given "foo, Bar[baz, biz]" we return
      ['foo', 'Bar[baz, biz]'].
docstring_summary: Split decl_text on commas, but group generic expressions
      together.
docstring_tokens: Split decl_text on commas but group generic expressions together .
function: def _split_comment_param_declaration(decl_text):
      """
      Split decl_text on commas, but group generic expressions
      together.
  
      For example, given "foo, Bar[baz, biz]" we return
      ['foo', 'Bar[baz, biz]'].
  
      """
      try:
          node = parse(decl_text, error_recovery=False).children[0]
      except ParserSyntaxError:
          debug.warning('Comment annotation is not valid Python: %s' % decl_text)
          return []
  
      if node.type == 'name':
          return [node.get_code().strip()]
  
      params = []
      try:
          children = node.children
      except AttributeError:
          return []
      else:
          for child in children:
              if child.type in ['name', 'atom_expr', 'power']:
                  params.append(child.get_code().strip())
  
      return params
function_tokens: def _split_comment_param_declaration ( decl_text ) : try : node = parse ( decl_text , error_recovery = False ) . children [ 0 ] except ParserSyntaxError : debug . warning ( 'Comment annotation is not valid Python: %s' % decl_text ) return [ ] if node . type == 'name' : return [ node . get_code ( ) . strip ( ) ] params = [ ] try : children = node . children except AttributeError : return [ ] else : for child in children : if child . type in [ 'name' , 'atom_expr' , 'power' ] : params . append ( child . get_code ( ) . strip ( ) ) return params