NEURON
model.h File Reference
#include <stdio.h>
#include <strings.h>
#include <assert.h>
#include "modlunit.h"

Go to the source code of this file.

Classes

struct  Item
 
struct  Symbol
 

Macros

#define NRN_BUFSIZE   8192
 
#define ITEM0   (Item*) 0
 
#define ITERATE(itm, lst)   for (itm = (lst)->next; itm != (lst); itm = itm->next)
 
#define SYM0   (Symbol*) 0
 
#define SYM(q)   _SYM(q, (char*) __FILE__, __LINE__)
 
#define STR(q)   _STR(q, (char*) __FILE__, __LINE__)
 
#define ITM(q)   _ITM(q, (char*) __FILE__, __LINE__)
 
#define ITMA(q)   _ITMA(q, (char*) __FILE__, __LINE__)
 
#define LST(q)   _LST(q, (char*) __FILE__, __LINE__)
 
#define SPECIAL   1
 
#define SYMBOL   1
 
#define ITEM   2
 
#define LIST   3
 
#define ITEMARRAY   4
 
#define KEYWORD   01L
 
#define modlunitCONST   02L
 
#define INDEP   04L
 
#define DEP   010L /* also in usage field */
 
#define STAT   020L
 
#define ARRAY   040L
 
#define FUNCT   0100L /* also in usage field */
 
#define PROCED   0200L
 
#define NEGATIVE   0400L
 
#define SEMI   01L /* ";" */
 
#define BEGINBLK   02L /* "{" */
 
#define ENDBLK   04L /* "}" */
 
#define DERF   01000L
 
#define LINF   02000L
 
#define NLINF   04000L
 
#define DISCF   010000L
 
#define STEP1   020000L
 
#define PARF   040000L
 
#define EXTDEF   0100000L
 
#define KINF   0200000L
 
#define LOCL   0400000L
 
#define CNVFAC   01000000L
 
#define UFACTOR   02000000L
 
#define EXPLICIT_DECL   01 /* usage field, variable occurs in input file */
 
#define Sprintf   sprintf
 
#define Fprintf   fprintf
 
#define Fclose   fclose
 
#define Fflush   fflush
 
#define Printf   printf
 
#define Strcpy   strcpy
 
#define Strcat   strcat
 
#define Insertstr   insertstr
 
#define Insertsym   insertsym
 
#define Linsertsym   linsertsym
 
#define Linsertstr   linsertstr
 
#define Lappendsym   lappendsym
 
#define Lappendstr   lappendstr
 
#define Lappenditem   lappenditem
 
#define IGNORE(arg)   arg
 
#define Free(arg)   free((void*) (arg))
 

Typedefs

typedef struct Item Item
 
typedef Item List
 
typedef struct Symbol Symbol
 

Functions

Symbol_SYM (Item *, char *, int)
 
char * _STR (Item *q, char *file, int line)
 
Item_ITM (Item *q, char *file, int line)
 
Item ** _ITMA (Item *q, char *file, int line)
 
List_LST (Item *q, char *file, int line)
 
char * emalloc (unsigned)
 
char * stralloc (char *, char *)
 
char * inputline ()
 
char * inputtopar ()
 
char * decode_units (Symbol *)
 
char * unit_str ()
 
char * Gets (char *)
 
Listmakelist ()
 
Listitemarray ()
 
Listprepend ()
 
Listnewlist ()
 
Listinputtext ()
 
Itemputintoken (char *s, short type, short)
 
Iteminsertstr (Item *item, char *str)
 
Iteminsertsym (List *list, Symbol *sym)
 
Itemlinsertstr (List *list, char *str)
 
Itemlappendstr (List *list, char *str)
 
Itemlinsertsym (List *list, Symbol *sym)
 
Itemlappendsym (List *list, Symbol *sym)
 
Itemlappenditem (List *list, Item *item)
 
Itemlisttype ()
 
Itemnext_parstok (Item *)
 
Itemprev_parstok (Item *)
 
Itemcar (List *)
 
Itemnext (Item *)
 
Itemprev (Item *)
 
Symbolinstall (char *, int)
 
Symbollookup (char *)
 
Symbolifnew_constinstall ()
 

Variables

int unitonflag
 
char finname []
 
char buf []
 
Itemparseroot
 
Itemlex_tok
 
Listintoken
 
Listinitfunc
 
Listmodelfunc
 
Listtermfunc
 
Listprocfunc
 
Listinitlist
 
Listfirstlist
 
Listplotlist
 
Listmisc
 
FILE * fin
 
FILE * fparout
 
FILE * fcout
 
Symbolindepsym
 
Symbolsemi
 
Symbolbeginblk
 
Symbolendblk
 

Macro Definition Documentation

◆ ARRAY

