Exemplo n.º 1
0
        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
        }
Exemplo n.º 2
0
        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
		}