From bb362c83787c336261014bdb16f5cf0841c8b506 Mon Sep 17 00:00:00 2001 From: Tim Vaughan Date: Mon, 2 May 2016 13:12:40 +1200 Subject: [PATCH] Improved decompiler support for non-docol words. --- src/lib.4th | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/src/lib.4th b/src/lib.4th index b6c523b..6b2d8ae 100644 --- a/src/lib.4th +++ b/src/lib.4th @@ -631,9 +631,33 @@ DROP ( at this point, the stack is: start-of-word end-of-word ) SWAP ( end-of-word start-of-word ) + DUP >CFA @ CASE + DOCOL OF + \ Colon definition + ':' EMIT SPACE DUP ID. SPACE + DUP ?IMMEDIATE IF ." IMMEDIATE " THEN CR + ENDOF + DOVAR OF + \ Variable definition + ." Variable " DUP ID. CR + 2DROP EXIT + ENDOF + DOCON OF + \ Constant definition + ." Constant " DUP ID. CR + 2DROP EXIT + ENDOF + + \ Unknown codeword + ." Primitive or word with unrecognized codeword." CR + DROP 2DROP EXIT + ENDCASE + ( begin the definition with : NAME [IMMEDIATE] ) - ':' EMIT SPACE DUP ID. SPACE - DUP ?IMMEDIATE IF ." IMMEDIATE " THEN CR 4 + ( ':' EMIT SPACE DUP ID. SPACE + DUP ?IMMEDIATE IF ." IMMEDIATE " THEN CR 4 ) + + 4 SPACES >DFA ( get the data address, ie. points after DOCOL | end-of-word start-of-data ) @@ -699,9 +723,3 @@ 2DROP ( restore stack ) ; - -( WELCOME MESSAGE ------------------------------------------------------------- ) - -CR CR ." --- TimForth initialized --- " - - -- 2.20.1