114 |
|
| rigidbodyblock |
115 |
|
| cutoffgroupblock |
116 |
|
| fragmentblock |
117 |
+ |
| constraintblock |
118 |
|
; |
119 |
|
|
120 |
|
atomblock |
275 |
|
|
276 |
|
fragmentstatement : assignment |
277 |
|
; |
278 |
+ |
|
279 |
+ |
constraintblock : #(CONSTRAINT {ConstraintStamp* currConstraintStamp = new ConstraintStamp(); blockStack.push(currConstraintStamp);} |
280 |
+ |
(constraintstatement)* |
281 |
+ |
ENDBLOCK ) { |
282 |
+ |
blockStack.pop(); |
283 |
+ |
MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top()); |
284 |
+ |
currMoleculeStamp->addConstraintStamp(currConstraintStamp); |
285 |
+ |
} |
286 |
+ |
; |
287 |
|
|
288 |
+ |
constraintstatement |
289 |
+ |
{ |
290 |
+ |
vector<int> ivec; |
291 |
+ |
ConstraintStamp* currConstraintStamp = static_cast<ConstraintStamp*>(blockStack.top()); |
292 |
+ |
} |
293 |
+ |
: assignment |
294 |
+ |
| #(MEMBERS ivec=inttuple) {currConstraintStamp->setMembers(ivec);} |
295 |
+ |
; |
296 |
|
|
297 |
|
|
298 |
|
doubleNumberTuple returns [vector<RealType> dvec] |