1*ab8db090SAndroid Build Coastguard Workeruse marisa; 2*ab8db090SAndroid Build Coastguard Worker 3*ab8db090SAndroid Build Coastguard Worker$keyset = new marisa::Keyset; 4*ab8db090SAndroid Build Coastguard Worker$keyset->push_back("cake"); 5*ab8db090SAndroid Build Coastguard Worker$keyset->push_back("cookie"); 6*ab8db090SAndroid Build Coastguard Worker$keyset->push_back("ice"); 7*ab8db090SAndroid Build Coastguard Worker$keyset->push_back("ice-cream"); 8*ab8db090SAndroid Build Coastguard Worker 9*ab8db090SAndroid Build Coastguard Worker$trie = new marisa::Trie; 10*ab8db090SAndroid Build Coastguard Worker$trie->build($keyset); 11*ab8db090SAndroid Build Coastguard Workerprint("no. keys: ", $trie->num_keys(), "\n"); 12*ab8db090SAndroid Build Coastguard Workerprint("no. tries: ", $trie->num_tries(), "\n"); 13*ab8db090SAndroid Build Coastguard Workerprint("no. nodes: ", $trie->num_nodes(), "\n"); 14*ab8db090SAndroid Build Coastguard Workerprint("size: ", $trie->io_size(), "\n"); 15*ab8db090SAndroid Build Coastguard Worker 16*ab8db090SAndroid Build Coastguard Worker$agent = new marisa::Agent; 17*ab8db090SAndroid Build Coastguard Worker 18*ab8db090SAndroid Build Coastguard Worker$agent->set_query("cake"); 19*ab8db090SAndroid Build Coastguard Worker$trie->lookup($agent); 20*ab8db090SAndroid Build Coastguard Workerprint($agent->query_str(), ": ", $agent->key_id(), "\n"); 21*ab8db090SAndroid Build Coastguard Worker 22*ab8db090SAndroid Build Coastguard Worker$agent->set_query("cookie"); 23*ab8db090SAndroid Build Coastguard Worker$trie->lookup($agent); 24*ab8db090SAndroid Build Coastguard Workerprint($agent->query_str(), ": ", $agent->key_id(), "\n"); 25*ab8db090SAndroid Build Coastguard Worker 26*ab8db090SAndroid Build Coastguard Worker$agent->set_query("cockoo"); 27*ab8db090SAndroid Build Coastguard Workerif ($trie->lookup(agent)) { 28*ab8db090SAndroid Build Coastguard Worker print($agent->query_str(), ": not found\n"); 29*ab8db090SAndroid Build Coastguard Worker} 30*ab8db090SAndroid Build Coastguard Worker 31*ab8db090SAndroid Build Coastguard Workerprint("ice: ", $trie->lookup("ice"), "\n"); 32*ab8db090SAndroid Build Coastguard Workerprint("ice-cream: ", $trie->lookup("ice-cream"), "\n"); 33*ab8db090SAndroid Build Coastguard Workerif ($trie->lookup("ice-age") == $marisa::INVALID_KEY_ID) { 34*ab8db090SAndroid Build Coastguard Worker print("ice-age: not found\n"); 35*ab8db090SAndroid Build Coastguard Worker} 36*ab8db090SAndroid Build Coastguard Worker 37*ab8db090SAndroid Build Coastguard Worker$trie->save("sample.dic"); 38*ab8db090SAndroid Build Coastguard Worker$trie->load("sample.dic"); 39*ab8db090SAndroid Build Coastguard Worker 40*ab8db090SAndroid Build Coastguard Worker$agent->set_query(0); 41*ab8db090SAndroid Build Coastguard Worker$trie->reverse_lookup($agent); 42*ab8db090SAndroid Build Coastguard Workerprint($agent->query_id(), ": ", $agent->key_str(), "\n"); 43*ab8db090SAndroid Build Coastguard Worker$agent->set_query(1); 44*ab8db090SAndroid Build Coastguard Worker$trie->reverse_lookup($agent); 45*ab8db090SAndroid Build Coastguard Workerprint($agent->query_id(), ": ", $agent->key_str(), "\n"); 46*ab8db090SAndroid Build Coastguard Worker 47*ab8db090SAndroid Build Coastguard Workerprint("2: ", $trie->reverse_lookup(2), "\n"); 48*ab8db090SAndroid Build Coastguard Workerprint("3: ", $trie->reverse_lookup(3), "\n"); 49*ab8db090SAndroid Build Coastguard Worker 50*ab8db090SAndroid Build Coastguard Worker$trie->mmap("sample.dic"); 51*ab8db090SAndroid Build Coastguard Worker 52*ab8db090SAndroid Build Coastguard Worker$agent->set_query("ice-cream soda"); 53*ab8db090SAndroid Build Coastguard Workerwhile ($trie->common_prefix_search($agent)) { 54*ab8db090SAndroid Build Coastguard Worker print($agent->query_str(), ": ", $agent->key_str(), " (", 55*ab8db090SAndroid Build Coastguard Worker $agent->key_id(), ")\n"); 56*ab8db090SAndroid Build Coastguard Worker} 57*ab8db090SAndroid Build Coastguard Worker 58*ab8db090SAndroid Build Coastguard Worker$agent->set_query("ic"); 59*ab8db090SAndroid Build Coastguard Workerwhile ($trie->predictive_search($agent)) { 60*ab8db090SAndroid Build Coastguard Worker print($agent->query_str(), ": ", $agent->key_str(), " (", 61*ab8db090SAndroid Build Coastguard Worker $agent->key_id(), ")\n"); 62*ab8db090SAndroid Build Coastguard Worker} 63