X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FParser.h;h=11af29b6667e312234195b8879aa26154488213a;hb=28f43b18963a5088529d4ac7c165fa95e62fd02b;hp=94c1100aae4f7dbda7550c7199ffe4c8907975bd;hpb=bb04efd5a8f8a4c08f150bc38618722c413a087a;p=lyx.git diff --git a/src/tex2lyx/Parser.h b/src/tex2lyx/Parser.h index 94c1100aae..11af29b666 100644 --- a/src/tex2lyx/Parser.h +++ b/src/tex2lyx/Parser.h @@ -12,10 +12,11 @@ #ifndef PARSER_H #define PARSER_H -#include #include #include +#include +#include "support/docstream.h" namespace lyx { @@ -46,9 +47,6 @@ enum CatCode { }; -CatCode catcode(unsigned char c); - - enum { FLAG_BRACE_LAST = 1 << 1, // last closing brace ends the parsing FLAG_RIGHT = 1 << 2, // next \\right ends the parsing process @@ -75,18 +73,16 @@ enum { class Token { public: /// - Token() : cs_(), char_(0), cat_(catIgnore) {} + Token() : cs_(), cat_(catIgnore) {} /// - Token(char c, CatCode cat) : cs_(), char_(c), cat_(cat) {} - /// - Token(std::string const & cs, CatCode cat) : cs_(cs), char_(0), cat_(cat) {} + Token(docstring const & cs, CatCode cat) : cs_(to_utf8(cs)), cat_(cat) {} /// std::string const & cs() const { return cs_; } /// Returns the catcode of the token CatCode cat() const { return cat_; } /// - char character() const { return char_; } + char character() const { return cs_.empty() ? 0 : cs_[0]; } /// Returns the token as string std::string asString() const; /// Returns the token verbatim @@ -96,8 +92,6 @@ private: /// std::string cs_; /// - char char_; - /// CatCode cat_; }; @@ -119,12 +113,15 @@ class Parser { public: /// - Parser(std::istream & is); + Parser(idocstream & is); /// Parser(std::string const & s); /// ~Parser(); + /// change the encoding of the input stream + void setEncoding(std::string const & encoding); + /// int lineno() const { return lineno_; } /// @@ -217,9 +214,9 @@ private: /// unsigned pos_; /// - std::istringstream * iss_; + idocstringstream * iss_; /// - std::istream & is_; + idocstream & is_; };