6 |
|
typedef enum { GLOBAL_HEAD, COMPONENT_HEAD, |
7 |
|
MOLECULE_HEAD, ATOM_HEAD, BOND_HEAD, BEND_HEAD, TORSION_HEAD, |
8 |
|
MEMBER_STMT, CONSTRAINT_STMT, ASSIGNMENT_STMT, POSITION_STMT, |
9 |
< |
ORIENTATION_STMT, START_INDEX_STMT } node_type; |
9 |
> |
ORIENTATION_STMT, ZCONSTRAINT_HEAD } node_type; |
10 |
|
|
11 |
|
/* a structure to hold the index of the members of a bond, bend, or torsion */ |
12 |
|
|
55 |
|
double z; |
56 |
|
} orientation_data; |
57 |
|
|
58 |
– |
/* this struct is used for lists of integers */ |
59 |
– |
|
60 |
– |
typedef struct integer_list_tag{ |
61 |
– |
int the_int; |
62 |
– |
struct integer_list_tag* prev; |
63 |
– |
struct integer_list_tag* next; |
64 |
– |
} integer_list; |
65 |
– |
|
58 |
|
/* here's the master node type. This is the node that will be strung |
59 |
|
together by the yacc parser. Each statement will an individual |
60 |
|
node. Block statements will act as branch nodes, pointing to their |
75 |
|
assignment_data asmt; |
76 |
|
position_data pos; |
77 |
|
orientation_data ort; |
86 |
– |
struct integer_list_tag* il_head; |
78 |
|
} the_data; |
79 |
|
|
80 |
|
} node; |