Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"There... I've run rings 'round you logically" -- Monty Python's Flying Circus


devel / comp.lang.forth / Re: frog tree walk

SubjectAuthor
* frog tree walkS Jack
`- Re: frog tree walkS Jack

1
frog tree walk

<51b3ccdc-7ac7-4a24-a0cd-e081ecb9ea30n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=17409&group=comp.lang.forth#17409

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5883:0:b0:2e1:c6f9:a12f with SMTP id t3-20020ac85883000000b002e1c6f9a12fmr28663968qta.439.1648571003517;
Tue, 29 Mar 2022 09:23:23 -0700 (PDT)
X-Received: by 2002:a05:6214:d4e:b0:441:18d8:8366 with SMTP id
14-20020a0562140d4e00b0044118d88366mr27323624qvr.46.1648571003221; Tue, 29
Mar 2022 09:23:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 29 Mar 2022 09:23:22 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:3f7a:20d0:4011:5b69:10fc:b1c0;
posting-account=V5nGoQoAAAC_P2U0qnxm2kC0s1jNJXJa
NNTP-Posting-Host: 2600:1700:3f7a:20d0:4011:5b69:10fc:b1c0
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <51b3ccdc-7ac7-4a24-a0cd-e081ecb9ea30n@googlegroups.com>
Subject: frog tree walk
From: sdwjac...@gmail.com (S Jack)
Injection-Date: Tue, 29 Mar 2022 16:23:23 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 32
 by: S Jack - Tue, 29 Mar 2022 16:23 UTC

The following is a Frog implementation of Henry Laxsen's tree walk
example from Forth Dimensions Volume IV, No. 3.
Had to make 3 modifications to make it work with Fig and Frog.
Also changed the last child nodes to be data (called CRITIQUEs) to avoid
non-unique name warnings.

: TREE:LINK ( addr -- ) HERE OVER @ , SWAP ! ;
: TREE:ROOT ( ccc<bl> -- ) CREATE 0 , ( siblings ) 0 , ( children )
BEGIN [ swap 1- ] ( dealing with compiler security )
DOES CELL+ CREATE TREE:LINK ( siblings ) 0 , ( children )
[ 1+ swap ] ( dealing with compiler security )
AGAIN ; ( does not loop but effects a "goto" to BEGIN )
0 VAR TREE:INDENT
: TREE:NAME ( pfa -- ) CR TREE:INDENT @ SPACES NFA ID. ;
: TREE:DATA ( ccc<bl> ) PPN ' , ;
: TREE:INORDER ( dfa -- ) BEGIN @ DUP WHILE DUP CELL- TREE:NAME
DUP CELL+ @ 0= IF DUP 2 CELLS + @ ?DUP IF EXECUTE FI FI
3 TREE:INDENT +! DUP DFA RECURSE -3 TREE:INDENT +! REPEAT DROP ;
: TREE:SHOW ( ccc<bl> -- ) CR 0 TREE:INDENT ! PPN ' DUP TREE:NAME
CR DFA CELL+ TREE:INORDER ;
: CRITIQUE: CREATE LATEST , DOES @ NAME 1- 1 /+- TAB TYPE ;
CRITIQUE: 'OKAY' CRITIQUE: 'GREAT' CRITIQUE: 'GOOD' CRITIQUE: 'OUTSTANDING'
TREE:ROOT Poet
poet Keats poet Shelly poet Byron poet Milton
keats Endymion TREE:DATA 'GOOD' keats Nightingale TREE:DATA 'GREAT'
keats Hyperion TREE:DATA 'OKAY' shelly Alastor TREE:DATA 'GOOD'
shelly Adonais TREE:DATA 'GREAT' shelly Prometheus TREE:DATA 'GOOD'
byron Childe-Harold TREE:DATA 'OKAY' byron Manfred TREE:DATA 'GOOD'
byron Don-Juan TREE:DATA 'GREAT' milton Paradise-Lost TREE:DATA 'OUTSTANDING'
milton Lycidas TREE:DATA 'OUTSTANDING' milton Allegro TREE:DATA 'GREAT'
25 tabstop ! TREE:SHOW Poet
--
me

Re: frog tree walk

<802df418-406a-4acb-ac3d-30cebc216a75n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=17410&group=comp.lang.forth#17410

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:1643:b0:42c:2865:d1e7 with SMTP id f3-20020a056214164300b0042c2865d1e7mr27811924qvw.52.1648571357219;
Tue, 29 Mar 2022 09:29:17 -0700 (PDT)
X-Received: by 2002:a05:620a:31a0:b0:67d:7500:1752 with SMTP id
bi32-20020a05620a31a000b0067d75001752mr21021601qkb.485.1648571356974; Tue, 29
Mar 2022 09:29:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 29 Mar 2022 09:29:16 -0700 (PDT)
In-Reply-To: <51b3ccdc-7ac7-4a24-a0cd-e081ecb9ea30n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:3f7a:20d0:4011:5b69:10fc:b1c0;
posting-account=V5nGoQoAAAC_P2U0qnxm2kC0s1jNJXJa
NNTP-Posting-Host: 2600:1700:3f7a:20d0:4011:5b69:10fc:b1c0
References: <51b3ccdc-7ac7-4a24-a0cd-e081ecb9ea30n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <802df418-406a-4acb-ac3d-30cebc216a75n@googlegroups.com>
Subject: Re: frog tree walk
From: sdwjac...@gmail.com (S Jack)
Injection-Date: Tue, 29 Mar 2022 16:29:17 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 25
 by: S Jack - Tue, 29 Mar 2022 16:29 UTC

Should give the following:

TREE:SHOW Poet

Poet

Milton
Allegro GREAT
Lycidas OUTSTANDING
Paradise-Lost OUTSTANDING
Byron
Don-Juan GREAT
Manfred GOOD
Childe-Harold OKAY
Shelly
Prometheus GOOD
Adonais GREAT
Alastor GOOD
Keats
Hyperion OKAY
Nightingale GREAT
Endymion GOOD

--
me

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor