/// @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
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)};