propeller.push.instructions.polymorphic

Polymorphic Instructions (for all stacks, with the exception of non-data ones like input and output)

_deep_dup

Pushes a copy of an indexed item from deep in the stack, without removing it. The top INTEGER is used to determine the index from the BOTTOM of the stack.

_dup

Duplicates the top item of the stack. Does not pop its argument (since that would negate the effect of the duplication)

_dup_items

Duplicates the top n items on the stack, one time each. The number n is determined by the top INTEGER. If n <= 0, no items will be duplicated. If fewer than n items are on the stack, the entire stack will be duplicated. The final number of items on the stack is limited to globals/max-stack-items.

_dup_times

Duplicates n copies of the top item (i.e leaves n copies there). Does not pop its argument (since that would negate the effect of the duplication). The number n is determined by the top INTEGER. For n = 0, equivalent to POP. For n = 1, equivalent to NOOP. For n = 2, equivalent to DUP. Negative values of n are treated as 0. The final number of items on the stack is limited to globals/max-stack-items.

_empty

Pushes TRUE onto the BOOLEAN stack if the stack is empty. Otherwise FALSE

_eq

Pushes TRUE onto the BOOLEAN stack if the top two items are equal. Otherwise FALSE

_flush

Empties the given stack

_pop

Pops the given stack

_rot

Rotates the top three items on the stack (i.e. pulls the third item out and pushes it on top). Equivalent to (yank state stack-type 2)

_shove

Inserts the top item deeper into the stack, using the top INTEGER to determine how deep

_stack_depth

Pushes the given stack’s depth onto the INTEGER stack

_swap

Swaps the top two items on the stack

_yank

Pushes an indexed item from deep in the stack, removing it. The top INTEGER is used to determine how deep to yank from

_yank_dup

Pushes a copy of an indexed item from deep in the stack, without removing it. The top INTEGER is used to determine how deep to yankdup from