( Copyright PPC Paris et l'Auteur 1987 ) HEX ( dÅcrypte un mot sachant son NFA ) : PR-WORD ( NFA -- ) DUP COUNT 1F AND TYPE SPACE DUP 5- FENCE @ < ( mot protÅgÅ ? ) IF ." * " ELSE 2 SPACES THEN 1 TRAVERSE 2+ DUP @ E7160 = ( est-ce un vocabulaire, contexte, courant ? ) IF ." voc: " 9 + DUP CONTEXT @ = IF ." ct. " ELSE 4 SPACES THEN CURRENT @ = IF ." cu. " ELSE 3 SPACES THEN ELSE DROP ." w." THEN ; : CATALOG ( -- ) ( pas d'interruption, sauvegarde de la pile ) F 2F441 N! S0 >R SP@ SP0 ! CONTEXT @ @ ( on remonte la chaÑne È partir du dernier NFA ) BEGIN DUP PR-WORD KEY CASE E OF SP! R> SP0 ! 0 2F441 ! -1 ENDOF CR ( [ON] ) 12 OF CONTEXT @ OVER < IF DUP 5- @ THEN 0 ENDOF ( [^] ) 13 OF DEPTH 1 > IF DROP THEN 0 ENDOF 0 SWAP ( [v] ) ENDCASE ( autre touche, on ne fait rien ) UNTIL ; ( renvoie le nombre de quartets libres ) : MEM ( -- n ) SP@ 1C1 - HERE - ; DECIMAL ( Syntaxe : ) ( % 'ligne Basic' ) ( par exemple : ) ( % BEEP 200,.5 <=> " BEEP 200,.5" BASICX ) ( $ filename,commande ) ( $ TOTO,12,T <=> " EDTEXT TOTO,'12,T'" BASICX ) ( % et $ se servent de l'interprÉteur ) : % 13 WORD COUNT BASICX ; : $ 32 WORD COUNT " EDTEXT" 2SWAP S>& BASICX ;