private static bool IsValidDouble(CharacterStream cs, int start, int end) { int len = end - start; string s = cs.GetSubstringAt(start, len); double n; return(Double.TryParse(s, NumberStyles.Number | NumberStyles.AllowExponent, CultureInfo.InvariantCulture, out n)); }
private static int Get3CharOrShorterOperatorLength(CharacterStream cs) { if (cs.DistanceFromEnd >= 3) { string threeLetterCandidate = cs.GetSubstringAt(cs.Position, 3); if (threeLetterCandidate.Length == 3) { int index = Array.BinarySearch <string>(_threeChars, threeLetterCandidate); if (index >= 0) { return(3); } } } return(Get2CharOrShorterOperatorLength(cs)); }
internal static int Get2CharOrShorterOperatorLength(CharacterStream cs) { if (cs.DistanceFromEnd >= 2) { string twoLetterCandidate = cs.GetSubstringAt(cs.Position, 2); if (twoLetterCandidate.Length == 2) { int index = Array.BinarySearch <string>(_twoChars, twoLetterCandidate); if (index >= 0) { return(2); } } } return(GetSingleCharOperatorLength(cs.CurrentChar)); }