--- trunk/src/mdParser/MDParser.g 2013/07/16 17:16:45 1902 +++ trunk/src/mdParser/MDParser.g 2014/10/22 12:23:59 2026 @@ -36,6 +36,8 @@ tokens INVERSION = "inversion"; RIGIDBODY = "rigidBody"; CUTOFFGROUP = "cutoffGroup"; + CONSTRAINT = "constraint"; + DISTANCE = "distance"; FRAGMENT = "fragment"; MEMBERS = "members"; CENTER = "center"; @@ -102,6 +104,7 @@ moleculestatement : assignment | rigidbodyblock | cutoffgroupblock | fragmentblock + | constraintblock ; atomblock : ATOM^ LBRACKET! intConst RBRACKET! LCURLY! (atomstatement)* RCURLY {#RCURLY->setType(ENDBLOCK);} @@ -162,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)* ; @@ -186,12 +195,22 @@ floatConst NUM_FLOAT | NUM_DOUBLE ; + +/* protected vectorConst : LPAREN^ doubleNumber COMMA doubleNumber COMMA doubleNumber RPAREN ; +*/ +protected +vectorConst + : + LPAREN^ doubleNumberTuple RPAREN + ; + + class MDLexer extends Lexer; options