From b4ed9d489f7401ee0cd8a6d6e8ce9d97f0dc7833 Mon Sep 17 00:00:00 2001 From: Phil Burk Date: Sun, 4 Dec 2022 13:25:39 -0800 Subject: [PATCH] Add [DEFINED] and [UNDEFINED] (#127) Also add tests. Fixes #111 --- fth/condcomp.fth | 12 +++++++++++- fth/t_corex.fth | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/fth/condcomp.fth b/fth/condcomp.fth index dc65c6b..762cde8 100644 --- a/fth/condcomp.fth +++ b/fth/condcomp.fth @@ -46,5 +46,15 @@ anew task-condcomp.fth : EXISTS? ( -- flag , true if defined ) bl word find - swap drop + nip 0<> +; immediate + +: [DEFINED] ( -- flag , true if defined, ANS ) + bl word find + nip 0<> +; immediate + +: [UNDEFINED] ( -- flag , true if not defined, ANS ) + bl word find + nip 0= ; immediate diff --git a/fth/t_corex.fth b/fth/t_corex.fth index f2b3f19..c37252a 100644 --- a/fth/t_corex.fth +++ b/fth/t_corex.fth @@ -330,5 +330,19 @@ T{ s" unknown-query-string" ENVIRONMENT? }T{ FALSE }T T{ s" MAX-CHAR" ENVIRONMENT? }T{ 255 TRUE }T T{ s" ADDRESS-UNITS-BITS" ENVIRONMENT? }T{ 8 TRUE }T +\ ----------------------------------------------------- PROGRAMMING + +T{ exists? words }T{ true }T \ high level +T{ exists? swap }T{ true }T \ in kernel +T{ exists? lkajsdlakjs }T{ false }T + +T{ [defined] if }T{ true }T \ high level +T{ [defined] dup }T{ true }T \ in kernel +T{ [defined] k23jh42 }T{ false }T + +T{ [undefined] if }T{ false }T \ high level +T{ [undefined] dup }T{ false }T \ in kernel +T{ [undefined] k23jh42 }T{ true }T + }TEST -- 2.30.2