ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/mdParser/MDTreeParser.g
(Generate patch)

Comparing trunk/src/mdParser/MDTreeParser.g (file contents):
Revision 814 by tim, Fri Dec 16 02:57:00 2005 UTC vs.
Revision 1275 by cli2, Fri Jul 4 20:54:29 2008 UTC

# Line 47 | Line 47 | constant [ANTLR_USE_NAMESPACE(antlr)RefAST id]
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);}
# Line 79 | Line 79 | moleculestatement : assignment
79                    | bondblock
80                    | bendblock
81                    | torsionblock
82 +                  | inversionblock
83                    | rigidbodyblock
84                    | cutoffgroupblock
85                    | fragmentblock
# Line 100 | Line 101 | atomstatement
101  
102   atomstatement
103   {
104 < vector<double> dvec;
104 > vector<RealType> dvec;
105   AtomStamp* currAtomStamp =  static_cast<AtomStamp*>(blockStack.top());
106  
107   }
# Line 164 | Line 165 | torsionstatement
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
# Line 224 | Line 244 | fragmentstatement : assignment
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                ;
# Line 245 | Line 265 | protected
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          

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines