# -*- coding: utf-8 -*-
"""
Created on Sun Jun  5 15:34:38 2016

@author: Eddie
"""


from . import boolean as b
from . import char
from . import code
from . import common as com
from . import io
from . import numbers as n
from . import string as s
from . import vectors as vec

all_instructions = [
    b.I_boolean_and,
    b.I_boolean_or,
    b.I_boolean_not,
    b.I_boolean_xor,
    b.I_boolean_invert_first_then_and,
    b.I_boolean_invert_second_then_and,
    b.I_boolean_from_integer,
    b.I_boolean_from_float,
    char.I_char_all_from_string,
    char.I_char_from_integer,
    char.I_char_from_float,
    char.I_char_is_letter,
    char.I_char_is_digit,
    char.I_char_is_white_space,
    code.I_exec_noop,
    code.I_code_noop,
    code.I_code_from_boolean,
    code.I_code_from_float,
    code.I_code_from_integer,
    code.I_code_from_exec,
    code.I_code_append,
    code.I_code_atom,
    code.I_code_car,
    code.I_code_cdr,
    code.I_code_cons,
    code.I_code_do,
    code.I_code_do_star,
    code.I_code_do_range,
    code.I_exec_do_range,
    code.I_code_do_count,
    code.I_exec_do_count,
    code.I_code_do_times,
    code.I_exec_do_times,
    code.I_exec_while,
    code.I_exec_do_while,
    code.I_code_if,
    code.I_exec_if,
    code.I_exec_when,
    code.I_code_length,
    code.I_code_list,
    code.I_code_wrap,
    code.I_code_member,
    code.I_code_nth,
    code.I_code_nthcdr,
    com.I_pop_exec,
    com.I_pop_integer,
    com.I_pop_float,
    com.I_pop_code,
    com.I_pop_boolean,
    com.I_pop_string,
    com.I_pop_char,
    com.I_dup_exec,
    com.I_dup_integer,
    com.I_dup_float,
    com.I_dup_code,
    com.I_dup_boolean,
    com.I_dup_string,
    com.I_dup_char,
    com.I_swap_exec,
    com.I_swap_integer,
    com.I_swap_float,
    com.I_swap_code,
    com.I_swap_boolean,
    com.I_swap_string,
    com.I_swap_char,
    com.I_rot_exec,
    com.I_rot_integer,
    com.I_rot_float,
    com.I_rot_code,
    com.I_rot_boolean,
    com.I_rot_string,
    com.I_rot_char,
    com.I_flush_exec,
    com.I_flush_integer,
    com.I_flush_float,
    com.I_flush_code,
    com.I_flush_boolean,
    com.I_flush_string,
    com.I_flush_char,
    com.I_eq_exec,
    com.I_eq_integer,
    com.I_eq_float,
    com.I_eq_code,
    com.I_eq_boolean,
    com.I_eq_string,
    com.I_eq_char,
    com.I_stack_depth_exec,
    com.I_stack_depth_integer,
    com.I_stack_depth_float,
    com.I_stack_depth_code,
    com.I_stack_depth_boolean,
    com.I_stack_depth_string,
    com.I_stack_depth_char,
    com.I_yank_exec,
    com.I_yank_integer,
    com.I_yank_float,
    com.I_yank_code,
    com.I_yank_boolean,
    com.I_yank_string,
    com.I_yank_char,
    com.I_yank_dup_exec,
    com.I_yank_dup_integer,
    com.I_yank_dup_float,
    com.I_yank_dup_code,
    com.I_yank_dup_boolean,
    com.I_yank_dup_string,
    com.I_yank_dup_char,
    com.I_shove_exec,
    com.I_shove_integer,
    com.I_shove_float,
    com.I_shove_code,
    com.I_shove_boolean,
    com.I_shove_string,
    com.I_shove_char,
    com.I_empty_exec,
    com.I_empty_integer,
    com.I_empty_float,
    com.I_empty_code,
    com.I_empty_boolean,
    com.I_empty_string,
    com.I_empty_char,
    io.I_print_newline,
    io.I_print_exec,
    io.I_print_integer,
    io.I_print_float,
    io.I_print_code,
    io.I_print_boolean,
    n.I_add_integer,
    n.I_add_float,
    n.I_sub_integer,
    n.I_sub_float,
    n.I_mult_integer,
    n.I_mult_float,
    n.I_div_integer,
    n.I_div_float,
    n.I_mod_integer,
    n.I_mod_float,
    n.I_lt_integer,
    n.I_lt_float,
    n.I_lte_integer,
    n.I_lte_float,
    n.I_gt_integer,
    n.I_gt_float,
    n.I_gte_integer,
    n.I_gte_float,
    n.I_min_integer,
    n.I_min_float,
    n.I_max_integer,
    n.I_max_float,
    n.I_inc_integer,
    n.I_inc_float,
    n.I_dec_integer,
    n.I_dec_float,
    n.I_float_sin,
    n.I_float_cos,
    n.I_float_tan,
    n.I_int_from_float,
    n.I_int_from_boolean,
    n.I_int_from_string,
    n.I_integer_from_char,
    n.I_float_from_int,
    n.I_float_from_bool,
    n.I_float_from_string,
    n.I_float_from_char,
    s.I_string_from_integer,
    s.I_string_from_float,
    s.I_string_from_boolean,
    s.I_string_concat,
    s.I_string_head,
    s.I_string_tail,
    s.I_string_split_at_index,
    s.I_string_split_at_str,
    s.I_string_split_at_char,
    s.I_string_split_at_space,
    s.I_string_length,
    s.I_string_reverse,
    s.I_string_char_at,
    s.I_string_empty_string,
    s.I_string_contains,
    s.I_string_replace,
    s.I_string_from_char,
    s.I_string_append_char,
    s.I_string_first,
    s.I_string_last,
    s.I_string_nth,
    s.I_string_replace_char,
    s.I_string_replace_first_char,
    s.I_string_remove_char,
    vec.I_pop_integer_vector,
    vec.I_dup_integer_vector,
    vec.I_swap_integer_vector,
    vec.I_rot_integer_vector,
    vec.I_flush_integer_vector,
    vec.I_eq_integer_vector,
    vec.I_stack_depth_integer_vector,
    vec.I_yank_integer_vector,
    vec.I_yank_dup_integer_vector,
    vec.I_shove_integer_vector,
    vec.I_empty_integer_vector,
    vec.I_pop_float_vector,
    vec.I_dup_float_vector,
    vec.I_swap_float_vector,
    vec.I_rot_float_vector,
    vec.I_flush_float_vector,
    vec.I_eq_float_vector,
    vec.I_stack_depth_float_vector,
    vec.I_yank_float_vector,
    vec.I_yank_dup_float_vector,
    vec.I_shove_float_vector,
    vec.I_empty_float_vector,
    vec.I_pop_boolean_vector,
    vec.I_dup_boolean_vector,
    vec.I_swap_boolean_vector,
    vec.I_rot_boolean_vector,
    vec.I_flush_boolean_vector,
    vec.I_eq_boolean_vector,
    vec.I_stack_depth_boolean_vector,
    vec.I_yank_boolean_vector,
    vec.I_yank_dup_boolean_vector,
    vec.I_shove_boolean_vector,
    vec.I_empty_boolean_vector,
    vec.I_pop_string_vector,
    vec.I_dup_string_vector,
    vec.I_swap_string_vector,
    vec.I_rot_string_vector,
    vec.I_flush_string_vector,
    vec.I_eq_string_vector,
    vec.I_stack_depth_string_vector,
    vec.I_yank_string_vector,
    vec.I_yank_dup_string_vector,
    vec.I_shove_string_vector,
    vec.I_empty_string_vector,
    vec.I_concat_integer_vector,
    vec.I_append_integer_vector,
    vec.I_take_integer_vector,
    vec.I_subvec_integer_vector,
    vec.I_first_integer_vector,
    vec.I_last_integer_vector,
    vec.I_nth_integer_vector,
    vec.I_rest_integer_vector,
    vec.I_butlast_integer_vector,
    vec.I_length_integer_vector,
    vec.I_reverse_integer_vector,
    vec.I_push_all_integer_vector,
    vec.I_empty_vec_integer_vector,
    vec.I_contains_integer_vector,
    vec.I_index_of_integer_vector,
    vec.I_occurrences_of_integer_vector,
    vec.I_set_integer_vector,
    vec.I_replace_integer_vector,
    vec.I_replace_first_integer_vector,
    vec.I_remove_integer_vector,
    vec.I_iterate_integer_vector,
    vec.I_concat_float_vector,
    vec.I_append_float_vector,
    vec.I_take_float_vector,
    vec.I_subvec_float_vector,
    vec.I_first_float_vector,
    vec.I_last_float_vector,
    vec.I_nth_float_vector,
    vec.I_rest_float_vector,
    vec.I_butlast_float_vector,
    vec.I_length_float_vector,
    vec.I_reverse_float_vector,
    vec.I_push_all_float_vector,
    vec.I_empty_vec_float_vector,
    vec.I_contains_float_vector,
    vec.I_index_of_float_vector,
    vec.I_occurrences_of_float_vector,
    vec.I_set_float_vector,
    vec.I_replace_float_vector,
    vec.I_replace_first_float_vector,
    vec.I_remove_float_vector,
    vec.I_iterate_float_vector,
    vec.I_concat_boolean_vector,
    vec.I_append_boolean_vector,
    vec.I_take_boolean_vector,
    vec.I_subvec_boolean_vector,
    vec.I_first_boolean_vector,
    vec.I_last_boolean_vector,
    vec.I_nth_boolean_vector,
    vec.I_rest_boolean_vector,
    vec.I_butlast_boolean_vector,
    vec.I_length_boolean_vector,
    vec.I_reverse_boolean_vector,
    vec.I_push_all_boolean_vector,
    vec.I_empty_vec_boolean_vector,
    vec.I_contains_boolean_vector,
    vec.I_index_of_boolean_vector,
    vec.I_occurrences_of_boolean_vector,
    vec.I_set_boolean_vector,
    vec.I_replace_boolean_vector,
    vec.I_replace_first_boolean_vector,
    vec.I_remove_boolean_vector,
    vec.I_iterate_boolean_vector,
    vec.I_concat_string_vector,
    vec.I_append_string_vector,
    vec.I_take_string_vector,
    vec.I_subvec_string_vector,
    vec.I_first_string_vector,
    vec.I_last_string_vector,
    vec.I_nth_string_vector,
    vec.I_rest_string_vector,
    vec.I_butlast_string_vector,
    vec.I_length_string_vector,
    vec.I_reverse_string_vector,
    vec.I_push_all_string_vector,
    vec.I_empty_vec_string_vector,
    vec.I_contains_string_vector,
    vec.I_index_of_string_vector,
    vec.I_occurrences_of_string_vector,
    vec.I_set_string_vector,
    vec.I_replace_string_vector,
    vec.I_replace_first_string_vector,
    vec.I_remove_string_vector,
    vec.I_iterate_string_vector
]
