JNIEXPORT void JNICALL Java_org_cellprofiler_javabridge_CPython_exec (JNIEnv *pEnv, jobject thiss, jstring script, jobject locals, jobject globals) { PyGILState_STATE state; PyObject *pLocals; PyObject *pGlobals; const char *pScript; PyObject *pResult; if (! pEnv) { throwError(pEnv, "JNIEnv was null."); return; } if (! script) { throwError(pEnv, "Script was null."); return; } check_init(); state = PyGILState_Ensure(); if (attach_env(pEnv) == 0) { pLocals = mapToDictionary(pEnv, locals); if (pLocals) { if ((locals != NULL) && ((*pEnv)->IsSameObject(pEnv, locals, globals))) { pGlobals = pLocals; Py_INCREF(pGlobals); } else { pGlobals = mapToDictionary(pEnv, globals); } if (pGlobals) { if (! add_globals(pEnv, pGlobals)) { pScript = (*pEnv)->GetStringUTFChars(pEnv, script, NULL); pResult = PyRun_String( pScript, Py_file_input, pGlobals, pLocals); (*pEnv)->ReleaseStringUTFChars(pEnv, script, NULL); if (pResult) { Py_DECREF(pResult); } else { throwWrappedError(pEnv, __LINE__); } } Py_DECREF(pGlobals); } Py_DECREF(pLocals); } } detach_env(pEnv); PyGILState_Release(state); }
void lisp_main () { //environment global_env; add_globals(global_env); //repl("90> ", &global_env); }
int main () { environment global_env; add_globals(global_env); repl("90> ", &global_env); }