| 1 |
|
|
| 2 |
|
/* define some general tokens */ |
| 3 |
|
|
| 4 |
< |
%token MOLECULE ATOM BOND BEND TORSION POSITION MEMBERS CONSTRAINT |
| 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 */ |
| 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 |
| 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 ')' ';' |
| 169 |
|
| torsion_block { $$ = $1; } |
| 170 |
|
| zconstraint_block { $$ = $1; } |
| 171 |
|
| rigidbody_block { $$ = $1; } |
| 172 |
+ |
| member_block { $$ = $1; } |
| 173 |
|
| component_block { $$ = $1; } |
| 174 |
|
; |
| 175 |
|
|
| 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 ); } |