public void DQ_EmptyReturnsNull()
        {
            String input  = "\"" + @"" + "\"";
            var    parser = new PsEscapeSequenceParser(input);

            Assert.Equal(null, parser.Next());
        }
        public void SQ_HS_EmbeddedQuotes()
        {
            String input  = "@'\r\n'" + @"some`nstring" + "'\r\n'@";
            var    parser = new PsEscapeSequenceParser(input);

            Assert.Equal(null, parser.Next());
        }
        public void SQ_EscapesAreIgnored()
        {
            String input  = "'some`rstring'";
            var    parser = new PsEscapeSequenceParser(input);

            Assert.Equal(null, parser.Next());
        }
        public void DQ_EscapedBacktick()
        {
            String input  = "\"" + @"some``nstring" + "\"";
            var    parser = new PsEscapeSequenceParser(input);

            Assert.Equal(new Span(5, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void DQ_HS_EmbeddedQuotes()
        {
            String input  = "@\"\r\n\"" + @"some`nstring" + "\"\r\n\"@";
            var    parser = new PsEscapeSequenceParser(input);

            Assert.Equal(new Span(9, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
        public void DQ_HS_OneEscape()
        {
            String input  = "@\"\r\n" + @"some`nstring" + "\r\n\"@";
            var    parser = new PsEscapeSequenceParser(input);

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

            Assert.Equal(new Span(5, 2), parser.Next());
            Assert.Equal(new Span(12, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }