ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libBASS/BASSyacc.y
(Generate patch)

Comparing trunk/OOPSE/libBASS/BASSyacc.y (file contents):
Revision 997 by gezelter, Tue Jan 27 19:37:48 2004 UTC vs.
Revision 998 by gezelter, Thu Jan 29 23:01:17 2004 UTC

# Line 1 | Line 1
1  
2   /* define some general tokens */
3  
4 < %token MOLECULE ATOM BOND BEND TORSION POSITION MEMBERS MEMBER CONSTRAINT
4 > %token MOLECULE ATOM BOND BEND TORSION POSITION MEMBERS CONSTRAINT
5   %token COMPONENT START_INDEX DEFINED ORIENTATION ZCONSTRAINT RIGIDBODY
6  
7   /* more advanced tokens */
# Line 20 | Line 20
20  
21   %token <s_ptr> IDENTIFIER
22   %token <s_ptr> QUOTED_STRING
23 + %token <s_ptr> LIST_STRING
24  
25   %type <node_ptr> stmt
26   %type <node_ptr> stmt_list
# Line 37 | Line 38
38   %type <node_ptr> component_block
39   %type <node_ptr> zconstraint_block
40   %type <node_ptr> rigidbody_block
40 %type <node_ptr> member_block
41  
42  
43   %{
# Line 108 | Line 108 | members:
108          ;
109  
110   members:
111 <          MEMBERS '(' INTEGER ',' INTEGER ')' ';'
112 <                                { $$ = members_2( $3, $5 ); }
113 <        | MEMBERS '(' INTEGER ',' INTEGER ',' INTEGER ')' ';'
114 <                                { $$ = members_3( $3, $5, $7 ); }
115 <        | MEMBERS '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')' ';'
116 <                                { $$ = members_4( $3, $5, $7, $9 ); }
111 >          MEMBERS LIST_STRING ';'
112 >                                { $$ = members( $2 ); }
113          ;
114  
115   constraint:
116 <          CONSTRAINT '(' INTEGER ')' ';'
117 <                                { $$ = constraint( (double)$3 ); }
122 <        | CONSTRAINT '(' DOUBLE ')' ';'
123 <                                { $$ = constraint( $3 ); }
116 >          CONSTRAINT LIST_STRING ';'
117 >                                { $$ = constraint( $2 ); }
118          ;
119  
120   orientation:
121 <          ORIENTATION '(' DOUBLE ',' DOUBLE ',' DOUBLE ')' ';'
122 <                                { $$ = orientation( $3, $5, $7 ); }
129 <        | ORIENTATION '(' INTEGER ',' DOUBLE ',' DOUBLE ')' ';'
130 <                                { $$ = orientation( (double)$3, $5, $7 ); }
131 <        | ORIENTATION '(' DOUBLE ',' INTEGER ',' DOUBLE ')' ';'
132 <                                { $$ = orientation( $3, (double)$5, $7 ); }
133 <        | ORIENTATION '(' DOUBLE ',' DOUBLE ',' INTEGER ')' ';'
134 <                                { $$ = orientation( $3, $5, (double)$7 ); }
135 <        | ORIENTATION '(' INTEGER ',' INTEGER ',' INTEGER ')' ';'
136 <                                { $$ = orientation( (double)$3, (double)$5, (double)$7 ); }
137 <        | ORIENTATION '(' DOUBLE ',' INTEGER ',' INTEGER ')' ';'
138 <                                { $$ = orientation( $3, (double)$5, (double)$7 ); }
139 <        | ORIENTATION '(' INTEGER ',' DOUBLE ',' INTEGER ')' ';'
140 <                                { $$ = orientation( (double)$3, $5, (double)$7 ); }
141 <        | ORIENTATION '(' INTEGER ',' INTEGER ',' DOUBLE ')' ';'
142 <                                { $$ = orientation( (double)$3, (double)$5, $7 ); }
121 >          ORIENTATION LIST_STRING ';'
122 >                                { $$ = orientation( $2 ); }
123          ;
124  
125   position:
126 <          POSITION '(' DOUBLE ',' DOUBLE ',' DOUBLE ')' ';'
127 <                                { $$ = position( $3, $5, $7 ); }
148 <        | POSITION '(' INTEGER ',' DOUBLE ',' DOUBLE ')' ';'
149 <                                { $$ = position( (double)$3, $5, $7 ); }
150 <        | POSITION '(' DOUBLE ',' INTEGER ',' DOUBLE ')' ';'
151 <                                { $$ = position( $3, (double)$5, $7 ); }
152 <        | POSITION '(' DOUBLE ',' DOUBLE ',' INTEGER ')' ';'
153 <                                { $$ = position( $3, $5, (double)$7 ); }
154 <        | POSITION '(' INTEGER ',' INTEGER ',' INTEGER ')' ';'
155 <                                { $$ = position( (double)$3, (double)$5, (double)$7 ); }
156 <        | POSITION '(' DOUBLE ',' INTEGER ',' INTEGER ')' ';'
157 <                                { $$ = position( $3, (double)$5, (double)$7 ); }
158 <        | POSITION '(' INTEGER ',' DOUBLE ',' INTEGER ')' ';'
159 <                                { $$ = position( (double)$3, $5, (double)$7 ); }
160 <        | POSITION '(' INTEGER ',' INTEGER ',' DOUBLE ')' ';'
161 <                                { $$ = position( (double)$3, (double)$5, $7 ); }
126 >          POSITION LIST_STRING ';'
127 >                                { $$ = position( $2 ); }
128          ;
129  
130   block:
# Line 169 | Line 135 | block:
135          | torsion_block         { $$ = $1; }
136          | zconstraint_block     { $$ = $1; }
137          | rigidbody_block       { $$ = $1; }
172        | member_block          { $$ = $1; }
138          | component_block       { $$ = $1; }
139          ;
140  
# Line 207 | Line 172 | rigidbody_block:
172          RIGIDBODY ARRAY_INDEX '{' stmt_list '}'
173                                  { $$ = rigidbody_blk( $2, $4 ); }
174          ;
175 <        
211 < member_block:
212 <        MEMBER ARRAY_INDEX '{' stmt_list '}'
213 <                                { $$ = member_blk( $2, $4 ); }
214 <        ;
215 <        
175 >                
176   component_block:
177          COMPONENT '{' stmt_list '}'
178                                  { $$ = component_blk( $3 ); }
# Line 231 | Line 191 | int yyerror( char *err_msg ){
191  
192   int yyerror( char *err_msg ){
193  
194 <  sprintf( painCave.errMsg, "yacc parse error in %s at line %d: %s\n",
195 <           yyfile_name->my_name, yylineno, err_msg );
194 >  sprintf( painCave.errMsg, "OOPSE parse error in %s at line %d: %s\n",
195 >           yyfile_name->my_name, yylineno + 1, err_msg );
196    painCave.isFatal = 1;
197    simError();
198    return 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines