SBTrie * sb_trie_open (const char *path, const char *name, TrieIOMode mode) { SBTrie *sb_trie; sb_trie = (SBTrie *) malloc (sizeof (SBTrie)); if (!sb_trie) return NULL; sb_trie->trie = trie_open (path, name, mode); if (!sb_trie->trie) goto exit1; sb_trie->alpha_map = alpha_map_open (path, name, ".sbm"); if (!sb_trie->alpha_map) goto exit2; return sb_trie; exit2: trie_close (sb_trie->trie); exit1: free (sb_trie); return NULL; }
static int p_trie_open(void) { TrEntry trie; /* check arg */ if (!YAP_IsVarTerm(arg_trie)) return FALSE; /* open trie */ trie = trie_open(); return YAP_Unify(arg_trie, YAP_MkIntTerm((YAP_Int) trie)); }