/* * Class: amzi_ls_ARulesLogicServer * Method: Exec * Signature: (J)J */ extern "C" JNIEXPORT jlong JNICALL Java_amzi_ls_ARulesLogicServer_Exec (JNIEnv * jenv, jobject jobj, jlong jterm) { TF tf; TERM t; jenv_current = jenv; GET_EID(e); t = (TERM)(ajptr)jterm; tf = lsExec(e, &t); switch(tf) { case TRUE: return (jlong)(ajptr)t; case FALSE: return 0; default: amzi_error(jenv, e, "Exec"); return 0; } }
void prolog_printf ( ENGid Engine, char * format, ... ) { char buffer [4096] ; va_list list ; TERM Write ; va_start ( list, format ) ; vsprintf( buffer, format, list ) ; va_end ( list ) ; // Don't call ExecStr directly because we would have problems with quoted // strings ; call lsMakeFA and lsUnifyArg instead before calling lsExec lsMakeFA ( Engine, & Write, "write", 1 ) ; lsUnifyArg ( Engine, & Write, 1, cATOM, buffer ) ; lsExec ( Engine, & Write ) ; //lsExecStr ( Engine, & Cmd, "nl" ) ; }