free_bin_tree (tree);
parse_branch (regexp, preg, token, syntax, nest, err)     re_string_t *regexp;     regex_t *preg;     re_token_t *token;     reg_syntax_t syntax;     int nest;     reg_errcode_t *err;{  bin_tree_t *tree, *exp;  tree = parse_expression (regexp, preg, token, syntax, nest, err);  if (BE (*err != REG_NOERROR && tree == NULL, 0))    return NULL;  while (token->type != OP_ALT && token->type != END_OF_RE	 && (nest == 0 || token->type != OP_CLOSE_SUBEXP))    {      exp = parse_expression (regexp, preg, token, syntax, nest, err);      if (BE (*err != REG_NOERROR && exp == NULL, 0))	{	  free_bin_tree (tree);	  return NULL;	}      if (tree != NULL && exp != NULL)	{	  tree = create_tree (tree, exp, CONCAT, 0);	  if (tree == NULL)	    {	      *err = REG_ESPACE;	      return NULL;	    }	}      else if (tree == NULL)	tree = exp;      /* Otherwise exp == NULL, we don't need to create new tree.  */    }  return tree;}