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 814 by tim, Fri Dec 16 02:57:00 2005 UTC vs.
Revision 1902 by gezelter, Tue Jul 16 17:16:45 2013 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    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";
48    ENDBLOCK;
49   }
50  
# Line 46 | Line 53 | statement : assignment
53          ;
54  
55   statement : assignment
56 <          | componentblock
57 <          | moleculeblock
58 <          | zconstraintblock
59 <          ;
60 <            
56 >    | componentblock
57 >    | moleculeblock
58 >    | zconstraintblock
59 >    | restraintblock
60 >    | flucqblock
61 >    | rnemdblock
62 >    | minimizerblock
63 >    ;
64 >
65   assignment  : ID ASSIGNEQUAL^ constant SEMICOLON!
66              ;
67              
68   constant    : intConst
69 <                                                | floatConst
69 >                        | floatConst
70 >            | vectorConst
71              | ID
72              | StringLiteral
73              ;
# Line 65 | Line 77 | zconstraintblock  : ZCONSTRAINT^ LCURLY! (assignment)*
77      
78   zconstraintblock  : ZCONSTRAINT^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
79                    ;
80 +
81 + restraintblock  : RESTRAINT^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
82 +                  ;
83 +
84 + flucqblock  : FLUCQ^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
85 +    ;
86 +
87 + rnemdblock  : RNEMD^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
88 +    ;
89 +
90 + minimizerblock  : MINIMIZER^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);}
91 +    ;
92    
93   moleculeblock : MOLECULE^ LCURLY! (moleculestatement)*  RCURLY {#RCURLY->setType(ENDBLOCK);}
94                ;
# Line 74 | Line 98 | moleculestatement : assignment
98                    | bondblock
99                    | bendblock
100                    | torsionblock
101 +                  | inversionblock
102                    | rigidbodyblock
103                    | cutoffgroupblock
104                    | fragmentblock
# Line 109 | Line 134 | torsionstatement  : assignment
134                | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON!
135                ;
136  
137 + inversionblock  : INVERSION^ (LBRACKET! intConst! RBRACKET!)?  LCURLY!(inversionstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
138 +          ;
139 +
140 + inversionstatement  : assignment
141 +              | CENTER^ LPAREN! intConst RPAREN! SEMICOLON!
142 +              | SATELLITES^ LPAREN! inttuple RPAREN! SEMICOLON!
143 +              ;
144 +
145   rigidbodyblock  : RIGIDBODY^  LBRACKET! intConst RBRACKET! LCURLY!(rigidbodystatement)* RCURLY {#RCURLY->setType(ENDBLOCK);}
146                  ;
147  
# Line 153 | Line 186 | floatConst
186            NUM_FLOAT | NUM_DOUBLE
187          ;
188  
189 <
189 > protected
190 > vectorConst
191 >    :
192 >        LPAREN^ doubleNumber COMMA doubleNumber COMMA doubleNumber RPAREN
193 >    ;
194  
195   class MDLexer extends Lexer;
196  
# Line 257 | Line 294 | LineDirective
294    }
295      ("line")?  // this would be for if the directive started "#line"
296      (Space)+
297 <    n:Decimal { setLine(oopse::lexi_cast<int>(n->getText()) - 1); }
297 >    n:Decimal { setLine(OpenMD::lexi_cast<int>(n->getText()) - 1); }
298      (Space)+
299      (sl:StringLiteral) {std::string filename = sl->getText().substr(1,sl->getText().length()-2); observer->notify(filename);}
300      ((Space)+ Decimal)* // To support cpp flags (GNU)
# Line 457 | Line 494 | EXPONENT
494   // a couple protected methods to assist in matching floating point numbers
495   protected
496   EXPONENT
497 <        :       ('e'|'E') ('+'|'-')? ('0'..'9')+
497 >        :       ('e'|'E'|'d'|'D') ('+'|'-')? ('0'..'9')+
498          ;
499  
500   protected

Comparing trunk/src/mdParser/MDParser.g (property svn:keywords):
Revision 814 by tim, Fri Dec 16 02:57:00 2005 UTC vs.
Revision 1902 by gezelter, Tue Jul 16 17:16:45 2013 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines