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

ParseDeclarationStatement() private method

private ParseDeclarationStatement ( ) : StatementSyntax
return ShaderTools.Hlsl.Syntax.StatementSyntax
        private StatementSyntax ParseDeclarationStatement()
        {
            var typedefKeyword = NextTokenIf(SyntaxKind.TypedefKeyword);

            var mods = new List<SyntaxToken>();
            var variables = new List<SyntaxNode>();
            ParseDeclarationModifiers(mods);
            var type = ParseType(false);

            if (typedefKeyword != null)
            {
                ParseTypeAliases(variables);
                var semi = Match(SyntaxKind.SemiToken);
                return new TypedefStatementSyntax(typedefKeyword, mods, type, new SeparatedSyntaxList<TypeAliasSyntax>(variables), semi);
            }

            if (type is TypeDefinitionSyntax && (Current.Kind == SyntaxKind.SemiToken || Current.Kind == SyntaxKind.EndOfFileToken))
            {
                var semi = Match(SyntaxKind.SemiToken);
                return new TypeDeclarationStatementSyntax(mods, (TypeDefinitionSyntax) type, semi);
            }
            else
            {
                ParseVariableDeclarators(type, variables, variableDeclarationsExpected: true);
                var semi = Match(SyntaxKind.SemiToken);
                var variableDeclaration = new VariableDeclarationSyntax(mods, type, new SeparatedSyntaxList<VariableDeclaratorSyntax>(variables));
                return new VariableDeclarationStatementSyntax(variableDeclaration, semi);
            }
        }
HlslParser