in Functions/FunctionCode/News/AbstractExtractor/run.csx [210:295]
public List<string> CleanWords(string word)
{
List<string> words = new List<string>();
StringBuilder sb = new StringBuilder();
bool isOpenQuote = false;
bool isExclusion = false;
foreach (char c in word)
{
switch (c)
{
case '-':
isExclusion = !isExclusion;
break;
case '(':
break;
case ')':
if (!isExclusion)
{
if (sb.Length > 0)
{
words.Add(sb.ToString());
sb.Clear();
break;
}
break;
}
break;
case '"':
isOpenQuote = !isOpenQuote;
if (!isExclusion)
{
if (!isOpenQuote)
{
if (sb.Length > 0)
{
words.Add(sb.ToString());
sb.Clear();
}
break;
}
}
break;
case ' ':
if (isOpenQuote)
{
if (!isExclusion)
{
sb.Append(c);
break;
}
break;
}
if (!isExclusion)
{
if (sb.Length > 0)
{
words.Add(sb.ToString());
sb.Clear();
break;
}
break;
}
else
{
isExclusion = !isExclusion;
break;
}
default:
if (!isExclusion)
{
sb.Append(c);
break;
}
break;
}
}
if (sb.Length > 0)
{
words.Add(sb.ToString());
sb.Clear();
}
return words;
}