#include <../../nrnconf.h>
#include "hoc.h"
#include "hocstr.h"
#include "parse.h"
#include "hocassrt.h"
#include "hoclist.h"
#include "nrnmpi.h"
#include <nrnpython_config.h>
#define EXTERNAL_TYPE 2 |
Referenced by hoc_external_var().
#define JAVA2NRN 1 |
#define NTEMPLATESTACK 20 |
#define OBJ_STACK_SIZE 10 |
Referenced by hoc_object_push().
#define objectpath hoc_objectpath_impl |
Referenced by hoc_object_pathname(), and objectpath().
#define pathprepend hoc_path_prepend |
Referenced by objectpath().
#define PDEBUG 0 |
#define PUBLIC_TYPE 1 |
Referenced by hoc_add_publiclist(), hoc_external_var(), hoc_object_component(), and install_vector_method().
#define pushtemplatei | ( | arg | ) | chktemplate(); (templatestackp++)->i = arg |
Referenced by hoc_begintemplate().
#define pushtemplateo | ( | arg | ) | chktemplate(); (templatestackp++)->o = arg |
Referenced by hoc_begintemplate().
#define pushtemplateodata | ( | arg | ) | chktemplate(); (templatestackp++)->odata = arg |
Referenced by hoc_begintemplate().
#define pushtemplatesym | ( | arg | ) | chktemplate(); (templatestackp++)->sym = arg |
Referenced by hoc_begintemplate().
#define pushtemplatesymlist | ( | arg | ) | chktemplate(); (templatestackp++)->symlist = arg |
Referenced by hoc_begintemplate().
typedef struct Member_func Member_func |
typedef struct Member_ret_obj_func Member_ret_obj_func |
typedef struct Member_ret_str_func Member_ret_str_func |
References call, CPLUSOBJECT, Proc::defn, execute, hoc_errno_check(), hoc_nopop(), hoc_object_name(), hoc_objectdata, hoc_objectdata_restore(), hoc_objectdata_save(), hoc_pushobj(), hoc_pushstr(), hoc_pushx(), hoc_thisobject, hoc_warning(), Inst::i, Inst::in, JAVAOBJECT, Symbol::name, p_java2nrn_dmeth, p_java2nrn_ometh, p_java2nrn_smeth, pc, Inst::pf, Inst::pfd, Inst::pfo, Inst::pfs, pop_frame(), push_frame(), s, special_pnt_call(), STOP, Inst::sym, Symbol::type, Symbol::u, Symbol::u_proc, and x.
Referenced by hoc_newobj1(), hoc_obj_unref(), and hoc_object_component().
check_obj_type | ( | Object* | obj, | |
char* | typename | |||
) |
References buf, and hoc_execerror().
Referenced by BBS::cell(), LinearMechanism::create(), BBS::gid_connect(), gr_addglyph(), hoc_obj_file_arg(), ivoc_vector_ptr(), matrix_arg(), nrn_random_arg(), nrniv_sh_observe(), SectionList::SectionList(), and vector_arg().
double chkarg | ( | ) |
void class2oc | ( | char* | name, | |
void* (*)() | cons, | |||
void (*)() | destruct, | |||
Member_func* | m, | |||
int (*)() | checkpoint, | |||
Member_ret_obj_func* | mobjret, | |||
Member_ret_str_func* | strret | |||
) |
References CPLUSOBJECT, Proc::defn, hoc_add_publiclist(), hoc_begintemplate(), hoc_endtemplate(), hoc_execerror(), hoc_install(), hoc_lookup(), i, Member_func::member, Member_ret_str_func::name, Member_ret_obj_func::name, Member_func::name, Member_ret_obj_func::omember, Inst::pfd, Inst::pfo, Inst::pfs, s, Member_ret_str_func::smember, Symbol::subtype, t, Symbol::template, Symbol::u, and Symbol::u_proc.
Referenced by FInitializeHandler_reg(), Graph_reg(), GrGlyph_reg(), GUIMath_reg(), HBox_reg(), Impedance_reg(), KSChan_reg(), LinearMechanism_reg(), Matrix_reg(), MechanismStandard_reg(), MechanismType_reg(), nrnpython_reg(), nrnpython_reg_real(), OcDeck_reg(), OcFile_reg(), OcList_reg(), OcPointer_reg(), OcTimer_reg(), ParallelContext_reg(), PlotShape_reg(), PWManager_reg(), Random_reg(), SaveState_reg(), SectionBrowser_reg(), SectionList_reg(), SectionRef_reg(), Shape_reg(), SingleChan_reg(), StateTransitionEvent_reg(), StringFunctions_reg(), SymChooser_reg(), VBox_reg(), and Vector_reg().
hoc_add_publiclist | ( | Symbol * | s | ) |
References hoc_decl(), hoc_execerror(), Symbol::public, and PUBLIC_TYPE.
Referenced by class2oc(), and java2nrn_class().
hoc_allobjects | ( | ) |
References gargstr(), hoc_allobjects1(), hoc_allobjects2(), hoc_is_str_arg(), hoc_lookup(), hoc_objgetarg(), hoc_ret(), ifarg(), n, and pushx.
References hoc_object_name(), Item, ITERATE, Symbol::next, OBJ, t, Symbol::template, Symbol::type, and Symbol::u.
Referenced by hoc_allobjects().
References hoc_object_name(), Item, ITERATE, OBJ, and t.
Referenced by hoc_allobjects().
hoc_allobjectvars | ( | ) |
References hoc_list_allobjref(), hoc_ret(), hoc_top_level_data, and pushx.
hoc_asgn_obj_to_str | ( | ) |
hoc_begintemplate | ( | Symbol * | t1 | ) |
References emalloc, hoc_decl(), hoc_execerror(), hoc_free_symspace(), hoc_in_template, hoc_objectdata, hoc_thisobject, Symbol::name, pushtemplatei, pushtemplateo, pushtemplateodata, pushtemplatesym, pushtemplatesymlist, t, Symbol::template, Symbol::type, type, and Symbol::u.
Referenced by class2oc(), and java2nrn_class().
References d, hoc_call_func(), hoc_objectdata, hoc_objectdata_restore(), hoc_objectdata_save(), hoc_thisobject, and hoc_top_level_data.
Referenced by BBSImpl::execute_helper(), HocCommand::func_call(), and BBSImpl::subworld_worker_execute().
hoc_constobject | ( | ) |
References buf, hoc_execerror(), hoc_pushobj(), hoc_temp_objptr(), hoc_xpop(), index, Item, ITERATE, OBJ, pc, t, Symbol::template, and Symbol::u.
Referenced by debugzz().
hoc_dec_refcount | ( | Object ** | pobj | ) |
References assert, and hoc_obj_unref().
Referenced by hoc_free_allobjects(), hoc_free_symspace(), hoc_new_object_asgn(), hoc_newobj(), hoc_obj_set(), hoc_object_asgn(), hoc_objvardecl(), OcList::ounref(), MechanismType::point_process(), and SectionList::~SectionList().
References hoc_execerror(), hoc_install(), and hoc_table_lookup().
Symbol* hoc_decl | ( | ) |
Referenced by hoc_add_publiclist(), and hoc_begintemplate().
hoc_endtemplate | ( | Symbol * | t | ) |
References hoc_execerror(), hoc_in_template, hoc_l_newlist(), hoc_objectdata, hoc_table_lookup(), hoc_thisobject, i, Symbol::name, s, symlist, Symbol::template, Symbol::type, and Symbol::u.
Referenced by class2oc(), and java2nrn_class().
hoc_exec_cmd | ( | ) |
References HocStr::buf, buf, err, gargstr(), hoc_execerror(), hoc_obj_run(), hoc_objgetarg(), hoc_ret(), hocstr_create(), hocstr_delete(), ifarg(), and pushx.
Referenced by hoc_execute1().
hoc_external_var | ( | Symbol * | s | ) |
References Symbol::arayinfo, EXTERNAL_TYPE, hoc_execerror(), hoc_table_lookup(), PUBLIC_TYPE, STRING, Symbol::subtype, Symbol::template, Symbol::type, Symbol::u, and Symbol::u_proc.
hoc_free_allobjects | ( | Template * | template, | |
Symlist * | sl, | |||
Objectdata * | data | |||
) |
References CPLUSOBJECT, Symlist::first, hoc_dec_refcount(), hoc_total_array_data(), i, Symbol::next, Symbol::oboff, Symbol::public, s, Symbol::subtype, Symbol::type, and Symbol::u.
Referenced by hoc_free_symspace().
Symbol* hoc_install | ( | ) |
hoc_install_hoc_obj | ( | ) |
References hoc_lookup(), and hoc_oc().
Referenced by init().
hoc_install_object_data_index | ( | Symbol * | sp | ) |
References erealloc, hoc_objectdata, and hoc_top_level_data.
Referenced by add_section(), hoc_objvardecl(), hoc_obvar_declare(), and install().
References CPLUSOBJECT, hoc_object_name(), hoc_total_array_data(), id, Symbol::name, Symbol::next, Symbol::oboff, Symbol::public, Symbol::subtype, Symbol::type, and Symbol::u.
Referenced by hoc_allobjectvars().
Datum* hoc_look_inside_stack | ( | ) |
Object* hoc_name2obj | ( | char * | name, | |
int | index | |||
) |
References buf, hoc_execerror(), hoc_table_lookup(), Item, ITERATE, OBJ, t, Symbol::template, Symbol::type, and Symbol::u.
References CPLUSOBJECT, emalloc, hoc_l_lappendobj(), hoc_template_notify(), and JAVAOBJECT.
Referenced by hoc_new_object_asgn(), hoc_newobj1(), hoc_temp_objvar(), nrn_new_pointprocess(), and nrnpy_pyobject_in_obj().
References hoc_dec_refcount(), hoc_new_object(), and hoc_obj_ref().
hoc_newobj | ( | ) |
References assert, hoc_dec_refcount(), hoc_inside_stacktype(), hoc_look_inside_stack(), hoc_newobj1(), hoc_nopop(), hoc_obj_look_inside_stack(), hoc_obj_unref(), hoc_push_object(), hoc_pushobj(), i, OBJECTTMP, pc, Datum::pobj, and s.
Referenced by debugzz().
References Symbol::arayinfo, call_ob_proc(), CPLUSOBJECT, ecalloc, emalloc, hoc_construct_point(), hoc_new_object(), hoc_nopop(), hoc_template_notify(), hoc_total_array_data(), i, Item, JAVAOBJECT, Symbol::name, new_sections(), Symbol::next, Symbol::oboff, Symbol::public, Arrayinfo::refcount, s, STRING, Symbol::template, Symbol::type, and Symbol::u.
Referenced by hoc_new_opoint(), hoc_newobj(), and hoc_newobj_arg().
hoc_newobj_arg | ( | ) |
References hoc_newobj1(), hoc_pushobj(), hoc_temp_objptr(), i, and pc.
Referenced by hoc_newobj_ret().
hoc_newobj_ret | ( | ) |
hoc_ob_check | ( | int | type | ) |
References Code, codei, hoc_cmp_otype(), hoc_execerror(), hoc_known_type(), ipop, and t.
hoc_ob_pointer | ( | ) |
References cable_prop_eval_pointer(), d, hoc_execerror(), hoc_ipop(), hoc_look_inside_stack(), hoc_pushpx(), hoc_spop(), hoc_stacktype(), hoc_xpop(), nrn_rangepointer(), nrn_sec_pop(), sec, Symbol::subtype, Datum::sym, SYMBOL, Symbol::type, type, USERPROPERTY, and x.
Object* hoc_obj_get | ( | int | i | ) |
References hoc_objectdata, Symbol::oboff, and Symbol::u.
Object* hoc_obj_look_inside_stack | ( | ) |
hoc_obj_ref | ( | Object* | obj | ) |
int hoc_obj_run | ( | char* | cmd, | |
Object* | ob | |||
) |
References err, hoc_execerror(), hoc_objectdata, hoc_objectdata_restore(), hoc_objectdata_save(), hoc_oc(), hoc_thisobject, and hoc_top_level_data.
Referenced by OcJumpImpl::execute(), HocCommand::execute(), BBSImpl::execute_helper(), hoc_after_prax_quad(), hoc_exec_cmd(), ivocmain(), and BBSImpl::subworld_worker_execute().
References hoc_dec_refcount(), hoc_obj_ref(), hoc_objectdata, Symbol::oboff, and Symbol::u.
hoc_obj_unref | ( | Object* | obj | ) |
References call_ob_proc(), CPLUSOBJECT, hoc_free_object(), hoc_obj_disconnect(), hoc_object_name(), hoc_template_notify(), hoc_thisobject, i, ivoc_free_alias(), JAVAOBJECT, and pushx.
Referenced by clear_point_process_struct(), fit_praxis(), hoc_dec_refcount(), hoc_free_symspace(), hoc_newobj(), hoc_stkobj_unref(), hoc_tobj_unref(), hoc_unref_defer(), nrn_thread_partition(), nrn_threads_create(), ret(), SingleChan::setrand(), single_prop_free(), HocCommand::~HocCommand(), KSChanFunction::~KSChanFunction(), and SingleChan::~SingleChan().
hoc_object_asgn | ( | ) |
References assert, d, hoc_assign_str(), hoc_dec_refcount(), hoc_execerror(), hoc_inside_stacktype(), hoc_ipop(), hoc_look_inside_stack(), hoc_obj_look_inside_stack(), hoc_objpop(), hoc_opasgn(), hoc_pushobj(), hoc_pushstr(), hoc_pushx(), hoc_pxpop(), hoc_spop(), hoc_stacktype(), hoc_strpop(), hoc_tobj_unref(), hoc_xpop(), i, nrn_rangeconst(), nrn_rangepointer(), nrn_sec_pop(), OBJECTTMP, op, pc, pd, Section::refcount, sec, STRING, Symbol::subtype, Datum::sym, SYMBOL, Symbol::type, and USERPROPERTY.
hoc_object_component | ( | ) |
References Symbol::arayinfo, araypt, call_ob_proc(), CPLUSOBJECT, d, fprintf(), hoc_execerror(), hoc_nopop(), hoc_obj_look_inside_stack(), hoc_object_asgn(), hoc_objectdata, hoc_objectdata_restore(), hoc_objectdata_save(), hoc_objpop(), hoc_pop_defer(), hoc_push_object(), hoc_pushobj(), hoc_pushpx(), hoc_pushs(), hoc_pushstr(), hoc_pushx(), hoc_pxpop(), hoc_returning, hoc_strpop(), hoc_table_lookup(), hoc_thisobject, hoc_tobj_unref(), hoc_xpop(), i, if(), ISARRAY, ivoc_alias_lookup(), JAVAOBJECT, Symbol::name, nrn_pushsec(), nrn_sec_sym, nrn_sectionref_steer(), Arrayinfo::nsub, Symbol::object_, OBJECTALIAS, OPARINFO, OPOBJ, OPSECITM, OPSTR, OPVAL, pc, pd, Section::prop, Symbol::public, PUBLIC_TYPE, pushi, pushs, Symbol::pval, sec, section_object_seen, STRING, Symbol::type, Symbol::u, VARALIAS, and x.
hoc_object_eval | ( | ) |
References d, hoc_ipop(), hoc_look_inside_stack(), hoc_pushx(), hoc_pxpop(), hoc_spop(), hoc_stacktype(), hoc_xpop(), nrn_rangepointer(), nrn_sec_pop(), sec, Symbol::subtype, Datum::sym, SYMBOL, Symbol::type, type, USERPROPERTY, and x.
Referenced by debugzz(), and hoc_get_symbol().
hoc_object_id | ( | ) |
References chkarg(), hoc_objgetarg(), hoc_ret(), ifarg(), and pushx.
char* hoc_object_pathname | ( | Object* | ob | ) |
References hoc_object_name(), hoc_warning(), and objectpath.
Referenced by hoc_section_pathname().
hoc_object_pop | ( | ) |
References hoc_execerror(), hoc_objectdata, hoc_ret(), hoc_thisobject, hoc_top_level_data, and pushx.
hoc_object_push | ( | ) |
References hoc_execerror(), hoc_objectdata, hoc_objgetarg(), hoc_ret(), hoc_thisobject, hoc_top_level_data, OBJ_STACK_SIZE, and pushx.
hoc_object_pushed | ( | ) |
hoc_objectarg | ( | ) |
References hoc_argindex(), hoc_objgetarg(), hoc_pushobj(), i, and pc.
Objectdata* hoc_objectdata_restore | ( | Objectdata* | obdsav | ) |
References hoc_top_level_data.
Objectdata* hoc_objectdata_save | ( | ) |
References hoc_objectdata, and hoc_top_level_data.
Referenced by assign(), call(), call_ob_proc(), eval(), hoc_call_objfunc(), hoc_evalpointer(), hoc_iterator_stmt(), hoc_obj_run(), hoc_object_component(), hoc_objectvar(), hoc_push_string(), and nrnpy_pyCallObject().
hoc_objectvar | ( | ) |
References araypt, hoc_objectdata, hoc_objectdata_restore(), hoc_objectdata_save(), hoc_pushobj(), hoc_thisobject, hoc_top_level_data, ISARRAY, OPOBJ, pc, Symbol::public, Symbol::sym, and Symbol::u.
Object** hoc_objgetarg | ( | ) |
Object** hoc_objpop | ( | ) |
hoc_objvardecl | ( | ) |
References emalloc, hoc_arayinfo_install(), hoc_dec_refcount(), hoc_freearay(), hoc_install_object_data_index(), hoc_objectdata, hoc_total_array(), i, Symbol::name, Symbol::oboff, OPOBJ, pc, Symbol::type, and Symbol::u.
References assert, ecalloc, hoc_execerror(), hoc_fin, hoc_install_object_data_index(), hoc_print_first_instance, Item, NOT_PARALLEL_SUB, nrnmpi_myid_world, OPSECITM, OPSTR, OPVAL, and STRING.
hoc_oop_initaftererror | ( | ) |
References hoc_in_template, hoc_objectdata, hoc_thisobject, and hoc_top_level_data.
Referenced by execerror().
double hoc_opasgn | ( | ) |
Object* hoc_pop_object | ( | ) |
hoc_push_current_object | ( | ) |
double* hoc_pxpop | ( | ) |
References erealloc, hoc_objectdata, and hoc_top_level_data.
char** hoc_strpop | ( | ) |
Symbol* hoc_table_lookup | ( | ) |
Object** hoc_temp_objptr | ( | ) |
References hoc_new_object(), and hoc_temp_objptr().
Referenced by BBS::gid_connect(), and IvocVect::temp_objvar().
References a, i, Arrayinfo::nsub, OPARINFO, and Arrayinfo::sub.
Referenced by add_section(), hoc_freearay(), and hoc_objvardecl().
References a, i, Arrayinfo::nsub, and Arrayinfo::sub.
Referenced by SymDirectoryImpl::append(), NrnProperty::assign(), hoc_free_allobjects(), hoc_list_allobjref(), hoc_newobj1(), MechanismStandard::name(), objectpath(), MechanismStandard::panel(), MechanismStandard::save(), HocDataPathImpl::search(), section_exists(), and SaveState::ssi_def().
References hoc_execerror(), hoc_table_lookup(), and Symbol::type.
Referenced by bbs_done(), and BBSImpl::execute_helper().
int is_obj_type | ( | Object* | obj, | |
char* | typename | |||
) |
Referenced by SymDirectoryImpl::append(), Oc2IV::object_str(), and SymDirectory::variable().
References assert, buf, hoc_add_publiclist(), hoc_begintemplate(), hoc_endtemplate(), hoc_execerror(), hoc_install(), hoc_lookup(), hoc_unlink_symbol(), i, JAVAOBJECT, Symbol::name, Symbol::next, p_java2nrn_cons, p_java2nrn_destruct, s, Symbol::s_varn, Symbol::subtype, t, Symbol::template, type, Symbol::u, and Symbol::u_auto.
Symbol* java2nrn_class | ( | ) |
int objectpath | ( | Object* | ob, | |
Object* | oblook, | |||
char* | path, | |||
depth | ||||
) |
References Symlist::first, hoc_araystr(), hoc_top_level_data, hoc_total_array_data(), hoc_warning(), i, ivoc_list_look(), Symbol::name, Symbol::next, objectpath, Symbol::oboff, pathprepend, Symbol::public, s, Symbol::type, and Symbol::u.
References hoc_objectdata, and hoc_thisobject.
Referenced by ObjectContext::restore(), and OcJumpImpl::restore().
References hoc_objectdata, and hoc_thisobject.
Referenced by OcJumpImpl::begin(), and ObjectContext::ObjectContext().
pathprepend | ( | char* | path, | |
char * | name, | |||
char * | indx | |||
) |
References buf.
FILE* hoc_fin |
Referenced by hoc_obvar_declare(), and nrnpython_start().
int hoc_in_template = 0 |
Referenced by hoc_begintemplate(), hoc_endtemplate(), hoc_oop_initaftererror(), and ParseTopLevel::restore().
Objectdata* hoc_objectdata = (Objectdata *)0 |
Referenced by add_section(), assign(), call(), call_ob_proc(), eval(), hc_restore_(), hc_save_and_set_to_top_(), hoc_array_index(), hoc_begintemplate(), hoc_call_objfunc(), hoc_endtemplate(), hoc_evalpointer(), hoc_install_object_data_index(), hoc_iterator_stmt(), hoc_obj_get(), hoc_obj_run(), hoc_obj_set(), hoc_object_component(), hoc_object_pop(), hoc_object_push(), hoc_objectdata_save(), hoc_objectvar(), hoc_objvardecl(), hoc_oop_initaftererror(), hoc_push_string(), hoc_resize_toplevel(), hoc_section_pathname(), SymDirectoryImpl::load(), nrnpy_pyCallObject(), ObjectContext::ObjectContext(), oc_restore_hoc_oop(), oc_save_hoc_oop(), ParseTopLevel::restore(), ParseTopLevel::save(), and SymDirectory::variable().
Referenced by hoc_obvar_declare(), and ivocmain().
Object* hoc_thisobject |
Referenced by add_section(), assign(), call(), call_ob_proc(), eval(), forall_section(), hoc_after_prax_quad(), hoc_begintemplate(), hoc_call_objfunc(), hoc_endtemplate(), hoc_evalpointer(), hoc_iterator(), hoc_iterator_stmt(), hoc_obj_run(), hoc_obj_unref(), hoc_object_component(), hoc_object_pop(), hoc_object_push(), hoc_objectvar(), hoc_oop_initaftererror(), hoc_push_current_object(), hoc_push_string(), HocCommand::HocCommand(), nrnpy_dprop(), nrnpy_pyCallObject(), ObjectContext::ObjectContext(), oc_restore_hoc_oop(), oc_save_hoc_oop(), push_frame(), ParseTopLevel::restore(), and ParseTopLevel::save().
Objectdata* hoc_top_level_data |
Referenced by add_section(), assign(), call(), delete_section(), eval(), hoc_allobjectvars(), hoc_call_objfunc(), hoc_evalpointer(), hoc_free_symspace(), hoc_install_object_data_index(), hoc_iterator_stmt(), hoc_obj_run(), hoc_object_pop(), hoc_object_push(), hoc_objectdata_restore(), hoc_objectdata_save(), hoc_objectvar(), hoc_oop_initaftererror(), hoc_push_string(), hoc_resize_toplevel(), nrnpy_pyCallObject(), Oc2IV::object_pstr(), ObjectContext::ObjectContext(), objectpath(), ParseTopLevel::restore(), ParseTopLevel::save(), HocDataPathImpl::search(), secname(), section_exists(), and SymDirectory::SymDirectory().
void*(* p_java2nrn_cons)() |
Referenced by java2nrn_class().
void(* p_java2nrn_destruct)() |
Referenced by java2nrn_class().
Referenced by call_ob_proc().
Referenced by call_ob_proc().
Referenced by call_ob_proc().