These functions do CCP4-style parsing, as used for processing keywords of CCP4 programs, MTZ header records, etc.
The following code snippets illustrate how the functions might be used to read from stdin:
int ntok=0; char line[201],*key; CCP4PARSERTOKEN * token=NULL; CCP4PARSERARRAY * parser; parser = (CCP4PARSERARRAY *) ccp4_parse_start(20); key = parser->keyword; token = parser->token; RC = 0; while (!RC) { line[0] = '\0'; ntok = ccp4_parser(line,200,parser,1); if (ntok < 1) { RC = 111; } else { if (ccp4_keymatch("MINDIST",key)) { if (ntok != 2) { ccperror ( 1,"MINDIST requires a single numerical argument" ); RC = -100; } else { minDist = token[1].value; } } else { printf ( "Unrecognised keyword \"s\"
",token[0].fullstring ); RC = -118; } } } ccp4_parse_end ( parser );
See the distributed programs NCONT and PDBCUR.