1 #include <../../nrnconf.h>
31 const char*
concat(
const char* s1,
const char* s2) {
38 tmp =
new char[l1 + l2 + 1];
40 return (
const char*) tmp;
67 void load_mechanism(
Prop*,
int,
const char*);
72 void make_pathname(
const char*,
const char*,
const char*,
int s =
'.');
94 for (
i = 0;
i <
cnt; ++
i) {
99 for (
i = 0;
i <
cnt; ++
i) {
125 if (sym->
type == TEMPLATE) {
184 return si->pysec_ ? true :
false;
193 if (si->pysec_type_ == PYSECOBJ) {
233 for (
long i = 0;
i <
cnt; ++
i) {
252 for (
long i = 0;
i <
cnt; ++
i) {
281 if (ob && ob->ctemplate->constructor) {
301 if (ob && ob->ctemplate->is_point_) {
317 for (++cp; cp[2]; ++cp) {
346 for (
long i = 0;
i <
cnt; ++
i) {
503 for (sym =
sl->first; sym; sym = sym->
next) {
521 if (
obj_->ctemplate->constructor) {
530 for (
Symbol* s =
sl->first; s; s = s->next) {
541 for (
const auto& kv: a->
symtab_) {
569 load_mechanism(
p, 0,
xarg);
588 void SymDirectoryImpl::load_mechanism(
Prop*
p,
int type,
const char*
xarg) {
594 for (
Symbol* sym = np.first_var(); np.more_var(); sym = np.next_var()) {
595 if (np.var_type(sym) ==
type ||
type == 0) {
626 if (
n > 5 && sym->
type == VAR) {
629 for (
i = 0;
i <
n; ++
i) {
648 for (
i = 0;
i <
cnt; ++
i) {
void nrn_pushsec(Section *sec)
double nrn_arc_position(Section *sec, Node *node)
static void Detach(cTemplate *, Observer *)
static void Attach(cTemplate *, Observer *)
std::map< String, Symbol * > symtab_
static void Detach(Object *, Observer *)
static void Attach(Object *, Observer *)
const char * string() const
virtual const String & path() const
virtual int count() const
int array_index(int index) const
virtual double * variable(int index)
virtual bool is_pysec(int index) const
static bool match(const String &name, const String &pattern)
virtual int index(const String &) const
virtual int whole_vector(int index)
Symbol * symbol(int index) const
virtual void whole_name(int index, CopyString &) const
SymDirectory * newsymdir(int index)
virtual const String & name(int index) const
virtual bool is_directory(int index) const
void disconnect(Observable *)
void update(Observable *)
void make_pathname(const char *, const char *, const char *, int s='.')
void append(Symbol *sym, Objectdata *od, Object *o=NULL)
bool is_directory() const
SymbolItem(const char *, int whole_array=0)
const String & name() const
sprintf(buf, " if (secondorder) {\n" " int _i;\n" " for (_i = 0; _i < %d; ++_i) {\n" " _p[_slist%d[_i]] += dt*_p[_dlist%d[_i]];\n" " }}\n", numeqn, listnum, listnum)
void hoc_execerror(const char *, const char *)
size_t hoc_total_array_data(Symbol *s, Objectdata *obd)
Objectdata * hoc_objectdata
double * hoc_val_pointer(const char *s)
int is_obj_type(Object *obj, const char *type_name)
char * hoc_object_name(Object *ob)
char * hoc_araystr(Symbol *sym, int index, Objectdata *obd)
const char * concat(const char *s1, const char *s2)
implementPtrList(SymbolList, SymbolItem)
Symlist * hoc_top_level_symlist
int hoc_array_index(Symbol *, Objectdata *)
Objectdata * hoc_top_level_data
Symlist * hoc_built_in_symlist
static int compare_entries(const void *k1, const void *k2)
double * ivoc_vector_ptr(Object *o, int index)
int ivoc_vector_size(Object *o)
#define ITERATE(itm, lst)
void section_ref(Section *)
void section_unref(Section *)
int const size_t const size_t n
Object ** object_pobj(Symbol *sym, Objectdata *od)
hoc_Item ** object_psecitm(Symbol *sym, Objectdata *od)
void nrn_symdir_load_pysec(SymbolList &sl, void *v)
HocStruct Object * object_
HocStruct cTemplate * ctemplate
char * strstr(char *cs, char *ct)