constraint constraint_undump (FILE *f) { constraint c; bool fcnPre, post; arithType ar; constraintExpr lexpr, expr; char *s, *os; os = mstring_create (MAX_DUMP_LINE_LENGTH); s = fgets (os, MAX_DUMP_LINE_LENGTH, f); if (!mstring_isDefined (s)) { llfatalbug (message ("Library file is corrupted") ); } fcnPre = (bool) reader_getInt (&s); advanceField (&s); post = (bool) reader_getInt (&s); advanceField (&s); ar = (arithType) reader_getInt (&s); s = fgets (os, MAX_DUMP_LINE_LENGTH, f); if (! mstring_isDefined(s) ) { llfatalbug(message("Library file is corrupted") ); } reader_checkChar (&s, 'l'); lexpr = constraintExpr_undump (f); s = fgets (os, MAX_DUMP_LINE_LENGTH, f); reader_checkChar (&s, 'r'); if (! mstring_isDefined(s) ) { llfatalbug(message("Library file is corrupted") ); } expr = constraintExpr_undump (f); c = constraint_makeNew (); c->fcnPre = fcnPre; c->post = post; c->ar = ar; c->lexpr = lexpr; c->expr = expr; free (os); c = constraint_preserveOrig (c); return c; }
IFile& IFile::scanField(const std::string&name,std::string&str){ if(!inMiddleOfField) advanceField(); if(!*this) return *this; unsigned i=findField(name); str=fields[i].value; fields[i].read=true; return *this; }
IFile& IFile::scanFieldList(std::vector<std::string>&s){ if(!inMiddleOfField) advanceField(); if(!*this) return *this; s.clear(); for(unsigned i=0;i<fields.size();i++) s.push_back(fields[i].name); return *this; }