--- gforth/look.fs 1995/11/07 18:06:48 1.3 +++ gforth/look.fs 1997/07/06 14:29:33 1.8 @@ -28,28 +28,39 @@ decimal -\ >NAME PRIMSTART 22may93jaw - -\ : >name ( xt -- nfa ) -\ BEGIN 1 chars - -\ dup c@ 128 and -\ UNTIL ; - -: PrimStart ['] true >name ; - \ look 17may93jaw +\ rename to discover!!! + : (look) ( xt startlfa -- lfa flag ) false swap BEGIN @ dup - WHILE dup name> + WHILE dup name>int 3 pick = IF nip dup THEN REPEAT drop nip dup 0<> ; + +\ !!! nicht optimal! +[IFUNDEF] look +[IFUNDEF] dictionary-end has-rom [ELSE] false [THEN] +[IF] + +: look ( cfa -- lfa flag ) + forth-wordlist @ (look) ; + +[ELSE] + +: PrimStart ['] true >name ; + : look ( cfa -- lfa flag ) - dup forthstart < - IF PrimStart (look) - ELSE >name true THEN ; + dup dictionary-end forthstart within + IF + PrimStart (look) + ELSE + >name dup ??? <> + THEN ; +[THEN] +[THEN]