RazorDocument - [0..45)::45 - [LF@custom TSomething where TSomething : class]
    MarkupBlock - [0..45)::45
        MarkupTextLiteral - [0..2)::2 - [LF] - Gen<Markup> - SpanEditHandler;Accepts:Any
            NewLine;[LF];
        CSharpCodeBlock - [2..45)::43
            RazorDirective - [2..45)::43 - Directive:{custom;SingleLine;Unrestricted}
                CSharpTransition - [2..3)::1 - Gen<None> - SpanEditHandler;Accepts:None
                    Transition;[@];
                RazorDirectiveBody - [3..45)::42
                    RazorMetaCode - [3..9)::6 - Gen<None> - SpanEditHandler;Accepts:None
                        Identifier;[custom];
                    CSharpCodeBlock - [9..45)::36
                        CSharpStatementLiteral - [9..10)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:Whitespace
                            Whitespace;[ ];
                        CSharpStatementLiteral - [10..20)::10 - [TSomething] - Gen<DirectiveToken {;Member;Opt:False}> - DirectiveTokenEditHandler;Accepts:NonWhitespace
                            Identifier;[TSomething];
                        CSharpStatementLiteral - [20..21)::1 - [ ] - Gen<None> - SpanEditHandler;Accepts:Whitespace
                            Whitespace;[ ];
                        CSharpStatementLiteral - [21..45)::24 - [where TSomething : class] - Gen<DirectiveToken {name;GenericTypeConstraint;Opt:True}> - DirectiveTokenEditHandler;Accepts:NonWhitespace
                            Keyword;[where];
                            Whitespace;[ ];
                            Identifier;[TSomething];
                            Whitespace;[ ];
                            Colon;[:];
                            Whitespace;[ ];
                            Keyword;[class];
        MarkupTextLiteral - [45..45)::0 - [] - Gen<Markup> - SpanEditHandler;Accepts:Any
            Marker;[];
    EndOfFile;[];
