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

ParsePredefinedType() private method

private ParsePredefinedType ( bool allowVoid, bool parentIsParameter ) : PredefinedTypeSyntax
allowVoid bool
parentIsParameter bool
return ShaderTools.Hlsl.Syntax.PredefinedTypeSyntax
        private PredefinedTypeSyntax ParsePredefinedType(bool allowVoid, bool parentIsParameter)
        {
            var token = NextToken();

            if (SyntaxFacts.IsPredefinedScalarType(token.Kind))
            {
                if (!allowVoid && token.Kind == SyntaxKind.VoidKeyword)
                    token = WithDiagnostic(token, parentIsParameter ? DiagnosticId.NoVoidParameter : DiagnosticId.NoVoidHere);
                return ParseScalarType(token);
            }

            if (SyntaxFacts.IsPredefinedVectorType(token.Kind))
            {
                if (token.Kind == SyntaxKind.VectorKeyword && Current.Kind == SyntaxKind.LessThanToken)
                    return ParseGenericVectorType(token);
                return ParseVectorType(token);
            }

            if (SyntaxFacts.IsPredefinedMatrixType(token.Kind))
            {
                if (token.Kind == SyntaxKind.MatrixKeyword && Current.Kind == SyntaxKind.LessThanToken)
                    return ParseGenericMatrixType(token);
                return ParseMatrixType(token);
            }

            if (SyntaxFacts.IsPredefinedObjectType(token))
                return ParseObjectType(token);

            Debug.Fail("Shouldn't be here.");
            return null;
        }
HlslParser