#define ARRAY   040L

Definition at line 118 of file model.h.

◆ BEGINBLK

#define BEGINBLK   02L /* "{" */

Definition at line 123 of file model.h.

◆ CNVFAC

#define CNVFAC   01000000L

Definition at line 134 of file model.h.

◆ DEP

#define DEP   010L /* also in usage field */

Definition at line 116 of file model.h.

◆ DERF

#define DERF   01000L

Definition at line 125 of file model.h.

◆ DISCF

#define DISCF   010000L

Definition at line 128 of file model.h.

◆ ENDBLK

#define ENDBLK   04L /* "}" */

Definition at line 124 of file model.h.

◆ EXPLICIT_DECL

#define EXPLICIT_DECL   01 /* usage field, variable occurs in input file */

Definition at line 137 of file model.h.

◆ EXTDEF

#define EXTDEF   0100000L

Definition at line 131 of file model.h.

◆ Fclose

#define Fclose   fclose

Definition at line 235 of file model.h.

◆ Fflush

#define Fflush   fflush

Definition at line 236 of file model.h.

◆ Fprintf

#define Fprintf   fprintf

Definition at line 234 of file model.h.

◆ Free

#define Free (   arg)    free((void*) (arg))

Definition at line 248 of file model.h.

◆ FUNCT

#define FUNCT   0100L /* also in usage field */

Definition at line 119 of file model.h.

◆ IGNORE

#define IGNORE (   arg)    arg

Definition at line 247 of file model.h.

◆ INDEP

#define INDEP   04L

Definition at line 115 of file model.h.

◆ Insertstr

#define Insertstr   insertstr

Definition at line 240 of file model.h.

◆ Insertsym

#define Insertsym   insertsym

Definition at line 241 of file model.h.

◆ ITEM

#define ITEM   2

Definition at line 103 of file model.h.

◆ ITEM0

#define ITEM0   (Item*) 0

Definition at line 22 of file model.h.

◆ ITEMARRAY

#define ITEMARRAY   4

Definition at line 105 of file model.h.

◆ ITERATE

#define ITERATE (   itm,
  lst 
)    for (itm = (lst)->next; itm != (lst); itm = itm->next)

Definition at line 25 of file model.h.

◆ ITM

#define ITM (   q)    _ITM(q, (char*) __FILE__, __LINE__)

Definition at line 88 of file model.h.

◆ ITMA

#define ITMA (   q)    _ITMA(q, (char*) __FILE__, __LINE__)

Definition at line 89 of file model.h.

◆ KEYWORD

#define KEYWORD   01L

Definition at line 113 of file model.h.

◆ KINF

#define KINF   0200000L

Definition at line 132 of file model.h.

◆ Lappenditem

#define Lappenditem   lappenditem

Definition at line 246 of file model.h.

◆ Lappendstr

#define Lappendstr   lappendstr

Definition at line 245 of file model.h.

◆ Lappendsym

#define Lappendsym   lappendsym

Definition at line 244 of file model.h.

◆ LINF

#define LINF   02000L

Definition at line 126 of file model.h.

◆ Linsertstr

#define Linsertstr   linsertstr

Definition at line 243 of file model.h.

◆ Linsertsym

#define Linsertsym   linsertsym

Definition at line 242 of file model.h.

◆ LIST

#define LIST   3

Definition at line 104 of file model.h.

◆ LOCL

#define LOCL   0400000L

Definition at line 133 of file model.h.

◆ LST

#define LST (   q)    _LST(q, (char*) __FILE__, __LINE__)

Definition at line 90 of file model.h.

◆ modlunitCONST

#define modlunitCONST   02L

Definition at line 114 of file model.h.

◆ NEGATIVE

#define NEGATIVE   0400L

Definition at line 121 of file model.h.

◆ NLINF

#define NLINF   04000L

Definition at line 127 of file model.h.

◆ NRN_BUFSIZE

#define NRN_BUFSIZE   8192

Definition at line 13 of file model.h.

◆ PARF

#define PARF   040000L

Definition at line 130 of file model.h.

◆ Printf

#define Printf   printf

Definition at line 237 of file model.h.

◆ PROCED

#define PROCED   0200L

Definition at line 120 of file model.h.

◆ SEMI

#define SEMI   01L /* ";" */

Definition at line 122 of file model.h.

◆ SPECIAL

#define SPECIAL   1

Definition at line 100 of file model.h.

◆ Sprintf

#define Sprintf   sprintf

Definition at line 233 of file model.h.

◆ STAT

#define STAT   020L

Definition at line 117 of file model.h.

◆ STEP1

#define STEP1   020000L

Definition at line 129 of file model.h.

◆ STR

#define STR (   q)    _STR(q, (char*) __FILE__, __LINE__)

