diff --git a/thun/gnu-prolog/defs.pl b/thun/gnu-prolog/defs.pl index 1007c10..9e6c86a 100644 --- a/thun/gnu-prolog/defs.pl +++ b/thun/gnu-prolog/defs.pl @@ -17,11 +17,9 @@ def(dinfrirst,[dip,infrst]). def(disenstacken,[?,[uncons,?],loop,pop]). def(down_to_zero,[[0,>],[dup,--],while]). def(drop,[[rest],times]). -def(dupd,[[dup],dip]). def(dupdd,[[dup],dipd]). def(dupdipd,[dup,dipd]). def(enstacken,[stack,[clear],dip]). -def(flatten,[[],swap,[concat],step]). def(fork,[[i],app2]). def(fourth,[rest,third]). def(gcd,[true,[tuck,mod,dup,0,>],loop,pop]). @@ -52,7 +50,6 @@ def(reverse,[[],swap,shunt]). def(rrest,[rest,rest]). def(run,[[],swap,infra]). def(second,[rest,first]). -def(shift,[uncons,[swons],dip]). def(shunt,[[swons],step]). def(size,[0,swap,[pop,++],step]). def(split_at,[[drop],[take],clop]). @@ -64,7 +61,6 @@ def(take,[[],rolldown,[shift],times,pop]). def(ternary,[binary,popd]). def(third,[rest,second]). def(unary,[nullary,popd]). -def(unit,[[],cons]). def(unquoted,[[i],dip]). def(unswons,[uncons,swap]). def(while,[swap,[nullary],cons,dup,dipd,concat,loop]). diff --git a/thun/gnu-prolog/meta-defs.pl b/thun/gnu-prolog/meta-defs.pl index d763561..e7a49fd 100644 --- a/thun/gnu-prolog/meta-defs.pl +++ b/thun/gnu-prolog/meta-defs.pl @@ -6,9 +6,12 @@ do :- assert_defs(`defs.txt`), print_defs, halt. joy_def(def(Def, Body)) --> symbol(Def), blanks, "==", joy_parse(Body). -joy_defs --> blanks, joy_def(Def), {assert_def(Def)}, blanks, joy_defs. +joy_def --> joy_def(Def), {ignore(assert_def(Def))}. + +joy_defs --> blanks, joy_def, blanks, joy_defs. joy_defs --> []. + assert_defs(DefsFile) :- read_file_to_codes(DefsFile, Codes, []), phrase(joy_defs, Codes). @@ -42,3 +45,7 @@ print_defs :- print_def(Stream, Def) :- write(Stream, Def), write(Stream, `.`), nl(Stream). + +ignore(Goal) :- Goal, !. +ignore(_). +