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

Comparing trunk/src/mdParser/MDParser.g (file contents):
Revision 848 by gezelter, Wed Jan 11 23:06:08 2006 UTC vs.
Revision 1979 by gezelter, Sat Apr 5 20:56:01 2014 UTC

# Line 28 | Line 28 | tokens
28    COMPONENT   = "component";
29    MOLECULE    = "molecule";
30    ZCONSTRAINT = "zconstraint";
31 +  RESTRAINT   = "restraint";
32    ATOM        = "atom";
33    BOND        = "bond";
34    BEND        = "bend";
35    TORSION     = "torsion";
36 +  INVERSION   = "inversion";
37    RIGIDBODY   = "rigidBody";
38    CUTOFFGROUP = "cutoffGroup";
39 +  CONSTRAINT  = "constraint";
40 +  DISTANCE    = "distance";
41    FRAGMENT    = "fragment";
42    MEMBERS     = "members";
43 +  CENTER      = "center";
44 +  SATELLITES  = "satellites";
45    POSITION    = "position";
46    ORIENTATION = "orientation";
47 +  FLUCQ       = "flucQ";
48 +  RNEMD       = "RNEMD";
49 +  MINIMIZER   = "minimizer";
50    ENDBLOCK;
51   }
52  
# Line 46 | Line 55 | statement : assignment
55          ;
56  
57   statement : assignment
58 <          | componentblock
59 <          | moleculeblock
60 <          | zconstraintblock
61 <          ;
62 <            
58 >    | componentblock
59 >    | moleculeblock
60 >    | zconstraintblock
61 >    | restraintblock
62 >    | flucqblock
63 >    | rnemdblock
64 >    | minimizerblock
65 >    ;
66 >
67   assignment  : ID ASSIGNEQUAL^ constant SEMICOLON!
68              ;
69              
70   constant    : intConst
71 <                                                | floatConst
71 >                        | floatConst
72 >            | vectorConst
73              | ID
74              | StringLiteral
75              ;
# Line 65 | Line 79 | zconstraintblock  : ZCONSTRAINT^ LCURLY! (assignment)*
79      
80   zconstraintblock  : ZCONSTRAINT^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
81                    ;
82 +
83 + restraintblock  : RESTRAINT^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
84 +                  ;
85 +
86 + flucqblock  : FLUCQ^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
87 +    ;
88 +
89 + rnemdblock  : RNEMD^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
90 +    ;
91 +
92 + minimizerblock  : MINIMIZER^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
93 +    ;
94    
95   moleculeblock : MOLECULE^ LCURLY! (moleculestatement)*  RCURLY {#RCURLY->setType(ENDBLOCK);}
96                ;
# Line 74 | Line 100 | moleculestatement : assignment
100                    | bondblock
101                    | bendblock
102                    | torsionblock
103 +                  | inversionblock
104                    | rigidbodyblock
105                    | cutoffgroupblock
106                    | fragmentblock
107 +                  | constraintblock
108                    ;
109  
110   atomblock : ATOM^ LBRACKET! intConst RBRACKET! LCURLY! (atomstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
# Line 107 | Line 135 | torsionstatement  : assignment
135  
136   torsionstatement  : assignment
137                | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
138 +              ;
139 +
140 + inversionblock  : INVERSION^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(inversionstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
141 +          ;
142 +
143 + inversionstatement  : assignment
144 +              | CENTER^ LPAREN! intConst RPAREN! SEMICOLON!
145 +              | SATELLITES^ LPAREN! inttuple RPAREN! SEMICOLON!
146                ;
147  
148   rigidbodyblock  : RIGIDBODY^  LBRACKET! intConst RBRACKET! LCURLY!(rigidbodystatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
# Line 129 | Line 165 | fragmentstatement : assignment
165   fragmentstatement : assignment
166                ;
167  
168 + constraintblock : CONSTRAINT^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(constraintstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
169 +          ;
170  
171 + constraintstatement : assignment
172 +              | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
173 +              ;
174 +
175                
176   doubleNumberTuple   : doubleNumber (COMMA! doubleNumber)*
177                ;
# Line 152 | Line 194 | floatConst
194          :
195            NUM_FLOAT | NUM_DOUBLE
196          ;
155
197  
198 + protected
199 + vectorConst
200 +    :
201 +        LPAREN^ doubleNumber COMMA doubleNumber COMMA doubleNumber RPAREN
202 +    ;
203  
204   class MDLexer extends Lexer;
205  
# Line 257 | Line 303 | LineDirective
303    }
304      ("line")?  // this would be for if the directive started "#line"
305      (Space)+
306 <    n:Decimal { setLine(oopse::lexi_cast<int>(n->getText()) - 1); }
306 >    n:Decimal { setLine(OpenMD::lexi_cast<int>(n->getText()) - 1); }
307      (Space)+
308      (sl:StringLiteral) {std::string filename = sl->getText().substr(1,sl->getText().length()-2); observer->notify(filename);}
309      ((Space)+ Decimal)* // To support cpp flags (GNU)

Comparing trunk/src/mdParser/MDParser.g (property svn:keywords):
Revision 848 by gezelter, Wed Jan 11 23:06:08 2006 UTC vs.
Revision 1979 by gezelter, Sat Apr 5 20:56:01 2014 UTC

# Line 0 | Line 1
1 + Author Id Revision Date

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines