public void TokenDefinition_IsReserved_Integer()
        {
            var input = "int a=32;";

            var reservedRegex = RegexWrapper.DefaultWrap(ReservedProvider.GetPattern());

            var tokenDefinition = new TokenDefinition(TokenType.Reserved, reservedRegex);

            var match = tokenDefinition.Match(input);

            Assert.IsTrue(match.IsMatch);
            Assert.AreEqual("int", match.Value);
            Assert.AreEqual(" a=32;", match.RemainingText);
            Assert.AreEqual(TokenType.Reserved, match.TokenType);
        }
        public void TokenDefinition_IsInvalid1()
        {
            var input = "fake_int a=32;";

            var reservedRegex = RegexWrapper.DefaultWrap(ReservedProvider.GetPattern());

            var tokenDefinition = new TokenDefinition(TokenType.Reserved, reservedRegex);

            var match = tokenDefinition.Match(input);

            Assert.IsFalse(match.IsMatch);
            Assert.IsNull(match.Value);
            Assert.IsNull(match.RemainingText);
            Assert.AreEqual(TokenType.Invalid, match.TokenType);
        }
        public void TokenDefinition_IsReserved_ReturnWithNewline()
        {
            var input = "return\nasdf";

            var reservedRegex = RegexWrapper.DefaultWrap(ReservedProvider.GetPattern());

            var tokenDefinition = new TokenDefinition(TokenType.Reserved, reservedRegex);

            var match = tokenDefinition.Match(input);

            Assert.IsTrue(match.IsMatch);
            Assert.AreEqual("return", match.Value);
            Assert.AreEqual("\nasdf", match.RemainingText);
            Assert.AreEqual(TokenType.Reserved, match.TokenType);
        }