示例#1
0
		public void CanPeekCharWithIndex()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("This is some text");

			// Act.
			char c = buffer.PeekChar(10);

			// Assert.
			Assert.AreEqual('m', c);
		}
示例#2
0
		public void PeekCharDetectsInvalidPosition()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("This is some text");

			// Act.
			char c = buffer.PeekChar(20);

			// Assert.
			Assert.AreEqual('\0', c);
		}
示例#3
0
		public void CanPeekCharFirst()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("This is some text");

			// Act.
			char c = buffer.PeekChar();

			// Assert.
			Assert.AreEqual('T', c);
		}
示例#4
0
		public void CorrectlyReportsColumnOnSingleLine()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer(string.Format("Abc{0}Defg{0}C", "\r\n"));

			// Act.
			buffer.NextChar();
			buffer.NextChar();

			// Assert.
			Assert.AreEqual(2, buffer.Column);
		}
示例#5
0
		public void CanGetNextChar()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("This is some text");

			// Act.
			char c1 = buffer.NextChar();
			char c2 = buffer.NextChar();

			// Assert.
			Assert.AreEqual('T', c1);
			Assert.AreEqual('h', c2);
		}
示例#6
0
		public void CorrectlyReportsRemainingLength()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("This is some text");

			// Act.
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();

			// Assert.
			Assert.AreEqual(12, buffer.RemainingLength);
		}
示例#7
0
		public void CorrectlyReportsPosition()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer(string.Format("Abc{0}Defg{0}C", "\r\n"));

			// Act.
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();

			BufferPosition position = buffer.Position;

			// Assert.
			Assert.AreEqual(2, position.Column);
			Assert.AreEqual(1, position.Line);
			Assert.AreEqual(7, position.Offset);
		}
示例#8
0
		public void CorrectlyReportsIsEofWhenTrue()
		{
			// Arrange.
			TextBuffer buffer = new TextBuffer("Abc");

			// Act.
			buffer.NextChar();
			buffer.NextChar();
			buffer.NextChar();

			// Assert.
			Assert.AreEqual(true, buffer.IsEof);
		}
示例#9
0
		protected LexerBase(string path, string text)
		{
			_path = path;
			_buffer = new TextBuffer(text);
			_value = new StringBuilder();
		}