Пример #1
0
        //public Cons MakeSExpression(Cons funcNode)
        //{
        //    Cons head = new Cons();
        //    Cons current = head;

        //    Cons last = null;
        //    foreach (ValueNode node in funcNode.Args)
        //    {


        //        if (node is IdentifierNode)
        //        {
        //            current.Car = node;
        //        }
        //        else if (node is PrimitiveValueNode<int> || node is PrimitiveValueNode<double> || node is PrimitiveValueNode<string>)
        //        {
        //            current.Car = node.Eval(null);
        //        }
        //        else if (node is Cons)
        //        {
        //            current.Car = MakeSExpression(node as Cons);
        //        }

        //        last = current;
        //        current.Cdr = new Cons();
        //        current = current.Cdr;
        //    }
        //    last.Cdr = null;

        //    return head;
        //}

        private void SetupNode(ParseInfo info, ValueNode node)
        {
            node.CodeName = info.CodeName;
            node.HideFromCallstack = info.HideFromCallStack;
            node.Code = info.Code;
            node.Stack = info.Engine.Stack;
            info.Engine.Stack.AllNodes.Add(node);
        }
Пример #2
0
 protected void BaseClone(ValueNode clone)
 {
     clone.Code = Code;
     clone.CodeStartIndex = CodeStartIndex;
     clone.CodeLength = CodeLength;
     clone.CodeName = CodeName;
     clone.HideFromCallstack = HideFromCallstack;
     clone.Stack = Stack;
 }