File: checkans.fs

package info (click to toggle)
gforth 0.7.2%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 5,332 kB
  • ctags: 2,064
  • sloc: ansic: 8,506; sh: 3,643; lisp: 1,780; makefile: 984; yacc: 186; sed: 141; lex: 102; awk: 21
file content (57 lines) | stat: -rw-r--r-- 1,487 bytes parent folder | download | duplicates (10)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
\ CHECKANS.STR ANS Forth wordset checker                01may93jaw

\ 1-3MAY93 Jens A. Wilke
\ This program is public domain

DECIMAL

VARIABLE CharCount
30 CONSTANT MaxChars
VARIABLE Flag

CREATE Names 125 CELLS ALLOT
VARIABLE PNT Names PNT !

: INIT TRUE Flag ! 0 CharCount ! ;

: ^     PNT @ DUP @ 1+ SWAP !
        BL WORD FIND
        0= IF PNT @ CELL+ DUP @ 1+ SWAP !
              Flag @ IF CR ." Missing: " FALSE Flag ! THEN
              COUNT DUP CharCount +! TYPE SPACE
              CharCount @ MaxChars U< 0= IF CR 9 SPACES 0 CharCount ! THEN
           ELSE DROP THEN ;

: PLACE ( adr cnt adr -- ) 2DUP C! 1+ SWAP MOVE ;

: WS    INIT
        PNT @ 2 CELLS + PNT !
        BL WORD
        CR CR ." Checking " DUP COUNT TYPE ."  wordset..."
        DUP COUNT PNT @ PLACE COUNT SWAP DROP 1+
        PNT @ + ALIGNED DUP PNT !
        DUP 0 SWAP ! CELL+ 0 SWAP ! ;

S" ./../wordsets.fs" INCLUDED

: END
        CR CR ." Wordset:            Status:  Words:" CR

        Names 2 CELLS +
        BEGIN
                DUP COUNT TYPE
                DUP COUNT SWAP DROP 20 SWAP - SPACES
                COUNT + ALIGNED
                DUP @ OVER CELL+ @
                2DUP 0=
                IF ." complete " . DROP DROP
                ELSE OVER =
                 IF ." missing  " . DROP
                 ELSE ." partial  " OVER SWAP - . ." / " .
                 THEN
                THEN CR
                2 CELLS +
                DUP PNT @ U< 0=
        UNTIL DROP ;

END