Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="token"></param>
 /// <param name="filters"></param>
 private static void FilterToken(TextTokenInfo token, List <TextTokenFilter> filters)
 {
     if (filters.Any(f => f.IsCanFilter(token)))
     {
         token.IsIgrored = true;
     }
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        protected bool InternalIsAllRight(TextTokenInfo token)
        {
            if (token == null)
            {
                return(false);
            }

            if (token.TokenPartNumber != PartNumber)
            {
                return(false);
            }

            if (token.TokenPart.TokensCount < TokenNumber)
            {
                return(false);
            }

            var tokens = token.TokenPart.Tokens.ToList();

            tokens.Reverse();

            var tokenNumber = tokens[TokenNumber - 1].TokenNumber;

            return(tokenNumber == token.TokenNumber);
        }
Пример #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="analyzer"></param>
        /// <param name="token"></param>
        private static void AnalyzeTokenType(TextTokenAnalyzer analyzer, TextTokenInfo token)
        {
            if (!string.IsNullOrEmpty(token.TokenType))
            {
                return;
            }

            token.TokenType = analyzer.Analyze(token);
        }
Пример #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="partNumber"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        private TextTokenInfo GetToken(int partNumber, string text)
        {
            var token = new TextTokenInfo();

            token.TokenText       = text;
            token.TokenPartNumber = partNumber;

            return(token);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public override bool IsAllRight(TextTokenInfo token)
        {
            var tokens = token.GetNextTokens().ToList();

            if (tokens.Count < NextCount)
            {
                return(false);
            }

            return(InternalIsAllRight(tokens[NextCount - 1]));
        }
Пример #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public override bool IsAllRight(TextTokenInfo token)
        {
            if (token.TokenPart.Tokens.IsLast(token))
            {
                return(false);
            }

            var nextToken = token.NextToken;

            return(token.TokenPart.Tokens.IsLast(nextToken));
        }
Пример #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public static IEnumerable <TextTokenInfo> GetPreviousTokens(this TextTokenInfo token)
        {
            var previous = token.PreviousToken;

            while (previous != null)
            {
                var existsPreviousToken = previous;
                previous = existsPreviousToken.PreviousToken;

                yield return(existsPreviousToken);
            }
        }
Пример #8
0
        // <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public static IEnumerable <TextTokenInfo> GetNextTokens(this TextTokenInfo token)
        {
            var nextToken = token.NextToken;

            while (nextToken != null)
            {
                var existsNextToken = nextToken;
                nextToken = existsNextToken.NextToken;

                yield return(existsNextToken);
            }
        }
Пример #9
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        public virtual string Analyze(TextTokenInfo token)
        {
            if (!string.IsNullOrEmpty(token.TokenType))
            {
                return(token.TokenType);
            }

            if (IsAllRigth(token))
            {
                return(TokenType);
            }

            return(null);
        }
Пример #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="token"></param>
        /// <returns></returns>
        protected bool InternalIsAllRight(TextTokenInfo token)
        {
            if (token == null)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(token.TokenText))
            {
                return(false);
            }

            if (string.IsNullOrEmpty(Text))
            {
                return(false);
            }

            if (TextScannerType == TextTokenTextScannerType.Equal)
            {
                return(token.TokenText == Text);
            }

            if (TextScannerType == TextTokenTextScannerType.StartsWith)
            {
                return(token.TokenText.StartsWith(Text));
            }

            if (TextScannerType == TextTokenTextScannerType.EndsWith)
            {
                return(token.TokenText.EndsWith(Text));
            }

            if (TextScannerType == TextTokenTextScannerType.Contains)
            {
                return(token.TokenText.Contains(Text));
            }

            if (TextScannerType == TextTokenTextScannerType.Regex)
            {
                return(new Regex(Text).IsMatch(token.TokenText));
            }

            return(false);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="token"></param>
 /// <returns></returns>
 public override bool IsAllRight(TextTokenInfo token)
 {
     return(InternalIsAllRight(token));
 }
Пример #12
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="token"></param>
 /// <returns></returns>
 protected virtual bool IsAllRigth(TextTokenInfo token)
 {
     return(Scanners.All(a => a.IsAllRight(token)));
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="token"></param>
 /// <returns></returns>
 public override bool IsAllRight(TextTokenInfo token)
 {
     return(token.TokenPart.Tokens.IsLast(token));
 }