/// <summary> /// Determines whether [is compute operator] [the specified input]. /// </summary> /// <param name="input">The input.</param> /// <param name="computeOperator">The compute operator.</param> /// <returns><c>true</c> if [is compute operator] [the specified input]; otherwise, <c>false</c>.</returns> private bool IsComputeOperator(string input, out ComputeOperator computeOperator) { var result = BooleanSearchCore.ToComputeOperator(input); if (result.HasValue) { computeOperator = result.Value; return(true); } computeOperator = default(ComputeOperator); return(false); }
/// <summary> /// Expects the compute operator. /// </summary> /// <param name="input">The input.</param> /// <param name="position">The position.</param> /// <returns>System.Nullable<ComputeOperator>.</returns> /// <exception cref="Beyova.Diagnostic.InvalidExpressiontException"></exception> private ComputeOperator?ExpectComputeOperator(string input, ref int position) { string operatorString = null; TrimStartSpaces(input, ref position); var startPosition = position; bool isSymbol = position < input.Length && computeOperatorSymbolChars.HasItem(input[position]); while (position < input.Length) { if (isSymbol) { if (computeOperatorSymbolChars.HasItem(input[position])) { position++; } else { break; } } else { if (!relationshipOperatorInterruptChars.HasItem(input[position])) { position++; } else { break; } } } operatorString = input.Substring(startPosition, position - startPosition); return(BooleanSearchCore.ToComputeOperator(operatorString)); }