Removed unnecessary ['] primitive.
authorTim Vaughan <tgvaughan@gmail.com>
Sun, 29 May 2016 01:45:25 +0000 (13:45 +1200)
committerTim Vaughan <tgvaughan@gmail.com>
Sun, 29 May 2016 01:45:25 +0000 (13:45 +1200)
src/forth.jl
src/lib_1_basic.4th

index c8cd131..9439dea 100644 (file)
@@ -840,9 +840,6 @@ COMMA_CFA = defPrimWord(",", () -> begin
     return NEXT
 end)
 
     return NEXT
 end)
 
-BTICK_CFA = defWord("[']",
-    [FROMR_CFA, DUP_CFA, INCR_CFA, TOR_CFA, FETCH_CFA, EXIT_CFA])
-
 HERE_CFA = defWord("HERE",
     [H_CFA, FETCH_CFA, EXIT_CFA])
 
 HERE_CFA = defWord("HERE",
     [H_CFA, FETCH_CFA, EXIT_CFA])
 
@@ -885,8 +882,8 @@ DOES_HELPER_CFA = defPrimWord("(DOES>)", () -> begin
 end, flags=F_IMMED)
 
 DOES_CFA = defWord("DOES>",
 end, flags=F_IMMED)
 
 DOES_CFA = defWord("DOES>",
-    [BTICK_CFA, LIT_CFA, COMMA_CFA, HERE_CFA, LIT_CFA, 3, ADD_CFA, COMMA_CFA,
-    BTICK_CFA, DOES_HELPER_CFA, COMMA_CFA, BTICK_CFA, EXIT_CFA, COMMA_CFA, EXIT_CFA],
+    [LIT_CFA, LIT_CFA, COMMA_CFA, HERE_CFA, LIT_CFA, 3, ADD_CFA, COMMA_CFA,
+    LIT_CFA, DOES_HELPER_CFA, COMMA_CFA, LIT_CFA, EXIT_CFA, COMMA_CFA, EXIT_CFA],
     flags=F_IMMED)
 
 LBRAC_CFA = defPrimWord("[", () -> begin
     flags=F_IMMED)
 
 LBRAC_CFA = defPrimWord("[", () -> begin
@@ -952,7 +949,7 @@ INTERPRET_CFA = defWord("INTERPRET",
                 COMMA_CFA, BRANCH_CFA, -29,
 
             # No word found, parse number
                 COMMA_CFA, BRANCH_CFA, -29,
 
             # No word found, parse number
-            NUMBER_CFA, BTICK_CFA, LIT_CFA, COMMA_CFA, COMMA_CFA, BRANCH_CFA, -36,
+            NUMBER_CFA, LIT_CFA, LIT_CFA, COMMA_CFA, COMMA_CFA, BRANCH_CFA, -36,
         
        # Interpreting
         FIND_CFA, QDUP_CFA, ZBRANCH_CFA, 5,
         
        # Interpreting
         FIND_CFA, QDUP_CFA, ZBRANCH_CFA, 5,
index 1764723..40851f3 100644 (file)
 
 : '\n' 10 ;
 : BL 32 ;
 
 : '\n' 10 ;
 : BL 32 ;
-
-: LITERAL IMMEDIATE ['] LIT , , ;
+: CR '\n' emit ;
+: SPACE BL emit ;
 
 : ' BL WORD FIND DROP ;
 
 : ' BL WORD FIND DROP ;
+: [COMPILE] IMMEDIATE ' , ;
+: ['] IMMEDIATE
+     LIT LIT , ' , ;
+
+: LITERAL IMMEDIATE ['] LIT , , ;
 
 : CHAR BL WORD 1+ @ ;
 : [CHAR] IMMEDIATE
 
 : CHAR BL WORD 1+ @ ;
 : [CHAR] IMMEDIATE
     ['] LIT , ,
 ;
 
     ['] LIT , ,
 ;
 
-: CR '\n' emit ;
-: SPACE BL emit ;
-
-: [COMPILE] IMMEDIATE
-        BL WORD         \ get the next word
-        FIND DROP       \ find it in the dictionary
-        ,               \ and compile that
-;
-
 : RECURSE IMMEDIATE
         LATEST @        \ LATEST points to the word being compiled at the moment
         >CFA            \ get the codeword
 : RECURSE IMMEDIATE
         LATEST @        \ LATEST points to the word being compiled at the moment
         >CFA            \ get the codeword