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

ParseStateProperty() private method

private ParseStateProperty ( ) : StatePropertySyntax
return StatePropertySyntax
        private StatePropertySyntax ParseStateProperty()
        {
            var name = Match(SyntaxKind.IdentifierToken);

            ArrayRankSpecifierSyntax arrayRankSpecifier = null;
            if (Current.Kind == SyntaxKind.OpenBracketToken)
                arrayRankSpecifier = ParseArrayRankSpecifier(true);

            var equals = Match(SyntaxKind.EqualsToken);
            var lessThan = NextTokenIf(SyntaxKind.LessThanToken);

            _allowGreaterThanTokenAroundRhsExpression = true;
            _allowLinearAndPointAsIdentifiers = true;
            ExpressionSyntax value;
            try
            {
                value = ParseExpression();
            }
            finally
            {
                _allowLinearAndPointAsIdentifiers = false;
                _allowGreaterThanTokenAroundRhsExpression = false;
            }
            
            var greaterThan = NextTokenIf(SyntaxKind.GreaterThanToken);
            var semicolon = Match(SyntaxKind.SemiToken);

            return new StatePropertySyntax(name, arrayRankSpecifier, equals, lessThan, value, greaterThan, semicolon);
        }
HlslParser