ShaderTools.Hlsl.Parser.HlslParser.ParseStateArrayInitializer C# (CSharp) Method

ParseStateArrayInitializer() private method

private ParseStateArrayInitializer ( ) : StateArrayInitializerSyntax
return StateArrayInitializerSyntax
        private StateArrayInitializerSyntax ParseStateArrayInitializer()
        {
            var openBrace = Match(SyntaxKind.OpenBraceToken);

            var initializers = new List<SyntaxNode>();
            while (Current.Kind != SyntaxKind.CloseBraceToken)
            {
                if (Current.Kind == SyntaxKind.OpenBraceToken)
                {
                    initializers.Add(ParseStateInitializer());
                    if (Current.Kind != SyntaxKind.CloseBraceToken)
                        initializers.Add(Match(SyntaxKind.CommaToken));
                }
                else
                {
                    var action = SkipBadTokens(
                        p => Current.Kind != SyntaxKind.OpenBraceToken,
                        p => p.IsTerminator(),
                        SyntaxKind.CloseBraceToken);
                    if (action == PostSkipAction.Abort)
                        break;
                }
            }

            var closeBrace = Match(SyntaxKind.CloseBraceToken);

            return new StateArrayInitializerSyntax(openBrace, new SeparatedSyntaxList<StateInitializerSyntax>(initializers), closeBrace);
        }
HlslParser