Esempio n. 1
0
        public void CanMatchLeadingCharactersByTokenRegex()
        {
            var end           = new TokenRegex(@"$");
            var letters       = new TokenRegex(@"[a-z]+");
            var digits        = new TokenRegex(@"[0-9]+");
            var alphanumerics = new TokenRegex(@"[a-z0-9]+");

            var empty = new InputText("");

            empty.Match(letters).ShouldFail();
            empty.Match(end).ShouldSucceed("");

            var abc123 = new TextTestFixture("abc123");

            abc123.Advance(0).Match(digits).ShouldFail();
            abc123.Advance(0).Match(letters).ShouldSucceed("abc");
            abc123.Advance(0).Match(alphanumerics).ShouldSucceed("abc123");

            abc123.Advance(2).Match(digits).ShouldFail();
            abc123.Advance(2).Match(letters).ShouldSucceed("c");
            abc123.Advance(2).Match(alphanumerics).ShouldSucceed("c123");

            abc123.Advance(3).Match(digits).ShouldSucceed("123");
            abc123.Advance(3).Match(letters).ShouldFail();
            abc123.Advance(3).Match(alphanumerics).ShouldSucceed("123");

            abc123.Advance(6).Match(digits).ShouldFail();
            abc123.Advance(6).Match(letters).ShouldFail();
            abc123.Advance(6).Match(alphanumerics).ShouldFail();
        }
Esempio n. 2
0
            public Match NextToken()
            {
                var match = TokenRegex.Match(Text, Index);

                Index = match.Index + match.Length;

                return(match);
            }
Esempio n. 3
0
        public void CanMatchRegexStartingFromGivenCharacterPosition()
        {
            var regex = new TokenRegex(@"[a-z]+");

            regex.Match("123abc0", 0).Success.ShouldBeFalse();

            regex.Match("123abc0", 3).Success.ShouldBeTrue();
            regex.Match("123abc0", 3).Value.ShouldBe("abc");

            regex.Match("123abc0", 4).Success.ShouldBeTrue();
            regex.Match("123abc0", 4).Value.ShouldBe("bc");
        }
Esempio n. 4
0
        public void SupportsOptionalRegexOptions()
        {
            var regex = new TokenRegex(@"[a-z]+", RegexOptions.IgnoreCase);

            regex.Match("123aBc0", 0).Success.ShouldBeFalse();

            regex.Match("123aBc0", 3).Success.ShouldBeTrue();
            regex.Match("123aBc0", 3).Value.ShouldBe("aBc");

            regex.Match("123aBc0", 4).Success.ShouldBeTrue();
            regex.Match("123aBc0", 4).Value.ShouldBe("Bc");
        }
