1 |
|
|
2 |
|
/* define some general tokens */ |
3 |
|
|
4 |
< |
%token MOLECULE ATOM BOND BEND TORSION POSITION MEMBERS CONSTRAINT |
5 |
< |
%token COMPONENT START_INDEX DEFINED ORIENTATION ZCONSTRAINT |
4 |
> |
%token MOLECULE ATOM BOND BEND TORSION POSITION MEMBERS MEMBER CONSTRAINT |
5 |
> |
%token COMPONENT START_INDEX DEFINED ORIENTATION ZCONSTRAINT RIGIDBODY |
6 |
|
|
7 |
|
/* more advanced tokens */ |
8 |
|
|
24 |
|
%type <node_ptr> stmt |
25 |
|
%type <node_ptr> stmt_list |
26 |
|
%type <node_ptr> assignment |
27 |
< |
%type <node_ptr> member |
27 |
> |
%type <node_ptr> members |
28 |
|
%type <node_ptr> constraint |
29 |
|
%type <node_ptr> orientation |
30 |
|
%type <node_ptr> position |
36 |
|
%type <node_ptr> torsion_block |
37 |
|
%type <node_ptr> component_block |
38 |
|
%type <node_ptr> zconstraint_block |
39 |
+ |
%type <node_ptr> rigidbody_block |
40 |
+ |
%type <node_ptr> member_block |
41 |
|
|
42 |
|
|
43 |
|
%{ |
89 |
|
|
90 |
|
stmt: |
91 |
|
assignment { $$ = $1; } |
92 |
< |
| member { $$ = $1; } |
92 |
> |
| members { $$ = $1; } |
93 |
|
| constraint { $$ = $1; } |
94 |
|
| orientation { $$ = $1; } |
95 |
|
| position { $$ = $1; } |
107 |
|
{ $$ = assign_s( $1, $3 ); } |
108 |
|
; |
109 |
|
|
110 |
< |
member: |
110 |
> |
members: |
111 |
|
MEMBERS '(' INTEGER ',' INTEGER ')' ';' |
112 |
|
{ $$ = members_2( $3, $5 ); } |
113 |
|
| MEMBERS '(' INTEGER ',' INTEGER ',' INTEGER ')' ';' |
168 |
|
| bend_block { $$ = $1; } |
169 |
|
| torsion_block { $$ = $1; } |
170 |
|
| zconstraint_block { $$ = $1; } |
171 |
+ |
| rigidbody_block { $$ = $1; } |
172 |
+ |
| member_block { $$ = $1; } |
173 |
|
| component_block { $$ = $1; } |
174 |
|
; |
175 |
|
|
202 |
|
ZCONSTRAINT ARRAY_INDEX '{' stmt_list '}' |
203 |
|
{ $$ = zconstraint_blk( $2, $4 ); } |
204 |
|
; |
205 |
+ |
|
206 |
+ |
rigidbody_block: |
207 |
+ |
RIGIDBODY ARRAY_INDEX '{' stmt_list '}' |
208 |
+ |
{ $$ = rigidbody_blk( $2, $4 ); } |
209 |
+ |
; |
210 |
|
|
211 |
+ |
member_block: |
212 |
+ |
MEMBER ARRAY_INDEX '{' stmt_list '}' |
213 |
+ |
{ $$ = member_blk( $2, $4 ); } |
214 |
+ |
; |
215 |
+ |
|
216 |
|
component_block: |
217 |
|
COMPONENT '{' stmt_list '}' |
218 |
|
{ $$ = component_blk( $3 ); } |