NEURON
modl.h File Reference

NMODL parser global flags / functions. More...

#include "wrap_sprintf.h"
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <map>
#include <string>
#include <limits.h>
#include "nmodlfunc.h"

Go to the source code of this file.

Classes

struct  Item
 
struct  Symbol
 

Macros

#define NRN_BUFSIZE   8192
 
#define ITEM0   (Item*) 0
 
#define LIST0   (List*) 0
 
#define ITERATE(itm, lst)   for (itm = (lst)->next; itm != (lst); itm = itm->next)
 
#define SYM0   (Symbol*) 0
 
#define SYM(q)   ((q)->element.sym)
 
#define STR(q)   ((q)->element.str)
 
#define ITM(q)   ((q)->element.itm)
 
#define LST(q)   ((q)->element.lst)
 
#define SPECIAL   1
 
#define SYMBOL   1
 
#define ITEM   2
 
#define LIST   3
 
#define KEYWORD   01
 
#define PARM   02
 
#define INDEP   04
 
#define DEP   010 /* also in usage field */
 
#define STAT   020
 
#define ARRAY   040
 
#define FUNCT   0100 /* also in usage field */
 
#define PROCED   0200
 
#define NEGATIVE   0400
 
#define SEMI   01 /* ";" */
 
#define BEGINBLK   02 /* "{" */
 
#define ENDBLK   04 /* "}" */
 
#define DERF   01000
 
#define KINF   02000
 
#define NLINF   04000
 
#define DISCF   010000
 
#define PARF   040000
 
#define EXTDEF   0100000
 
#define LINF   0200000
 
#define UNITDEF   0400000L
 
#define EXTDEF2   01000000L /* functions that can take array or function name arguments */
 
#define nmodlCONST   02000000L /* constants that do not appear in .var file */
 
#define EXTDEF3   04000000L /* get two extra reset arguments at beginning */
 
#define INTGER   010000000L /* must be cast to double in expr */
 
#define EXTDEF4   020000000L /* get extra NrnThread* arg at beginning */
 
#define EXTDEF5   040000000L /* not threadsafe from the extdef list */
 
#define EXTDEF_RANDOM   0600000000L /* functions that can be used with RANDOM type */
 
#define EXPLICIT_DECL   01 /* usage field, variable occurs in input file */
 
#define NRNEXTRN   01 /* t, dt, celsius, etc. */
 
#define NRNCURIN   02 /* input value used */
 
#define NRNCUROUT   04 /* added to output value */
 
#define NRNRANGE   010
 
#define NRNPRANGEIN   020
 
#define NRNPRANGEOUT   040
 
#define NRNGLOBAL   0100 /* same for all sections, defined here */
 
#define NRNSTATIC   0200 /* v */
 
#define NRNNOTP   0400 /* doesn't belong in p array */
 
#define NRNIONFLAG
 
#define NRNPOINTER   04000
 
#define IONCONC   010000
 
#define NRNBBCOREPOINTER   020000
 
#define NMODLRANDOM   040000
 
#define IONCONC_IMPLICIT   040000
 
#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 Lappendlst   lappendlst
 
#define IGNORE(arg)   arg
 
#define Free(arg)   free((void*) (arg))
 

Typedefs

typedef struct Item List
 
typedef struct Item Item
 
typedef struct Symbol Symbol
 

Functions

char * emalloc (unsigned)
 
char * stralloc (const char *, char *)
 
char * inputline ()
 
char * inputtopar ()
 
char * Gets (char *)
 
Listnewlist ()
 
Listinputtext ()
 
Itemputintoken (const char *s, short type)
 
Iteminsertstr (Item *item, const char *str)
 
Iteminsertsym (List *list, Symbol *sym)
 
Itemlinsertstr (List *list, const char *str)
 
Itemlappendstr (List *list, const char *str)
 
Itemlinsertsym (List *list, Symbol *sym)
 
Itemlappendsym (List *list, Symbol *sym)
 
Itemlappenditem (List *list, Item *item)
 
Itemlappendlst (List *list, List *lst)
 
Itemnext ()
 
Itemprev ()
 
Symbolinstall (const char *, int)
 
Symbollookup (const char *)
 
Symbolcopylocal (Symbol *)
 
Symbolifnew_parminstall (const char *name, const char *num, const char *units, const char *limits)
 
void printlist (List *)
 
void verbatim_adjust (char *q)
 

Variables

std::map< std::string, const char * > extdef_rand
 
int nmodl_text
 
Listfiletxtlist
 
char finname [NRN_BUFSIZE]
 
char buf [NRN_BUFSIZE]
 
char * modprefix
 
Listintoken
 
Listinitfunc
 
Listconstructorfunc
 
Listdestructorfunc
 
Listmodelfunc
 
Listtermfunc
 
Listprocfunc
 
Listinitlist
 
Listfirstlist
 
Listplotlist
 
FILE * fin
 
FILE * fparout
 
FILE * fcout
 
Symbolsemi
 
Symbolbeginblk
 
Symbolendblk
 

Detailed Description

NMODL parser global flags / functions.

Definition in file modl.h.