/// <summary> /// Валидация последовательности элементов /// </summary> /// <param name="tokens"></param> /// <returns></returns> private bool ValidateTokenSequence(TokenCollection tokens) { bool isValid = true; var sequenceValidator = new TokenSequenceValidator(); for (int i = 0; i < tokens.Count; i++) { (string, string)tokenTypeTuple; if (i == 0) { tokenTypeTuple = (TokenSequenceValidator.first, tokens[i].Name); } else { tokenTypeTuple = (tokens[i - 1].Name, tokens[i].Name); } isValid = sequenceValidator.Validate(tokenTypeTuple); if (!isValid) { return(isValid); } } return(sequenceValidator.Validate((TokenSequenceValidator.last, tokens.Last().Name))); }