Directive block - Gen<Directive:{custom;SingleLine;Unrestricted}> - 246 - (0:0,0)
    Transition span - Gen<None> - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
        SyntaxKind.Transition;[@];
    MetaCode span - Gen<None> - [custom] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
        SyntaxKind.Identifier;[custom];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (7:0,7) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [(bool, int)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (8:0,8) - Tokens:6
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[bool];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[int];
        SyntaxKind.RightParenthesis;[)];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (19:0,19) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [(int aa, string bb)?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (20:0,20) - Tokens:11
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[int];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[aa];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[string];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[bb];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.QuestionMark;[?];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (40:0,40) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [(  int?   q   ,  bool   w   )] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (41:0,41) - Tokens:14
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Whitespace;[  ];
        SyntaxKind.Keyword;[int];
        SyntaxKind.QuestionMark;[?];
        SyntaxKind.Whitespace;[   ];
        SyntaxKind.Identifier;[q];
        SyntaxKind.Whitespace;[   ];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[  ];
        SyntaxKind.Keyword;[bool];
        SyntaxKind.Whitespace;[   ];
        SyntaxKind.Identifier;[w];
        SyntaxKind.Whitespace;[   ];
        SyntaxKind.RightParenthesis;[)];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (70:0,70) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [( int  ?  q, bool ?w ,(long ?  [])) ?] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (71:0,71) - Tokens:26
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[int];
        SyntaxKind.Whitespace;[  ];
        SyntaxKind.QuestionMark;[?];
        SyntaxKind.Whitespace;[  ];
        SyntaxKind.Identifier;[q];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[bool];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.QuestionMark;[?];
        SyntaxKind.Identifier;[w];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Comma;[,];
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[long];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.QuestionMark;[?];
        SyntaxKind.Whitespace;[  ];
        SyntaxKind.LeftBracket;[[];
        SyntaxKind.RightBracket;[]];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.QuestionMark;[?];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (108:0,108) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [(List<(int, string)?> aa, string bb)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (109:0,109) - Tokens:19
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Identifier;[List];
        SyntaxKind.LessThan;[<];
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[int];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[string];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.QuestionMark;[?];
        SyntaxKind.GreaterThan;[>];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[aa];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[string];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[bb];
        SyntaxKind.RightParenthesis;[)];
    Code span - Gen<None> - [ ] - SpanEditHandler;Accepts:Whitespace - (145:0,145) - Tokens:1
        SyntaxKind.Whitespace;[ ];
    Code span - Gen<DirectiveToken {;Type;Opt:False}> - [(string ss, (int u, List<(string, int)> k, (Char c, bool b, List<int> l)), global::System.Int32[] a)] - DirectiveTokenEditHandler;Accepts:NonWhitespace - (146:0,146) - Tokens:56
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[string];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[ss];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[int];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[u];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[List];
        SyntaxKind.LessThan;[<];
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Keyword;[string];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[int];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.GreaterThan;[>];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[k];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.LeftParenthesis;[(];
        SyntaxKind.Identifier;[Char];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[c];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Keyword;[bool];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[b];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[List];
        SyntaxKind.LessThan;[<];
        SyntaxKind.Keyword;[int];
        SyntaxKind.GreaterThan;[>];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[l];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.RightParenthesis;[)];
        SyntaxKind.Comma;[,];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[global];
        SyntaxKind.DoubleColon;[::];
        SyntaxKind.Identifier;[System];
        SyntaxKind.Dot;[.];
        SyntaxKind.Identifier;[Int32];
        SyntaxKind.LeftBracket;[[];
        SyntaxKind.RightBracket;[]];
        SyntaxKind.Whitespace;[ ];
        SyntaxKind.Identifier;[a];
        SyntaxKind.RightParenthesis;[)];
