1 /************************************************************
3 ** COPYRIGHT (C) 1993 UNIVERSITY OF PITTSBURGH
4 ** COPYRIGHT (C) 1996 GANNON UNIVERSITY
7 ** This software is distributed on an as-is basis
8 ** with no warranty implied or intended. No author
9 ** or distributor takes responsibility to anyone
10 ** regarding its use of or suitability.
12 ** The software may be distributed and modified
13 ** freely for academic and other non-commercial
14 ** use but may NOT be utilized or included in whole
15 ** or part within any commercial product.
17 ** This copyright notice must remain on all copies
18 ** and modified versions of this software.
20 ************************************************************/
23 * As part of MS Thesis Work, S T Frezza, UPitt Engineering
28 typedef union var_item_union varItem
;
29 typedef struct var_item_struct varStruct
;
30 typedef struct var_struct var
;
31 typedef struct var_list_struct varlist
;
33 /* ---------- Srange structures lifted from "route.h" ---------------------------- */
34 typedef struct short_range_struct srange
;
35 typedef struct short_range_list_struct srnglist
;
37 struct short_range_struct
42 struct short_range_list_struct
49 /* --------------------- var type definition and supports -------------------------*/
51 /* Used to identify the action associated with the var*/
61 #define X 1 /* The orientation of a given edge */
68 /* structure to assemble strings of ranges; Each of these is meant to collapse into a
69 * single point (integer). In lisp, the structure is like an unevaluated list:
70 * '(function item1 item2), which is waiting for evaluation. */
77 struct var_item_struct
78 /* This is a structure to contain the union of *int, *srange, and *varItem (s)
79 * and a code of what the union actually contains. */
87 /* This is a union of *int, *srange, and *varItems: */
95 struct var_struct_list
102 /*---------------------------------------------------------------
104 *---------------------------------------------------------------
106 extern int eval_var();
109 extern var
*reduce_var();
112 extern varStruct
*eval_action();
114 /* varStruct *i1, *i2 */
116 extern varStruct
*create_rng_varStruct();
119 extern varStruct
*create_var_varStruct();
122 extern varStruct
*create_int_varStruct();
125 extern var
*create_var_struct();
127 /* varStruct *i1, *i2 */
129 extern srange
*create_srange();