Exemplo n.º 1
0
        public void DoublePercentIsIgnored()
        {
            String input  = "\"" + @"some %% value" + "\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 2
0
        public void VerbatimMeansIgnoreSequences()
        {
            String input  = "@\"some string\\nescape\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 3
0
        public void TripleQuoteMeansIgnoreSequences()
        {
            String input  = "\"\"\"some string\\escape\"\"\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 4
0
        public void PercentAtEndOfStringIsIgnored()
        {
            String input  = "\"" + @"some %" + "\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 5
0
        public void FormatSpecWithSpaceFlagsIsExtracted()
        {
            String input  = "\"" + @"some % 8x value" + "\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(6, 4, StringPartType.FormatSpecifier), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 6
0
        public void FormatSpecWithFlagsWidthAndPrecisionIsExtracted()
        {
            String input  = "\"" + @"some %-8.2f value" + "\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(6, 6, StringPartType.FormatSpecifier), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 7
0
        public void SimpleFormatSpecIsExtracted()
        {
            String input  = "\"" + @"some %d value" + "\"";
            var    parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(6, 2, StringPartType.FormatSpecifier), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 8
0
        public void UnicodeGraphShortIncompleteIsNotReturned()
        {
            String input = "\"" +
                           @"\u12some other stuff"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 9
0
        public void TwoDigitAfterBackslashNotConsideredTrigraph()
        {
            String input = "\"" +
                           @"\02abcd"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 10
0
        public void UnicodeGraphShortIsEscapeSequence()
        {
            String input = "\"" +
                           @"\u1234some other stuff"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 6), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 11
0
        public void NonEscapeSequenceIsNotHighlighted()
        {
            // regexp non-escape-chars = '\' [^"\'ntbrafv]
            String input = "\"" +
                           @"\h\l"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 12
0
        public void UnicodeGraphLongIsEscapeSequence()
        {
            String input = "\"" +
                           @"\Uabcdef01some other stuff"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 10), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 13
0
        public void UnicodeGraphShortIncompleteIsNotReturned()
        {
            String input = "\"" +
                           @"\u12some other stuff"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 3, StringPartType.EscapeSequenceError), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 14
0
        public void TwoDigitAfterBackslashNotConsideredTrigraph()
        {
            String input = "\"" +
                           @"\02abcd"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 2, StringPartType.EscapeSequenceError), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 15
0
        public void NullCharReturnedAsEscapeSequence()
        {
            // \0
            String input = "\"" +
                           @"\0||||\0"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 2), parser.Next());
            Assert.Equal(new StringPart(7, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 16
0
        public void TrigraphReturnedAsEscapeSequence()
        {
            // regexp trigraph = '\' digit-char digit-char digit-char
            String input = "\"" +
                           @"\023\124"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 4), parser.Next());
            Assert.Equal(new StringPart(5, 4), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 17
0
        public void NonEscapeSequenceIsMarkedAsError()
        {
            // regexp non-escape-chars = '\' [^"\'ntbrafv]
            String input = "\"" +
                           @"\h\l"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 2, StringPartType.EscapeSequenceError), parser.Next());
            Assert.Equal(new StringPart(3, 2, StringPartType.EscapeSequenceError), parser.Next());
            Assert.Equal(null, parser.Next());
        }
Exemplo n.º 18
0
        public void SimpleEscapeSequences()
        {
            // regexp escape-char = '\' ["\'ntbrafv]
            String input = "\"\\\"|" +
                           @"\\|\'|\n|\t|\b|\r|\a|\f|\v"
                           + "\"";
            var parser = new FSharpStringScanner(input);

            Assert.Equal(new StringPart(1, 2), parser.Next());
            Assert.Equal(new StringPart(4, 2), parser.Next());
            Assert.Equal(new StringPart(7, 2), parser.Next());
            Assert.Equal(new StringPart(10, 2), parser.Next());
            Assert.Equal(new StringPart(13, 2), parser.Next());
            Assert.Equal(new StringPart(16, 2), parser.Next());
            Assert.Equal(new StringPart(19, 2), parser.Next());
            Assert.Equal(new StringPart(22, 2), parser.Next());
            Assert.Equal(new StringPart(25, 2), parser.Next());
            Assert.Equal(new StringPart(28, 2), parser.Next());
            Assert.Equal(null, parser.Next());
        }