--- trunk/src/mdParser/MDParser.g 2009/11/25 20:02:06 1390 +++ trunk/src/mdParser/MDParser.g 2014/04/05 20:56:01 1979 @@ -36,11 +36,17 @@ tokens INVERSION = "inversion"; RIGIDBODY = "rigidBody"; CUTOFFGROUP = "cutoffGroup"; + CONSTRAINT = "constraint"; + DISTANCE = "distance"; FRAGMENT = "fragment"; MEMBERS = "members"; CENTER = "center"; + SATELLITES = "satellites"; POSITION = "position"; ORIENTATION = "orientation"; + FLUCQ = "flucQ"; + RNEMD = "RNEMD"; + MINIMIZER = "minimizer"; ENDBLOCK; } @@ -49,17 +55,21 @@ statement : assignment ; statement : assignment - | componentblock - | moleculeblock - | zconstraintblock - | restraintblock - ; - + | componentblock + | moleculeblock + | zconstraintblock + | restraintblock + | flucqblock + | rnemdblock + | minimizerblock + ; + assignment : ID ASSIGNEQUAL^ constant SEMICOLON! ; constant : intConst - | floatConst + | floatConst + | vectorConst | ID | StringLiteral ; @@ -72,6 +82,15 @@ restraintblock : RESTRAINT^ LCURLY! (assignment)* RCU restraintblock : RESTRAINT^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);} ; + +flucqblock : FLUCQ^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);} + ; + +rnemdblock : RNEMD^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);} + ; + +minimizerblock : MINIMIZER^ LCURLY! (assignment)* RCURLY {#RCURLY->setType(ENDBLOCK);} + ; moleculeblock : MOLECULE^ LCURLY! (moleculestatement)* RCURLY {#RCURLY->setType(ENDBLOCK);} ; @@ -85,6 +104,7 @@ moleculestatement : assignment | rigidbodyblock | cutoffgroupblock | fragmentblock + | constraintblock ; atomblock : ATOM^ LBRACKET! intConst RBRACKET! LCURLY! (atomstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);} @@ -122,6 +142,7 @@ inversionstatement : assignment inversionstatement : assignment | CENTER^ LPAREN! intConst RPAREN! SEMICOLON! + | SATELLITES^ LPAREN! inttuple RPAREN! SEMICOLON! ; rigidbodyblock : RIGIDBODY^ LBRACKET! intConst RBRACKET! LCURLY!(rigidbodystatement)* RCURLY {#RCURLY->setType(ENDBLOCK);} @@ -144,7 +165,13 @@ fragmentstatement : assignment fragmentstatement : assignment ; +constraintblock : CONSTRAINT^ (LBRACKET! intConst! RBRACKET!)? LCURLY!(constraintstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);} + ; +constraintstatement : assignment + | MEMBERS^ LPAREN! inttuple RPAREN! SEMICOLON! + ; + doubleNumberTuple : doubleNumber (COMMA! doubleNumber)* ; @@ -168,7 +195,11 @@ floatConst NUM_FLOAT | NUM_DOUBLE ; - +protected +vectorConst + : + LPAREN^ doubleNumber COMMA doubleNumber COMMA doubleNumber RPAREN + ; class MDLexer extends Lexer;