Definition at line 87 of file model.h.

◆ Strcat

#define Strcat   strcat

Definition at line 239 of file model.h.

◆ Strcpy

#define Strcpy   strcpy

Definition at line 238 of file model.h.

◆ SYM

#define SYM (   q)    _SYM(q, (char*) __FILE__, __LINE__)

Definition at line 86 of file model.h.

◆ SYM0

#define SYM0   (Symbol*) 0

Definition at line 74 of file model.h.

◆ SYMBOL

#define SYMBOL   1

Definition at line 102 of file model.h.

◆ UFACTOR

#define UFACTOR   02000000L

Definition at line 135 of file model.h.

Typedef Documentation

◆ Item

typedef struct Item Item

◆ List

typedef Item List

Definition at line 24 of file model.h.

◆ Symbol

typedef struct Symbol Symbol

Function Documentation

◆ _ITM()

Item* _ITM ( Item q,
char *  file,
int  line 
)

Definition at line 192 of file io.cpp.

◆ _ITMA()

Item** _ITMA ( Item q,
char *  file,
int  line 
)

Definition at line 199 of file io.cpp.

◆ _LST()

List* _LST ( Item q,
char *  file,
int  line 
)

Definition at line 206 of file io.cpp.

◆ _STR()

char* _STR ( Item q,
char *  file,
int  line 
)

Definition at line 185 of file io.cpp.

◆ _SYM()

Symbol* _SYM ( Item q,
char *  file,
int  line 
)

Definition at line 178 of file io.cpp.

◆ car()

Item * car ( List )

◆ decode_units()

char * decode_units ( Symbol )

◆ Gets()

char * Gets ( char *  buf)

Definition at line 93 of file io.cpp.

◆ ifnew_constinstall()

Symbol * ifnew_constinstall ( )

◆ inputline()

char* inputline ( )

◆ inputtext()

List * inputtext ( )

◆ inputtopar()

char * inputtopar ( )

◆ insertstr()

Item * insertstr ( Item item,
char *  str 
)

◆ insertsym()

Item * insertsym ( List list,
Symbol sym 
)

◆ install()

Symbol* install ( char *  ,
int   
)

◆ itemarray()

List * itemarray ( )

◆ lappenditem()

Item * lappenditem ( List list,
Item item 
)

◆ lappendstr()

Item * lappendstr ( List list,
char *  str 
)

◆ lappendsym()

Item * lappendsym ( List list,
Symbol sym 
)

◆ linsertstr()

Item * linsertstr ( List list,
char *  str 
)

◆ linsertsym()

Item * linsertsym ( List list,
Symbol sym 
)

◆ listtype()

Item * listtype ( )

◆ lookup()

Symbol * lookup ( char *  )

◆ makelist()

List* makelist ( )

◆ newlist()

List * newlist ( void  )

◆ next()

Item * next ( Item )

◆ next_parstok()

Item * next_parstok ( Item )

◆ prepend()

List * prepend ( )

◆ prev()

Item * prev ( Item item)

Definition at line 93 of file list.cpp.

◆ prev_parstok()

Item * prev_parstok ( Item )

◆ putintoken()

Item* putintoken ( char *  s,
short  type,
short   
)

◆ unit_str()

char * unit_str ( )

Variable Documentation

◆ beginblk

Symbol * beginblk

Definition at line 197 of file model.h.

◆ endblk

Symbol * endblk

Definition at line 198 of file model.h.

◆ fcout

FILE * fcout

Definition at line 193 of file model.h.

◆ fin

FILE* fin
extern

Definition at line 32 of file model.cpp.

◆ finname

char finname[]
extern

Definition at line 37 of file model.cpp.

◆ firstlist

List * firstlist

Definition at line 188 of file model.h.

◆ fparout

FILE * fparout

Definition at line 192 of file model.h.

◆ indepsym

Symbol* indepsym
extern

Definition at line 11 of file declare.cpp.

◆ initfunc

List * initfunc

Definition at line 187 of file model.h.

◆ initlist

List * initlist

Definition at line 188 of file model.h.

◆ intoken

List* intoken
extern

Definition at line 12 of file init.cpp.

◆ lex_tok

Item * lex_tok

Definition at line 184 of file model.h.

◆ misc

List * misc

Definition at line 189 of file model.h.

◆ modelfunc

List * modelfunc

Definition at line 188 of file model.h.

◆ parseroot

Item* parseroot
extern

Definition at line 38 of file model.cpp.

◆ plotlist

List * plotlist

Definition at line 188 of file model.h.

◆ procfunc

List * procfunc

Definition at line 188 of file model.h.

◆ termfunc

List * termfunc

Definition at line 188 of file model.h.

◆ unitonflag

int unitonflag
extern

Definition at line 45 of file units.cpp.