Пример #1
0
/* Parse a "da branch"
 * @param tok input token
 * @param min_length minimal number of half moves
 * @param max_length maximal number of half moves
 * @param start index of entry into solving machinery
 * @param proxy index of branch; no_slice if branch couldn't be
 *              parsed
 * @param level nesting level of the operand (0 means top level)
 * @return remainder of input token; 0 if parsing failed
 */
static char *ParseStructuredStip_branch_d(char *tok,
                                          stip_length_type min_length,
                                          stip_length_type max_length,
                                          slice_index start,
                                          slice_index proxy,
                                          unsigned int level)
{
  TraceFunctionEntry(__func__);
  TraceFunctionParam("%u",min_length);
  TraceFunctionParam("%u",max_length);
  TraceFunctionParam("%s",tok);
  TraceFunctionParam("%u",start);
  TraceFunctionParam("%u",proxy);
  TraceFunctionParam("%u",level);
  TraceFunctionParamListEnd();

  {
    slice_index const branch = ParseStructuredStip_make_branch_d(min_length,
                                                                 max_length);
    link_to_branch(proxy,battle_branch_make_postkeyplay(branch));

    tok = ParseStructuredStip_branch_d_operand(tok,start,proxy,level);
    if (tok!=0 && tok[0]=='a')
    {
      tok = ParseStructuredStip_branch_a_operand(tok+1,start,proxy,level);
      if (tok!=0 && level==0)
        select_output_mode(proxy,output_mode_tree);
    }
  }

  TraceFunctionExit(__func__);
  TraceFunctionResult("%s",tok);
  TraceFunctionResultEnd();
  return tok;
}
Пример #2
0
static void attack_adapter_make_postkeyplay(slice_index adapter,
                                            stip_structure_traversal *st)
{
  slice_index * const postkey = st->param;

  TraceFunctionEntry(__func__);
  TraceFunctionParam("%u",adapter);
  TraceFunctionParamListEnd();

  *postkey = battle_branch_make_postkeyplay(adapter);

  TraceFunctionExit(__func__);
  TraceFunctionParamListEnd();
}