]> git.lyx.org Git - lyx.git/blobdiff - src/lyxlex_pimpl.h
minimal effort implementation of:
[lyx.git] / src / lyxlex_pimpl.h
index bc5876aba61f1e82dfaca4b284dfd1cd3b08e406..55f9e8c596d480e7c8d9cfa69b203271ddb07183 100644 (file)
@@ -1,26 +1,44 @@
 // -*- C++ -*-
+/**
+ * \file lyxlex_pimpl.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Lars Gullik Bjønnes
+ *
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef LYXLEX_PIMPL_H
 #define LYXLEX_PIMPL_H
 
 #include "lyxlex.h"
 
-#include "support/gzstream.h"
+#include "support/types.h"
+
+# include <boost/iostreams/filtering_streambuf.hpp>
+# include <boost/iostreams/filter/gzip.hpp>
+# include <boost/iostreams/device/file.hpp>
+namespace io = boost::iostreams;
 
 #include <boost/utility.hpp>
 
 #include <fstream>
+#include <istream>
 #include <stack>
 #include <vector>
 
 ///
-struct LyXLex::Pimpl : boost::noncopyable {
+class LyXLex::Pimpl : boost::noncopyable {
+public:
        ///
        Pimpl(keyword_item * tab, int num);
        ///
-       string const getString() const;
+       std::string const getString() const;
+       ///
+       lyx::docstring const getDocString() const;
        ///
-       void printError(string const & message) const;
+       void printError(std::string const & message) const;
        ///
        void printTable(std::ostream & os);
        ///
@@ -28,7 +46,7 @@ struct LyXLex::Pimpl : boost::noncopyable {
        ///
        void popTable();
        ///
-       bool setFile(string const & filename);
+       bool setFile(std::string const & filename);
        ///
        void setStream(std::istream & i);
        ///
@@ -44,16 +62,17 @@ struct LyXLex::Pimpl : boost::noncopyable {
        ///
        bool nextToken();
        ///
-       void pushToken(string const &);
-       /// fb__ is only used to open files, the stream is accessed through is.
-       std::filebuf fb__;
-       /// gz__ is only used to open files, the stream is accessed through is.
-       gz::gzstreambuf gz__;
+       void pushToken(std::string const &);
+       /// fb_ is only used to open files, the stream is accessed through is.
+       std::filebuf fb_;
+
+       /// gz_ is only used to open files, the stream is accessed through is.
+       io::filtering_istreambuf gz_;
 
        /// the stream that we use.
        std::istream is;
        ///
-       string name;
+       std::string name;
        ///
        keyword_item * table;
        ///
@@ -65,14 +84,15 @@ struct LyXLex::Pimpl : boost::noncopyable {
        ///
        int lineno;
        ///
-       string pushTok;
+       std::string pushTok;
        ///
        char commentChar;
 private:
        ///
        void verifyTable();
        ///
-       struct pushed_table {
+       class pushed_table {
+       public:
                ///
                pushed_table()
                        : table_elem(0), table_siz(0) {}