| 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] |