PyshGP Core Instruction Set¶
int_mod¶
Takes: [int, int] - Produces: [int]
Computes the modulus of the top two ints and pushes the result.
int_lt¶
Takes: [int, int] - Produces: [bool]
Pushes true if the top int is less than the second. Pushes false otherwise.
int_lte¶
Takes: [int, int] - Produces: [bool]
Pushes true if the top int is less than, or equal to, the second. Pushes false otherwise.
int_gt¶
Takes: [int, int] - Produces: [bool]
Pushes true if the top int is greater than the second.. Pushes false otherwise.
int_gte¶
Takes: [int, int] - Produces: [bool]
Pushes true if the top int is greater than, or equal to, the second. Pushes false otherwise.
float_sub¶
Takes: [float, float] - Produces: [float]
Subtracts the top two floats and pushes the result.
float_mult¶
Takes: [float, float] - Produces: [float]
Multiplies the top two floats and pushes the result.
float_div¶
Takes: [float, float] - Produces: [float]
Divides the top two floats and pushes the result.
float_mod¶
Takes: [float, float] - Produces: [float]
Computes the modulus of the top two floats and pushes the result.
float_lt¶
Takes: [float, float] - Produces: [bool]
Pushes true if the top float is less than the second. Pushes false otherwise.
float_lte¶
Takes: [float, float] - Produces: [bool]
Pushes true if the top float is less than, or equal to, the second. Pushes false otherwise.
float_gt¶
Takes: [float, float] - Produces: [bool]
Pushes true if the top float is greater than the second.. Pushes false otherwise.
float_gte¶
Takes: [float, float] - Produces: [bool]
Pushes true if the top float is greater than, or equal to, the second. Pushes false otherwise.
int_from_bool¶
Takes: [bool] - Produces: [int]
Pushes 1 in the top boolean is true. Pushes 0 if the top boolean is false.
float_from_bool¶
Takes: [bool] - Produces: [float]
Pushes 1.0 in the top boolean is true. Pushes 0.0 if the top boolean is false.
int_from_float¶
Takes: [float] - Produces: [int]
Casts the top float to an integer and pushes the result.
float_from_int¶
Takes: [int] - Produces: [float]
Casts the top integer to a float and pushes the result.
str_concat¶
Takes: [str, str] - Produces: [str]
Concatenates the top two strs and pushes the resulting string.
str_insert_str¶
Takes: [str, str, int] - Produces: [str]
- Inserts str into the top str at index n and pushes
the resulting string. The value for n is taken from the int stack.
str_from_first_char¶
Takes: [str] - Produces: [str]
Pushes a str of the first character of the top string.
str_from_last_char¶
Takes: [str] - Produces: [str]
Pushes a str of the last character of the top string.
str_from_nth_char¶
Takes: [str, int] - Produces: [str]
Pushes a str of the nth character of the top string. The top integer denotes nth position.
str_contains_str¶
Takes: [str, str] - Produces: [bool]
Pushes true if the next str is in the top string. Pushes false otherwise.
str_index_of_str¶
Takes: [str, str] - Produces: [int]
Pushes the index of the next str in the top string. If not found, pushes -1.
str_split_on_str¶
Takes: [str, str] - Produces: Arbitrary number of str values.
Pushes multiple strs produced by splitting the top str on the top str.
str_replace_first_str¶
Takes: [str, str, str] - Produces: [str]
- Pushes the str produced by replaceing the first occurrence of the
top str with the second str.
str_replace_n_str¶
Takes: [str, str, str, int] - Produces: [str]
- Pushes the str produced by replaceing the first n occurrences of the
top str with the second str. The value for n is the top int.
str_replace_all_str¶
Takes: [str, str, str] - Produces: [str]
- Pushes the str produced by replaceing all occurrences of the
top str with the second str.
str_remove_first_str¶
Takes: [str, str] - Produces: [str]
Pushes the str produced by removing the first occurrence of the top str.
str_remove_n_str¶
Takes: [str, str, int] - Produces: [str]
- Pushes the str produced by remvoing the first n occurrences of the
top str. The value for n is the top int.
str_remove_all_str¶
Takes: [str, str] - Produces: [str]
Pushes the str produced by removing all occurrences of the top str.
str_occurrences_of_str¶
Takes: [str, str] - Produces: [int]
Pushes the number of times the top str occurs in the top str to the int stack.
char_concat¶
Takes: [char, char] - Produces: [str]
Concatenates the top two chars and pushes the resulting string.
str_insert_char¶
Takes: [str, char, int] - Produces: [str]
- Inserts char into the top str at index n and pushes
the resulting string. The value for n is taken from the int stack.
char_from_first_char¶
Takes: [str] - Produces: [char]
Pushes a char of the first character of the top string.
char_from_last_char¶
Takes: [str] - Produces: [char]
Pushes a char of the last character of the top string.
char_from_nth_char¶
Takes: [str, int] - Produces: [char]
Pushes a char of the nth character of the top string. The top integer denotes nth position.
str_contains_char¶
Takes: [str, char] - Produces: [bool]
Pushes true if the next char is in the top string. Pushes false otherwise.
str_index_of_char¶
Takes: [str, char] - Produces: [int]
Pushes the index of the next char in the top string. If not found, pushes -1.
str_split_on_char¶
Takes: [str, char] - Produces: Arbitrary number of str values.
Pushes multiple strs produced by splitting the top str on the top char.
str_replace_first_char¶
Takes: [str, char, char] - Produces: [str]
- Pushes the str produced by replaceing the first occurrence of the
top char with the second char.
str_replace_n_char¶
Takes: [str, char, char, int] - Produces: [str]
- Pushes the str produced by replaceing the first n occurrences of the
top char with the second char. The value for n is the top int.
str_replace_all_char¶
Takes: [str, char, char] - Produces: [str]
- Pushes the str produced by replaceing all occurrences of the
top char with the second char.
str_remove_first_char¶
Takes: [str, char] - Produces: [str]
Pushes the str produced by removing the first occurrence of the top char.
str_remove_n_char¶
Takes: [str, char, int] - Produces: [str]
- Pushes the str produced by remvoing the first n occurrences of the
top char. The value for n is the top int.
str_remove_all_char¶
Takes: [str, char] - Produces: [str]
Pushes the str produced by removing all occurrences of the top char.
str_occurrences_of_char¶
Takes: [str, char] - Produces: [int]
Pushes the number of times the top char occurs in the top str to the int stack.
str_head¶
Takes: [str, int] - Produces: [str]
- Pushes a string of the first n characters from the top string. The value
for n is the top int mod the length of the string.
str_tail¶
Takes: [str, int] - Produces: [str]
- Pushes a string of the last n characters from the top string. The value
for n is the top int mod the length of the string.
str_append_char¶
Takes: [str, char] - Produces: [str]
Appends the top char to the top string pushes the resulting string.
str_drop¶
Takes: [str, int] - Produces: [str]
- Pushes the top str without its first n character. The value for n
is the top int mod the length of the string.
str_but_last_n¶
Takes: [str, int] - Produces: [str]
- Pushes the top str without its last n character. The value for n
is the top int mod the length of the string.
str_is_empty_string¶
Takes: [str] - Produces: [bool]
Pushes True if top string is empty. Pushes False otherwise.
str_remove_nth¶
Takes: [str, int] - Produces: [str]
Pushes the top str with the nth character removed.
str_set_nth¶
Takes: [str, char, int] - Produces: [str]
Pushes the top str with the nth character set to the top character.
str_strip_whitespace¶
Takes: [str] - Produces: [str]
Pushes the top str with trailing and leading whitespace stripped.
char_is_whitespace¶
Takes: [char] - Produces: [bool]
Pushes True if the top Char is whitespace. Pushes False otherwise.
char_is_letter¶
Takes: [char] - Produces: [bool]
Pushes True if the top Char is a letter. Pushes False otherwise.
char_is_digit¶
Takes: [char] - Produces: [bool]
Pushes True if the top Char is a numeric digit. Pushes False otherwise.
char_from_bool¶
Takes: [bool] - Produces: [char]
- Pushes the char “T” if the top bool is True. If the top
bool is False, pushes the char “F”.
char_from_ascii_int¶
Takes: [int] - Produces: [char]
Pushes the top int converted into a Character by using the int mod 128 as an ascii value.
char_from_float¶
Takes: [float] - Produces: [char]
- Pushes the top float converted into a Character by flooring
the float to an int, taking the int mod 128, and using it as an ascii value.
chars_from_str¶
Takes: [str] - Produces: Arbitrary number of char values.
Pushes each character of the top str to the char stack in reverse order.
bool_invert_first_then_and¶
Takes: [bool, bool] - Produces: [bool]
- “Pushes the result of and-ing the top two booleans after inverting the
top boolean.
bool_second_first_then_and¶
Takes: [bool, bool] - Produces: [bool]
- “Pushes the result of and-ing the top two booleans after inverting the
second boolean.
bool_from_int¶
Takes: [int] - Produces: [bool]
If the top int is 0, pushes False. Pushes True for any other int value.
bool_from_float¶
Takes: [float] - Produces: [bool]
If the top float is 0.0, pushes False. Pushes True for any other float value.
noop_open¶
Takes: [] - Produces: [] - Opens 1 code blocks
A noop SimpleInstruction which does nothing. Opens a code block.
code_is_code_block¶
Takes: [code] - Produces: [bool]
Push True if top item on code stack is a CodeBlock. False otherwise.
code_is_singular¶
Takes: [code] - Produces: [bool]
Push True if top item on code stack is a not CodeBlock. False otherwise.
code_length¶
Takes: [code] - Produces: [int]
If the top code item is a CodeBlock, pushes its length, otherwise pushes 1.
code_first¶
Takes: [code] - Produces: [code]
If the top code item is a CodeBlock, pushes its first element.
code_last¶
Takes: [code] - Produces: [code]
If the top code item is a CodeBlock, pushes its last element.
code_rest¶
Takes: [code] - Produces: [code]
If the top code item is a CodeBlock, pushes it to the code stack without its first element.
code_but_last¶
Takes: [code] - Produces: [code]
If the top code item is a CodeBlock, pushes it to the code stack without its last element.
code_list¶
Takes: [code, code] - Produces: [code]
Wraps the top two items on the code stack in a CodeBlock.
code_combine¶
Takes: [code, code] - Produces: [code]
- Combines the top two items on the code stack in a CodeBlock.
If one items is a CodeBlock, the other item is appended to it. If both items are CodeBlocks, they are concatenated together.
code_do¶
Takes: [code] - Produces: [exec]
Moves the top element of the code stack to the exec stack for execution.
code_do_dup¶
Takes: [code] - Produces: [exec, code]
Copies the top element of the code stack to the exec stack for execution.
code_do_then_pop¶
Takes: PushState - Produces: PushState
- Pushes a code_pop InstructionMeta and the top item of the
code stack to the exec stack. Result is the top code item executing before it is removed from the code stack.
code_do_range¶
Takes: PushState - Produces: PushState
- Evaluates the top item on the code stack for each step along
the range i to j. Both i and j are taken from the int stack.
exec_do_range¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Evaluates the top item on the exec stack for each step along
the range i to j. Both i and j are taken from the int stack. Differs from code_do_range only in the source of the code and the recursive call.
code_do_count¶
Takes: PushState - Produces: PushState
- Evaluates the top item on the code stack n times, where
n comes from the n comes from the top of the int stack.
exec_do_count¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Evaluates the top item on the exec stack n times, where
n comes from the n comes from the top of the int stack. Differs from code.do*count only in the source of the code and the recursive call.
code_do_times¶
Takes: PushState - Produces: PushState
- Evaluates the top item on the code stack n times, where
n comes from the n comes from the top of the int stack.
exec_do_times¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Evaluates the top item on the code stack n times, where
n comes from the n comes from the top of the int stack.
exec_while¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Evaluates the top item on the exec stack repeated until the top
bool is no longer True.
exec_do_while¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Evaluates the top item on the exec stack repeated until the top
bool is no longer True.
code_map¶
Takes: PushState - Produces: PushState
- Evaluates the top item on the exec stack for each element of the top
CodeBlock on the code stack. If the top code item is not a CodeBlock, it is wrapped into one.
code_if¶
Takes: [bool, code, code] - Produces: [exec]
- If the top boolean is true, execute the top element of the code
stack and skip the second. Otherwise, skip the top element of the code stack and execute the second.
exec_if¶
Takes: [bool, exec, exec] - Produces: [exec] - Opens 2 code blocks
- If the top boolean is true, execute the top element of the exec
stack and skip the second. Otherwise, skip the top element of the exec stack and execute the second.
code_when¶
Takes: PushState - Produces: PushState
- Evalutates the top code item if the top bool is True.
Otherwise the top code is popped.
exec_when¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
- Pops the next item on the exec stack without evaluating it
if the top bool is False. Otherwise, has no effect.
code_member¶
Takes: [code, code] - Produces: [bool]
- Pushes True if the second code item is a found within the top code item.
If the top code item is not a CodeBlock, it is wrapped.
code_nth¶
Takes: [code, int] - Produces: [code]
- Pushes nth item of the top element on the code stack. If
the top item is not a CodeBlock it is wrapped in a CodeBlock.
is_empty_code_block¶
Takes: [code] - Produces: [bool]
- Pushes true if top code item is an empty CodeBlock. Pushes
false otherwise.
code_size¶
Takes: [code] - Produces: [int]
- Pushes the total size of the top item on the code stack. If
the top item is a CodeBlock, this includes the size of all the CodeBlock’s elements recusively.
code_extract¶
Takes: [code, int] - Produces: [code]
- Traverses the top code item depth first and returns the nth
item based on the top int.
code_insert¶
Takes: [code, code, int] - Produces: [code]
- Traverses the top code item depth first and inserts the
second code item at position n. The value of n is the top int.
code_first_position¶
Takes: [code, code] - Produces: [int]
- Pushes the first position of the second code item within
the top code item. If not found, pushes -1. If the top code item is not a CodeBlock, this instruction returns 0 if the top two code elements are equal and -1 otherwise.
code_reverse¶
Takes: [code] - Produces: [code]
- Pushes the top code item reversed. No effect if top code
item is not a CodeBlock.
vector_int_concat¶
Takes: [vector_int, vector_int] - Produces: [vector_int]
Concatenates the top two vector_int.
vector_int_conj¶
Takes: [vector_int, int] - Produces: [vector_int]
Appends the top int to the top vector_int.
vector_int_take¶
Takes: [vector_int, int] - Produces: [vector_int]
Creates a new vector_int from the first N elements of the top vector_int. N is top int.
vector_int_subvec¶
Takes: [vector_int, int, int] - Produces: [vector_int]
Creates a new vector_int from a slice of the top vector_int. Start and end indices are the top two ints.
vector_int_first¶
Takes: [vector_int] - Produces: [int]
Takes the first element of the top vector_int and pushes it to the int stack.
vector_int_last¶
Takes: [vector_int] - Produces: [int]
Takes the last element of the top vector_int and pushes it to the int stack.
vector_int_nth¶
Takes: [vector_int, int] - Produces: [int]
Takes the nth element of the top vector_int and pushes it to the int stack. N is the top int.
vector_int_rest¶
Takes: [vector_int] - Produces: [vector_int]
Drops the first element of the top vector_int.
vector_int_but_last¶
Takes: [vector_int] - Produces: [vector_int]
Drops the last element of the top vector_int.
vector_int_length¶
Takes: [vector_int] - Produces: [int]
Pushes the length of the top vector_int to the int stack.
vector_int_push_all¶
Takes: [vector_int] - Produces: Arbitrary number of int values.
Pushes all elements of the top vector_int to the int.
vector_int_empty_vector¶
Takes: [vector_int] - Produces: [bool]
Pushes True to the bool stack if the top vector_int is empty. Pushes False otherwise.
vector_int_contains¶
Takes: [vector_int, int] - Produces: [bool]
Pushes True to the bool stack if the top int is found in the top vector_int. Pushes False otherwise.
vector_int_index_of¶
Takes: [vector_int, int] - Produces: [int]
Pushes the index top int is top vector_int to int stack. Pushes -1 if not found.
vector_int_occurrences_of¶
Takes: [vector_int, int] - Produces: [int]
Pushes the number of time the top int is found in the top vector_int to int stack.
vector_int_set_nth¶
Takes: [vector_int, int, int] - Produces: [vector_int]
Sets the nth element of the top vector_int to be the top int. N is the top int.
vector_int_replace¶
Takes: [vector_int, int, int] - Produces: [vector_int]
Replaces all instances of the top int from the top vector_int.
vector_int_replace_first¶
Takes: [vector_int, int, int] - Produces: [vector_int]
Replaces the first instance of the top int from the top vector_int.
vector_int_remove¶
Takes: [vector_int, int] - Produces: [vector_int]
Removes all instances of the top int from the top vector_int.
vector_int_iterate¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Iterates over the top vector_int using the code on top of the exec stack.
vector_float_concat¶
Takes: [vector_float, vector_float] - Produces: [vector_float]
Concatenates the top two vector_float.
vector_float_conj¶
Takes: [vector_float, float] - Produces: [vector_float]
Appends the top float to the top vector_float.
vector_float_take¶
Takes: [vector_float, int] - Produces: [vector_float]
Creates a new vector_float from the first N elements of the top vector_float. N is top int.
vector_float_subvec¶
Takes: [vector_float, int, int] - Produces: [vector_float]
Creates a new vector_float from a slice of the top vector_float. Start and end indices are the top two ints.
vector_float_first¶
Takes: [vector_float] - Produces: [float]
Takes the first element of the top vector_float and pushes it to the float stack.
vector_float_last¶
Takes: [vector_float] - Produces: [float]
Takes the last element of the top vector_float and pushes it to the float stack.
vector_float_nth¶
Takes: [vector_float, int] - Produces: [float]
Takes the nth element of the top vector_float and pushes it to the float stack. N is the top int.
vector_float_rest¶
Takes: [vector_float] - Produces: [vector_float]
Drops the first element of the top vector_float.
vector_float_but_last¶
Takes: [vector_float] - Produces: [vector_float]
Drops the last element of the top vector_float.
vector_float_length¶
Takes: [vector_float] - Produces: [int]
Pushes the length of the top vector_float to the int stack.
vector_float_reverse¶
Takes: [vector_float] - Produces: [vector_float]
Reverses the top vector_float.
vector_float_push_all¶
Takes: [vector_float] - Produces: Arbitrary number of float values.
Pushes all elements of the top vector_float to the float.
vector_float_empty_vector¶
Takes: [vector_float] - Produces: [bool]
Pushes True to the bool stack if the top vector_float is empty. Pushes False otherwise.
vector_float_contains¶
Takes: [vector_float, float] - Produces: [bool]
Pushes True to the bool stack if the top float is found in the top vector_float. Pushes False otherwise.
vector_float_index_of¶
Takes: [vector_float, float] - Produces: [int]
Pushes the index top float is top vector_float to int stack. Pushes -1 if not found.
vector_float_occurrences_of¶
Takes: [vector_float, float] - Produces: [int]
Pushes the number of time the top float is found in the top vector_float to int stack.
vector_float_set_nth¶
Takes: [vector_float, int, float] - Produces: [vector_float]
Sets the nth element of the top vector_float to be the top float. N is the top int.
vector_float_replace¶
Takes: [vector_float, float, float] - Produces: [vector_float]
Replaces all instances of the top float from the top vector_float.
vector_float_replace_first¶
Takes: [vector_float, float, float] - Produces: [vector_float]
Replaces the first instance of the top float from the top vector_float.
vector_float_remove¶
Takes: [vector_float, float] - Produces: [vector_float]
Removes all instances of the top float from the top vector_float.
vector_float_iterate¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Iterates over the top vector_float using the code on top of the exec stack.
vector_str_concat¶
Takes: [vector_str, vector_str] - Produces: [vector_str]
Concatenates the top two vector_str.
vector_str_conj¶
Takes: [vector_str, str] - Produces: [vector_str]
Appends the top str to the top vector_str.
vector_str_take¶
Takes: [vector_str, int] - Produces: [vector_str]
Creates a new vector_str from the first N elements of the top vector_str. N is top int.
vector_str_subvec¶
Takes: [vector_str, int, int] - Produces: [vector_str]
Creates a new vector_str from a slice of the top vector_str. Start and end indices are the top two ints.
vector_str_first¶
Takes: [vector_str] - Produces: [str]
Takes the first element of the top vector_str and pushes it to the str stack.
vector_str_last¶
Takes: [vector_str] - Produces: [str]
Takes the last element of the top vector_str and pushes it to the str stack.
vector_str_nth¶
Takes: [vector_str, int] - Produces: [str]
Takes the nth element of the top vector_str and pushes it to the str stack. N is the top int.
vector_str_rest¶
Takes: [vector_str] - Produces: [vector_str]
Drops the first element of the top vector_str.
vector_str_but_last¶
Takes: [vector_str] - Produces: [vector_str]
Drops the last element of the top vector_str.
vector_str_length¶
Takes: [vector_str] - Produces: [int]
Pushes the length of the top vector_str to the int stack.
vector_str_push_all¶
Takes: [vector_str] - Produces: Arbitrary number of str values.
Pushes all elements of the top vector_str to the str.
vector_str_empty_vector¶
Takes: [vector_str] - Produces: [bool]
Pushes True to the bool stack if the top vector_str is empty. Pushes False otherwise.
vector_str_contains¶
Takes: [vector_str, str] - Produces: [bool]
Pushes True to the bool stack if the top str is found in the top vector_str. Pushes False otherwise.
vector_str_index_of¶
Takes: [vector_str, str] - Produces: [int]
Pushes the index top str is top vector_str to int stack. Pushes -1 if not found.
vector_str_occurrences_of¶
Takes: [vector_str, str] - Produces: [int]
Pushes the number of time the top str is found in the top vector_str to int stack.
vector_str_set_nth¶
Takes: [vector_str, int, str] - Produces: [vector_str]
Sets the nth element of the top vector_str to be the top str. N is the top int.
vector_str_replace¶
Takes: [vector_str, str, str] - Produces: [vector_str]
Replaces all instances of the top str from the top vector_str.
vector_str_replace_first¶
Takes: [vector_str, str, str] - Produces: [vector_str]
Replaces the first instance of the top str from the top vector_str.
vector_str_remove¶
Takes: [vector_str, str] - Produces: [vector_str]
Removes all instances of the top str from the top vector_str.
vector_str_iterate¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Iterates over the top vector_str using the code on top of the exec stack.
vector_bool_concat¶
Takes: [vector_bool, vector_bool] - Produces: [vector_bool]
Concatenates the top two vector_bool.
vector_bool_conj¶
Takes: [vector_bool, bool] - Produces: [vector_bool]
Appends the top bool to the top vector_bool.
vector_bool_take¶
Takes: [vector_bool, int] - Produces: [vector_bool]
Creates a new vector_bool from the first N elements of the top vector_bool. N is top int.
vector_bool_subvec¶
Takes: [vector_bool, int, int] - Produces: [vector_bool]
Creates a new vector_bool from a slice of the top vector_bool. Start and end indices are the top two ints.
vector_bool_first¶
Takes: [vector_bool] - Produces: [bool]
Takes the first element of the top vector_bool and pushes it to the bool stack.
vector_bool_last¶
Takes: [vector_bool] - Produces: [bool]
Takes the last element of the top vector_bool and pushes it to the bool stack.
vector_bool_nth¶
Takes: [vector_bool, int] - Produces: [bool]
Takes the nth element of the top vector_bool and pushes it to the bool stack. N is the top int.
vector_bool_rest¶
Takes: [vector_bool] - Produces: [vector_bool]
Drops the first element of the top vector_bool.
vector_bool_but_last¶
Takes: [vector_bool] - Produces: [vector_bool]
Drops the last element of the top vector_bool.
vector_bool_length¶
Takes: [vector_bool] - Produces: [int]
Pushes the length of the top vector_bool to the int stack.
vector_bool_push_all¶
Takes: [vector_bool] - Produces: Arbitrary number of bool values.
Pushes all elements of the top vector_bool to the bool.
vector_bool_empty_vector¶
Takes: [vector_bool] - Produces: [bool]
Pushes True to the bool stack if the top vector_bool is empty. Pushes False otherwise.
vector_bool_contains¶
Takes: [vector_bool, bool] - Produces: [bool]
Pushes True to the bool stack if the top bool is found in the top vector_bool. Pushes False otherwise.
vector_bool_index_of¶
Takes: [vector_bool, bool] - Produces: [int]
Pushes the index top bool is top vector_bool to int stack. Pushes -1 if not found.
vector_bool_occurrences_of¶
Takes: [vector_bool, bool] - Produces: [int]
Pushes the number of time the top bool is found in the top vector_bool to int stack.
vector_bool_set_nth¶
Takes: [vector_bool, int, bool] - Produces: [vector_bool]
Sets the nth element of the top vector_bool to be the top bool. N is the top int.
vector_bool_replace¶
Takes: [vector_bool, bool, bool] - Produces: [vector_bool]
Replaces all instances of the top bool from the top vector_bool.
vector_bool_replace_first¶
Takes: [vector_bool, bool, bool] - Produces: [vector_bool]
Replaces the first instance of the top bool from the top vector_bool.
vector_bool_remove¶
Takes: [vector_bool, bool] - Produces: [vector_bool]
Removes all instances of the top bool from the top vector_bool.
vector_bool_iterate¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Iterates over the top vector_bool using the code on top of the exec stack.
vector_char_concat¶
Takes: [vector_char, vector_char] - Produces: [vector_char]
Concatenates the top two vector_char.
vector_char_conj¶
Takes: [vector_char, char] - Produces: [vector_char]
Appends the top char to the top vector_char.
vector_char_take¶
Takes: [vector_char, int] - Produces: [vector_char]
Creates a new vector_char from the first N elements of the top vector_char. N is top int.
vector_char_subvec¶
Takes: [vector_char, int, int] - Produces: [vector_char]
Creates a new vector_char from a slice of the top vector_char. Start and end indices are the top two ints.
vector_char_first¶
Takes: [vector_char] - Produces: [char]
Takes the first element of the top vector_char and pushes it to the char stack.
vector_char_last¶
Takes: [vector_char] - Produces: [char]
Takes the last element of the top vector_char and pushes it to the char stack.
vector_char_nth¶
Takes: [vector_char, int] - Produces: [char]
Takes the nth element of the top vector_char and pushes it to the char stack. N is the top int.
vector_char_rest¶
Takes: [vector_char] - Produces: [vector_char]
Drops the first element of the top vector_char.
vector_char_but_last¶
Takes: [vector_char] - Produces: [vector_char]
Drops the last element of the top vector_char.
vector_char_length¶
Takes: [vector_char] - Produces: [int]
Pushes the length of the top vector_char to the int stack.
vector_char_push_all¶
Takes: [vector_char] - Produces: Arbitrary number of char values.
Pushes all elements of the top vector_char to the char.
vector_char_empty_vector¶
Takes: [vector_char] - Produces: [bool]
Pushes True to the bool stack if the top vector_char is empty. Pushes False otherwise.
vector_char_contains¶
Takes: [vector_char, char] - Produces: [bool]
Pushes True to the bool stack if the top char is found in the top vector_char. Pushes False otherwise.
vector_char_index_of¶
Takes: [vector_char, char] - Produces: [int]
Pushes the index top char is top vector_char to int stack. Pushes -1 if not found.
vector_char_occurrences_of¶
Takes: [vector_char, char] - Produces: [int]
Pushes the number of time the top char is found in the top vector_char to int stack.
vector_char_set_nth¶
Takes: [vector_char, int, char] - Produces: [vector_char]
Sets the nth element of the top vector_char to be the top char. N is the top int.
vector_char_replace¶
Takes: [vector_char, char, char] - Produces: [vector_char]
Replaces all instances of the top char from the top vector_char.
vector_char_replace_first¶
Takes: [vector_char, char, char] - Produces: [vector_char]
Replaces the first instance of the top char from the top vector_char.
vector_char_remove¶
Takes: [vector_char, char] - Produces: [vector_char]
Removes all instances of the top char from the top vector_char.
vector_char_iterate¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Iterates over the top vector_char using the code on top of the exec stack.
bool_dup_times¶
Takes: [int, bool] - Produces: Arbitrary number of bool values.
Duplicates the top bool n times where n is from the int stack.
bool_eq¶
Takes: [bool, bool] - Produces: [bool]
Pushes True if the top two bool are equal. Otherwise pushes False.
bool_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the bool stack to the int stack.
bool_yank¶
Takes: PushState - Produces: PushState
Yanks a bool from deep in the stack based on an index from the int stack and puts it on top.
bool_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a bool deep in the stack based on an index from the int stack and puts it on top.
bool_shove¶
Takes: PushState - Produces: PushState
Shoves the top bool deep in the stack based on an index from the int stack.
bool_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top bool deep in the stack based on an index from the int stack.
bool_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the bool stack is empty. Pushes False otherwise.
int_dup_times¶
Takes: [int, int] - Produces: Arbitrary number of int values.
Duplicates the top int n times where n is from the int stack.
int_eq¶
Takes: [int, int] - Produces: [bool]
Pushes True if the top two int are equal. Otherwise pushes False.
int_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the int stack to the int stack.
int_yank¶
Takes: PushState - Produces: PushState
Yanks a int from deep in the stack based on an index from the int stack and puts it on top.
int_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a int deep in the stack based on an index from the int stack and puts it on top.
int_shove¶
Takes: PushState - Produces: PushState
Shoves the top int deep in the stack based on an index from the int stack.
int_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top int deep in the stack based on an index from the int stack.
int_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the int stack is empty. Pushes False otherwise.
char_dup_times¶
Takes: [int, char] - Produces: Arbitrary number of char values.
Duplicates the top char n times where n is from the int stack.
char_eq¶
Takes: [char, char] - Produces: [bool]
Pushes True if the top two char are equal. Otherwise pushes False.
char_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the char stack to the int stack.
char_yank¶
Takes: PushState - Produces: PushState
Yanks a char from deep in the stack based on an index from the int stack and puts it on top.
char_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a char deep in the stack based on an index from the int stack and puts it on top.
char_shove¶
Takes: PushState - Produces: PushState
Shoves the top char deep in the stack based on an index from the int stack.
char_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top char deep in the stack based on an index from the int stack.
char_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the char stack is empty. Pushes False otherwise.
float_dup_times¶
Takes: [int, float] - Produces: Arbitrary number of float values.
Duplicates the top float n times where n is from the int stack.
float_rot¶
Takes: [float, float, float] - Produces: [float, float, float]
Rotates the top three floats.
float_eq¶
Takes: [float, float] - Produces: [bool]
Pushes True if the top two float are equal. Otherwise pushes False.
float_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the float stack to the int stack.
float_yank¶
Takes: PushState - Produces: PushState
Yanks a float from deep in the stack based on an index from the int stack and puts it on top.
float_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a float deep in the stack based on an index from the int stack and puts it on top.
float_shove¶
Takes: PushState - Produces: PushState
Shoves the top float deep in the stack based on an index from the int stack.
float_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top float deep in the stack based on an index from the int stack.
float_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the float stack is empty. Pushes False otherwise.
str_dup_times¶
Takes: [int, str] - Produces: Arbitrary number of str values.
Duplicates the top str n times where n is from the int stack.
str_eq¶
Takes: [str, str] - Produces: [bool]
Pushes True if the top two str are equal. Otherwise pushes False.
str_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the str stack to the int stack.
str_yank¶
Takes: PushState - Produces: PushState
Yanks a str from deep in the stack based on an index from the int stack and puts it on top.
str_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a str deep in the stack based on an index from the int stack and puts it on top.
str_shove¶
Takes: PushState - Produces: PushState
Shoves the top str deep in the stack based on an index from the int stack.
str_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top str deep in the stack based on an index from the int stack.
str_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the str stack is empty. Pushes False otherwise.
vector_int_dup¶
Takes: [vector_int] - Produces: [vector_int, vector_int]
Duplicates the top vector_int.
vector_int_dup_times¶
Takes: [int, vector_int] - Produces: Arbitrary number of vector_int values.
Duplicates the top vector_int n times where n is from the int stack.
vector_int_swap¶
Takes: [vector_int, vector_int] - Produces: [vector_int, vector_int]
Swaps the top two vector_ints.
vector_int_rot¶
Takes: [vector_int, vector_int, vector_int] - Produces: [vector_int, vector_int, vector_int]
Rotates the top three vector_ints.
vector_int_eq¶
Takes: [vector_int, vector_int] - Produces: [bool]
Pushes True if the top two vector_int are equal. Otherwise pushes False.
vector_int_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the vector_int stack to the int stack.
vector_int_yank¶
Takes: PushState - Produces: PushState
Yanks a vector_int from deep in the stack based on an index from the int stack and puts it on top.
vector_int_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a vector_int deep in the stack based on an index from the int stack and puts it on top.
vector_int_shove¶
Takes: PushState - Produces: PushState
Shoves the top vector_int deep in the stack based on an index from the int stack.
vector_int_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top vector_int deep in the stack based on an index from the int stack.
vector_int_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the vector_int stack is empty. Pushes False otherwise.
vector_float_dup¶
Takes: [vector_float] - Produces: [vector_float, vector_float]
Duplicates the top vector_float.
vector_float_dup_times¶
Takes: [int, vector_float] - Produces: Arbitrary number of vector_float values.
Duplicates the top vector_float n times where n is from the int stack.
vector_float_swap¶
Takes: [vector_float, vector_float] - Produces: [vector_float, vector_float]
Swaps the top two vector_floats.
vector_float_rot¶
Takes: [vector_float, vector_float, vector_float] - Produces: [vector_float, vector_float, vector_float]
Rotates the top three vector_floats.
vector_float_eq¶
Takes: [vector_float, vector_float] - Produces: [bool]
Pushes True if the top two vector_float are equal. Otherwise pushes False.
vector_float_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the vector_float stack to the int stack.
vector_float_yank¶
Takes: PushState - Produces: PushState
Yanks a vector_float from deep in the stack based on an index from the int stack and puts it on top.
vector_float_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a vector_float deep in the stack based on an index from the int stack and puts it on top.
vector_float_shove¶
Takes: PushState - Produces: PushState
Shoves the top vector_float deep in the stack based on an index from the int stack.
vector_float_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top vector_float deep in the stack based on an index from the int stack.
vector_float_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the vector_float stack is empty. Pushes False otherwise.
vector_str_dup¶
Takes: [vector_str] - Produces: [vector_str, vector_str]
Duplicates the top vector_str.
vector_str_dup_times¶
Takes: [int, vector_str] - Produces: Arbitrary number of vector_str values.
Duplicates the top vector_str n times where n is from the int stack.
vector_str_swap¶
Takes: [vector_str, vector_str] - Produces: [vector_str, vector_str]
Swaps the top two vector_strs.
vector_str_rot¶
Takes: [vector_str, vector_str, vector_str] - Produces: [vector_str, vector_str, vector_str]
Rotates the top three vector_strs.
vector_str_eq¶
Takes: [vector_str, vector_str] - Produces: [bool]
Pushes True if the top two vector_str are equal. Otherwise pushes False.
vector_str_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the vector_str stack to the int stack.
vector_str_yank¶
Takes: PushState - Produces: PushState
Yanks a vector_str from deep in the stack based on an index from the int stack and puts it on top.
vector_str_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a vector_str deep in the stack based on an index from the int stack and puts it on top.
vector_str_shove¶
Takes: PushState - Produces: PushState
Shoves the top vector_str deep in the stack based on an index from the int stack.
vector_str_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top vector_str deep in the stack based on an index from the int stack.
vector_str_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the vector_str stack is empty. Pushes False otherwise.
vector_bool_dup¶
Takes: [vector_bool] - Produces: [vector_bool, vector_bool]
Duplicates the top vector_bool.
vector_bool_dup_times¶
Takes: [int, vector_bool] - Produces: Arbitrary number of vector_bool values.
Duplicates the top vector_bool n times where n is from the int stack.
vector_bool_swap¶
Takes: [vector_bool, vector_bool] - Produces: [vector_bool, vector_bool]
Swaps the top two vector_bools.
vector_bool_rot¶
Takes: [vector_bool, vector_bool, vector_bool] - Produces: [vector_bool, vector_bool, vector_bool]
Rotates the top three vector_bools.
vector_bool_eq¶
Takes: [vector_bool, vector_bool] - Produces: [bool]
Pushes True if the top two vector_bool are equal. Otherwise pushes False.
vector_bool_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the vector_bool stack to the int stack.
vector_bool_yank¶
Takes: PushState - Produces: PushState
Yanks a vector_bool from deep in the stack based on an index from the int stack and puts it on top.
vector_bool_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a vector_bool deep in the stack based on an index from the int stack and puts it on top.
vector_bool_shove¶
Takes: PushState - Produces: PushState
Shoves the top vector_bool deep in the stack based on an index from the int stack.
vector_bool_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top vector_bool deep in the stack based on an index from the int stack.
vector_bool_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the vector_bool stack is empty. Pushes False otherwise.
vector_char_dup¶
Takes: [vector_char] - Produces: [vector_char, vector_char]
Duplicates the top vector_char.
vector_char_dup_times¶
Takes: [int, vector_char] - Produces: Arbitrary number of vector_char values.
Duplicates the top vector_char n times where n is from the int stack.
vector_char_swap¶
Takes: [vector_char, vector_char] - Produces: [vector_char, vector_char]
Swaps the top two vector_chars.
vector_char_rot¶
Takes: [vector_char, vector_char, vector_char] - Produces: [vector_char, vector_char, vector_char]
Rotates the top three vector_chars.
vector_char_eq¶
Takes: [vector_char, vector_char] - Produces: [bool]
Pushes True if the top two vector_char are equal. Otherwise pushes False.
vector_char_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the vector_char stack to the int stack.
vector_char_yank¶
Takes: PushState - Produces: PushState
Yanks a vector_char from deep in the stack based on an index from the int stack and puts it on top.
vector_char_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a vector_char deep in the stack based on an index from the int stack and puts it on top.
vector_char_shove¶
Takes: PushState - Produces: PushState
Shoves the top vector_char deep in the stack based on an index from the int stack.
vector_char_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top vector_char deep in the stack based on an index from the int stack.
vector_char_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the vector_char stack is empty. Pushes False otherwise.
code_dup_times¶
Takes: [int, code] - Produces: Arbitrary number of code values.
Duplicates the top code n times where n is from the int stack.
code_eq¶
Takes: [code, code] - Produces: [bool]
Pushes True if the top two code are equal. Otherwise pushes False.
code_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the code stack to the int stack.
code_yank¶
Takes: PushState - Produces: PushState
Yanks a code from deep in the stack based on an index from the int stack and puts it on top.
code_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a code deep in the stack based on an index from the int stack and puts it on top.
code_shove¶
Takes: PushState - Produces: PushState
Shoves the top code deep in the stack based on an index from the int stack.
code_shove_dup¶
Takes: PushState - Produces: PushState
Shoves a copy of the top code deep in the stack based on an index from the int stack.
code_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the code stack is empty. Pushes False otherwise.
exec_dup_times¶
Takes: [int, exec] - Produces: Arbitrary number of exec values. - Opens 1 code blocks
Duplicates the top exec n times where n is from the int stack.
exec_swap¶
Takes: [exec, exec] - Produces: [exec, exec] - Opens 2 code blocks
Swaps the top two execs.
exec_rot¶
Takes: [exec, exec, exec] - Produces: [exec, exec, exec] - Opens 3 code blocks
Rotates the top three execs.
exec_eq¶
Takes: [exec, exec] - Produces: [bool]
Pushes True if the top two exec are equal. Otherwise pushes False.
exec_stack_depth¶
Takes: PushState - Produces: [int]
Pushes the size of the exec stack to the int stack.
exec_yank¶
Takes: PushState - Produces: PushState
Yanks a exec from deep in the stack based on an index from the int stack and puts it on top.
exec_yank_dup¶
Takes: PushState - Produces: PushState
Yanks a copy of a exec deep in the stack based on an index from the int stack and puts it on top.
exec_shove¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Shoves the top exec deep in the stack based on an index from the int stack.
exec_shove_dup¶
Takes: PushState - Produces: PushState - Opens 1 code blocks
Shoves a copy of the top exec deep in the stack based on an index from the int stack.
exec_is_empty¶
Takes: PushState - Produces: [bool]
Pushes True if the exec stack is empty. Pushes False otherwise.
code_from_vector_int¶
Takes: [vector_int] - Produces: [code]
Moves the top vector_int to the code stack.
code_from_vector_float¶
Takes: [vector_float] - Produces: [code]
Moves the top vector_float to the code stack.
code_from_vector_str¶
Takes: [vector_str] - Produces: [code]
Moves the top vector_str to the code stack.
code_from_vector_bool¶
Takes: [vector_bool] - Produces: [code]
Moves the top vector_bool to the code stack.
code_from_vector_char¶
Takes: [vector_char] - Produces: [code]
Moves the top vector_char to the code stack.
code_from_exec¶
Takes: [exec] - Produces: [code] - Opens 1 code blocks
Moves the top exec to the code stack.