| 114 |
|
| rigidbodyblock |
| 115 |
|
| cutoffgroupblock |
| 116 |
|
| fragmentblock |
| 117 |
+ |
| constraintblock |
| 118 |
|
; |
| 119 |
|
|
| 120 |
|
atomblock |
| 212 |
|
inversionstatement |
| 213 |
|
{ |
| 214 |
|
int icent; |
| 215 |
+ |
vector<int> ivec; |
| 216 |
|
InversionStamp* currInversionStamp = static_cast<InversionStamp*>(blockStack.top()); |
| 217 |
|
} |
| 218 |
|
: assignment |
| 219 |
|
| #(CENTER icent=intConst) {currInversionStamp->setCenter(icent);} |
| 220 |
+ |
| #(SATELLITES ivec=inttuple) {currInversionStamp->setSatellites(ivec);} |
| 221 |
|
; |
| 222 |
|
|
| 223 |
|
rigidbodyblock |
| 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] |