X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftex2lyx%2FParser.h;h=c0c5685bb83fc449cf2567c39f00206b38fb3629;hb=2872f35a51a66895e65f38ccf945c89aa7540b02;hp=45d6c67ce8e9c1a4d99f03ba70c1ced94315c97f;hpb=8b2ea705df7568412180d8c8eca6257b356ec0a7;p=lyx.git diff --git a/src/tex2lyx/Parser.h b/src/tex2lyx/Parser.h index 45d6c67ce8..c0c5685bb8 100644 --- a/src/tex2lyx/Parser.h +++ b/src/tex2lyx/Parser.h @@ -81,7 +81,17 @@ public: std::string const & cs() const { return cs_; } /// Returns the catcode of the token CatCode cat() const { return cat_; } - /// + /** Get the character of tokens that were constructed from a single + * character input or a two character input and cat_ == catEscape. + * FIXME: The intended usage is not clear. The Token class in + * ../mathed/MathParser.cpp (which is the anchestor of this + * class) uses a separate char member for this method. I + * believe that the intended usage is to not cover tokens with + * catEscape, e.g. \code + * return (cs_.empty() || cat_ == catEscape) ? 0 : cs_[0]; + * \endcode + * All usages of this method should be checked. gb 2011-01-05 + */ char character() const { return cs_.empty() ? 0 : cs_[0]; } /// Returns the token verbatim std::string asInput() const; @@ -97,6 +107,10 @@ private: std::ostream & operator<<(std::ostream & os, Token const & t); +#ifdef FILEDEBUG +extern void debugToken(std::ostream & os, Token const & t, unsigned int flags); +#endif + /*! * Actual parser class @@ -156,10 +170,10 @@ public: */ std::string getArg(char left, char right); /*! - * \returns getFullArg('[', ']') including the brackets or the - * empty string if there is no such argument. + * Like getOpt(), but distinguishes between a missing argument "" + * and an empty argument "[]". */ - std::string getFullOpt(); + std::string getFullOpt(bool keepws = false); /*! * \returns getArg('[', ']') including the brackets or the * empty string if there is no such argument. @@ -171,10 +185,6 @@ public: * during .tex export, thus creating an invalid command. */ std::string getOpt(bool keepws = false); - /*! - * the same as getOpt but without the brackets - */ - std::string getOptContent(); /*! * \returns getFullArg('(', ')') including the parentheses or the * empty string if there is no such argument. @@ -186,6 +196,19 @@ public: * is parsed but not returned. */ std::string const verbatimEnvironment(std::string const & name); + /* + * The same as verbatimEnvironment(std::string const & name) but + * \begin and \end commands inside the name environment are not parsed. + * This function is designed to parse verbatim environments. + */ + std::string const plainEnvironment(std::string const & name); + /* + * Basically the same as plainEnvironment(std::string const & name) but + * instead of \begin and \end commands the parsing is started/stopped + * at given characters. + * This function is designed to parse verbatim commands. + */ + std::string const plainCommand(char left, char right, std::string const & name); /*! * Returns the character of the current token and increments * the token position. @@ -203,6 +226,8 @@ public: Token const curr_token() const; /// The next token. Token const next_token(); + /// The next but one token. + Token const next_next_token(); /// Make the next token current and return that. Token const get_token(); /// \return whether the current token starts a new paragraph