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

ParseArrayInitializer() private method

private ParseArrayInitializer ( ) : ArrayInitializerExpressionSyntax
return ArrayInitializerExpressionSyntax
        private ArrayInitializerExpressionSyntax ParseArrayInitializer()
        {
            var openBrace = Match(SyntaxKind.OpenBraceToken);

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

            var closeBrace = Match(SyntaxKind.CloseBraceToken);

            return new ArrayInitializerExpressionSyntax(openBrace, new SeparatedSyntaxList<ExpressionSyntax>(list), closeBrace);
        }
HlslParser