- while (lex.isOK()) {
- lex.nextToken();
- string const token = lex.getString();
-
- if (token.empty())
- continue;
-
- lyxerr[Debug::PARSER] << "Handling token: `"
- << token << '\'' << endl;
-
- if (token == "\\end_document") {
- the_end_read = true;
- continue;
- }
-
- readParagraph(lex, token, paragraphs(), pit, depth);
- }
-
- return the_end_read;
-}
-
-
-int Buffer::readParagraph(LyXLex & lex, string const & token,
- ParagraphList & pars, ParagraphList::iterator & pit,
- lyx::depth_type & depth)
-{
- static Change current_change;
- int unknown = 0;
-
- if (token == "\\begin_layout") {
- lex.pushToken(token);
-
- Paragraph par;
- par.params().depth(depth);
- if (params().tracking_changes)
- par.trackChanges();
- LyXFont f(LyXFont::ALL_INHERIT, params().language);
- par.setFont(0, f);
-
- // insert after
- if (pit != pars.end())
- ++pit;
-
- pit = pars.insert(pit, par);
-
- // FIXME: goddamn InsetTabular makes us pass a Buffer
- // not BufferParams
- ::readParagraph(*this, *pit, lex);
-
- } else if (token == "\\begin_deeper") {
- ++depth;
- } else if (token == "\\end_deeper") {
- if (!depth) {
- lex.printError("\\end_deeper: " "depth is already null");
- } else {
- --depth;
- }
- } else {
- ++unknown;
- }
- return unknown;