From: David Neto Date: Tue, 25 Aug 2015 17:53:19 +0000 (-0400) Subject: Getting the next word ends at a comment (;) X-Git-Tag: upstream/2018.6~1511^2~216 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=574884cd7efa0fc8364d107e25e916d61d49e103;p=platform%2Fupstream%2FSPIRV-Tools.git Getting the next word ends at a comment (;) --- diff --git a/source/text.cpp b/source/text.cpp index 534e4b1..793bb58 100644 --- a/source/text.cpp +++ b/source/text.cpp @@ -155,6 +155,7 @@ spv_result_t spvTextWordGet(const spv_text text, while (true) { switch (text->str[endPosition->index]) { case ' ': + case ';': case '\t': case '\n': case '\0': { // NOTE: End of word found! diff --git a/source/text.h b/source/text.h index fb9acf7..768b4e4 100644 --- a/source/text.h +++ b/source/text.h @@ -85,7 +85,9 @@ spv_result_t spvTextAdvanceLine(const spv_text text, spv_position_t *pPosition); /// @return result code spv_result_t spvTextAdvance(const spv_text text, spv_position_t *pPosition); -/// @brief Fetch the next word from the text stream +/// @brief Fetch the next word from the text stream. +/// +/// A word ends at the next comment or whitespace. /// /// @param[in] text stream to read from /// @param[in] startPosition current position in text stream diff --git a/test/TextWordGet.cpp b/test/TextWordGet.cpp index b67b788..133703a 100644 --- a/test/TextWordGet.cpp +++ b/test/TextWordGet.cpp @@ -68,6 +68,20 @@ TEST(TextWordGet, SpaceTerminator) { ASSERT_STREQ("Word", word.c_str()); } +TEST(TextWordGet, SemicolonTerminator) { + char textStr[] = "Wo;rd "; + spv_text_t text = {textStr, strlen(textStr)}; + spv_position_t startPosition = {}; + std::string word; + spv_position_t endPosition = {}; + ASSERT_EQ(SPV_SUCCESS, + spvTextWordGet(&text, &startPosition, word, &endPosition)); + ASSERT_EQ(2, endPosition.column); + ASSERT_EQ(0, endPosition.line); + ASSERT_EQ(2, endPosition.index); + ASSERT_STREQ("Wo", word.c_str()); +} + TEST(TextWordGet, MultipleWords) { char textStr[] = "Words in a sentence"; spv_text_t text = {textStr, strlen(textStr)};