]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/Parser.h
fix translation of \nobreakdash in tex2lyx
[lyx.git] / src / tex2lyx / Parser.h
index c79296175e8144ee2982f3763601943d9da5faed..93e29c17ed8ad75e18fc4a18e9e9d730222a87c8 100644 (file)
@@ -77,14 +77,12 @@ public:
        ///
        Token(docstring const & cs, CatCode cat) : cs_(to_utf8(cs)), cat_(cat) {}
 
-       ///
+       /// Returns the token as string
        std::string const & cs() const { return cs_; }
        /// Returns the catcode of the token
        CatCode cat() const { return cat_; }
        ///
        char character() const { return cs_.empty() ? 0 : cs_[0]; }
-       /// Returns the token as string
-       std::string asString() const;
        /// Returns the token verbatim
        std::string asInput() const;
 
@@ -155,8 +153,18 @@ public:
        /*!
         * \returns getArg('[', ']') including the brackets or the
         * empty string if there is no such argument.
+        * No whitespace is eaten if \p keepws is true and no optional
+        * argument exists. This is important if an optional argument is
+        * parsed that would go after a command in ERT: In this case the
+        * whitespace is needed to separate the ERT from the subsequent
+        * word. Without it, the ERT and the next word would be concatenated
+        * during .tex export, thus creating an invalid command.
+        */
+       std::string getOpt(bool keepws = false);
+       /*!
+        * the same as getOpt but without the brackets
         */
-       std::string getOpt();
+       std::string getOptContent();
        /*!
         * \returns getFullArg('(', ')') including the parentheses or the
         * empty string if there is no such argument.
@@ -190,7 +198,8 @@ public:
        /// \return whether the current token starts a new paragraph
        bool isParagraph();
        /// skips spaces (and comments if \p skip_comments is true)
-       void skip_spaces(bool skip_comments = false);
+       /// \return whether whitespace was skipped (not comments)
+       bool skip_spaces(bool skip_comments = false);
        /// puts back spaces (and comments if \p skip_comments is true)
        void unskip_spaces(bool skip_comments = false);
        ///