Esempio n. 5
0
        public void CanMatchMultilineAndCommentedRegexes()
        {
            var regex = new TokenRegex(
                @"  [a-z]+   # Just Lower
                  | [A-Z]+   # Just Upper
                  | [0-9]+   # Just Digit");

            regex.Match("123Abc", 1).Value.ShouldBe("23");
            regex.Match("$23ab!", 0).Success.ShouldBeFalse();
            regex.Match("$23ab!", 1).Value.ShouldBe("23");
            regex.Match("$23ab!", 3).Value.ShouldBe("ab");
        }
Esempio n. 6
0
        public void SupportsOptionalRegexOptions()
        {
            var regex = new TokenRegex(@"[a-z]+", RegexOptions.IgnoreCase);

            regex.Match("123aBc0", 0).Success.ShouldBeFalse();

            regex.Match("123aBc0", 3).Success.ShouldBeTrue();
            regex.Match("123aBc0", 3).Value.ShouldBe("aBc");

            regex.Match("123aBc0", 4).Success.ShouldBeTrue();
            regex.Match("123aBc0", 4).Value.ShouldBe("Bc");
        }
Esempio n. 7
0
        public void CanMatchRegexStartingFromGivenCharacterPosition()
        {
            var regex = new TokenRegex(@"[a-z]+");

            regex.Match("123abc0", 0).Success.ShouldBeFalse();

            regex.Match("123abc0", 3).Success.ShouldBeTrue();
            regex.Match("123abc0", 3).Value.ShouldBe("abc");

            regex.Match("123abc0", 4).Success.ShouldBeTrue();
            regex.Match("123abc0", 4).Value.ShouldBe("bc");
        }
Esempio n. 8
0
        public void CanMatchMultilineAndCommentedRegexes()
        {
            var regex = new TokenRegex(
                @"  [a-z]+   # Just Lower
                  | [A-Z]+   # Just Upper
                  | [0-9]+   # Just Digit");

            regex.Match("123Abc", 1).Value.ShouldBe("23");
            regex.Match("$23ab!", 0).Success.ShouldBeFalse();
            regex.Match("$23ab!", 1).Value.ShouldBe("23");
            regex.Match("$23ab!", 3).Value.ShouldBe("ab");
        }
Esempio n. 9
0
        private void FormatTokens()
        {
            StringBuilder result = new StringBuilder("");

            foreach (string token in TokenRegex.Split(textBoxAccessTokens.Text))
            {
                if (!string.IsNullOrWhiteSpace(token))
                {
                    result.AppendLine(token.Trim());
                }
            }
            textBoxAccessTokens.Text = result.ToString().Trim();
        }
Esempio n. 10
0
        protected Match GetMatch(TextBuffer textBuffer)
        {
            Match match = TokenRegex.Match(textBuffer.Remainder);

            if (match.Success)
            {
                textBuffer.MoveForward(match.Value.Length);
                return(match);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 11
0
        public virtual void Parse(string code)
        {
            var match = TokenRegex.Match(code);

            if (!match.Success)
            {
                //Console.WriteLine($"|{TokenRegex}| ({code})");
                //TODO logging
                return;
            }

            Value     = match.Value;
            Groups    = match.Groups.Cast <Group>().ToList();
            ValueType = "string";
        }
 internal void HandleException(ApiSession rpSession, Exception rException)
 {
     try
     {
         using (var rStreamWriter = new StreamWriter(Logger.GetNewExceptionLogFilename(), false, new UTF8Encoding(true)))
         {
             rStreamWriter.WriteLine(TokenRegex.Replace(rpSession.FullUrl, "***************************"));
             rStreamWriter.WriteLine("Request Data:");
             rStreamWriter.WriteLine(TokenRegex.Replace(rpSession.RequestBodyString, "***************************"));
             rStreamWriter.WriteLine();
             rStreamWriter.WriteLine("Exception:");
             rStreamWriter.WriteLine(rException.ToString());
             rStreamWriter.WriteLine();
             rStreamWriter.WriteLine("Response Data:");
             rStreamWriter.WriteLine(Regex.Unescape(rpSession.ResponseBodyString));
         }
     }
     catch { }
 }
Esempio n. 13
0
        public void CanMatchLeadingCharactersByTokenRegex()
        {
            var end           = new TokenRegex(@"$");
            var letters       = new TokenRegex(@"[a-z]+");
            var digits        = new TokenRegex(@"[0-9]+");
            var alphanumerics = new TokenRegex(@"[a-z0-9]+");

            using (var empty = new LinedTextTestFixture(""))
            {
                empty.ReadLine().ShouldBeFalse();
                empty.Match(letters).ShouldFail();
                empty.Match(end).ShouldFail(); // the behavior is different with respect to Text
            }

            using (var abc123 = new LinedTextTestFixture("abc123"))
            {
                abc123.ReadLine().ShouldBeTrue();

                abc123.Match(digits).ShouldFail();
                abc123.Match(letters).ShouldSucceed("abc");
                abc123.Match(alphanumerics).ShouldSucceed("abc123");

                abc123.Advance(2);

                abc123.Match(digits).ShouldFail();
                abc123.Match(letters).ShouldSucceed("c");
                abc123.Match(alphanumerics).ShouldSucceed("c123");

                abc123.Advance(1);

                abc123.Match(digits).ShouldSucceed("123");
                abc123.Match(letters).ShouldFail();
                abc123.Match(alphanumerics).ShouldSucceed("123");

                abc123.Advance(3);

                abc123.Match(digits).ShouldFail();
                abc123.Match(letters).ShouldFail();
                abc123.Match(alphanumerics).ShouldFail();
            }
        }
Esempio n. 14
0
 public MatchResult Match(TokenRegex regex)
 {
     return(_text.Match(regex));
 }
Esempio n. 15
0
        public void CanMatchLeadingCharactersByTokenRegex()
        {
            var end = new TokenRegex(@"$");
            var letters = new TokenRegex(@"[a-z]+");
            var digits = new TokenRegex(@"[0-9]+");
            var alphanumerics = new TokenRegex(@"[a-z0-9]+");

            var empty = new Text("");
            empty.Match(letters).ShouldFail();
            empty.Match(end).ShouldSucceed("");

            var abc123 = new Text("abc123");
            abc123.Match(digits).ShouldFail();
            abc123.Match(letters).ShouldSucceed("abc");
            abc123.Match(alphanumerics).ShouldSucceed("abc123");

            abc123.Advance(2).Match(digits).ShouldFail();
            abc123.Advance(2).Match(letters).ShouldSucceed("c");
            abc123.Advance(2).Match(alphanumerics).ShouldSucceed("c123");

            abc123.Advance(3).Match(digits).ShouldSucceed("123");
            abc123.Advance(3).Match(letters).ShouldFail();
            abc123.Advance(3).Match(alphanumerics).ShouldSucceed("123");

            abc123.Advance(6).Match(digits).ShouldFail();
            abc123.Advance(6).Match(letters).ShouldFail();
            abc123.Advance(6).Match(alphanumerics).ShouldFail();
        }