public void TestResetOnANTLRStringStream() { ANTLRStringStream stream = new ANTLRStringStream("One\r\nTwo"); Assert.AreEqual(0, stream.Index); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // O stream.Consume(); // n Assert.AreEqual('e', stream.LA(1)); Assert.AreEqual(2, stream.Index); stream.Reset(); Assert.AreEqual('O', stream.LA(1)); Assert.AreEqual(0, stream.Index); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // O Assert.AreEqual('n', stream.LA(1)); Assert.AreEqual(1, stream.Index); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // n Assert.AreEqual('e', stream.LA(1)); Assert.AreEqual(2, stream.Index); Assert.AreEqual(2, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // e }
public int LA(int offset) { var number = stream.LA(offset); if (number == -1) { return(number); } return(char.ToLowerInvariant((char)number)); }
public void TestResetOnANTLRStringStream() { ANTLRStringStream stream = new ANTLRStringStream("One\r\nTwo"); Assert.AreEqual(0, stream.Index()); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // O stream.Consume(); // n Assert.AreEqual('e', stream.LA(1)); Assert.AreEqual(2, stream.Index()); stream.Reset(); Assert.AreEqual('O', stream.LA(1)); Assert.AreEqual(0, stream.Index()); Assert.AreEqual(0, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // O Assert.AreEqual('n', stream.LA(1)); Assert.AreEqual(1, stream.Index()); Assert.AreEqual(1, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // n Assert.AreEqual('e', stream.LA(1)); Assert.AreEqual(2, stream.Index()); Assert.AreEqual(2, stream.CharPositionInLine); Assert.AreEqual(1, stream.Line); stream.Consume(); // e }