Path: ...!news.misty.com!weretis.net!feeder9.news.weretis.net!i2pn.org!i2pn2.org!.POSTED!not-for-mail From: dxf Newsgroups: comp.lang.forth Subject: Re: Number parsing with checks Date: Mon, 14 Oct 2024 21:52:31 +1100 Organization: i2pn2 (i2pn.org) Message-ID: <346818c923794a45a2efc6b0eb9c962e9f0776b8@i2pn2.org> References: <636c943eae41d9a5832ce5a94414cb81be04a44f@i2pn2.org> <59b4fdfd0718fbe6e37c645925b7bf0b5ac86dde@i2pn2.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Injection-Date: Mon, 14 Oct 2024 10:52:31 -0000 (UTC) Injection-Info: i2pn2.org; logging-data="1984933"; mail-complaints-to="usenet@i2pn2.org"; posting-account="XPw7UV90Iy7EOhY4YuUXhpdoEf5Vz7K+BsxA/Cx8bVc"; User-Agent: Mozilla Thunderbird In-Reply-To: X-Spam-Checker-Version: SpamAssassin 4.0.0 Content-Language: en-GB Bytes: 2119 Lines: 26 On 13/10/2024 1:20 pm, Ruvim wrote: > ... > > Typically, if word name ends with a question mark, the first (top) output > > parameter of the word is a *flag*. And it's true for all standard words. > > (though, opposite is not true) > ... > These names follow the common convention. A question mark at the beginning of > a name means that the word does something or does nothing depending on certain > conditions. > > Well known nonstandard words: `?stack` `?csp` `?comp` `?exec` > Standard words: `?do` `?dup` Here is Forth Inc's convention as provided in Forth Programmer's Handbook. It appears more flexible than what you describe above. ?name Check condition, return true if yes ?TERMINAL Conditional operator ?DUP Check condition, abort if bad ?STACK Fetch contents of name and display ?N [..] name? Same as ?name B? The lack of differentiation between ?NAME and NAME? is likely due to early forth storing names as 3 characters plus count.