X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlex.h;h=dc16b52b1a7a7a19c3f1764d72dbb123e70c02fa;hb=65ca7003ba47b7348610393a9a0d2d309b4e9702;hp=4c5ea7d6941b264c5513bd5a8d9188dd19c75636;hpb=44cd0fc9a1687cc63911c7f98d978594458e7813;p=lyx.git diff --git a/src/lyxlex.h b/src/lyxlex.h index 4c5ea7d694..dc16b52b1a 100644 --- a/src/lyxlex.h +++ b/src/lyxlex.h @@ -20,6 +20,7 @@ #include #include +#include /// @@ -54,8 +55,12 @@ public: LEX_TOKEN = -4 }; - /// file is open and end of file is not reached + /// stream is open and end of stream is not reached bool isOK() const; + /// stream is ok + operator void const *() const; + /// stream is not ok + bool operator!() const; /// return true if able to open file, else false bool setFile(std::string const & filename); /// @@ -91,7 +96,7 @@ public: /// bool getBool() const; /// - float getFloat() const; + double getFloat() const; /// std::string const getString() const; @@ -106,11 +111,8 @@ public: /// bool eatLine(); - /// - int findToken(char const * str[]); - /** Pushes a token list on a stack and replaces it with a new one. - */ + /// Pushes a token list on a stack and replaces it with a new one. void pushTable(keyword_item *, int); /** Pops a token list into void and replaces it with the one now @@ -124,12 +126,22 @@ public: */ void printError(std::string const & message) const; - /** - Prints the current token table on the supplied ostream. - */ + /// Prints the current token table on the supplied ostream. void printTable(std::ostream &); + + /// extract string + LyXLex & operator>>(std::string &); + /// extract double + LyXLex & operator>>(double &); + /// extract integer + LyXLex & operator>>(int &); + /// extract unsigned integer + LyXLex & operator>>(unsigned int &); + /// extract bool + LyXLex & operator>>(bool &); + private: - struct Pimpl; + class Pimpl; /// Pimpl * pimpl_; }; @@ -139,9 +151,10 @@ private: This is needed to ensure that the pop is done upon exit from methods with more than one exit point or that can return as a response to exceptions. - @autor Lgb + @author Lgb */ -struct pushpophelper { +class pushpophelper { +public: /// pushpophelper(LyXLex & lexrc, keyword_item * i, int s) : lex(lexrc) { lex.pushTable(i, s);