public void TestSeekOnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] buffer = encoding.GetBytes("One\r\nTwo\r\nThree"); MemoryStream grammarStream = new MemoryStream(buffer); ANTLRInputStream stream = new ANTLRInputStream(grammarStream, encoding); Assert.AreEqual('O', stream.LA(1)); Assert.AreEqual(0, stream.Index); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Seek(6); Assert.AreEqual('w', stream.LA(1)); Assert.AreEqual(6, stream.Index); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(2, stream.Line); stream.Seek(11); Assert.AreEqual('h', stream.LA(1)); Assert.AreEqual(11, stream.Index); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(3, stream.Line); // seeking backwards leaves state info (other than index in stream) unchanged stream.Seek(1); Assert.AreEqual('n', stream.LA(1)); Assert.AreEqual(1, stream.Index); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(3, stream.Line); }
public void TestResetOnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] buffer = encoding.GetBytes("One\r\nTwo"); MemoryStream grammarStream = new MemoryStream(buffer); ANTLRInputStream inputStream = new ANTLRInputStream(grammarStream, encoding); Assert.AreEqual(0, inputStream.Index); Assert.AreEqual(0, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // O inputStream.Consume(); // n Assert.AreEqual('e', inputStream.LA(1)); Assert.AreEqual(2, inputStream.Index); inputStream.Reset(); Assert.AreEqual('O', inputStream.LA(1)); Assert.AreEqual(0, inputStream.Index); Assert.AreEqual(0, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // O Assert.AreEqual('n', inputStream.LA(1)); Assert.AreEqual(1, inputStream.Index); Assert.AreEqual(1, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // n Assert.AreEqual('e', inputStream.LA(1)); Assert.AreEqual(2, inputStream.Index); Assert.AreEqual(2, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // e }
public void TestConsumeAllCharactersInAnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] grammarStrBuffer = encoding.GetBytes(grammarStr); MemoryStream grammarStream = new MemoryStream(grammarStrBuffer); ANTLRInputStream inputStream = new ANTLRInputStream(grammarStream, Encoding.Unicode); while (inputStream.Index < inputStream.Count) { Console.Out.Write((char)inputStream.LA(1)); inputStream.Consume(); } Assert.AreEqual(inputStream.Index, inputStream.Count); }
public void TestSeekOnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] buffer = encoding.GetBytes("One\r\nTwo\r\nThree"); MemoryStream grammarStream = new MemoryStream(buffer); ANTLRInputStream stream = new ANTLRInputStream(grammarStream, encoding); Assert.AreEqual('O', stream.LA(1)); Assert.AreEqual(0, stream.Index()); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Seek(6); Assert.AreEqual('w', stream.LA(1)); Assert.AreEqual(6, stream.Index()); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(2, stream.Line); stream.Seek(11); Assert.AreEqual('h', stream.LA(1)); Assert.AreEqual(11, stream.Index()); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(3, stream.Line); // seeking backwards leaves state info (other than index in stream) unchanged stream.Seek(1); Assert.AreEqual('n', stream.LA(1)); Assert.AreEqual(1, stream.Index()); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(3, stream.Line); }
public void TestResetOnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] buffer = encoding.GetBytes("One\r\nTwo"); MemoryStream grammarStream = new MemoryStream(buffer); ANTLRInputStream inputStream = new ANTLRInputStream(grammarStream, encoding); Assert.AreEqual(0, inputStream.Index()); Assert.AreEqual(0, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // O inputStream.Consume(); // n Assert.AreEqual('e', inputStream.LA(1)); Assert.AreEqual(2, inputStream.Index()); inputStream.Reset(); Assert.AreEqual('O', inputStream.LA(1)); Assert.AreEqual(0, inputStream.Index()); Assert.AreEqual(0, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // O Assert.AreEqual('n', inputStream.LA(1)); Assert.AreEqual(1, inputStream.Index()); Assert.AreEqual(1, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // n Assert.AreEqual('e', inputStream.LA(1)); Assert.AreEqual(2, inputStream.Index()); Assert.AreEqual(2, inputStream.CharPositionInLine); Assert.AreEqual(1, inputStream.Line); inputStream.Consume(); // e }
public void TestConsumeAllCharactersInAnANTLRInputStream() { Encoding encoding = Encoding.Unicode; byte[] grammarStrBuffer = encoding.GetBytes(grammarStr); MemoryStream grammarStream = new MemoryStream(grammarStrBuffer); ANTLRInputStream inputStream = new ANTLRInputStream(grammarStream, Encoding.Unicode); while (inputStream.Index() < inputStream.Size()) { Console.Out.Write((char)inputStream.LA(1)); inputStream.Consume(); } Assert.AreEqual(inputStream.Index(), inputStream.Size()); }