CSLE.CLS_Expression_Compiler.Compiler_Expression_Value C# (CSharp) Method

Compiler_Expression_Value() public method

public Compiler_Expression_Value ( Token value, int pos ) : ICLS_Expression
value Token
pos int
return ICLS_Expression
        public ICLS_Expression Compiler_Expression_Value(Token value, int pos)
        {
            if (value.type == TokenType.VALUE)
            {
                if (value.text[value.text.Length - 1] == 'f')
                {
                    CLS_Value_Value<float> number = new CLS_Value_Value<float>();
                    number.value_value = float.Parse(value.text.Substring(0, value.text.Length - 1));
                    return number;
                }
                else if (value.text.Contains("."))
                {
                    CLS_Value_Value<double> number = new CLS_Value_Value<double>();
                    number.value_value = double.Parse(value.text);
                    return number;
                }
                else
                {
                    if (value.text.Contains("'"))
                    {
                        CLS_Value_Value<char> number = new CLS_Value_Value<char>();
                        number.value_value = (char)value.text[1];
                        return number;
                    }

                    else
                    {
                        ulong lv = ulong.Parse(value.text);
                        if (lv > uint.MaxValue)
                        {
                            CLS_Value_Value<long> number = new CLS_Value_Value<long>();
                            number.value_value = (long)lv;
                            return number;
                        }
                        else
                        {

                            CLS_Value_Value<int> number = new CLS_Value_Value<int>();
                            number.value_value = (int)lv;
                            return number;

                        }
                    }

                }
            }
            else if (value.type == TokenType.STRING)
            {
                CLS_Value_Value<string> str = new CLS_Value_Value<string>();
                str.value_value = value.text.Substring(1, value.text.Length - 2);
                return str;
            }
            else if (value.type == TokenType.IDENTIFIER)
            {
                CLS_Expression_GetValue getvalue = new CLS_Expression_GetValue(pos, pos, value.line, value.line);
                getvalue.value_name = value.text;
                return getvalue;
            }
            else if (value.type == TokenType.TYPE)
            {
                CLS_Expression_GetValue getvalue = new CLS_Expression_GetValue(pos, pos, value.line, value.line);
                int l = value.text.LastIndexOf('.');
                if (l >= 0)
                {
                    getvalue.value_name = value.text.Substring(l + 1);
                }
                else
                    getvalue.value_name = value.text;
                return getvalue;
            }
            else
            {
                logger.Log_Error("无法识别的简单表达式" + value);
                return null;
            }
        }