Prevent definitions from shadowing functions.

This commit is contained in:
Simon Forman 2019-08-09 16:53:40 -07:00
parent 49491bceef
commit cbf2af18e5
1 changed files with 4 additions and 1 deletions

View File

@ -202,7 +202,9 @@ Definitions
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) :-
@ -210,6 +212,7 @@ assert_defs(DefsFile) :-
phrase(joy_defs, Codes).
assert_def(def(Def, Body)) :-
\+ func(Def, _, _),
retractall(def(Def, _)),
assertz(def(Def, Body)).