ShaderTools.Hlsl.Symbols.TypeFacts.GetScalarType C# (CSharp) Method

GetScalarType() static private method

static private GetScalarType ( ScalarTypeSyntax node ) : ScalarType
node ScalarTypeSyntax
return ScalarType
        internal static ScalarType GetScalarType(ScalarTypeSyntax node)
        {
            if (node.TypeTokens.Count == 2 && node.TypeTokens[0].Kind == SyntaxKind.UnsignedKeyword && node.TypeTokens[1].Kind == SyntaxKind.IntKeyword)
                return ScalarType.Uint;

            Debug.Assert(node.TypeTokens.Count == 1);

            switch (node.TypeTokens[0].Kind)
            {
                case SyntaxKind.VoidKeyword:
                    return ScalarType.Void;
                case SyntaxKind.BoolKeyword:
                    return ScalarType.Bool;
                case SyntaxKind.IntKeyword:
                case SyntaxKind.DwordKeyword:
                    return ScalarType.Int;
                case SyntaxKind.UintKeyword:
                    return ScalarType.Uint;
                case SyntaxKind.HalfKeyword:
                    return ScalarType.Half;
                case SyntaxKind.FloatKeyword:
                    return ScalarType.Float;
                case SyntaxKind.DoubleKeyword:
                    return ScalarType.Double;
                case SyntaxKind.Min16FloatKeyword:
                    return ScalarType.Min16Float;
                case SyntaxKind.Min10FloatKeyword:
                    return ScalarType.Min10Float;
                case SyntaxKind.Min16IntKeyword:
                    return ScalarType.Min16Int;
                case SyntaxKind.Min12IntKeyword:
                    return ScalarType.Min12Int;
                case SyntaxKind.Min16UintKeyword:
                    return ScalarType.Min16Uint;
                case SyntaxKind.StringKeyword:
                    return ScalarType.String;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }