Exemplo n.º 1
0
        /// <summary>
        /// Execute the operand
        /// </summary>
        public override void Execute(EpsInterpreter interpreter)
        {
            var operandStack = interpreter.OperandStack;

            interpreter.LeaveProcedureCreation();

            if (interpreter.ProcedureCreationLevel == 0)
            {
                ArrayOperand array = new ArrayOperand();
                array.IsExecutable = true;
                array.LineNumber   = LineNumber;

                var op = operandStack.Pop();
                var beginProcedureOperand = op as BeginProcedureOperand;

                while (beginProcedureOperand == null || beginProcedureOperand != null && beginProcedureOperand.Level > 1)
                {
                    var proxy = new OperandProxy(op);
                    array.Values.Add(proxy);
                    op = operandStack.Pop();
                    beginProcedureOperand = op as BeginProcedureOperand;
                }

                array.Values.Reverse();
                operandStack.Push(array);
            }
            else
            {
                operandStack.Push(this);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Create a colos space description
        /// </summary>
        public static ArrayOperand CreateColorSpaceDescription(string colorSpaceName)
        {
            var array = new ArrayOperand();

            var name  = colorSpaceName;
            var proxy = new OperandProxy(new NameOperand(name));

            array.Values.Add(proxy);

            return(array);
        }
Exemplo n.º 3
0
        public override void Execute(EpsInterpreter interpreter)
        {
            var operandStack = interpreter.OperandStack;

            var          count = operandStack.PopIntegerValue();
            ArrayOperand array = new ArrayOperand();

            for (int i = 0; i < count; i++)
            {
                var proxy = new OperandProxy(new NullOperand());
                array.Values.Add(proxy);
            }

            operandStack.Push(array);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Execute the operand
        /// </summary>
        public override void Execute(EpsInterpreter interpreter)
        {
            var operandStack = interpreter.OperandStack;

            ArrayOperand array = new ArrayOperand();

            array.LineNumber = LineNumber;

            var op = operandStack.Pop();

            while (!(op is MarkOperand))
            {
                var proxy = new OperandProxy(op);
                array.Values.Add(proxy);
                op = operandStack.Pop();
            }

            array.Values.Reverse();
            operandStack.Push(array);
        }