Jspice3
inpdpar.c File Reference
#include "spice.h"
#include "inpdefs.h"
#include "iferrmsg.h"
#include "misc.h"
Include dependency graph for inpdpar.c:

Go to the source code of this file.

Functions

char * INPdevParse (char **line, GENERIC *ckt, int dev, GENERIC *fast, double *leading, int *waslead, INPtables *tab)
 

Function Documentation

char* INPdevParse ( char **  line,
GENERIC ckt,
int  dev,
GENERIC fast,
double *  leading,
int *  waslead,
INPtables tab 
)

Definition at line 23 of file inpdpar.c.

32 {
33  int error; /* int to store evaluate error return codes in */
34  char *parm;
35  char *errbuf;
36  int i;
37  IFvalue *val;
38  IFdevice *device = ft_sim->devices[dev];
39 
40  /* check for leading value */
41  *waslead = 0;
42  *leading = INPevaluate(line,&error,1);
43 
44  if (error == 0)
45  /* found a good leading number */
46  *waslead = 1;
47  else
48  *leading = 0.0;
49 
50 
51  while (**line != (char) 0) {
52  error = INPgetTok(line,&parm,1);
53  if (error)
54  return (INPerror(error));
55 
56  for (i = 0; i < *device->numInstanceParms; i++) {
57  if (!strcmp(parm,device->instanceParms[i].keyword)) {
58 
59  val = INPgetValue(ckt,line,
60  device->instanceParms[i].dataType,tab);
61  if (!val) {
62  txfree(parm);
63  return (INPerror(E_PARMVAL));
64  }
65  error = (*(ft_sim->setInstanceParm))(ckt,fast,
66  device->instanceParms[i].id,
67  val,(IFvalue*)NULL);
68  if (error) {
69  txfree(parm);
70  return (INPerror(error));
71  }
72  break;
73  }
74  }
75  if (i == *device->numInstanceParms) {
76  errbuf = tmalloc(strlen(parm)+25);
77  (void)sprintf(errbuf,"Unknown parameter (%s)",parm);
78  txfree(parm);
79  return (errbuf);
80  }
81  txfree(parm);
82  }
83  return ((char *)NULL);
84 }
DISPDEVICE device[]
Definition: display.c:24
char * INPerror()
IFsimulator * ft_sim
Definition: main.c:111
int * numInstanceParms
Definition: ifsim.h:312
IFvalue * INPgetValue()
IFparm * instanceParms
Definition: ifsim.h:313
double INPevaluate()
char * tmalloc()
Definition: fteinp.h:14
#define E_PARMVAL
Definition: iferrmsg.h:32
IFdevice ** devices
Definition: ifsim.h:461
int id
Definition: ifsim.h:56
void txfree()
#define NULL
Definition: spdefs.h:121
int dataType
Definition: ifsim.h:57
char * keyword
Definition: ifsim.h:55
int INPgetTok()