Пример #1
0
        public IEnumerable <LangToken> ParseTokens(string text)
        {
            for (var i = 0; i < text.Length; i++)
            {
                var cls = CharClassify.ClassifyChar(text[i]);
                if (cls > 0)
                {
                    var j = i;
                    for (; j < text.Length && (CharClassify.ClassifyChar(text[j]) & cls) > 0; j++)
                    {
                        ;
                    }

                    var word = text.Substring(i, j - i);

                    var result = new LangToken
                    {
                        Value       = word,
                        LeftOffset  = i,
                        RightOffset = j - 1
                    };
                    yield return(result);

                    i = j - 1;
                }
            }
        }
Пример #2
0
 public void AddParent(LangToken token)
 {
     parentTokens.Add(token);
     if (LeftOffset == -1 || token.LeftOffset < LeftOffset)
     {
         LeftOffset = token.LeftOffset;
     }
     if (RightOffset == -1 || token.RightOffset > RightOffset)
     {
         RightOffset = token.RightOffset;
     }
 }