lshift and rshift for C.

This commit is contained in:
Simon Forman 2023-02-14 13:15:53 -08:00
parent f1db810370
commit c2eae95bb2
5 changed files with 351 additions and 302 deletions

View File

@ -24,6 +24,8 @@ add, add
sub, sub
/, fdiv_q
div, fdiv_q
lshift, lshift
rshift, rshift
bool, truthy
branch, branch
clear, clear

View File

@ -29,6 +29,8 @@ add, add
sub, sub
/, fdiv_q
div, fdiv_q
lshift, lshift
rshift, rshift
bool, truthy
branch, branch
clear, clear

View File

@ -570,6 +570,42 @@ BINARY_MATH_OP(fdiv_q)
BINARY_MATH_OP(fdiv_r)
void
lshift(JoyListPtr stack, __attribute__((unused)) JoyListPtr expression)
{
mpz_t *a, *b;
JoyList node;
b = pop_int(stack);
if (-1 == mpz_sgn(*b)) {
printf("Negative shift count.\n");
longjmp(jbuf, 1);
}
a = pop_int(stack);
node = newIntNode();
mpz_mul_2exp(node->head->value.i, *a, mpz_get_ui(*b));
node->tail = *stack;
*stack = node;
}
void
rshift(JoyListPtr stack, __attribute__((unused)) JoyListPtr expression)
{
mpz_t *a, *b;
JoyList node;
b = pop_int(stack);
if (-1 == mpz_sgn(*b)) {
printf("Negative shift count.\n");
longjmp(jbuf, 1);
}
a = pop_int(stack);
node = newIntNode();
mpz_fdiv_q_2exp(node->head->value.i, *a, mpz_get_ui(*b));
node->tail = *stack;
*stack = node;
}
/*
With mpz_cmp we can implement the rest of the comparison functions as definitions:

View File

@ -73,8 +73,10 @@ void first(JoyListPtr stack, JoyListPtr expression);
void i_joyfunc(JoyListPtr stack, JoyListPtr expression);
void inscribe(JoyListPtr stack, JoyListPtr expression);
void loop(JoyListPtr stack, JoyListPtr expression);
void lshift(JoyListPtr stack, JoyListPtr expression);
void pop(JoyListPtr stack, JoyListPtr expression);
void rest(JoyListPtr stack, JoyListPtr expression);
void rshift(JoyListPtr stack, JoyListPtr expression);
void stack(JoyListPtr stack, JoyListPtr expression);
void swaack(JoyListPtr stack, JoyListPtr expression);
void swap(JoyListPtr stack, JoyListPtr expression);

View File

@ -36,7 +36,7 @@
#line 13 "KEYWORDS.txt"
struct dict_entry;
#include <string.h>
/* maximum key range = 354, duplicates = 0 */
/* maximum key range = 359, duplicates = 0 */
#ifdef __GNUC__
__inline
@ -50,32 +50,32 @@ keyword_hash (register const char *str, register size_t len)
{
static const unsigned short asso_values[] =
{
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 15, 355, 355, 355, 90, 355, 355,
355, 355, 30, 85, 355, 75, 355, 20, 15, 45,
50, 20, 355, 355, 355, 355, 355, 355, 355, 355,
10, 115, 0, 80, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 0, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 85, 355, 355, 15, 355, 100, 70, 0,
5, 30, 40, 110, 5, 15, 355, 5, 40, 60,
0, 15, 0, 85, 70, 30, 25, 0, 85, 35,
25, 5, 0, 40, 355, 0, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 35, 360, 360, 360, 85, 360, 360,
360, 360, 60, 80, 360, 45, 360, 20, 60, 35,
0, 25, 360, 360, 360, 360, 360, 360, 360, 360,
10, 90, 0, 25, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 20, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 10, 360, 360, 90, 360, 100, 70, 0,
5, 30, 40, 115, 15, 15, 360, 50, 40, 60,
0, 15, 0, 85, 70, 30, 25, 0, 95, 30,
30, 10, 20, 40, 360, 0, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
360, 360, 360, 360, 360, 360
};
register unsigned int hval = len;
@ -99,11 +99,11 @@ in_word_set (register const char *str, register size_t len)
{
enum
{
TOTAL_KEYWORDS = 160,
TOTAL_KEYWORDS = 162,
MIN_WORD_LENGTH = 1,
MAX_WORD_LENGTH = 14,
MIN_HASH_VALUE = 1,
MAX_HASH_VALUE = 354
MAX_HASH_VALUE = 359
};
static const struct dict_entry wordlist[] =
@ -112,390 +112,397 @@ in_word_set (register const char *str, register size_t len)
#line 16 "KEYWORDS.txt"
{">", def_gt},
{""}, {""}, {""}, {""}, {""}, {""},
#line 39 "KEYWORDS.txt"
#line 41 "KEYWORDS.txt"
{"dup", dup},
{""}, {""},
#line 87 "KEYWORDS.txt"
#line 89 "KEYWORDS.txt"
{"dupdip", def_dupdip},
#line 19 "KEYWORDS.txt"
{"<>", def_neq},
{""},
#line 85 "KEYWORDS.txt"
#line 87 "KEYWORDS.txt"
{"dupd", def_dupd},
#line 86 "KEYWORDS.txt"
#line 88 "KEYWORDS.txt"
{"dupdd", def_dupdd},
{""},
#line 88 "KEYWORDS.txt"
#line 90 "KEYWORDS.txt"
{"dupdipd", def_dupdipd},
#line 44 "KEYWORDS.txt"
#line 46 "KEYWORDS.txt"
{"pop", pop},
{""},
#line 113 "KEYWORDS.txt"
#line 115 "KEYWORDS.txt"
{"popop", def_popop},
#line 17 "KEYWORDS.txt"
{"<", def_lt},
#line 114 "KEYWORDS.txt"
{"popopop", def_popopop},
#line 38 "KEYWORDS.txt"
{"dip", dip},
#line 111 "KEYWORDS.txt"
{"popd", def_popd},
#line 112 "KEYWORDS.txt"
{"popdd", def_popdd},
#line 115 "KEYWORDS.txt"
{"popopd", def_popopd},
#line 116 "KEYWORDS.txt"
{"popopop", def_popopop},
#line 40 "KEYWORDS.txt"
{"dip", dip},
#line 113 "KEYWORDS.txt"
{"popd", def_popd},
#line 114 "KEYWORDS.txt"
{"popdd", def_popdd},
#line 117 "KEYWORDS.txt"
{"popopd", def_popopd},
#line 118 "KEYWORDS.txt"
{"popopdd", def_popopdd},
{""},
#line 80 "KEYWORDS.txt"
#line 82 "KEYWORDS.txt"
{"dipd", def_dipd},
{""},
#line 41 "KEYWORDS.txt"
#line 43 "KEYWORDS.txt"
{"i", i_joyfunc},
{""}, {""},
#line 149 "KEYWORDS.txt"
{"tuck", def_tuck},
{""},
#line 151 "KEYWORDS.txt"
{""}, {""}, {""}, {""},
#line 153 "KEYWORDS.txt"
{"uncons", def_uncons},
#line 73 "KEYWORDS.txt"
#line 75 "KEYWORDS.txt"
{"ccccons", def_ccccons},
{""},
#line 77 "KEYWORDS.txt"
#line 79 "KEYWORDS.txt"
{"codi", def_codi},
#line 97 "KEYWORDS.txt"
{"hypot", def_hypot},
{""},
#line 30 "KEYWORDS.txt"
{"/", fdiv_q},
#line 154 "KEYWORDS.txt"
{"unstack", def_unstack},
#line 78 "KEYWORDS.txt"
#line 175 "KEYWORDS.txt"
{"/\\", def_SOLIDUS_REVERSE_SOLIDUS},
#line 80 "KEYWORDS.txt"
{"codireco", def_codireco},
#line 152 "KEYWORDS.txt"
#line 154 "KEYWORDS.txt"
{"unit", def_unit},
{""},
#line 37 "KEYWORDS.txt"
#line 39 "KEYWORDS.txt"
{"concat", concat},
#line 99 "KEYWORDS.txt"
#line 101 "KEYWORDS.txt"
{"ii", def_ii},
{""},
#line 36 "KEYWORDS.txt"
#line 38 "KEYWORDS.txt"
{"cons", cons},
#line 74 "KEYWORDS.txt"
{"ccons", def_ccons},
#line 157 "KEYWORDS.txt"
{"x", def_x},
#line 107 "KEYWORDS.txt"
{"nullary", def_nullary},
#line 61 "KEYWORDS.txt"
{"<{}", def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 79 "KEYWORDS.txt"
{"dinfrirst", def_dinfrirst},
#line 148 "KEYWORDS.txt"
{"third", def_third},
{""}, {""}, {""},
#line 76 "KEYWORDS.txt"
{"clop", def_clop},
#line 105 "KEYWORDS.txt"
{"nulco", def_nulco},
#line 24 "KEYWORDS.txt"
{"*", mul},
{"ccons", def_ccons},
#line 58 "KEYWORDS.txt"
{"?", def_QUESTION_MARK},
#line 176 "KEYWORDS.txt"
{"\\/", def_REVERSE_SOLIDUS_SOLIDUS},
#line 63 "KEYWORDS.txt"
{"<{}", def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 81 "KEYWORDS.txt"
{"dinfrirst", def_dinfrirst},
#line 99 "KEYWORDS.txt"
{"hypot", def_hypot},
{""},
#line 109 "KEYWORDS.txt"
{"nullary", def_nullary},
{""},
#line 78 "KEYWORDS.txt"
{"clop", def_clop},
#line 107 "KEYWORDS.txt"
{"nulco", def_nulco},
#line 159 "KEYWORDS.txt"
{"x", def_x},
#line 83 "KEYWORDS.txt"
{"disenstacken", def_disenstacken},
#line 35 "KEYWORDS.txt"
#line 37 "KEYWORDS.txt"
{"cmp", cmp_joyfunc},
#line 62 "KEYWORDS.txt"
#line 64 "KEYWORDS.txt"
{"<<{}", def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET},
#line 131 "KEYWORDS.txt"
{"shunt", def_shunt},
#line 92 "KEYWORDS.txt"
{"fourth", def_fourth},
#line 155 "KEYWORDS.txt"
#line 150 "KEYWORDS.txt"
{"third", def_third},
{""},
#line 157 "KEYWORDS.txt"
{"unswons", def_unswons},
#line 104 "KEYWORDS.txt"
#line 106 "KEYWORDS.txt"
{"not", def_not},
#line 89 "KEYWORDS.txt"
#line 91 "KEYWORDS.txt"
{"enstacken", def_enstacken},
{""},
#line 129 "KEYWORDS.txt"
#line 131 "KEYWORDS.txt"
{"second", def_second},
{""},
#line 128 "KEYWORDS.txt"
{"run", def_run},
#line 43 "KEYWORDS.txt"
{"loop", loop},
{""}, {""},
#line 163 "KEYWORDS.txt"
{"_times0", def__times0},
{""},
#line 132 "KEYWORDS.txt"
{"size", def_size},
#line 130 "KEYWORDS.txt"
{"shift", def_shift},
#line 134 "KEYWORDS.txt"
{"spiral_next", def_spiral_next},
#line 83 "KEYWORDS.txt"
{"run", def_run},
#line 45 "KEYWORDS.txt"
{"loop", loop},
#line 133 "KEYWORDS.txt"
{"shunt", def_shunt},
#line 94 "KEYWORDS.txt"
{"fourth", def_fourth},
#line 85 "KEYWORDS.txt"
{"down_to_zero", def_down_to_zero},
#line 42 "KEYWORDS.txt"
{""},
#line 151 "KEYWORDS.txt"
{"tuck", def_tuck},
{""},
#line 136 "KEYWORDS.txt"
{"spiral_next", def_spiral_next},
{""},
#line 44 "KEYWORDS.txt"
{"inscribe", inscribe},
#line 106 "KEYWORDS.txt"
#line 108 "KEYWORDS.txt"
{"null", def_null},
{""},
#line 101 "KEYWORDS.txt"
#line 103 "KEYWORDS.txt"
{"infrst", def_infrst},
#line 165 "KEYWORDS.txt"
{"_timest", def__timest},
#line 156 "KEYWORDS.txt"
{"unstack", def_unstack},
#line 23 "KEYWORDS.txt"
{"mod", fdiv_r},
#line 158 "KEYWORDS.txt"
#line 160 "KEYWORDS.txt"
{"step", def_step},
#line 156 "KEYWORDS.txt"
{"while", def_while},
#line 159 "KEYWORDS.txt"
{"_step0", def__step0},
#line 51 "KEYWORDS.txt"
{"lt", def_lt},
#line 140 "KEYWORDS.txt"
{"stuncons", def_stuncons},
#line 84 "KEYWORDS.txt"
{"drop", def_drop},
{""},
#line 72 "KEYWORDS.txt"
{"binary", def_binary},
#line 108 "KEYWORDS.txt"
{"of", def_of},
#line 153 "KEYWORDS.txt"
{"unquoted", def_unquoted},
{""}, {""},
#line 161 "KEYWORDS.txt"
{"_stept", def__stept},
#line 132 "KEYWORDS.txt"
{"shift", def_shift},
#line 28 "KEYWORDS.txt"
{"-", sub},
#line 53 "KEYWORDS.txt"
{"lt", def_lt},
#line 142 "KEYWORDS.txt"
{"stuncons", def_stuncons},
#line 86 "KEYWORDS.txt"
{"drop", def_drop},
#line 158 "KEYWORDS.txt"
{"while", def_while},
{""},
#line 110 "KEYWORDS.txt"
{"of", def_of},
#line 155 "KEYWORDS.txt"
{"unquoted", def_unquoted},
#line 134 "KEYWORDS.txt"
{"size", def_size},
{""},
#line 74 "KEYWORDS.txt"
{"binary", def_binary},
#line 55 "KEYWORDS.txt"
{"le", def_le},
#line 135 "KEYWORDS.txt"
#line 137 "KEYWORDS.txt"
{"split_at", def_split_at},
#line 68 "KEYWORDS.txt"
{"appN", def_appN},
#line 136 "KEYWORDS.txt"
{"app2", def_app2},
#line 138 "KEYWORDS.txt"
{"split_list", def_split_list},
#line 75 "KEYWORDS.txt"
#line 77 "KEYWORDS.txt"
{"cleave", def_cleave},
#line 164 "KEYWORDS.txt"
{"_times1", def__times1},
{""},
#line 139 "KEYWORDS.txt"
{"step_zero", def_step_zero},
#line 150 "KEYWORDS.txt"
{"unary", def_unary},
#line 118 "KEYWORDS.txt"
{"quoted", def_quoted},
#line 144 "KEYWORDS.txt"
#line 146 "KEYWORDS.txt"
{"swoncat", def_swoncat},
#line 57 "KEYWORDS.txt"
{"and", def_and},
#line 98 "KEYWORDS.txt"
{"ifte", def_ifte},
#line 143 "KEYWORDS.txt"
{""},
#line 141 "KEYWORDS.txt"
{"step_zero", def_step_zero},
#line 145 "KEYWORDS.txt"
{"swons", def_swons},
#line 82 "KEYWORDS.txt"
{"divmod", def_divmod},
#line 117 "KEYWORDS.txt"
#line 120 "KEYWORDS.txt"
{"quoted", def_quoted},
{""},
#line 59 "KEYWORDS.txt"
{"and", def_and},
#line 100 "KEYWORDS.txt"
{"ifte", def_ifte},
#line 152 "KEYWORDS.txt"
{"unary", def_unary},
#line 32 "KEYWORDS.txt"
{"lshift", lshift},
#line 119 "KEYWORDS.txt"
{"product", def_product},
#line 27 "KEYWORDS.txt"
{"add", add},
#line 121 "KEYWORDS.txt"
#line 123 "KEYWORDS.txt"
{"reco", def_reco},
{""},
#line 160 "KEYWORDS.txt"
{"_step1", def__step1},
#line 110 "KEYWORDS.txt"
#line 24 "KEYWORDS.txt"
{"*", mul},
#line 112 "KEYWORDS.txt"
{"pm", def_pm},
#line 93 "KEYWORDS.txt"
{""},
#line 70 "KEYWORDS.txt"
{"appN", def_appN},
{""},
#line 84 "KEYWORDS.txt"
{"divmod", def_divmod},
#line 62 "KEYWORDS.txt"
{"!-", def_EXCLAMATION_MARK_HYPHEN_MINUS},
#line 95 "KEYWORDS.txt"
{"gcd", def_gcd},
#line 67 "KEYWORDS.txt"
#line 69 "KEYWORDS.txt"
{"app3", def_app3},
{""}, {""},
#line 174 "KEYWORDS.txt"
{"\\/", def_REVERSE_SOLIDUS_SOLIDUS},
{""}, {""},
#line 123 "KEYWORDS.txt"
{"roll>", def_roll_GREATER_THAN_SIGN},
#line 125 "KEYWORDS.txt"
{"roll>", def_roll_GREATER_THAN_SIGN},
#line 127 "KEYWORDS.txt"
{"rollup", def_rollup},
{""},
#line 126 "KEYWORDS.txt"
#line 128 "KEYWORDS.txt"
{"rolldown", def_rolldown},
#line 91 "KEYWORDS.txt"
{"fork", def_fork},
#line 162 "KEYWORDS.txt"
{""},
#line 164 "KEYWORDS.txt"
{"times", def_times},
{""},
#line 147 "KEYWORDS.txt"
{"ternary", def_ternary},
#line 57 "KEYWORDS.txt"
{"--", def_HYPHEN_MINUS_HYPHEN_MINUS},
{""},
#line 172 "KEYWORDS.txt"
{"_\\/_", def___REVERSE_SOLIDUS_SOLIDUS__},
#line 124 "KEYWORDS.txt"
#line 67 "KEYWORDS.txt"
{"app1", def_app1},
#line 126 "KEYWORDS.txt"
{"roll<", def_roll_LESS_THAN_SIGN},
#line 71 "KEYWORDS.txt"
#line 73 "KEYWORDS.txt"
{"b", def_b},
{""},
#line 149 "KEYWORDS.txt"
{"ternary", def_ternary},
#line 25 "KEYWORDS.txt"
{"mul", mul},
#line 32 "KEYWORDS.txt"
{"bool", truthy},
#line 34 "KEYWORDS.txt"
{"bool", truthy},
#line 36 "KEYWORDS.txt"
{"clear", clear},
#line 94 "KEYWORDS.txt"
{"genrec", def_genrec},
#line 145 "KEYWORDS.txt"
#line 33 "KEYWORDS.txt"
{"rshift", rshift},
#line 147 "KEYWORDS.txt"
{"tailrec", def_tailrec},
{""},
#line 65 "KEYWORDS.txt"
{"app1", def_app1},
{""},
#line 28 "KEYWORDS.txt"
{"-", sub},
#line 69 "KEYWORDS.txt"
{""}, {""}, {""},
#line 96 "KEYWORDS.txt"
{"genrec", def_genrec},
#line 71 "KEYWORDS.txt"
{"at", def_at},
#line 141 "KEYWORDS.txt"
#line 143 "KEYWORDS.txt"
{"sum", def_sum},
#line 66 "KEYWORDS.txt"
{"app2", def_app2},
#line 40 "KEYWORDS.txt"
{""},
#line 42 "KEYWORDS.txt"
{"first", first},
{""},
#line 59 "KEYWORDS.txt"
#line 61 "KEYWORDS.txt"
{"or", def_or},
{""},
#line 45 "KEYWORDS.txt"
#line 47 "KEYWORDS.txt"
{"rest", rest},
#line 100 "KEYWORDS.txt"
#line 102 "KEYWORDS.txt"
{"infra", def_infra},
#line 56 "KEYWORDS.txt"
{"?", def_QUESTION_MARK},
#line 50 "KEYWORDS.txt"
{"gt", def_gt},
#line 166 "KEYWORDS.txt"
{"map", def_map},
#line 146 "KEYWORDS.txt"
{"take", def_take},
#line 46 "KEYWORDS.txt"
{"stack", stack},
#line 138 "KEYWORDS.txt"
{"stackd", def_stackd},
#line 60 "KEYWORDS.txt"
{"!-", def_EXCLAMATION_MARK_HYPHEN_MINUS},
{""},
#line 48 "KEYWORDS.txt"
{"swap", swap},
{""},
#line 26 "KEYWORDS.txt"
{"+", add},
#line 54 "KEYWORDS.txt"
{"ge", def_ge},
#line 29 "KEYWORDS.txt"
{"sub", sub},
#line 167 "KEYWORDS.txt"
{"_timest", def__timest},
#line 168 "KEYWORDS.txt"
{"map", def_map},
#line 50 "KEYWORDS.txt"
{"swap", swap},
{""},
#line 142 "KEYWORDS.txt"
#line 140 "KEYWORDS.txt"
{"stackd", def_stackd},
#line 52 "KEYWORDS.txt"
{"gt", def_gt},
{""}, {""},
#line 144 "KEYWORDS.txt"
{"swapd", def_swapd},
#line 47 "KEYWORDS.txt"
{"swaack", swaack},
{""}, {""}, {""}, {""},
#line 22 "KEYWORDS.txt"
{"%", fdiv_r},
{""}, {""}, {""}, {""}, {""},
#line 90 "KEYWORDS.txt"
{"flatten", def_flatten},
{""}, {""}, {""}, {""},
#line 173 "KEYWORDS.txt"
{"/\\", def_SOLIDUS_REVERSE_SOLIDUS},
#line 31 "KEYWORDS.txt"
{"div", fdiv_q},
{""},
#line 169 "KEYWORDS.txt"
{"_map0", def__map0},
#line 166 "KEYWORDS.txt"
{"_times1", def__times1},
#line 29 "KEYWORDS.txt"
{"sub", sub},
{""}, {""},
#line 120 "KEYWORDS.txt"
{"range_to_zero", def_range_to_zero},
#line 163 "KEYWORDS.txt"
{"_stept", def__stept},
#line 56 "KEYWORDS.txt"
{"ge", def_ge},
{""},
#line 127 "KEYWORDS.txt"
{"rrest", def_rrest},
#line 93 "KEYWORDS.txt"
{"fork", def_fork},
{""},
#line 49 "KEYWORDS.txt"
{"eq", def_eq},
#line 52 "KEYWORDS.txt"
{"neq", def_neq},
{""},
#line 119 "KEYWORDS.txt"
{"range", def_range},
{""}, {""}, {""}, {""},
#line 168 "KEYWORDS.txt"
{"_mape", def__mape},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
#line 122 "KEYWORDS.txt"
{"reverse", def_reverse},
#line 109 "KEYWORDS.txt"
{"pam", def_pam},
{""},
#line 170 "KEYWORDS.txt"
{"_map1", def__map1},
{""},
#line 55 "KEYWORDS.txt"
{"--", def_HYPHEN_MINUS_HYPHEN_MINUS},
{""}, {""},
#line 171 "KEYWORDS.txt"
{"_map2", def__map2},
#line 15 "KEYWORDS.txt"
{"=", def_eq},
#line 21 "KEYWORDS.txt"
{">=", def_ge},
#line 63 "KEYWORDS.txt"
{"abs", def_abs},
{""},
#line 133 "KEYWORDS.txt"
{"small", def_small},
{""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
#line 162 "KEYWORDS.txt"
{"_step1", def__step1},
#line 92 "KEYWORDS.txt"
{"flatten", def_flatten},
{""}, {""}, {""}, {""},
#line 20 "KEYWORDS.txt"
{"<=", def_le},
{""}, {""}, {""}, {""},
#line 165 "KEYWORDS.txt"
{"_times0", def__times0},
#line 122 "KEYWORDS.txt"
{"range_to_zero", def_range_to_zero},
{""},
#line 129 "KEYWORDS.txt"
{"rrest", def_rrest},
{""},
#line 51 "KEYWORDS.txt"
{"eq", def_eq},
#line 54 "KEYWORDS.txt"
{"neq", def_neq},
{""},
#line 121 "KEYWORDS.txt"
{"range", def_range},
{""}, {""}, {""},
#line 148 "KEYWORDS.txt"
{"take", def_take},
#line 48 "KEYWORDS.txt"
{"stack", stack},
#line 161 "KEYWORDS.txt"
{"_step0", def__step0},
{""},
#line 31 "KEYWORDS.txt"
{"div", fdiv_q},
#line 174 "KEYWORDS.txt"
{"_\\/_", def___REVERSE_SOLIDUS_SOLIDUS__},
{""},
#line 49 "KEYWORDS.txt"
{"swaack", swaack},
#line 18 "KEYWORDS.txt"
{"!=", def_neq},
{""},
#line 102 "KEYWORDS.txt"
{"make_generator", def_make_generator},
{""},
#line 33 "KEYWORDS.txt"
{"branch", branch},
#line 70 "KEYWORDS.txt"
{"average", def_average},
#line 103 "KEYWORDS.txt"
{"neg", def_neg},
{""}, {""}, {""},
#line 58 "KEYWORDS.txt"
{"++", def_PLUS_SIGN_PLUS_SIGN},
#line 137 "KEYWORDS.txt"
{"sqr", def_sqr},
{""},
#line 167 "KEYWORDS.txt"
{"_map?", def__map_QUESTION_MARK},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""},
#line 64 "KEYWORDS.txt"
{"anamorphism", def_anamorphism},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
#line 95 "KEYWORDS.txt"
{"grabN", def_grabN},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 96 "KEYWORDS.txt"
#line 111 "KEYWORDS.txt"
{"pam", def_pam},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 124 "KEYWORDS.txt"
{"reverse", def_reverse},
#line 65 "KEYWORDS.txt"
{"abs", def_abs},
{""},
#line 135 "KEYWORDS.txt"
{"small", def_small},
{""}, {""}, {""}, {""}, {""}, {""},
#line 60 "KEYWORDS.txt"
{"++", def_PLUS_SIGN_PLUS_SIGN},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""},
#line 173 "KEYWORDS.txt"
{"_map2", def__map2},
{""}, {""},
#line 139 "KEYWORDS.txt"
{"sqr", def_sqr},
{""}, {""},
#line 35 "KEYWORDS.txt"
{"branch", branch},
#line 72 "KEYWORDS.txt"
{"average", def_average},
#line 105 "KEYWORDS.txt"
{"neg", def_neg},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 66 "KEYWORDS.txt"
{"anamorphism", def_anamorphism},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 169 "KEYWORDS.txt"
{"_map?", def__map_QUESTION_MARK},
{""}, {""}, {""}, {""},
#line 170 "KEYWORDS.txt"
{"_mape", def__mape},
{""}, {""}, {""}, {""},
#line 172 "KEYWORDS.txt"
{"_map1", def__map1},
{""}, {""}, {""},
#line 104 "KEYWORDS.txt"
{"make_generator", def_make_generator},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
#line 97 "KEYWORDS.txt"
{"grabN", def_grabN},
{""}, {""}, {""}, {""},
#line 171 "KEYWORDS.txt"
{"_map0", def__map0},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 98 "KEYWORDS.txt"
{"grba", def_grba}
};