/// <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); }
/// <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); }
/// <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])); }
/// <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)); }
/// <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); } }
// <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); } }
/// <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); }
/// <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)); }
/// <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)); }