std::string Grammar_Matcher::grabWord(const std::string& haystack, unsigned int& haystackPosition) { std::string currentTerm = ""; while(haystackPosition < haystack.length() && haystack[haystackPosition] != ' ' && haystack[haystackPosition] != '\n' && haystack[haystackPosition] != '[' && haystack[haystackPosition] != ']' && haystack[haystackPosition] != '(' && haystack[haystackPosition] != ')' && haystack[haystackPosition] != '|') { currentTerm.append(1, tolower(haystack[haystackPosition])); haystackPosition++; } return currentTerm; }