module Bio.PDB.EventParser.ParseHETNAM(parseHETNAM)
where
import Prelude hiding(String)
import qualified Data.ByteString.Char8 as BS
import Bio.PDB.EventParser.PDBEvents
import Bio.PDB.EventParser.PDBParsingAbstractions
hetnamFields = [(6, mKeywords "record header" ["HETNAM", "HETSYN"]),
(8, mSpc 2 ),
(10, dInt "continuation" 0 ),
(11, mSpc 1 ),
(14, mStr "Het identifier, right-justified" ),
(15, mSpc 1 ),
(70, mStr "chemical name" )]
parseHETNAM :: (Monad m) => Bool -> String -> Int -> m [PDBEvent]
parseHETNAM isNameNotSynonym line line_no = return $ if errs == []
then [result]
else errs
where
(fields, errs) = parseFields hetnamFields line line_no
[fRec, _, fCont, _, fHetId, _, fName] = fields
IFInt cont = fCont
IFStr hetId = fHetId
IFStr name = fName
result = HETNAM cont hetId name isNameNotSynonym