예제 #1
0
        public void String()
        {
            const string TestString    = "class Test { private string s1 = \" () test  \"; }";
            var          startOfString = TestString.IndexOf('"');
            var          lengthOfStringIncludingQuotes = TestString.LastIndexOf('"') - startOfString + 1;

            AssertExtent(
                TestString,
                pos: startOfString,
                isSignificant: true,
                start: startOfString,
                length: 1
                );

            // Selects whitespace
            AssertExtent(
                TestString,
                pos: startOfString + 1,
                isSignificant: false,
                start: startOfString + 1,
                length: 1
                );

            AssertExtent(
                TestString,
                pos: startOfString + 2,
                isSignificant: true,
                start: startOfString + 2,
                length: 2
                );

            AssertExtent(
                TestString,
                pos: TestString.IndexOf("  \"", StringComparison.Ordinal),
                isSignificant: false,
                start: TestString.IndexOf("  \"", StringComparison.Ordinal),
                length: 2
                );

            AssertExtent(
                TestString,
                pos: TestString.LastIndexOf('"'),
                isSignificant: true,
                start: startOfString + lengthOfStringIncludingQuotes - 1,
                length: 1
                );

            AssertExtent(
                TestString,
                pos: TestString.LastIndexOf('"') + 1,
                isSignificant: true,
                start: TestString.LastIndexOf('"') + 1,
                length: 1
                );
        }
예제 #2
0
        public void InterpolatedString1()
        {
            const string TestString = "class Test { string x = \"hello\"; string s = $\" { x } hello\"; }";

            var startOfFirstString            = TestString.IndexOf('"');
            var endOfFirstString              = TestString.IndexOf('"', startOfFirstString + 1);
            var startOfString                 = TestString.IndexOf("$\"", endOfFirstString + 1, StringComparison.Ordinal);
            var lengthOfStringIncludingQuotes = TestString.LastIndexOf('"') - startOfString + 1;

            // Selects interpolated string start token
            AssertExtent(
                TestString,
                pos: startOfString,
                isSignificant: true,
                start: startOfString, length: 2);

            // Selects whitespace
            AssertExtent(
                TestString,
                pos: startOfString + 2,
                isSignificant: false,
                start: startOfString + 2, length: 1);

            // Selects the opening curly brace
            AssertExtent(
                TestString,
                pos: startOfString + 3,
                isSignificant: true,
                start: startOfString + 3, length: 1);

            // Selects whitespace
            AssertExtent(
                TestString,
                pos: startOfString + 4,
                isSignificant: false,
                start: startOfString + 4, length: 1);

            // Selects identifier
            AssertExtent(
                TestString,
                pos: startOfString + 5,
                isSignificant: true,
                start: startOfString + 5, length: 1);

            // Selects whitespace
            AssertExtent(
                TestString,
                pos: startOfString + 6,
                isSignificant: false,
                start: startOfString + 6, length: 1);

            // Selects the closing curly brace
            AssertExtent(
                TestString,
                pos: startOfString + 7,
                isSignificant: true,
                start: startOfString + 7, length: 1);

            // Selects whitespace
            AssertExtent(
                TestString,
                pos: startOfString + 8,
                isSignificant: false,
                start: startOfString + 8, length: 1);

            // Selects hello
            AssertExtent(
                TestString,
                pos: startOfString + 9,
                isSignificant: true,
                start: startOfString + 9, length: 5);

            // Selects closing quote
            AssertExtent(
                TestString,
                pos: startOfString + 14,
                isSignificant: true,
                start: startOfString + 14, length: 1);
        }