GetLiterals() public method

Provides the list of literals found in the expression
public GetLiterals ( ) : List
return List
        /// <summary>
        ///     Provides the states used in an expression
        /// </summary>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static List<State> GetStates(Expression expression)
        {
            List<State> retval = new List<State>();

            if (expression != null)
            {
                foreach (IValue value in expression.GetLiterals())
                {
                    State state = value as State;
                    if (state != null)
                    {
                        retval.Add(state);
                    }
                }

                Call call = expression as Call;
                if (call != null)
                {
                    Function function = call.Called.GetStaticCallable() as Function;
                    if (function != null)
                    {
                        foreach (IValue value in function.GetLiterals())
                        {
                            State state = value as State;
                            if (state != null)
                            {
                                retval.Add(state);
                            }
                        }
                    }
                }
            }

            return retval;
        }