IronRuby.Tests.Tests.TokenizeStrings2 C# (CSharp) Method

TokenizeStrings2() private method

private TokenizeStrings2 ( ) : void
return void
        private void TokenizeStrings2() {
            AssertTokenizer t = new AssertTokenizer(this) {
                Verbatim = true
            };
            
            // string nested in a string:
            t.Load(@"""abc#{""x#@hello#{{}}y""}def""")
                [Tokens.StringBegin]
                [Tokens.StringContent]
                [Tokens.StringEmbeddedCodeBegin]
                    [Tokens.StringBegin]
                    [Tokens.StringContent]
                    [Tokens.StringEmbeddedVariableBegin]
                        [Tokens.InstanceVariable]
                    [Tokens.StringEmbeddedCodeBegin]
                        [Tokens.LeftBrace]
                        [Tokens.RightBrace]
                    [Tokens.StringEmbeddedCodeEnd]
                    [Tokens.StringContent]
                    [Tokens.StringEnd]
                [Tokens.StringEmbeddedCodeEnd]
                [Tokens.StringContent]
                [Tokens.StringEnd].
            EOF();

            // nested braces:
            t.Load(@"""a#{{{""#{{""#{1}""=>""c""}}""=>""#{2}""}=>""#{3}""}}a""")
                [Tokens.StringBegin]
                [Tokens.StringContent]
                [Tokens.StringEmbeddedCodeBegin]
                    [Tokens.LeftBrace]
                        [Tokens.LeftBrace]
                            [Tokens.StringBegin]
                            [Tokens.StringEmbeddedCodeBegin]
                                [Tokens.LeftBrace]
                                    [Tokens.StringBegin]
                                    [Tokens.StringEmbeddedCodeBegin]
                                        [1]
                                    [Tokens.StringEmbeddedCodeEnd]
                                    [Tokens.StringEnd]
                                [Tokens.DoubleArrow]
                                    [Tokens.StringBegin]
                                    [Tokens.StringContent]
                                    [Tokens.StringEnd]
                                [Tokens.RightBrace]
                            [Tokens.StringEmbeddedCodeEnd]
                            [Tokens.StringEnd]
                        [Tokens.DoubleArrow]
                            [Tokens.StringBegin]
                            [Tokens.StringEmbeddedCodeBegin]
                                [2]
                            [Tokens.StringEmbeddedCodeEnd]
                            [Tokens.StringEnd]
                        [Tokens.RightBrace]
                    [Tokens.DoubleArrow]
                        [Tokens.StringBegin]
                        [Tokens.StringEmbeddedCodeBegin]
                            [3]
                        [Tokens.StringEmbeddedCodeEnd]
                        [Tokens.StringEnd]
                    [Tokens.RightBrace]
                [Tokens.StringEmbeddedCodeEnd]
                [Tokens.StringContent]
                [Tokens.StringEnd].
            EOF();
            
            // =begin .. =end nested in a string:
            t.Load("\"hello#{\n=begin\nxxx\n=end\nidf\n}world\"")
                [Tokens.StringBegin]
                [Tokens.StringContent]
                    [Tokens.StringEmbeddedCodeBegin]
                    [Tokens.EndOfLine]
                    [Tokens.MultiLineComment]
                    [Tokens.Identifier, "idf"]
                    [Tokens.NewLine]
                    [Tokens.StringEmbeddedCodeEnd]
                [Tokens.StringContent]
                [Tokens.StringEnd].
            EOF();

            // braces nesting in word array:
            t.Load("%w{#$a #{b + 1} c}")
                [Tokens.VerbatimWordsBegin]
                [Tokens.StringContent, "#$a"][Tokens.WordSeparator]
                [Tokens.StringContent, "#{b"][Tokens.WordSeparator]
                [Tokens.StringContent, "+"][Tokens.WordSeparator]
                [Tokens.StringContent, "1}"][Tokens.WordSeparator]
                [Tokens.StringContent, "c"]
                [Tokens.StringEnd].
            EOF();
        }
Tests