int CMuseDataHeader::parseFromRecord(char *line,int lineNr) { parseLineNr++; switch(parseLineNr){ case 1: strncpy(rec1,line,80);break; case 2: strncpy(rec2,line,80);break; case 3: strncpy(rec3,line,80);break; case 4: strncpy(date_name,line,80);break; case 5: strncpy(work_movement,line,80);break; case 6: strncpy(source,line,80);break; case 7: strncpy(movement_title,line,80);break; case 8: strncpy(work_title,line,80);break; case 9: strncpy(name_of_part,line,80);break; case 10: parseMiscDest(line);break; case 11: return parseGroupMemberships(line);break; default: if(line[0]=='$'){ //return parseMusicalAttributes(line,lineNr); return 1; } else { if (attributesRead){ //TODO: check read attributes! return 1; } //this is the first line after the header!! return parseGroupPart(line); } } return 0; }
// group-part // group group-part bool Preprocessor::parseGroup(Item *group) { Q_ASSERT(group->toItemComposite()); bool gotGroup = false; while(lexerTokenIndex < numTokens) { if (!parseGroupPart(group)) break; gotGroup = true; } return gotGroup; }