int Bchart:: headPosFromItems(Item* lhs, Items& rhs) { int ansPriority = 9999; ECString lhsString(lhs->term()->name()); if(lhsString == "") lhsString = "S1"; int pos = -1; int ans = -1; Items::iterator ii = rhs.begin(); Item *subi; for( ; ii != rhs.end() ; ii++ ) { subi = (*ii); pos++; const Term* trm = subi->term(); int nextPriority = 12; if(trm) { ECString rhsString(subi->term()->name()); if(subi->term() == Term::stopTerm) continue; nextPriority = headPriority(lhsString, rhsString, ansPriority); } if(nextPriority <= ansPriority) { ans = pos; ansPriority = nextPriority; } } return ans; }
int headPosFromTree(InputTree* tree) { int ansPriority = 10; ECString lhsString(tree->term()); if(lhsString == "") lhsString = "S1"; int pos = -1; int ans = -1; ConstInputTreesIter subTreeIter = tree->subTrees().begin(); InputTree *subTree; for( ; subTreeIter != tree->subTrees().end() ; subTreeIter++ ) { subTree = *subTreeIter; pos++; ECString rhsString(subTree->term()); int nextPriority = headPriority(lhsString, rhsString, ansPriority); if(nextPriority <= ansPriority) { ans = pos; ansPriority = nextPriority; } } return ans; }
/* * Class: com_yahoo_jmh_jmhtest_jni_JNIWrapper * Method: nativeParamStringsUTF8 * Signature: (Ljava/lang/String;Ljava/lang/String;)V */ JNIEXPORT void JNICALL Java_com_yahoo_jmh_jmhtest_jni_JNIWrapper_nativeParamStringsUTF8 (JNIEnv *jenv, jclass, jstring lhs, jstring rhs) { // we want to use this string. ScopedStringUTFChars lhsString(jenv, lhs); ScopedStringUTFChars rhsString(jenv, rhs); }
/* * Class: com_yahoo_jmh_jmhtest_jni_JNIWrapper * Method: nativeEquals * Signature: (Ljava/lang/String;Ljava/lang/String;)Z */ JNIEXPORT jboolean JNICALL Java_com_yahoo_jmh_jmhtest_jni_JNIWrapper_nativeEquals( JNIEnv *jenv, jclass, jstring lhsArg, jstring rhsArg) { // we want to use this string. ScopedStringUTFChars lhsString(jenv, lhsArg); ScopedStringUTFChars rhsString(jenv, rhsArg); return 0 == strcmp(lhsString.get(), rhsString.get()); }
int headPosFromTreeCh(InputTree* tree) { ECString lhsString(tree->term()); if(lhsString == L"") lhsString = L"S1"; int ans = -1; int subsize=0; ConstInputTreesIter subTreeIter = tree->subTrees().begin(); vector<ECString> subvec; for( ; subTreeIter != tree->subTrees().end() ; subTreeIter++ ){ assert(*subTreeIter); subvec.push_back((*subTreeIter)->term()); subsize++; } assert(subsize==tree->subTrees().size()); list<list<ECString> > termlist=hmap[lhsString]; //wcerr<<"want to find head for "<<lhsString<<endl; LLIter termiter=termlist.begin(); for(;termiter!=termlist.end();termiter++){ list<ECString> hlist=*termiter; LIter hiter=hlist.begin(); ECString searchdir=*hiter; hiter++; if (searchdir==L"L"){ if(hlist.size()==1) return 0; for(int i=0;i<subsize;i++){ for(;hiter!=hlist.end();hiter++) if (subvec[i]==(*hiter)){ ans=i; break; } hiter=hlist.begin(); hiter++; } } else if(searchdir==L"R"){ if(hlist.size()==1){ return subsize-1; } for(int i=subsize-1;i>=0;i--){ for(;hiter!=hlist.end();hiter++) if (subvec[i]==(*hiter)){ ans=i; break; } if (ans>=0) break; hiter=hlist.begin(); hiter++; } } else {wcerr<<tree->term()<<" "<<searchdir<<endl; assert(0);} if (ans>=0) break; } if (ans<0){ //wcerr<<tree->term()<<endl; assert(tree->term()==L"S1"); //???; assert(subsize<=3); return subsize-1; } return ans; }