Example #1
0
File: tries.c Project: edechter/yap
static int p_trie_get_last_entry(void) {
  TrData data;

  /* check args */
  if (!YAP_IsIntTerm(arg_trie)) 
    return FALSE;

  /* get last trie entry */
  if (!(data = trie_get_last_entry((TrEntry) YAP_IntOfTerm(arg_trie))))
    return FALSE;
  return YAP_Unify(arg_ref, YAP_MkIntTerm((YAP_Int) data));
}
Example #2
0
inline
TrData trie_traverse_init(TrEntry trie, TrData init_data) {
  TrData data;

  if (init_data) {
    data = TrData_next(init_data);
  } else {
    if (CURRENT_TRAVERSE_MODE == TRAVERSE_MODE_FORWARD)
      data = TrEntry_first_data(trie);
    else
      data = trie_get_last_entry(trie);
  }
  TrEntry_traverse_data(trie) = data;
  return data;
}