Exemple #1
0
        private static object GetCTSTypedValue(Token tok)
        {
            switch (tok.Type)
            {
            case Token.TokenType.String:
                // string
                return(tok.Value);

            case Token.TokenType.Literal:
                // string or integer or boolean
                bool bv;
                if (bool.TryParse(tok.Value, out bv))
                {
                    // boolean
                    return(bv);
                }
                long lv;
                if (long.TryParse(tok.Value, out lv))
                {
                    // long
                    return(lv);
                }
                LongRange lrv;
                if (LongRange.TryParse(tok.Value, out lrv))
                {
                    // range
                    return(lrv);
                }
                // unknown
                break;
            }
            throw new ArgumentException("不明な型の引数です:" + tok.ToString());
        }