NEURON
consist.cpp
Go to the documentation of this file.
1
#include <../../nmodlconf.h>
2
/* /local/src/master/nrn/src/modlunit/consist.c,v 1.2 1995/09/05 20:24:01 hines Exp */
3
4
/*
5
* Check that names do not have conflicting types. This is done after the
6
* entire file is read in and allows declaring a variable after its use (very
7
* bad style) to work.
8
*/
9
#include "
model.h
"
10
#include "parse1.hpp"
11
#include "
symbol.h
"
12
13
extern
Item
**
scop_indep
;
14
15
#define con(arg1,arg2,arg3) if (t & (arg2)) if (t & (~(arg2 | arg3))) {\
16
Fprintf(stderr, "%s is a %s\n",\
17
s->name, arg1);\
18
err=1;\
19
}
20
21
void
consistency
()
22
{
23
int
tu, err = 0;
24
long
t
;
25
Symbol
*sindep;
26
27
28
/* the scop_indep can also be a automatic constant */
29
sindep =
SYM
(scop_indep[0]);
30
if
(sindep !=
indepsym
&& sindep->
subtype
== (
modlunitCONST
|
INDEP
)) {
31
sindep->
subtype
=
INDEP
;
32
}
33
34
SYMITERALL
{
35
t =
s
->subtype;
36
con
(
"KEYWORD"
,
KEYWORD
, 0);
37
con
(
"CONSTANT"
,
modlunitCONST
,
ARRAY
);
38
con
(
"INDEPENDENT"
,
INDEP
, 0);
39
con
(
"DEPENDENT"
,
DEP
,
ARRAY
);
40
con
(
"STATE"
,
STAT
,
ARRAY
);
41
con
(
"FUNCTION"
,
FUNCT
, 0);
42
con
(
"PROCEDURE"
,
PROCED
, 0);
43
con
(
"DERIVATIVE"
,
DERF
, 0);
44
con
(
" KINETIC"
,
KINF
, 0);
45
con
(
"LINEAR"
,
LINF
, 0);
46
con
(
"NONLINEAR"
,
NLINF
, 0);
47
con
(
"DISCRETE"
,
DISCF
, 0);
48
con
(
"PARTIAL"
,
PARF
, 0);
49
con
(
"STEPPED"
,
STEP1
, 0);
50
tu =
s
->usage;
51
if
((tu &
DEP
) && (tu &
FUNCT
))
52
diag
(
s
->name,
"used as both variable and function"
);
53
if
((t == 0) && tu)
54
Fprintf
(stderr,
55
"Warning: %s undefined. (declared within VERBATIM?)\n"
,
s
->name);
56
}}
57
if
(err) {
58
diag
(
"multiple uses for same variable"
, (
char
*) 0);
59
}
60
if
(
indepsym
==
SYM0
) {
61
diag
(
"Independent variable is not defined"
, (
char
*)0);
62
}
63
}
64
65
/* consist.c,v
66
* Revision 1.2 1995/09/05 20:24:01 hines
67
* paramter arrays and limits syntax is now < a, b >
68
*
69
* Revision 1.1.1.1 1994/10/12 17:22:47 hines
70
* NEURON 3.0 distribution
71
*
72
* Revision 1.1 90/11/13 16:09:24 hines
73
* Initial revision
74
* */
75
KINF
#define KINF
Definition:
model.h:132
DERF
#define DERF
Definition:
model.h:125
scop_indep
Item ** scop_indep
Definition:
declare.cpp:12
PROCED
#define PROCED
Definition:
model.h:120
diag
#define diag(s)
Definition:
fmenu.cpp:188
DEP
#define DEP
Definition:
model.h:116
SYM
#define SYM(q)
Definition:
model.h:86
Fprintf
#define Fprintf
Definition:
model.h:249
model.h
con
#define con(arg1, arg2, arg3)
Definition:
consist.cpp:15
Item
Definition:
model.h:15
symbol.h
s
_CONST char * s
Definition:
system.cpp:74
ARRAY
#define ARRAY
Definition:
model.h:118
DISCF
#define DISCF
Definition:
model.h:128
SYMITERALL
#define SYMITERALL
Definition:
symbol.h:4
PARF
#define PARF
Definition:
model.h:130
KEYWORD
#define KEYWORD
Definition:
model.h:113
Symbol
Definition:
model.h:57
indepsym
Symbol * indepsym
Definition:
declare.cpp:11
NLINF
#define NLINF
Definition:
model.h:127
FUNCT
#define FUNCT
Definition:
model.h:119
Symbol::subtype
long subtype
Definition:
model.h:59
LINF
#define LINF
Definition:
model.h:126
STAT
#define STAT
Definition:
model.h:117
STEP1
#define STEP1
Definition:
model.h:129
SYM0
#define SYM0
Definition:
model.h:74
t
double t
Definition:
init.cpp:123
INDEP
#define INDEP
Definition:
model.h:115
consistency
void consistency()
Definition:
consist.cpp:21
modlunitCONST
#define modlunitCONST
Definition:
model.h:114
src
modlunit
consist.cpp