public List CleanWords()

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;
        }