public void CharAtCorrectlyReturnsLocation()
 {
     LineTrackingStringBuffer buffer = new LineTrackingStringBuffer();
     buffer.Append("foo\rbar\nbaz\r\nbiz");
     LineTrackingStringBuffer.CharacterReference chr = buffer.CharAt(14);
     Assert.Equal('i', chr.Character);
     Assert.Equal(new SourceLocation(14, 3, 1), chr.Location);
 }
示例#2
0
 private void UpdateState()
 {
     if (_position < _buffer.Length)
     {
         LineTrackingStringBuffer.CharacterReference chr = _buffer.CharAt(_position);
         _current  = chr.Character;
         _location = chr.Location;
     }
     else if (_buffer.Length == 0)
     {
         _current  = null;
         _location = SourceLocation.Zero;
     }
     else
     {
         _current  = null;
         _location = _buffer.EndLocation;
     }
 }