diff --git a/implementations/C/KEYWORDS.txt b/implementations/C/KEYWORDS.txt index 94e476c..023144f 100644 --- a/implementations/C/KEYWORDS.txt +++ b/implementations/C/KEYWORDS.txt @@ -51,6 +51,14 @@ lt, def_lt neq, def_neq le, def_le ge, def_ge +--, def_HYPHEN_MINUS_HYPHEN_MINUS +?, def_QUESTION_MARK +&&, def_AMPERSAND_AMPERSAND +++, def_PLUS_SIGN_PLUS_SIGN +||, def_VERTICAL_LINE_VERTICAL_LINE +!-, def_EXCLAMATION_MARK_HYPHEN_MINUS +<{}, def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET +<<{}, def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET abs, def_abs anamorphism, def_anamorphism app1, def_app1 @@ -109,6 +117,10 @@ range, def_range range_to_zero, def_range_to_zero reco, def_reco reverse, def_reverse +roll>, def_roll_GREATER_THAN_SIGN +roll<, def_roll_LESS_THAN_SIGN +rollup, def_rollup +rolldown, def_rolldown rrest, def_rrest run, def_run second, def_second @@ -138,3 +150,17 @@ unquoted, def_unquoted unswons, def_unswons while, def_while x, def_x +step, def_step +_step0, def__step0 +_step1, def__step1 +_stept, def__stept +times, def_times +_times0, def__times0 +_times1, def__times1 +_timest, def__timest +map, def_map +_map?, def__map_QUESTION_MARK +_mape, def__mape +_map0, def__map0 +_map1, def__map1 +_map2, def__map2 diff --git a/implementations/C/convert_defs.py b/implementations/C/convert_defs.py index d26ef11..1d2e0c4 100644 --- a/implementations/C/convert_defs.py +++ b/implementations/C/convert_defs.py @@ -13,31 +13,51 @@ and using it to write a simple Joy script to load the defs: Eh? ''' -import sys +import sys, unicodedata + + +def filt(name): + ''' + Pass alphanumeric chars and underscores, convert other chars + to their Unicode names so they can work as (portions of) C + identifiers. + ''' + alnum = True + for i, ch in enumerate(name): + if alnum: + if ch.isalnum() or ch == '_': + yield ch + else: + alnum = False + if i: + yield '_' + yield ( + unicodedata + .name(ch) + .replace(' ', '_') + .replace('-', '_') + ) + else: + if ch.isalnum() or ch == '_': + alnum = True + yield '_' + yield ch + else: + yield '_' + yield ( + unicodedata + .name(ch) + .replace(' ', '_') + .replace('-', '_') + ) + + +def convert_name(name): + return name if name.isidentifier() else ''.join(filt(name)) + defs = [line.strip() for line in open('./defs.txt')] -##defs = '''\ -##abs dup 0 < [] [neg] branch -##anamorphism [pop []] swap [dip swons] genrec -##app1 grba infrst -##app2 [grba swap grba swap] dip [infrst] cons ii -##app3 3 appN -##appN [grabN] codi map reverse disenstacken -##at drop first -##average [sum] [size] cleave / -##b [i] dip i -##binary unary popd -##ccccons ccons ccons -##ccons cons cons -##cleave fork popdd -##clop cleave popdd -##codi cons dip -##codireco codi reco -##dinfrirst dip infrst -##dipd [dip] codi -##disenstacken ? [uncons ?] loop pop -##swons swap cons -##infra swons swaack [i] dip swaack'''.splitlines() + print(f'''\ @@ -51,13 +71,14 @@ Do not edit. if sys.argv[-1] == '--header': for line in defs: name, body = line.split(None, 1) + name = convert_name(name) print(f'void def_{name}(JoyListPtr stack, JoyListPtr expression);') elif sys.argv[-1] == '--keywords': sys.stdout.write(open('KEYWORDS.in').read()) for line in defs: name, body = line.split(None, 1) - print(f'{name}, def_{name}') + print(f'{name}, def_{convert_name(name)}') else: print('''\ @@ -72,6 +93,7 @@ of the definitions. ''') for line in defs: name, body = line.split(None, 1) + name = convert_name(name) print(f'JoyList def_{name}_body;') @@ -88,6 +110,7 @@ init_defs(void) ''') for line in defs: name, body = line.split(None, 1) + name = convert_name(name) print(f'\tdef_{name}_body = text_to_expression("{body}");') print('}') @@ -101,4 +124,5 @@ Last, a set of functions to go in the wordlist, one for each definition. ''') for line in defs: name, body = line.split(None, 1) + name = convert_name(name) print(f'void def_{name}(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) {{ push_quote_onto_expression(def_{name}_body, expression); }}') diff --git a/implementations/C/definitions.c b/implementations/C/definitions.c index 8274db1..742a207 100644 --- a/implementations/C/definitions.c +++ b/implementations/C/definitions.c @@ -18,6 +18,14 @@ JoyList def_lt_body; JoyList def_neq_body; JoyList def_le_body; JoyList def_ge_body; +JoyList def_HYPHEN_MINUS_HYPHEN_MINUS_body; +JoyList def_QUESTION_MARK_body; +JoyList def_AMPERSAND_AMPERSAND_body; +JoyList def_PLUS_SIGN_PLUS_SIGN_body; +JoyList def_VERTICAL_LINE_VERTICAL_LINE_body; +JoyList def_EXCLAMATION_MARK_HYPHEN_MINUS_body; +JoyList def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body; +JoyList def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body; JoyList def_abs_body; JoyList def_anamorphism_body; JoyList def_app1_body; @@ -76,6 +84,10 @@ JoyList def_range_body; JoyList def_range_to_zero_body; JoyList def_reco_body; JoyList def_reverse_body; +JoyList def_roll_GREATER_THAN_SIGN_body; +JoyList def_roll_LESS_THAN_SIGN_body; +JoyList def_rollup_body; +JoyList def_rolldown_body; JoyList def_rrest_body; JoyList def_run_body; JoyList def_second_body; @@ -105,6 +117,20 @@ JoyList def_unquoted_body; JoyList def_unswons_body; JoyList def_while_body; JoyList def_x_body; +JoyList def_step_body; +JoyList def__step0_body; +JoyList def__step1_body; +JoyList def__stept_body; +JoyList def_times_body; +JoyList def__times0_body; +JoyList def__times1_body; +JoyList def__timest_body; +JoyList def_map_body; +JoyList def__map_QUESTION_MARK_body; +JoyList def__mape_body; +JoyList def__map0_body; +JoyList def__map1_body; +JoyList def__map2_body; /* @@ -121,6 +147,14 @@ init_defs(void) def_neq_body = text_to_expression("[true] [false] [true] cmp"); def_le_body = text_to_expression("[false] [true] [true] cmp"); def_ge_body = text_to_expression("[true] [true] [false] cmp"); + def_HYPHEN_MINUS_HYPHEN_MINUS_body = text_to_expression("1 -"); + def_QUESTION_MARK_body = text_to_expression("dup bool"); + def_AMPERSAND_AMPERSAND_body = text_to_expression("nulco [nullary [false]] dip branch"); + def_PLUS_SIGN_PLUS_SIGN_body = text_to_expression("1 +"); + def_VERTICAL_LINE_VERTICAL_LINE_body = text_to_expression("nulco [nullary] dip [true] branch"); + def_EXCLAMATION_MARK_HYPHEN_MINUS_body = text_to_expression("0 >="); + def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body = text_to_expression("[] swap"); + def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body = text_to_expression("[] rollup"); def_abs_body = text_to_expression("dup 0 < [] [neg] branch"); def_anamorphism_body = text_to_expression("[pop []] swap [dip swons] genrec"); def_app1_body = text_to_expression("grba infrst"); @@ -179,6 +213,10 @@ init_defs(void) def_range_to_zero_body = text_to_expression("unit [down_to_zero] infra"); def_reco_body = text_to_expression("rest cons"); def_reverse_body = text_to_expression("<{} shunt"); + def_roll_GREATER_THAN_SIGN_body = text_to_expression("swap swapd"); + def_roll_LESS_THAN_SIGN_body = text_to_expression("swapd swap"); + def_rollup_body = text_to_expression("roll>"); + def_rolldown_body = text_to_expression("roll<"); def_rrest_body = text_to_expression("rest rest"); def_run_body = text_to_expression("<{} infra"); def_second_body = text_to_expression("rest first"); @@ -188,7 +226,7 @@ init_defs(void) def_spiral_next_body = text_to_expression("[[[abs] ii <=] [[<>] [pop !-] ||] &&] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte"); def_split_at_body = text_to_expression("[drop] [take] clop"); def_split_list_body = text_to_expression("[take reverse] [drop] clop"); - def_sqr_body = text_to_expression("dup *"); + def_sqr_body = text_to_expression("dup mul"); def_stackd_body = text_to_expression("[stack] dip"); def_step_zero_body = text_to_expression("0 roll> step"); def_stuncons_body = text_to_expression("stack uncons"); @@ -208,6 +246,20 @@ init_defs(void) def_unswons_body = text_to_expression("uncons swap"); def_while_body = text_to_expression("swap nulco dupdipd concat loop"); def_x_body = text_to_expression("dup i"); + def_step_body = text_to_expression("[_step0] x"); + def__step0_body = text_to_expression("_step1 [popopop] [_stept] branch"); + def__step1_body = text_to_expression("[?] dipd roll<"); + def__stept_body = text_to_expression("[uncons] dipd [dupdipd] dip x"); + def_times_body = text_to_expression("[_times0] x"); + def__times0_body = text_to_expression("_times1 [popopop] [_timest] branch"); + def__times1_body = text_to_expression("[dup 0 >] dipd roll<"); + def__timest_body = text_to_expression("[[--] dip dupdipd] dip x"); + def_map_body = text_to_expression("[_map0] cons [[] [_map?] [_mape]] dip tailrec"); + def__map_QUESTION_MARK_body = text_to_expression("pop bool not"); + def__mape_body = text_to_expression("popd reverse"); + def__map0_body = text_to_expression("[_map1] dipd _map2"); + def__map1_body = text_to_expression("stackd shift"); + def__map2_body = text_to_expression("[infrst] cons dipd roll< swons"); } @@ -221,6 +273,14 @@ void def_lt(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { p void def_neq(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_neq_body, expression); } void def_le(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_le_body, expression); } void def_ge(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_ge_body, expression); } +void def_HYPHEN_MINUS_HYPHEN_MINUS(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_HYPHEN_MINUS_HYPHEN_MINUS_body, expression); } +void def_QUESTION_MARK(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_QUESTION_MARK_body, expression); } +void def_AMPERSAND_AMPERSAND(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_AMPERSAND_AMPERSAND_body, expression); } +void def_PLUS_SIGN_PLUS_SIGN(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_PLUS_SIGN_PLUS_SIGN_body, expression); } +void def_VERTICAL_LINE_VERTICAL_LINE(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_VERTICAL_LINE_VERTICAL_LINE_body, expression); } +void def_EXCLAMATION_MARK_HYPHEN_MINUS(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_EXCLAMATION_MARK_HYPHEN_MINUS_body, expression); } +void def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body, expression); } +void def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET_body, expression); } void def_abs(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_abs_body, expression); } void def_anamorphism(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_anamorphism_body, expression); } void def_app1(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_app1_body, expression); } @@ -279,6 +339,10 @@ void def_range(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) void def_range_to_zero(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_range_to_zero_body, expression); } void def_reco(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_reco_body, expression); } void def_reverse(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_reverse_body, expression); } +void def_roll_GREATER_THAN_SIGN(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_roll_GREATER_THAN_SIGN_body, expression); } +void def_roll_LESS_THAN_SIGN(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_roll_LESS_THAN_SIGN_body, expression); } +void def_rollup(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_rollup_body, expression); } +void def_rolldown(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_rolldown_body, expression); } void def_rrest(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_rrest_body, expression); } void def_run(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_run_body, expression); } void def_second(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_second_body, expression); } @@ -308,3 +372,17 @@ void def_unquoted(__attribute__((unused)) JoyListPtr stack, JoyListPtr expressio void def_unswons(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_unswons_body, expression); } void def_while(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_while_body, expression); } void def_x(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_x_body, expression); } +void def_step(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_step_body, expression); } +void def__step0(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__step0_body, expression); } +void def__step1(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__step1_body, expression); } +void def__stept(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__stept_body, expression); } +void def_times(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_times_body, expression); } +void def__times0(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__times0_body, expression); } +void def__times1(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__times1_body, expression); } +void def__timest(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__timest_body, expression); } +void def_map(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def_map_body, expression); } +void def__map_QUESTION_MARK(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__map_QUESTION_MARK_body, expression); } +void def__mape(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__mape_body, expression); } +void def__map0(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__map0_body, expression); } +void def__map1(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__map1_body, expression); } +void def__map2(__attribute__((unused)) JoyListPtr stack, JoyListPtr expression) { push_quote_onto_expression(def__map2_body, expression); } diff --git a/implementations/C/definitions.h b/implementations/C/definitions.h index 78fcdff..f77aa05 100644 --- a/implementations/C/definitions.h +++ b/implementations/C/definitions.h @@ -9,6 +9,14 @@ void def_lt(JoyListPtr stack, JoyListPtr expression); void def_neq(JoyListPtr stack, JoyListPtr expression); void def_le(JoyListPtr stack, JoyListPtr expression); void def_ge(JoyListPtr stack, JoyListPtr expression); +void def_HYPHEN_MINUS_HYPHEN_MINUS(JoyListPtr stack, JoyListPtr expression); +void def_QUESTION_MARK(JoyListPtr stack, JoyListPtr expression); +void def_AMPERSAND_AMPERSAND(JoyListPtr stack, JoyListPtr expression); +void def_PLUS_SIGN_PLUS_SIGN(JoyListPtr stack, JoyListPtr expression); +void def_VERTICAL_LINE_VERTICAL_LINE(JoyListPtr stack, JoyListPtr expression); +void def_EXCLAMATION_MARK_HYPHEN_MINUS(JoyListPtr stack, JoyListPtr expression); +void def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET(JoyListPtr stack, JoyListPtr expression); +void def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET(JoyListPtr stack, JoyListPtr expression); void def_abs(JoyListPtr stack, JoyListPtr expression); void def_anamorphism(JoyListPtr stack, JoyListPtr expression); void def_app1(JoyListPtr stack, JoyListPtr expression); @@ -67,6 +75,10 @@ void def_range(JoyListPtr stack, JoyListPtr expression); void def_range_to_zero(JoyListPtr stack, JoyListPtr expression); void def_reco(JoyListPtr stack, JoyListPtr expression); void def_reverse(JoyListPtr stack, JoyListPtr expression); +void def_roll_GREATER_THAN_SIGN(JoyListPtr stack, JoyListPtr expression); +void def_roll_LESS_THAN_SIGN(JoyListPtr stack, JoyListPtr expression); +void def_rollup(JoyListPtr stack, JoyListPtr expression); +void def_rolldown(JoyListPtr stack, JoyListPtr expression); void def_rrest(JoyListPtr stack, JoyListPtr expression); void def_run(JoyListPtr stack, JoyListPtr expression); void def_second(JoyListPtr stack, JoyListPtr expression); @@ -96,3 +108,17 @@ void def_unquoted(JoyListPtr stack, JoyListPtr expression); void def_unswons(JoyListPtr stack, JoyListPtr expression); void def_while(JoyListPtr stack, JoyListPtr expression); void def_x(JoyListPtr stack, JoyListPtr expression); +void def_step(JoyListPtr stack, JoyListPtr expression); +void def__step0(JoyListPtr stack, JoyListPtr expression); +void def__step1(JoyListPtr stack, JoyListPtr expression); +void def__stept(JoyListPtr stack, JoyListPtr expression); +void def_times(JoyListPtr stack, JoyListPtr expression); +void def__times0(JoyListPtr stack, JoyListPtr expression); +void def__times1(JoyListPtr stack, JoyListPtr expression); +void def__timest(JoyListPtr stack, JoyListPtr expression); +void def_map(JoyListPtr stack, JoyListPtr expression); +void def__map_QUESTION_MARK(JoyListPtr stack, JoyListPtr expression); +void def__mape(JoyListPtr stack, JoyListPtr expression); +void def__map0(JoyListPtr stack, JoyListPtr expression); +void def__map1(JoyListPtr stack, JoyListPtr expression); +void def__map2(JoyListPtr stack, JoyListPtr expression); diff --git a/implementations/C/defs.txt b/implementations/C/defs.txt index d9696df..fd5ac99 100644 --- a/implementations/C/defs.txt +++ b/implementations/C/defs.txt @@ -4,6 +4,14 @@ lt [false] [false] [true] cmp neq [true] [false] [true] cmp le [false] [true] [true] cmp ge [true] [true] [false] cmp +-- 1 - +? dup bool +&& nulco [nullary [false]] dip branch +++ 1 + +|| nulco [nullary] dip [true] branch +!- 0 >= +<{} [] swap +<<{} [] rollup abs dup 0 < [] [neg] branch anamorphism [pop []] swap [dip swons] genrec app1 grba infrst @@ -62,6 +70,10 @@ range [0 <=] [1 - dup] anamorphism range_to_zero unit [down_to_zero] infra reco rest cons reverse <{} shunt +roll> swap swapd +roll< swapd swap +rollup roll> +rolldown roll< rrest rest rest run <{} infra second rest first @@ -71,7 +83,7 @@ size [pop ++] step_zero spiral_next [[[abs] ii <=] [[<>] [pop !-] ||] &&] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte split_at [drop] [take] clop split_list [take reverse] [drop] clop -sqr dup * +sqr dup mul stackd [stack] dip step_zero 0 roll> step stuncons stack uncons @@ -91,3 +103,17 @@ unquoted [i] dip unswons uncons swap while swap nulco dupdipd concat loop x dup i +step [_step0] x +_step0 _step1 [popopop] [_stept] branch +_step1 [?] dipd roll< +_stept [uncons] dipd [dupdipd] dip x +times [_times0] x +_times0 _times1 [popopop] [_timest] branch +_times1 [dup 0 >] dipd roll< +_timest [[--] dip dupdipd] dip x +map [_map0] cons [[] [_map?] [_mape]] dip tailrec +_map? pop bool not +_mape popd reverse +_map0 [_map1] dipd _map2 +_map1 stackd shift +_map2 [infrst] cons dipd roll< swons diff --git a/implementations/C/keywords.c b/implementations/C/keywords.c index 826bdda..653c15a 100644 --- a/implementations/C/keywords.c +++ b/implementations/C/keywords.c @@ -36,7 +36,7 @@ #line 13 "KEYWORDS.txt" struct dict_entry; #include -/* maximum key range = 273, duplicates = 0 */ +/* maximum key range = 294, 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[] = { - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 5, 274, 274, 274, 75, 274, 274, - 274, 274, 70, 65, 274, 45, 274, 30, 274, 65, - 60, 50, 274, 274, 274, 274, 274, 274, 274, 274, - 0, 25, 20, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 40, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 35, 60, 0, - 5, 30, 40, 75, 15, 15, 274, 35, 40, 55, - 0, 15, 0, 100, 70, 30, 25, 0, 5, 85, - 10, 127, 5, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274 + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 40, 295, 295, 295, 95, 60, 295, + 295, 295, 80, 10, 295, 0, 295, 60, 110, 35, + 20, 60, 295, 295, 295, 295, 295, 295, 295, 295, + 90, 20, 30, 85, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 0, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 5, 295, 60, 55, 0, + 5, 30, 40, 105, 5, 15, 295, 50, 40, 25, + 0, 15, 0, 110, 70, 30, 25, 0, 65, 95, + 25, 75, 25, 45, 45, 0, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295 }; register unsigned int hval = len; @@ -99,324 +99,372 @@ in_word_set (register const char *str, register size_t len) { enum { - TOTAL_KEYWORDS = 126, + TOTAL_KEYWORDS = 152, MIN_WORD_LENGTH = 1, MAX_WORD_LENGTH = 14, MIN_HASH_VALUE = 1, - MAX_HASH_VALUE = 273 + MAX_HASH_VALUE = 294 }; static const struct dict_entry wordlist[] = { {""}, -#line 17 "KEYWORDS.txt" - {"<", def_lt}, - {""}, {""}, {""}, {""}, {""}, {""}, +#line 28 "KEYWORDS.txt" + {"-", sub}, +#line 54 "KEYWORDS.txt" + {"--", def_HYPHEN_MINUS_HYPHEN_MINUS}, + {""}, {""}, {""}, {""}, {""}, #line 39 "KEYWORDS.txt" {"dup", dup}, {""}, {""}, -#line 77 "KEYWORDS.txt" +#line 85 "KEYWORDS.txt" {"dupdip", def_dupdip}, {""}, {""}, -#line 75 "KEYWORDS.txt" +#line 83 "KEYWORDS.txt" {"dupd", def_dupd}, -#line 76 "KEYWORDS.txt" +#line 84 "KEYWORDS.txt" {"dupdd", def_dupdd}, {""}, -#line 78 "KEYWORDS.txt" +#line 86 "KEYWORDS.txt" {"dupdipd", def_dupdipd}, #line 43 "KEYWORDS.txt" {"pop", pop}, {""}, -#line 102 "KEYWORDS.txt" +#line 110 "KEYWORDS.txt" {"popop", def_popop}, -#line 140 "KEYWORDS.txt" - {"x", def_x}, -#line 103 "KEYWORDS.txt" +#line 26 "KEYWORDS.txt" + {"+", add}, +#line 111 "KEYWORDS.txt" {"popopop", def_popopop}, #line 38 "KEYWORDS.txt" {"dip", dip}, -#line 100 "KEYWORDS.txt" +#line 108 "KEYWORDS.txt" {"popd", def_popd}, -#line 101 "KEYWORDS.txt" +#line 109 "KEYWORDS.txt" {"popdd", def_popdd}, -#line 104 "KEYWORDS.txt" +#line 112 "KEYWORDS.txt" {"popopd", def_popopd}, -#line 105 "KEYWORDS.txt" +#line 113 "KEYWORDS.txt" {"popopdd", def_popopdd}, - {""}, -#line 71 "KEYWORDS.txt" +#line 35 "KEYWORDS.txt" + {"cmp", cmp_joyfunc}, +#line 79 "KEYWORDS.txt" {"dipd", def_dipd}, {""}, #line 41 "KEYWORDS.txt" {"i", i_joyfunc}, - {""}, -#line 31 "KEYWORDS.txt" - {"div", tdiv_q}, - {""}, {""}, -#line 135 "KEYWORDS.txt" +#line 57 "KEYWORDS.txt" + {"++", def_PLUS_SIGN_PLUS_SIGN}, + {""}, {""}, {""}, +#line 147 "KEYWORDS.txt" {"uncons", def_uncons}, -#line 64 "KEYWORDS.txt" +#line 72 "KEYWORDS.txt" {"ccccons", def_ccccons}, {""}, -#line 68 "KEYWORDS.txt" +#line 76 "KEYWORDS.txt" {"codi", def_codi}, {""}, -#line 16 "KEYWORDS.txt" - {">", def_gt}, -#line 19 "KEYWORDS.txt" - {"<>", def_neq}, -#line 69 "KEYWORDS.txt" +#line 15 "KEYWORDS.txt" + {"=", def_eq}, +#line 59 "KEYWORDS.txt" + {"!-", def_EXCLAMATION_MARK_HYPHEN_MINUS}, +#line 77 "KEYWORDS.txt" {"codireco", def_codireco}, -#line 136 "KEYWORDS.txt" +#line 148 "KEYWORDS.txt" {"unit", def_unit}, {""}, #line 37 "KEYWORDS.txt" {"concat", concat}, -#line 89 "KEYWORDS.txt" +#line 97 "KEYWORDS.txt" {"ii", def_ii}, {""}, #line 36 "KEYWORDS.txt" {"cons", cons}, -#line 65 "KEYWORDS.txt" +#line 73 "KEYWORDS.txt" {"ccons", def_ccons}, -#line 15 "KEYWORDS.txt" - {"=", def_eq}, -#line 20 "KEYWORDS.txt" - {"<=", def_le}, -#line 27 "KEYWORDS.txt" - {"add", add}, -#line 70 "KEYWORDS.txt" +#line 152 "KEYWORDS.txt" + {"x", def_x}, +#line 107 "KEYWORDS.txt" + {"pm", def_pm}, +#line 23 "KEYWORDS.txt" + {"mod", tdiv_r}, +#line 78 "KEYWORDS.txt" {"dinfrirst", def_dinfrirst}, - {""}, {""}, -#line 18 "KEYWORDS.txt" - {"!=", def_neq}, -#line 35 "KEYWORDS.txt" - {"cmp", cmp_joyfunc}, -#line 67 "KEYWORDS.txt" +#line 144 "KEYWORDS.txt" + {"third", def_third}, + {""}, {""}, {""}, +#line 75 "KEYWORDS.txt" {"clop", def_clop}, -#line 95 "KEYWORDS.txt" +#line 103 "KEYWORDS.txt" {"nulco", def_nulco}, -#line 30 "KEYWORDS.txt" - {"/", tdiv_q}, -#line 72 "KEYWORDS.txt" +#line 16 "KEYWORDS.txt" + {">", def_gt}, +#line 80 "KEYWORDS.txt" {"disenstacken", def_disenstacken}, {""}, -#line 133 "KEYWORDS.txt" - {"tuck", def_tuck}, -#line 132 "KEYWORDS.txt" - {"third", def_third}, - {""}, -#line 138 "KEYWORDS.txt" +#line 67 "KEYWORDS.txt" + {"appN", def_appN}, +#line 128 "KEYWORDS.txt" + {"shunt", def_shunt}, +#line 90 "KEYWORDS.txt" + {"fourth", def_fourth}, +#line 150 "KEYWORDS.txt" {"unswons", def_unswons}, -#line 94 "KEYWORDS.txt" +#line 102 "KEYWORDS.txt" {"not", def_not}, -#line 79 "KEYWORDS.txt" +#line 87 "KEYWORDS.txt" {"enstacken", def_enstacken}, {""}, -#line 114 "KEYWORDS.txt" +#line 126 "KEYWORDS.txt" {"second", def_second}, #line 21 "KEYWORDS.txt" {">=", def_ge}, -#line 113 "KEYWORDS.txt" +#line 125 "KEYWORDS.txt" {"run", def_run}, #line 42 "KEYWORDS.txt" {"loop", loop}, -#line 116 "KEYWORDS.txt" - {"shunt", def_shunt}, -#line 82 "KEYWORDS.txt" - {"fourth", def_fourth}, {""}, {""}, -#line 59 "KEYWORDS.txt" - {"appN", def_appN}, - {""}, -#line 118 "KEYWORDS.txt" - {"spiral_next", def_spiral_next}, -#line 129 "KEYWORDS.txt" - {"tailrec", def_tailrec}, -#line 23 "KEYWORDS.txt" - {"mod", tdiv_r}, -#line 117 "KEYWORDS.txt" - {"size", def_size}, - {""}, -#line 91 "KEYWORDS.txt" - {"infrst", def_infrst}, -#line 60 "KEYWORDS.txt" - {"at", def_at}, -#line 83 "KEYWORDS.txt" - {"gcd", def_gcd}, -#line 58 "KEYWORDS.txt" - {"app3", def_app3}, -#line 115 "KEYWORDS.txt" +#line 160 "KEYWORDS.txt" + {"_timest", def__timest}, +#line 27 "KEYWORDS.txt" + {"add", add}, +#line 145 "KEYWORDS.txt" + {"tuck", def_tuck}, +#line 127 "KEYWORDS.txt" {"shift", def_shift}, -#line 28 "KEYWORDS.txt" - {"-", sub}, -#line 50 "KEYWORDS.txt" - {"lt", def_lt}, -#line 124 "KEYWORDS.txt" - {"stuncons", def_stuncons}, -#line 74 "KEYWORDS.txt" - {"drop", def_drop}, -#line 90 "KEYWORDS.txt" - {"infra", def_infra}, - {""}, -#line 97 "KEYWORDS.txt" - {"of", def_of}, - {""}, -#line 57 "KEYWORDS.txt" +#line 130 "KEYWORDS.txt" + {"spiral_next", def_spiral_next}, +#line 18 "KEYWORDS.txt" + {"!=", def_neq}, +#line 137 "KEYWORDS.txt" + {"sum", def_sum}, +#line 65 "KEYWORDS.txt" {"app2", def_app2}, {""}, -#line 122 "KEYWORDS.txt" - {"stackd", def_stackd}, +#line 99 "KEYWORDS.txt" + {"infrst", def_infrst}, +#line 159 "KEYWORDS.txt" + {"_times1", def__times1}, +#line 161 "KEYWORDS.txt" + {"map", def_map}, +#line 153 "KEYWORDS.txt" + {"step", def_step}, + {""}, +#line 156 "KEYWORDS.txt" + {"_stept", def__stept}, +#line 50 "KEYWORDS.txt" + {"lt", def_lt}, +#line 136 "KEYWORDS.txt" + {"stuncons", def_stuncons}, +#line 82 "KEYWORDS.txt" + {"drop", def_drop}, + {""}, {""}, +#line 105 "KEYWORDS.txt" + {"of", def_of}, + {""}, +#line 64 "KEYWORDS.txt" + {"app1", def_app1}, +#line 157 "KEYWORDS.txt" + {"times", def_times}, +#line 155 "KEYWORDS.txt" + {"_step1", def__step1}, #line 52 "KEYWORDS.txt" {"le", def_le}, -#line 119 "KEYWORDS.txt" +#line 131 "KEYWORDS.txt" {"split_at", def_split_at}, -#line 56 "KEYWORDS.txt" - {"app1", def_app1}, -#line 120 "KEYWORDS.txt" +#line 129 "KEYWORDS.txt" + {"size", def_size}, +#line 132 "KEYWORDS.txt" {"split_list", def_split_list}, -#line 66 "KEYWORDS.txt" +#line 74 "KEYWORDS.txt" {"cleave", def_cleave}, -#line 61 "KEYWORDS.txt" - {"average", def_average}, - {""}, -#line 123 "KEYWORDS.txt" - {"step_zero", def_step_zero}, - {""}, -#line 84 "KEYWORDS.txt" - {"genrec", def_genrec}, -#line 99 "KEYWORDS.txt" - {"pm", def_pm}, -#line 137 "KEYWORDS.txt" - {"unquoted", def_unquoted}, -#line 88 "KEYWORDS.txt" - {"ifte", def_ifte}, - {""}, {""}, -#line 106 "KEYWORDS.txt" - {"product", def_product}, - {""}, -#line 110 "KEYWORDS.txt" - {"reco", def_reco}, - {""}, -#line 62 "KEYWORDS.txt" - {"b", def_b}, -#line 80 "KEYWORDS.txt" - {"flatten", def_flatten}, - {""}, {""}, {""}, -#line 107 "KEYWORDS.txt" - {"quoted", def_quoted}, -#line 49 "KEYWORDS.txt" - {"gt", def_gt}, - {""}, -#line 130 "KEYWORDS.txt" - {"take", def_take}, -#line 45 "KEYWORDS.txt" - {"stack", stack}, -#line 26 "KEYWORDS.txt" - {"+", add}, -#line 73 "KEYWORDS.txt" - {"down_to_zero", def_down_to_zero}, -#line 109 "KEYWORDS.txt" - {"range_to_zero", def_range_to_zero}, -#line 32 "KEYWORDS.txt" - {"bool", truthy}, - {""}, -#line 55 "KEYWORDS.txt" - {"anamorphism", def_anamorphism}, -#line 53 "KEYWORDS.txt" - {"ge", def_ge}, +#line 141 "KEYWORDS.txt" + {"tailrec", def_tailrec}, #line 25 "KEYWORDS.txt" {"mul", mul}, +#line 135 "KEYWORDS.txt" + {"step_zero", def_step_zero}, +#line 95 "KEYWORDS.txt" + {"hypot", def_hypot}, +#line 70 "KEYWORDS.txt" + {"b", def_b}, +#line 68 "KEYWORDS.txt" + {"at", def_at}, +#line 106 "KEYWORDS.txt" + {"pam", def_pam}, +#line 96 "KEYWORDS.txt" + {"ifte", def_ifte}, +#line 166 "KEYWORDS.txt" + {"_map2", def__map2}, {""}, -#line 108 "KEYWORDS.txt" - {"range", def_range}, -#line 24 "KEYWORDS.txt" - {"*", mul}, -#line 111 "KEYWORDS.txt" - {"reverse", def_reverse}, -#line 125 "KEYWORDS.txt" - {"sum", def_sum}, +#line 114 "KEYWORDS.txt" + {"product", def_product}, +#line 91 "KEYWORDS.txt" + {"gcd", def_gcd}, +#line 118 "KEYWORDS.txt" + {"reco", def_reco}, +#line 98 "KEYWORDS.txt" + {"infra", def_infra}, +#line 30 "KEYWORDS.txt" + {"/", tdiv_q}, +#line 104 "KEYWORDS.txt" + {"nullary", def_nullary}, +#line 149 "KEYWORDS.txt" + {"unquoted", def_unquoted}, +#line 66 "KEYWORDS.txt" + {"app3", def_app3}, +#line 163 "KEYWORDS.txt" + {"_mape", def__mape}, +#line 134 "KEYWORDS.txt" + {"stackd", def_stackd}, + {""}, {""}, +#line 32 "KEYWORDS.txt" + {"bool", truthy}, +#line 165 "KEYWORDS.txt" + {"_map1", def__map1}, +#line 122 "KEYWORDS.txt" + {"rollup", def_rollup}, +#line 20 "KEYWORDS.txt" + {"<=", def_le}, +#line 123 "KEYWORDS.txt" + {"rolldown", def_rolldown}, + {""}, {""}, +#line 115 "KEYWORDS.txt" + {"quoted", def_quoted}, +#line 58 "KEYWORDS.txt" + {"||", def_VERTICAL_LINE_VERTICAL_LINE}, +#line 60 "KEYWORDS.txt" + {"<{}", def_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET}, + {""}, +#line 146 "KEYWORDS.txt" + {"unary", def_unary}, +#line 92 "KEYWORDS.txt" + {"genrec", def_genrec}, +#line 81 "KEYWORDS.txt" + {"down_to_zero", def_down_to_zero}, +#line 29 "KEYWORDS.txt" + {"sub", sub}, {""}, #line 34 "KEYWORDS.txt" {"clear", clear}, + {""}, +#line 88 "KEYWORDS.txt" + {"flatten", def_flatten}, {""}, {""}, -#line 98 "KEYWORDS.txt" - {"pam", def_pam}, - {""}, -#line 139 "KEYWORDS.txt" +#line 151 "KEYWORDS.txt" {"while", def_while}, -#line 22 "KEYWORDS.txt" - {"%", tdiv_r}, +#line 71 "KEYWORDS.txt" + {"binary", def_binary}, +#line 19 "KEYWORDS.txt" + {"<>", def_neq}, +#line 31 "KEYWORDS.txt" + {"div", tdiv_q}, {""}, -#line 29 "KEYWORDS.txt" - {"sub", sub}, -#line 47 "KEYWORDS.txt" - {"swap", swap}, #line 40 "KEYWORDS.txt" {"first", first}, - {""}, {""}, -#line 54 "KEYWORDS.txt" - {"abs", def_abs}, +#line 63 "KEYWORDS.txt" + {"anamorphism", def_anamorphism}, +#line 49 "KEYWORDS.txt" + {"gt", def_gt}, +#line 117 "KEYWORDS.txt" + {"range_to_zero", def_range_to_zero}, #line 44 "KEYWORDS.txt" {"rest", rest}, -#line 126 "KEYWORDS.txt" - {"swapd", def_swapd}, - {""}, -#line 128 "KEYWORDS.txt" - {"swoncat", def_swoncat}, - {""}, -#line 81 "KEYWORDS.txt" - {"fork", def_fork}, -#line 127 "KEYWORDS.txt" - {"swons", def_swons}, - {""}, -#line 134 "KEYWORDS.txt" - {"unary", def_unary}, - {""}, {""}, {""}, {""}, -#line 87 "KEYWORDS.txt" - {"hypot", def_hypot}, - {""}, -#line 96 "KEYWORDS.txt" - {"nullary", def_nullary}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 93 "KEYWORDS.txt" - {"neg", def_neg}, +#line 120 "KEYWORDS.txt" + {"roll>", def_roll_GREATER_THAN_SIGN}, +#line 24 "KEYWORDS.txt" + {"*", mul}, +#line 158 "KEYWORDS.txt" + {"_times0", def__times0}, {""}, {""}, +#line 116 "KEYWORDS.txt" + {"range", def_range}, + {""}, +#line 53 "KEYWORDS.txt" + {"ge", def_ge}, + {""}, +#line 142 "KEYWORDS.txt" + {"take", def_take}, +#line 45 "KEYWORDS.txt" + {"stack", stack}, +#line 55 "KEYWORDS.txt" + {"?", def_QUESTION_MARK}, +#line 140 "KEYWORDS.txt" + {"swoncat", def_swoncat}, + {""}, {""}, +#line 139 "KEYWORDS.txt" + {"swons", def_swons}, +#line 154 "KEYWORDS.txt" + {"_step0", def__step0}, + {""}, +#line 62 "KEYWORDS.txt" + {"abs", def_abs}, +#line 89 "KEYWORDS.txt" + {"fork", def_fork}, +#line 162 "KEYWORDS.txt" + {"_map?", def__map_QUESTION_MARK}, +#line 17 "KEYWORDS.txt" + {"<", def_lt}, +#line 56 "KEYWORDS.txt" + {"&&", def_AMPERSAND_AMPERSAND}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 47 "KEYWORDS.txt" + {"swap", swap}, + {""}, +#line 22 "KEYWORDS.txt" + {"%", tdiv_r}, +#line 69 "KEYWORDS.txt" + {"average", def_average}, + {""}, {""}, +#line 138 "KEYWORDS.txt" + {"swapd", def_swapd}, #line 33 "KEYWORDS.txt" {"branch", branch}, - {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 124 "KEYWORDS.txt" + {"rrest", def_rrest}, + {""}, +#line 119 "KEYWORDS.txt" + {"reverse", def_reverse}, + {""}, {""}, +#line 164 "KEYWORDS.txt" + {"_map0", def__map0}, + {""}, +#line 143 "KEYWORDS.txt" + {"ternary", def_ternary}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 100 "KEYWORDS.txt" + {"make_generator", def_make_generator}, +#line 121 "KEYWORDS.txt" + {"roll<", def_roll_LESS_THAN_SIGN}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 61 "KEYWORDS.txt" + {"<<{}", def_LESS_THAN_SIGN_LESS_THAN_SIGN_LEFT_CURLY_BRACKET_RIGHT_CURLY_BRACKET}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, +#line 93 "KEYWORDS.txt" + {"grabN", def_grabN}, #line 46 "KEYWORDS.txt" {"swaack", swaack}, + {""}, +#line 101 "KEYWORDS.txt" + {"neg", def_neg}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 112 "KEYWORDS.txt" - {"rrest", def_rrest}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 63 "KEYWORDS.txt" - {"binary", def_binary}, -#line 92 "KEYWORDS.txt" - {"make_generator", def_make_generator}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 85 "KEYWORDS.txt" - {"grabN", def_grabN}, - {""}, {""}, {""}, {""}, {""}, {""}, #line 48 "KEYWORDS.txt" {"eq", def_eq}, #line 51 "KEYWORDS.txt" {"neq", def_neq}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 133 "KEYWORDS.txt" + {"sqr", def_sqr}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 86 "KEYWORDS.txt" - {"grba", def_grba}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 131 "KEYWORDS.txt" - {"ternary", def_ternary}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 121 "KEYWORDS.txt" - {"sqr", def_sqr} +#line 94 "KEYWORDS.txt" + {"grba", def_grba} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/implementations/defs.txt b/implementations/defs.txt index 251127e..65cc47c 100644 --- a/implementations/defs.txt +++ b/implementations/defs.txt @@ -82,7 +82,7 @@ size [pop ++] step_zero spiral_next [[[abs] ii <=] [[<>] [pop !-] ||] &&] [[!-] [[++]] [[--]] ifte dip] [[pop !-] [--] [++] ifte] ifte split_at [drop] [take] clop split_list [take reverse] [drop] clop -sqr dup * +sqr dup mul stackd [stack] dip step_zero 0 roll> step stuncons stack uncons @@ -90,7 +90,6 @@ sum [+] step_zero swapd [swap] dip swons swap cons swoncat swap concat -sqr dup mul tailrec [i] genrec take <<{} [shift] times pop ternary binary popd