File: wordslik.fth

package info (click to toggle)
pforth 21-10
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 820 kB
  • ctags: 873
  • sloc: ansic: 5,050; makefile: 102
file content (44 lines) | stat: -rw-r--r-- 1,131 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
\ @(#) wordslik.fth 98/01/26 1.2
\
\ WORDS.LIKE  ( <string> -- , search for words that contain string )
\
\ Enter:   WORDS.LIKE +
\ Enter:   WORDS.LIKE EMIT
\
\ Author: Phil Burk
\ Copyright 1994 3DO, Phil Burk, Larry Polansky, Devid Rosenboom
\
\ The pForth software code is dedicated to the public domain,
\ and any third party may reproduce, distribute and modify
\ the pForth software code or any derivative works thereof
\ without any compensation or license.  The pForth software
\ code is provided on an "as is" basis without any warranty
\ of any kind, including, without limitation, the implied
\ warranties of merchantability and fitness for a particular
\ purpose and their equivalents under the laws of any jurisdiction.

anew task-wordslik.fth
decimal


: PARTIAL.MATCH.NAME  ( $str1 nfa  -- flag , is $str1 in nfa ??? )
	count $ 1F and
	rot count
	search
	>r 2drop r>
;

: WORDS.LIKE  ( <name> -- , print all words containing substring )
	BL word latest
	>newline
	BEGIN
		prevname dup 0<> \ get previous name in dictionary
	WHILE
		2dup partial.match.name
		IF
			dup id. tab
			cr?
		THEN
	REPEAT 2drop
	>newline
;