From daemon Sat Feb 17 13:14 MEZ 1990 Status: R Received: by vip.at; Sat, 17 Feb 90 13:14:09 +0100 Date: Sat, 17 Feb 90 13:14:09 +0100 From: root (Superuser) Apparently-To: ertl >From mcsun!vax1.tcd.ie!trolfs Sat Feb 17 13:05:02 1990 remote from tuvie Received: by mcsun.EU.net via EUnet; Sat, 17 Feb 90 10:55:12 +0100 (MET) Message-Id: <9002170955.AA16711@mcsun.EU.net> Received: from csclna.cs.tcd.ie by kestrel.Ukc.AC.UK with UUCP id aa04960; 17 Feb 90 9:45 GMT Received: from swift by csclna.csclna.cs.tcd.ie id ao18162; 17 Feb 90 2:55 GMT Received: from vax1.tcd.ie by cs.tcd.ie; Sat, 17 Feb 90 02:44 GMT Date: Sat, 17 Feb 90 02:37 GMT From: On-Line Information Service Subject: OLIS: CALC file To: vip!ertl X-Vms-To: IN%"ertl@vip.uucp" Here is an intentional simple infix calculator in Forth: +----------------------------------------------+ | : task ; variable mode 0 mode ! | | | | : calc mode @ 1 = if + exit then | | mode @ 2 = if - exit then | | mode @ 3 = if * exit then | | mode @ 4 = if / then ; | | | | : + mode @ if calc then 1 mode ! ; | | : - mode @ if calc then 2 mode ! ; | | : * mode @ if calc then 3 mode ! ; | | : / mode @ if calc then 4 mode ! ; | | : = mode @ if calc then 0 mode ! ; | | | | \ example: 17 * 2 + 16 / 2 - 17 --> 8 | +----------------------------------------------+ In order to avoid strange results in your later routines, please { forget task } after you have run this code.