SYMBOL: effect-var
-SYMBOL: in-definition
-
<PRIVATE
: end-token? ( end token -- token ? ) [ nip ] [ = ] 2bi ; inline
: effect-opener? ( token -- token ? ) dup { f "(" "((" "--" } member? ; inline
: parse-call( ( accum word -- accum )
[ ")" parse-effect ] dip 2array append! ;
+SYMBOL: in-definition
+
ERROR: can't-nest-definitions word ;
: check-in-definition ( -- )
in-definition get [ word can't-nest-definitions ] when ;
-: in-definition ( quot -- )
+: with-definition ( quot -- )
[ check-in-definition t in-definition ] dip with-variable ; inline
: (:) ( -- word def effect )
scan-new-word
scan-effect
parse-definition swap
- ] in-definition ;
+ ] with-definition ;