Markup block - Gen<None> - 127 - (0:0,0)
    Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
        SyntaxKind.Unknown;[];
    Directive block - Gen<Directive:{section;RazorBlock;Unrestricted}> - 127 - (0:0,0)
        Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
            SyntaxKind.Transition;[@];
        MetaCode span - Gen<None> - [section] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
            SyntaxKind.Identifier;[section];
        Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (8:0,8) - Tokens:1
            SyntaxKind.Whitespace;[ ];
        Code span - Gen<DirectiveToken {SectionName;Member;Opt:False}> - [foo] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (9:0,9) - Tokens:1
            SyntaxKind.Identifier;[foo];
        Markup span - Gen<None> - [ ] - SpanEditHandler;Accepts:AllWhitespace - (12:0,12) - Tokens:1
            SyntaxKind.Whitespace;[ ];
        MetaCode span - Gen<None> - [{] - AutoCompleteEditHandler;Accepts:None,AutoComplete:[<null>];AtEnd - (13:0,13) - Tokens:1
            SyntaxKind.LeftBrace;[{];
        Markup block - Gen<None> - 112 - (14:0,14)
            Markup span - Gen<Markup> - [LF    ] - SpanEditHandler;Accepts:Any - (14:0,14) - Tokens:2
                SyntaxKind.NewLine;[LF];
                SyntaxKind.Whitespace;[    ];
            Tag block - Gen<None> - 4 - (20:1,4)
                Markup span - Gen<Markup> - [<ul>] - SpanEditHandler;Accepts:Any - (20:1,4) - Tokens:3
                    SyntaxKind.OpenAngle;[<];
                    SyntaxKind.Text;[ul];
                    SyntaxKind.CloseAngle;[>];
            Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (24:1,8) - Tokens:1
                SyntaxKind.NewLine;[LF];
            Statement block - Gen<None> - 89 - (26:2,0)
                Code span - Gen<Stmt> - [        ] - SpanEditHandler;Accepts:Any - (26:2,0) - Tokens:1
                    SyntaxKind.Whitespace;[        ];
                Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (34:2,8) - Tokens:1
                    SyntaxKind.Transition;[@];
                Code span - Gen<Stmt> - [foreach(var p in Products) {LF] - SpanEditHandler;Accepts:Any - (35:2,9) - Tokens:13
                    SyntaxKind.Keyword;[foreach];
                    SyntaxKind.LeftParenthesis;[(];
                    SyntaxKind.Identifier;[var];
                    SyntaxKind.Whitespace;[ ];
                    SyntaxKind.Identifier;[p];
                    SyntaxKind.Whitespace;[ ];
                    SyntaxKind.Keyword;[in];
                    SyntaxKind.Whitespace;[ ];
                    SyntaxKind.Identifier;[Products];
                    SyntaxKind.RightParenthesis;[)];
                    SyntaxKind.Whitespace;[ ];
                    SyntaxKind.LeftBrace;[{];
                    SyntaxKind.NewLine;[LF];
                Markup block - Gen<None> - 39 - (65:3,0)
                    Markup span - Gen<Markup> - [            ] - SpanEditHandler;Accepts:Any - (65:3,0) - Tokens:1
                        SyntaxKind.Whitespace;[            ];
                    Tag block - Gen<None> - 4 - (77:3,12)
                        Markup span - Gen<Markup> - [<li>] - SpanEditHandler;Accepts:None - (77:3,12) - Tokens:3
                            SyntaxKind.OpenAngle;[<];
                            SyntaxKind.Text;[li];
                            SyntaxKind.CloseAngle;[>];
                    Markup span - Gen<Markup> - [Product: ] - SpanEditHandler;Accepts:Any - (81:3,16) - Tokens:2
                        SyntaxKind.Text;[Product:];
                        SyntaxKind.Whitespace;[ ];
                    Expression block - Gen<Expr> - 7 - (90:3,25)
                        Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (90:3,25) - Tokens:1
                            SyntaxKind.Transition;[@];
                        Code span - Gen<Expr> - [p.Name] - ImplicitExpressionEditHandler;Accepts:NonWhitespace;ImplicitExpression[RTD];K15 - (91:3,26) - Tokens:3
                            SyntaxKind.Identifier;[p];
                            SyntaxKind.Dot;[.];
                            SyntaxKind.Identifier;[Name];
                    Tag block - Gen<None> - 5 - (97:3,32)
                        Markup span - Gen<Markup> - [</li>] - SpanEditHandler;Accepts:None - (97:3,32) - Tokens:4
                            SyntaxKind.OpenAngle;[<];
                            SyntaxKind.ForwardSlash;[/];
                            SyntaxKind.Text;[li];
                            SyntaxKind.CloseAngle;[>];
                    Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:None - (102:3,37) - Tokens:1
                        SyntaxKind.NewLine;[LF];
                Code span - Gen<Stmt> - [        }LF] - SpanEditHandler;Accepts:None - (104:4,0) - Tokens:3
                    SyntaxKind.Whitespace;[        ];
                    SyntaxKind.RightBrace;[}];
                    SyntaxKind.NewLine;[LF];
            SyntaxKind.HtmlTextLiteral - [    ] - [115..119) - FullWidth: 4 - Slots: 1
                SyntaxKind.Whitespace;[    ];
            Tag block - Gen<None> - 5 - (119:5,4)
                Markup span - Gen<Markup> - [</ul>] - SpanEditHandler;Accepts:Any - (119:5,4) - Tokens:4
                    SyntaxKind.OpenAngle;[<];
                    SyntaxKind.ForwardSlash;[/];
                    SyntaxKind.Text;[ul];
                    SyntaxKind.CloseAngle;[>];
            Markup span - Gen<Markup> - [LF] - SpanEditHandler;Accepts:Any - (124:5,9) - Tokens:1
                SyntaxKind.NewLine;[LF];
        MetaCode span - Gen<None> - [}] - SpanEditHandler;Accepts:None - (126:6,0) - Tokens:1
            SyntaxKind.RightBrace;[}];
    Markup span - Gen<Markup> - [] - SpanEditHandler;Accepts:Any - (127:6,1) - Tokens:1
        SyntaxKind.Unknown;[];
