コード例 #1
0
        public override void EvaluateNode(ActivationFrame frame, Interpreter interpreter)
        {
            bool shouldEvaluate = false;

            foreach (Node n in this.Instructions)
            {
                shouldEvaluate = true;
                if (n is BooleanOperatorNode || n is ParenthesizedExpressionNode)
                {
                    n.EvaluateNode(frame, interpreter);
                }
                else
                {
                    if (n is FinalNode)
                    {
                        interpreter.pushOperatorStack(n);
                    }
                    if (n is VariableNode || n is FunctionCallNode || n is LiteralNode)
                    {
                        string s = ((VariableNode)n).VariableName;
                        interpreter.pushOperandStack(n);
                    }
                }
            }

            if (shouldEvaluate)
            {
                interpreter.evaluateExpressionStack();
            }
        }
コード例 #2
0
ファイル: VariableNode.cs プロジェクト: dirkyboy098/DReAM
        public override object getRealValue(ActivationFrame frame)
        {
            string variableName = ((FinalNode)Instructions[0]).dataString();

            if (frame.variableSet.ContainsKey(variableName))
            {
                return(((FinalNode)frame.variableSet[variableName].Instructions[0]).dataString());
            }

            return("");
        }
コード例 #3
0
 public override object getRealValue(ActivationFrame frame)
 {
     return(((FinalNode)Instructions[0]).dataString());
 }