76 lines
2.6 KiB
C
76 lines
2.6 KiB
C
/*
|
|
* extparse.h
|
|
*
|
|
* Definitions for the .ext file parser. Relocated from EFread.c.
|
|
*
|
|
* *********************************************************************
|
|
* * Copyright (C) 1985, 1990 Regents of the University of California. *
|
|
* * Permission to use, copy, modify, and distribute this *
|
|
* * software and its documentation for any purpose and without *
|
|
* * fee is hereby granted, provided that the above copyright *
|
|
* * notice appear in all copies. The University of California *
|
|
* * makes no representations about the suitability of this *
|
|
* * software for any purpose. It is provided "as is" without *
|
|
* * express or implied warranty. Export of this software outside *
|
|
* * of the United States of America may require an export license. *
|
|
* *********************************************************************
|
|
*/
|
|
|
|
#ifndef _MAGIC__EXTFLAT__EXTPARSE_H
|
|
#define _MAGIC__EXTFLAT__EXTPARSE_H
|
|
|
|
/*
|
|
* The following table describes the kinds of lines
|
|
* that may be read in a .ext file.
|
|
*/
|
|
typedef enum
|
|
{
|
|
ABSTRACT, ADJUST, ATTR, CAP, DEVICE, DIST, EQUIV, FET, KILLNODE, MERGE,
|
|
NODE, PARAMETERS, PORT, PRIMITIVE, RESISTOR, RESISTCLASS, RNODE, SCALE,
|
|
SUBCAP, SUBSTRATE, TECH, TIMESTAMP, USE, VERSION, EXT_STYLE
|
|
} Key;
|
|
|
|
static const struct
|
|
{
|
|
const char *k_name; /* Name of first token on line */
|
|
Key k_key; /* Internal name for token of this type */
|
|
int k_mintokens; /* Min total # of tokens on line of this type */
|
|
}
|
|
keyTable[] =
|
|
{
|
|
{"abstract", ABSTRACT, 0}, /* defines a LEF-like view */
|
|
{"adjust", ADJUST, 4},
|
|
{"attr", ATTR, 8},
|
|
{"cap", CAP, 4},
|
|
{"device", DEVICE, 11}, /* effectively replaces "fet" */
|
|
{"distance", DIST, 4},
|
|
{"equiv", EQUIV, 3},
|
|
{"fet", FET, 12}, /* for backwards compatibility */
|
|
{"killnode", KILLNODE, 2},
|
|
{"merge", MERGE, 3},
|
|
{"node", NODE, 7},
|
|
{"parameters", PARAMETERS, 3},
|
|
{"port", PORT, 8},
|
|
{"primitive", PRIMITIVE, 0}, /* defines a primitive device */
|
|
{"resist", RESISTOR, 4},
|
|
{"resistclasses", RESISTCLASS, 1},
|
|
{"rnode", RNODE, 5},
|
|
{"scale", SCALE, 4},
|
|
{"subcap", SUBCAP, 3},
|
|
{"substrate", SUBSTRATE, 3},
|
|
{"tech", TECH, 2},
|
|
{"timestamp", TIMESTAMP, 2},
|
|
{"use", USE, 9},
|
|
{"version", VERSION, 2},
|
|
{"style", EXT_STYLE, 2},
|
|
{0}
|
|
};
|
|
|
|
/* atoCap - convert a string to a EFCapValue */
|
|
#define atoCap(s) ((EFCapValue)atof(s))
|
|
|
|
extern int efReadLineNum; /* Current line number in the .ext file */
|
|
extern char *efReadFileName; /* Name of current .ext file being read */
|
|
|
|
#endif /* _MAGIC__EXTFLAT__EXTPARSE_H */
|