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 1902 by gezelter, Tue Jul 16 17:16:45 2013 UTC vs.
Revision 2046 by gezelter, Tue Dec 2 22:11:04 2014 UTC

# Line 25 | Line 25 | tokens
25  
26   tokens
27   {
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 <  FRAGMENT    = "fragment";
40 <  MEMBERS     = "members";
41 <  CENTER      = "center";
42 <  SATELLITES  = "satellites";
43 <  POSITION    = "position";
44 <  ORIENTATION = "orientation";
45 <  FLUCQ       = "flucQ";
46 <  RNEMD       = "RNEMD";
47 <  MINIMIZER   = "minimizer";
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 >  FIXED             = "Fixed";
51 >  HARMONIC          = "Harmonic";
52 >  CUBIC             = "Cubic";
53 >  QUARTIC           = "Quartic";
54 >  POLYNOMIAL        = "Polynomial";
55 >  MORSE             = "Morse";
56 >  GHOSTBEND         = "GhostBend";
57 >  UREYBRADLEY       = "UreyBradley";
58 >  COSINE            = "Cosine";
59 >  GHOSTTORSION      = "GhostTorsion";
60 >  CHARMM            = "Charmm";
61 >  OPLS              = "Opls";
62 >  TRAPPE            = "Trappe";
63 >  AMBERIMPROPER     = "AmberImproper";
64 >  IMPROPERCOSINE    = "ImproperCosine";
65 >  CENTRALATOMHEIGHT = "CentralAtomHeight";
66 >  DREIDING          = "Dreiding";
67 >  CHARGE            = "charge";
68    ENDBLOCK;
69   }
70  
# Line 102 | Line 122 | moleculestatement : assignment
122                    | rigidbodyblock
123                    | cutoffgroupblock
124                    | fragmentblock
125 +                  | constraintblock
126                    ;
127  
128   atomblock : ATOM^ LBRACKET! intConst RBRACKET! LCURLY! (atomstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
129            ;
130  
131   atomstatement : assignment
132 <              | POSITION^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
133 <              | ORIENTATION^  LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
134 <              ;
132 >    | POSITION^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
133 >    | ORIENTATION^  LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
134 >    | CHARGE^ LPAREN! floatConst RPAREN! SEMICOLON!
135 >    ;
136  
137                        
138   bondblock : BOND^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(bondstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
139            ;
140  
141   bondstatement : assignment
142 <              | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
143 <              ;
142 >    | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
143 >    | FIXED^ LPAREN! floatConst RPAREN! SEMICOLON!
144 >    | HARMONIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
145 >    | CUBIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
146 >    | QUARTIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
147 >    | POLYNOMIAL^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
148 >    | MORSE^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!        
149 >    ;
150  
151   bendblock : BEND^ (LBRACKET! intConst! RBRACKET!)? LCURLY!  (bendstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
152            ;
153  
154   bendstatement : assignment
155 <              | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
156 <              ;
155 >    | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
156 >    | HARMONIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
157 >    | GHOSTBEND^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
158 >    | UREYBRADLEY^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
159 >    | CUBIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
160 >    | QUARTIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
161 >    | POLYNOMIAL^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
162 >    | COSINE^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!            
163 >    ;
164  
165   torsionblock  : TORSION^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(torsionstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
166            ;
167  
168   torsionstatement  : assignment
169 <              | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
170 <              ;
169 >    | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
170 >    | GHOSTTORSION^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
171 >    | CUBIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
172 >    | QUARTIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
173 >    | POLYNOMIAL^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
174 >    | CHARMM^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
175 >    | OPLS^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
176 >    | TRAPPE^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
177 >    | HARMONIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
178 >    ;
179  
180   inversionblock  : INVERSION^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(inversionstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
181 <          ;
181 >    ;
182  
183   inversionstatement  : assignment
184 <              | CENTER^ LPAREN! intConst RPAREN! SEMICOLON!
185 <              | SATELLITES^ LPAREN! inttuple RPAREN! SEMICOLON!
186 <              ;
184 >    | CENTER^ LPAREN! intConst RPAREN! SEMICOLON!
185 >    | SATELLITES^ LPAREN! inttuple RPAREN! SEMICOLON!
186 >    | AMBERIMPROPER^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
187 >    | IMPROPERCOSINE^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
188 >    | HARMONIC^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
189 >    | CENTRALATOMHEIGHT^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
190 >    | DREIDING^ LPAREN! doubleNumberTuple RPAREN! SEMICOLON!
191 >    ;
192  
193   rigidbodyblock  : RIGIDBODY^  LBRACKET! intConst RBRACKET! LCURLY!(rigidbodystatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
194                  ;
195  
196   rigidbodystatement  : assignment
197 <              | MEMBERS^ LPAREN!  inttuple  RPAREN! SEMICOLON!
198 <              ;
197 >    | MEMBERS^ LPAREN!  inttuple  RPAREN! SEMICOLON!
198 >    ;
199  
200   cutoffgroupblock  : CUTOFFGROUP^ (LBRACKET! intConst! RBRACKET!)? LCURLY! (cutoffgroupstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
201 <                  ;
201 >    ;
202  
203   cutoffgroupstatement  : assignment
204 <              | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
205 <              ;
204 >    | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
205 >    ;
206  
207   fragmentblock : FRAGMENT^ LBRACKET! intConst RBRACKET! LCURLY! (fragmentstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
208 <              ;
208 >    ;
209  
210   fragmentstatement : assignment
211 <              ;
211 >    ;
212  
213 + constraintblock : CONSTRAINT^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(constraintstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
214 +    ;
215  
216 <              
217 < doubleNumberTuple   : doubleNumber (COMMA! doubleNumber)*
218 <              ;
219 <                          
216 > constraintstatement : assignment
217 >    | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
218 >    ;
219 >    
220 >
221 > doubleNumberTuple   : doubleNumber (COMMA! doubleNumber)*
222 >    ;
223 >
224   inttuple      : intConst (COMMA! intConst)*
225 <              ;
226 <              
225 >    ;
226 >
227   protected
228   intConst
229 <        :  NUM_INT | NUM_LONG
230 <        ;
229 >    :
230 >        NUM_INT | NUM_LONG
231 >    ;
232  
233   protected
234 < doubleNumber  :  
235 <                (intConst | floatConst)
236 <              ;
234 > doubleNumber
235 >    :
236 >    (intConst | floatConst)
237 >    ;
238                
239   protected
240   floatConst
241 <        :
242 <          NUM_FLOAT | NUM_DOUBLE
243 <        ;
241 >   :
242 >   NUM_FLOAT | NUM_DOUBLE
243 >   ;
244  
245 +
246 + /*
247   protected
248   vectorConst
249      :
250          LPAREN^ doubleNumber COMMA doubleNumber COMMA doubleNumber RPAREN
251 +    ;
252 + */
253 +
254 + protected
255 + vectorConst
256 +    :
257 +        LPAREN^ doubleNumberTuple RPAREN
258      ;
259  
260 +
261   class MDLexer extends Lexer;
262  
263   options

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines