def __field(self):
try:<EOL><INDENT>tok = self.__consume()<EOL><DEDENT>except DXParserNoTokens:<EOL><INDENT>return<EOL><DEDENT>if tok.equals('<STR_LIT>'):<EOL><INDENT>component = self.__consume().value()<EOL>if not self.__consume().equals('<STR_LIT:value>'):<EOL><INDENT>raise DXParseError('<STR_LIT>')<EOL><DEDENT>classid = self.__consume().value()<EOL>try:<EOL><INDENT>self.currentobject['<STR_LIT>'][component] = classid<EOL><DEDENT>except KeyError:<EOL><INDENT>self.currentobject['<STR_LIT>'] = {component:classid}<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise DXParseError('<STR_LIT>'+str(tok)+'<STR_LIT>')<EOL><DEDENT>
Level-2 parser for a DX field object.

        pattern:
        object "site map 1" class field
        component "positions" value 1
        component "connections" value 2
        component "data" value 3