private static string ScanHexNumber(SlidingTextWindow window) { var buffer = new StringBuilder(); while (true) { if (window.IsAtEnd()) { return(buffer.ToString()); } char current = window.Peek(); if (!IsHexDigit(current)) { return(buffer.ToString()); } buffer.Append(current); window.Advance(); } }
private IEnumerable <SyntaxTrivia> ScanTrailingTrivia() { if (IsWhiteSpace(textWindow.Peek())) { yield return(ScanWhitespace()); } if (textWindow.Peek() == '/' && textWindow.Peek(1) == '/') { yield return(ScanSingleLineComment()); yield break; } if (textWindow.Peek() == '/' && textWindow.Peek(1) == '*') { yield return(ScanMultiLineComment()); yield break; } }