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

Comparing trunk/src/mdParser/MDTreeParser.g (file contents):
Revision 1902 by gezelter, Tue Jul 16 17:16:45 2013 UTC vs.
Revision 2026 by gezelter, Wed Oct 22 12:23:59 2014 UTC

# Line 51 | Line 51 | constant [ANTLR_USE_NAMESPACE(antlr)RefAST id]
51   {
52      int ival;
53      RealType dval, x, y, z;
54 <    Vector3d dvec;
54 >    std::vector<RealType> dvec;
55   }    
56      : ival=intConst {blockStack.top()->assign(id->getText(), ival);}
57      | dval=floatConst {blockStack.top()->assign(id->getText(), dval);}
58    | #(LPAREN x=doubleNumber COMMA y=doubleNumber COMMA z=doubleNumber RPAREN)
59        {   dvec.x() = x;
60            dvec.y() = y;
61            dvec.z() = z;
62            blockStack.top()->assign(id->getText(), dvec);
63        }
58      | str1:ID {blockStack.top()->assign(id->getText(), str1->getText());}
59      | str2:StringLiteral {std::string s =  str2->getText();
60              s = s.substr(1, s.length()-2);
61              blockStack.top()->assign(id->getText(),s);
62          }
63 +    | #(LPAREN dvec=doubleNumberTuple RPAREN)
64 +        {
65 +            blockStack.top()->assign(id->getText(), dvec);
66 +        }
67      ;
68              
69  
# Line 114 | Line 112 | moleculestatement : assignment
112                    | rigidbodyblock
113                    | cutoffgroupblock
114                    | fragmentblock
115 +                  | constraintblock
116                    ;
117  
118   atomblock
# Line 274 | Line 273 | fragmentstatement : assignment
273  
274   fragmentstatement : assignment
275      ;
276 +
277 + constraintblock : #(CONSTRAINT {ConstraintStamp* currConstraintStamp = new ConstraintStamp(); blockStack.push(currConstraintStamp);}
278 +                (constraintstatement)*
279 +                 ENDBLOCK )  {
280 +                                blockStack.pop();
281 +                                MoleculeStamp* currMoleculeStamp = static_cast<MoleculeStamp*>(blockStack.top());
282 +                                currMoleculeStamp->addConstraintStamp(currConstraintStamp);
283 +                             }
284 +          ;
285  
286 + constraintstatement
287 + {
288 +  vector<int> ivec;
289 +  ConstraintStamp* currConstraintStamp = static_cast<ConstraintStamp*>(blockStack.top());
290 + }
291 +              : assignment
292 +              | #(MEMBERS ivec=inttuple) {currConstraintStamp->setMembers(ivec);}
293 +              ;
294  
295                
296   doubleNumberTuple returns [vector<RealType> dvec]

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines