461 /// |
461 /// |
462 /// The Lemon Format contains several sections. We do not want to |
462 /// The Lemon Format contains several sections. We do not want to |
463 /// determine what sections are in a lemon file we give only a framework |
463 /// determine what sections are in a lemon file we give only a framework |
464 /// to read a section oriented format. |
464 /// to read a section oriented format. |
465 /// |
465 /// |
466 /// In the Lemon Format each section starts with a line contains a \c \@ |
466 /// In the Lemon Format each section starts with a line containing a |
467 /// character on the first not white space position. This line is the |
467 /// \c \@ character on the first not white space position. This line |
468 /// header line of the section. Each next lines belong to this section |
468 /// is the header line of the section. Each of the next lines belong |
469 /// while it does not starts with \c \@ character. This line can start a |
469 /// to this section until a line starting with \c \@ character is |
470 /// new section or if it can close the file with the \c \@end line. |
470 /// found. This line can start a new section or it can close the |
471 /// The file format ignore the empty and comment lines. The line is |
471 /// file with the \c \@end line. The file format ignores the empty |
472 /// comment line if it starts with a \c # character. |
472 /// and comment lines. The line is comment line if it starts with a |
|
473 /// \c # character. |
473 /// |
474 /// |
474 /// The framework provides an abstract LemonReader::SectionReader class |
475 /// The framework provides an abstract LemonReader::SectionReader class |
475 /// what defines the interface of a SectionReader. The SectionReader |
476 /// that defines the interface of a SectionReader. The SectionReader |
476 /// has the \c header() member function what get a header line string and |
477 /// has the \c header() member function that gets a header line string and |
477 /// decides if it want to process the next section. Several SectionReaders |
478 /// decides if it wants to process the next section. Several SectionReaders |
478 /// can be attached to an LemonReader and the first attached what can |
479 /// can be attached to a LemonReader and the first attached that can |
479 /// process the section will be used. Its \c read() member will called |
480 /// process the section will be used. Its \c read() member will be called |
480 /// with a stream contains the section. From this stream the empty and |
481 /// with a stream containing the section. From this stream the empty and |
481 /// comment lines are filtered out. |
482 /// comment lines are filtered out. |
482 /// |
483 /// |
483 /// \relates GraphReader |
484 /// \relates GraphReader |
484 /// \relates NodeSetReader |
485 /// \relates NodeSetReader |
485 /// \relates EdgeSetReader |
486 /// \relates EdgeSetReader |