public void X1EscapeSequenceIsExtracted()
        {
            String input  = "\"" + @"some\x1string" + "\"";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(new Span(5, 3), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void EscapeInSingleQuotesIsExtracted()
        {
            String input  = @"'some\rstring'";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(new Span(5, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void EscapedBackslashIsExtractedCorrectly()
        {
            String input  = "\"" + @"some\\string" + "\"";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(new Span(5, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void TwoSeparateEscapeSequencesAreExtracted()
        {
            String input  = "\"" + @"some\rother\nstring" + "\"";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(new Span(5, 2), parser.Next());
            Assert.Equal(new Span(12, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void NoSequencesInIncludeStringAreExtracted()
        {
            String input  = "<\"" + @"some\rother\nstring" + "\">";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(null, parser.Next());
        }
        public void NoEscapesReturnsNull()
        {
            String input  = "\"some string\"";
            var    parser = new CEscapeSequenceParser(input);

            Assert.Equal(null, parser.Next());
        }