GlueViewOfficialPlugins.Scripting.ExpressionParser.EvaluateStatement C# (CSharp) Method

EvaluateStatement() private method

private EvaluateStatement ( Statement statement, CodeContext codeContext, ExpressionParseType parseType ) : object
statement Statement
codeContext GlueView.Scripting.CodeContext
parseType ExpressionParseType
return object
        internal object EvaluateStatement(Statement statement, CodeContext codeContext, ExpressionParseType parseType)
        {
            if (statement is VariableDeclarationStatement)
            {
                VariableDeclarationStatement vds = statement as VariableDeclarationStatement;

                var astType = vds.Type;

                Type type = TypeManager.GetTypeFromString(astType.GetText());

                var variables = vds.Variables;

                string addedVariable = null;

                foreach (var variable in variables)
                {
                    // right now we only support one declaration per line, will need to
                    // expand this later
                    addedVariable = variable.Name;
                    codeContext.VariableStack.Last().Add(addedVariable, null);
                    break;
                }

                if (parseType == ExpressionParseType.Evaluate)
                {
                    return null; // hasn't been assigned yet
                }
                else
                {
                    StackVariableReference svr = new StackVariableReference();
                    int index;
                    codeContext.GetVariableInformation(addedVariable, out index);
                    svr.StackIndex = index;
                    svr.VariableName = addedVariable;
                    svr.TypeOfReference = type;
                    return svr;
                }
            }
            else
            {
                return null;
            }
        }