/// <summary>
        /// 保存词
        /// </summary>
        /// <param name="startpos">开始位置</param>
        /// <param name="endpos">结束位置</param>
        private void SavePhrase(int startpos, int endpos)
        {
            string temp = null;

            //处理'@'
            if (startpos == endpos && _chArray[startpos] == '@')
            {
                _ps.AddPhraseResult("-", PhraseTypeEnum.less);
                return;
            }
            //处理其他词元
            if (endpos >= 0 && startpos >= 0 && endpos >= startpos)
            {
                //trim(),以防止在startpos到endpos头尾出现空格
                temp = _sentence.Substring(startpos, endpos - startpos + 1).Trim().ToLower();
                _ps.AddPhraseResult(temp, PhraseAnalyzer.StrToType(temp));
            }
        }
 public PhraseAnalyzer(string sentence, ref PhraseStorage ps)
 {
     //清除前一次的词法分析结果
     _ps = ps;
     _ps.ClearResult();
     //保存句子
     _sentence = sentence;
     _succeed  = true;
     //小写化句子中的所有字母
     _chArray = sentence.ToLower().ToCharArray();
     if (Analyze() == false)     //出错
     {
         _ps.AddPhraseResult("Error", PhraseTypeEnum.unknown);
     }
 }