47 |
|
constant [ANTLR_USE_NAMESPACE(antlr)RefAST id] |
48 |
|
{ |
49 |
|
int ival; |
50 |
< |
double dval; |
50 |
> |
RealType dval; |
51 |
|
} |
52 |
|
: ival=intConst {blockStack.top()->assign(id->getText(), ival);} |
53 |
|
| dval=floatConst {blockStack.top()->assign(id->getText(), dval);} |
79 |
|
| bondblock |
80 |
|
| bendblock |
81 |
|
| torsionblock |
82 |
+ |
| inversionblock |
83 |
|
| rigidbodyblock |
84 |
|
| cutoffgroupblock |
85 |
|
| fragmentblock |
101 |
|
|
102 |
|
atomstatement |
103 |
|
{ |
104 |
< |
vector<double> dvec; |
104 |
> |
vector<RealType> dvec; |
105 |
|
AtomStamp* currAtomStamp = static_cast<AtomStamp*>(blockStack.top()); |
106 |
|
|
107 |
|
} |
165 |
|
} |
166 |
|
: assignment |
167 |
|
| #(MEMBERS ivec=inttuple) {currTorsionStamp->setMembers(ivec);} |
168 |
+ |
; |
169 |
+ |
|
170 |
+ |
inversionblock : #(INVERSION {InversionStamp* currInversionStamp = new InversionStamp(); blockStack.push(currInversionStamp);} |
171 |
+ |
(inversionstatement)* |
172 |
+ |
ENDBLOCK ) { |
173 |
+ |
blockStack.top()->validate(); |
174 |
+ |
blockStack.pop(); |
175 |
+ |
MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top()); |
176 |
+ |
currMoleculeStamp->addInversionStamp(currInversionStamp); |
177 |
+ |
} |
178 |
+ |
; |
179 |
+ |
|
180 |
+ |
inversionstatement |
181 |
+ |
{ |
182 |
+ |
int icent; |
183 |
+ |
InversionStamp* currInversionStamp = static_cast<InversionStamp*>(blockStack.top()); |
184 |
+ |
} |
185 |
+ |
: assignment |
186 |
+ |
| #(CENTER icent=intConst) {currInversionStamp->setCenter(icent);} |
187 |
|
; |
188 |
|
|
189 |
|
rigidbodyblock |
244 |
|
|
245 |
|
|
246 |
|
|
247 |
< |
doubleNumberTuple returns [vector<double> dvec] |
247 |
> |
doubleNumberTuple returns [vector<RealType> dvec] |
248 |
|
{ |
249 |
< |
double dval; |
249 |
> |
RealType dval; |
250 |
|
} |
251 |
|
: (dval=doubleNumber {dvec.push_back(dval);})+ |
252 |
|
; |
265 |
|
; |
266 |
|
|
267 |
|
protected |
268 |
< |
doubleNumber returns [double dval] |
268 |
> |
doubleNumber returns [RealType dval] |
269 |
|
: |
270 |
< |
ic:intConst {dval = lexi_cast<double>(ic->getText());} |
271 |
< |
| fc:floatConst {dval = lexi_cast<double>(fc->getText());} |
270 |
> |
ic:intConst {dval = lexi_cast<RealType>(ic->getText());} |
271 |
> |
| fc:floatConst {dval = lexi_cast<RealType>(fc->getText());} |
272 |
|
|
273 |
|
; |
274 |
|
|
275 |
|
protected |
276 |
< |
floatConst returns [double dval] |
277 |
< |
: d1:NUM_FLOAT {dval = lexi_cast<double>(d1->getText());} |
278 |
< |
| d2:NUM_DOUBLE {dval = lexi_cast<double>(d2->getText());} |
276 |
> |
floatConst returns [RealType dval] |
277 |
> |
: d1:NUM_FLOAT {dval = lexi_cast<RealType>(d1->getText());} |
278 |
> |
| d2:NUM_DOUBLE {dval = lexi_cast<RealType>(d2->getText());} |
279 |
|
; |
280 |
|
|