Jspice3
inpdefs.h
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1987 Thomas L. Quarles
5  1992 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #ifndef INP
9 #define INP
10 
11  /* structure declarations used by either/both input package */
12 
13 #include "ifsim.h"
14 #include "gendefs.h"
15 #include "inpptree.h"
16 
17 extern IFsimulator *ft_sim;
18 
19 struct INPtab {
20  char *t_ent;
21  struct INPtab *t_next;
22 };
23 
24 struct INPnTab {
25  char *t_ent;
27  struct INPnTab *t_next;
28 };
29 
30 typedef struct sINPtables{
31  struct INPtab **INPsymtab;
33  int INPsize;
60 } INPtables;
61 
62 typedef struct card {
63  int linenum;
64  char *line;
65  char *error;
66  struct card *nextcard;
67  struct card *actualLine;
68 } card;
69 
70 /* structure used to save models in after they are read during pass 1 */
71 typedef struct sINPmodel{
72  IFuid INPmodName; /* uid of model */
73  int INPmodType; /* type index of device type */
74  struct sINPmodel *INPnextModel; /* link to next model */
75  int INPmodUsed; /* flag to indicate it has already been used */
76  card *INPmodLine; /* pointer to line describing model */
77  GENERIC *INPmodfast; /* high speed pointer to model for access */
78 } INPmodel;
79 
80 /* listing types - used for debug listings */
81 #define LOGICAL 1
82 #define PHYSICAL 2
83 
84 
85 /* from analysis routines */
86 #ifdef __STDC__
87 extern int ParseAC(GENERIC*,char**,card*,int,GENERIC*,INPtables*);
88 extern int ParseDC(GENERIC*,char**,card*,int,GENERIC*,INPtables*,int);
89 extern int ParseTRAN(GENERIC*,char**,card*,int,GENERIC*,INPtables*);
90 #else
91 extern int ParseAC();
92 extern int ParseDC();
93 extern int ParseTRAN();
94 #endif
95 
96 
97 /* inptabpa.c */
98 #ifdef __STDC__
99 extern char *INPtablParse(char**,GENERIC*);
100 extern char *INPtablCheck(char*,GENERIC*);
101 extern void INPtablFix(GENERIC*);
102 extern int INPtablFind(char*,GENERIC*,GENERIC**);
103 extern double INPtablEval(GENERIC*,double);
104 extern void INPtablFree(GENERIC*);
105 #else
106 extern char *INPtablParse();
107 extern char *INPtablCheck();
108 extern void INPtablFix();
109 extern int INPtablFind();
110 extern double INPtablEval();
111 extern void INPtablFree();
112 #endif
113 
114 
115 #ifdef __STDC__
116 extern int IFnewUid(GENERIC*,IFuid*,IFuid,char*,int,GENERIC**);
117 extern int INP2dot(GENERIC*,INPtables*,card*,GENERIC*,GENERIC*);
118 extern int INPaName(char*,IFvalue*,GENERIC*,int*,char*,GENERIC**,
119  IFsimulator*,int*,IFvalue*);
120 extern int INPapName(GENERIC*,int,GENERIC*,char*,IFvalue*);
121 extern char *INPdevErr(char *);
122 extern char *INPdevParse(char**,GENERIC*,int,GENERIC*,double*,int*,
123  INPtables*);
124 extern char *INPdomodel(GENERIC *,card*, INPtables*);
125 extern char *INPerrCat(char *, char *);
126 extern char *INPerror(int);
127 extern double INPevaluate(char**,int*,int);
128 extern char *INPfindLev(char*,int*);
129 extern char *INPgetMod(GENERIC*,char*,INPmodel**,INPtables*);
130 extern int INPgetTok(char**,char**,int);
131 extern void INPgetTree(char**,INPparseTree**,GENERIC*,INPtables*);
132 extern IFvalue *INPgetValue(GENERIC*,char**,int,INPtables*);
133 extern int INPgndInsert(GENERIC*,char**,INPtables*,GENERIC**);
134 extern int INPinsert(char**,INPtables*);
135 extern void INPkillMods(void);
136 extern int INPlookMod(char*);
137 extern int INPmakeMod(char*,int,card*);
138 extern int INPmkTerm(GENERIC*,char**,INPtables*,GENERIC**);
139 extern int INPnumRefs(int,int*,int*,int*,int*);
140 extern int INPpName(char*,IFvalue*,GENERIC*,int,GENERIC*);
141 extern void INPpas1(GENERIC*,card*,INPtables*);
142 extern void INPpas2(GENERIC*,card*,INPtables*,GENERIC *);
143 extern void INPptPrint(char*,IFparseTree*);
144 extern void INPtabEnd(INPtables *);
145 extern INPtables *INPtabInit(int);
146 extern int INPtermInsert(GENERIC*,char**,INPtables*,GENERIC**);
147 
148 #else /* stdc */
149 
150 extern int IFnewUid();
151 extern int INP2dot();
152 extern int INPaName();
153 extern int INPapName();
154 extern char *INPdevErr();
155 extern char *INPdevParse();
156 extern char *INPdomodel();
157 extern char *INPerrCat();
158 extern char *INPerror();
159 extern double INPevaluate();
160 extern char *INPfindLev();
161 extern char *INPgetMod();
162 extern int INPgetTok();
163 extern void INPgetTree();
164 extern IFvalue *INPgetValue();
165 extern int INPgndInsert();
166 extern int INPinsert();
167 extern void INPkillMods();
168 extern int INPlookMod();
169 extern int INPmakeMod();
170 extern int INPmkTerm();
171 extern int INPnumRefs();
172 extern int INPpName();
173 extern void INPpas1() ;
174 extern void INPpas2() ;
175 extern void INPptPrint();
176 extern void INPtabEnd();
177 extern INPtables *INPtabInit();
178 extern int INPtermInsert();
179 
180 #endif /* stdc */
181 
182 #endif /*INP*/
GENERIC * defZmod
Definition: inpdefs.h:59
GENERIC * defMmod
Definition: inpdefs.h:47
char * t_ent
Definition: inpdefs.h:25
GENERIC * defSmod
Definition: inpdefs.h:53
char * INPerror()
int INPpName()
int ParseTRAN()
char * line
Definition: inpdefs.h:64
GENERIC * defNmod
Definition: inpdefs.h:48
int INPtermInsert()
struct card * actualLine
Definition: inpdefs.h:67
void INPgetTree()
IFvalue * INPgetValue()
int IFnewUid()
char * t_ent
Definition: inpdefs.h:20
int INPtermsize
Definition: inpdefs.h:34
GENERIC * defPmod
Definition: inpdefs.h:50
int INPmakeMod()
int INPgndInsert()
char * INPtablCheck()
char * INPdevParse()
Definition: inpdefs.h:62
double INPevaluate()
INPtables * INPtabInit()
void INPpas2()
void INPtablFix()
Definition: inpdefs.h:19
GENERIC * defJmod
Definition: inpdefs.h:44
int INPmodUsed
Definition: inpdefs.h:75
int INPmkTerm()
int INPinsert()
int INPmodType
Definition: inpdefs.h:73
GENERIC * defCmod
Definition: inpdefs.h:37
void INPtablFree()
GENERIC * defVmod
Definition: inpdefs.h:56
GENERIC * IFuid
Definition: ifsim.h:72
struct card * nextcard
Definition: inpdefs.h:66
void INPtabEnd()
double INPtablEval()
GENERIC * defEmod
Definition: inpdefs.h:39
int INP2dot()
void INPkillMods()
Definition: inpkmods.c:16
void INPptPrint()
GENERIC * defOmod
Definition: inpdefs.h:49
struct INPnTab ** INPtermsymtab
Definition: inpdefs.h:32
int INPlookMod()
char * INPfindLev()
int ParseDC()
char * error
Definition: inpdefs.h:65
GENERIC * defYmod
Definition: inpdefs.h:58
int INPtablFind()
GENERIC * INPmodfast
Definition: inpdefs.h:77
GENERIC * defQmod
Definition: inpdefs.h:51
GENERIC * defHmod
Definition: inpdefs.h:42
struct sINPtables INPtables
int INPapName()
GENERIC * defBmod
Definition: inpdefs.h:36
int linenum
Definition: inpdefs.h:63
IFuid INPmodName
Definition: inpdefs.h:72
GENERIC * defWmod
Definition: inpdefs.h:57
GENERIC * defKmod
Definition: inpdefs.h:45
GENERIC * defAmod
Definition: inpdefs.h:35
GENERIC * defUmod
Definition: inpdefs.h:55
int INPsize
Definition: inpdefs.h:33
char * INPtablParse()
int INPnumRefs()
GENERIC * defTmod
Definition: inpdefs.h:54
struct INPtab * t_next
Definition: inpdefs.h:21
int INPaName()
struct sINPmodel * INPnextModel
Definition: inpdefs.h:74
struct sINPmodel INPmodel
GENERIC * defImod
Definition: inpdefs.h:43
GENERIC * defDmod
Definition: inpdefs.h:38
char * INPdomodel()
IFsimulator * ft_sim
Definition: main.c:111
int ParseAC()
GENERIC * defRmod
Definition: inpdefs.h:52
GENERIC * defGmod
Definition: inpdefs.h:41
struct card card
GENERIC * defLmod
Definition: inpdefs.h:46
char * INPdevErr()
card * INPmodLine
Definition: inpdefs.h:76
void INPpas1()
struct INPtab ** INPsymtab
Definition: inpdefs.h:31
struct INPnTab * t_next
Definition: inpdefs.h:27
GENERIC * t_node
Definition: inpdefs.h:26
char GENERIC
Definition: ifsim.h:27
GENERIC * defFmod
Definition: inpdefs.h:40
char * INPerrCat()
int INPgetTok()
char * INPgetMod()