Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4867 leency 1
 
2
3
 
4
: VOCS
5
        VOC-LIST
6
        BEGIN @ DUP WHILE
7
                DUP CELL+ VOC-NAME.
8
                DUP 3 CELLS + @ \ wid предка
9
                ?DUP IF ."  defined in "  VOC-NAME.
10
                     ELSE ."  is the main vocabulary"
11
                     THEN CR
12
        REPEAT
13
        DROP
14
;
15
16
 
17
18
 
19
[IF] : NEAR_NFA ( addr -- NFA addr | 0 addr ) DUP  WordByAddr DROP 1- SWAP
20
        2DUP 1000 - U< IF NIP 0 SWAP THEN ;
21
[THEN]
22
23
 
24
 \ It does not take wordlists into account.
25
: NextNFA ( nfa1 -- nfa2 | 0 )
26
    NEAR_NFA SWAP >R
27
    BEGIN
28
      1+ NEAR_NFA ( nfa addr )
29
      OVER 0 >
30
      ROT R@ <> AND
31
      OVER R@ - MAX-WORD-SIZE > OR
32
    UNTIL
33
34
 
35
    IF DROP 0
36
    ELSE  NEAR_NFA DROP
37
    THEN
38
;
39
40
 
41
    @ \ last nfa
42
    BEGIN  ( nfa 'nfa )
43
      DUP
44
    WHILE
45
      2DUP = IF 2DROP TRUE EXIT THEN
46
      CDR
47
    REPEAT 2DROP 0
48
;
49
50
 
51
    VOC-LIST
52
    BEGIN @ DUP WHILE ( nfa voc )
53
           2DUP CELL+ NFAInVoc?
54
           IF
55
              NIP CELL+ EXIT
56
           THEN
57
    REPEAT
58
    2DROP 0
59
;
60