about summary refs log tree commit diff stats
path: root/071print.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-07-28 14:33:22 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-07-28 14:33:22 -0700
commitbc6436927640603675e2e700007f53c5ab213869 (patch)
treee8f76a871ac4118223e03015f32e6bd687a7bd49 /071print.mu
parentaa0888459fc2ca41b0ad6bef5bfa72223ca33945 (diff)
downloadmu-bc6436927640603675e2e700007f53c5ab213869.tar.gz
1868 - start using naked literals everywhere
First step to reducing typing burden. Next step: inferring types.
Diffstat (limited to '071print.mu')
-rw-r--r--071print.mu166
1 files changed, 83 insertions, 83 deletions
diff --git a/071print.mu b/071print.mu
index b970b02e..a1c7b67d 100644
--- a/071print.mu
+++ b/071print.mu
@@ -21,11 +21,11 @@ recipe new-fake-screen [
   width:address:number/deref <- next-ingredient
   height:address:number <- get-address result:address:screen/deref, num-rows:offset
   height:address:number/deref <- next-ingredient
-#?   $print height:address:number/deref, 10:literal/newline
+#?   $print height:address:number/deref, 10/newline
   row:address:number <- get-address result:address:screen/deref, cursor-row:offset
-  row:address:number/deref <- copy 0:literal
+  row:address:number/deref <- copy 0
   column:address:number <- get-address result:address:screen/deref, cursor-column:offset
-  column:address:number/deref <- copy 0:literal
+  column:address:number/deref <- copy 0
   bufsize:number <- multiply width:address:number/deref, height:address:number/deref
   buf:address:address:array:screen-cell <- get-address result:address:screen/deref, data:offset
   buf:address:address:array:screen-cell/deref <- new screen-cell:type, bufsize:number
@@ -44,7 +44,7 @@ recipe clear-screen [
     # clear fake screen
     buf:address:array:screen-cell <- get x:address:screen/deref, data:offset
     max:number <- length buf:address:array:screen-cell/deref
-    i:number <- copy 0:literal
+    i:number <- copy 0
     {
       done?:boolean <- greater-or-equal i:number, max:number
       break-if done?:boolean
@@ -52,15 +52,15 @@ recipe clear-screen [
       curr-content:address:character <- get-address curr:address:screen-cell/deref, contents:offset
       curr-content:address:character/deref <- copy [ ]
       curr-color:address:character <- get-address curr:address:screen-cell/deref, color:offset
-      curr-color:address:character/deref <- copy 7:literal/white
-      i:number <- add i:number, 1:literal
+      curr-color:address:character/deref <- copy 7/white
+      i:number <- add i:number, 1
       loop
     }
     # reset cursor
     cur:address:number <- get-address x:address:screen/deref, cursor-row:offset
-    cur:address:number/deref <- copy 0:literal
+    cur:address:number/deref <- copy 0
     cur:address:number <- get-address x:address:screen/deref, cursor-column:offset
-    cur:address:number/deref <- copy 0:literal
+    cur:address:number/deref <- copy 0
     reply x:address:screen/same-as-ingredient:0
   }
   # otherwise, real screen
@@ -71,21 +71,21 @@ recipe clear-screen [
 recipe fake-screen-is-clear? [
   local-scope
   screen:address:screen <- next-ingredient
-  reply-unless screen:address:screen, 1:literal/true
+  reply-unless screen:address:screen, 1/true
   buf:address:array:screen-cell <- get screen:address:screen/deref, data:offset
-  i:number <- copy 0:literal
+  i:number <- copy 0
   len:number <- length buf:address:array:screen-cell/deref
   {
     done?:boolean <- greater-or-equal i:number, len:number
     break-if done?:boolean
     curr:screen-cell <- index buf:address:array:screen-cell/deref, i:number
     curr-contents:character <- get curr:screen-cell, contents:offset
-    i:number <- add i:number, 1:literal
+    i:number <- add i:number, 1
     loop-unless curr-contents:character
     # not 0
-    reply 0:literal/false
+    reply 0/false
   }
-  reply 1:literal/true
+  reply 1/true
 ]
 
 recipe print-character [
@@ -96,13 +96,13 @@ recipe print-character [
   {
     # default color to white
     break-if color-found?:boolean
-    color:number <- copy 7:literal/white
+    color:number <- copy 7/white
   }
   bg-color:number, bg-color-found?:boolean <- next-ingredient
   {
     # default bg-color to black
     break-if bg-color-found?:boolean
-    bg-color:number <- copy 0:literal/black
+    bg-color:number <- copy 0/black
   }
 #?   trace [app], [print character] #? 1
   {
@@ -113,28 +113,28 @@ recipe print-character [
     height:number <- get x:address:screen/deref, num-rows:offset
     # if cursor is out of bounds, silently exit
     row:address:number <- get-address x:address:screen/deref, cursor-row:offset
-    legal?:boolean <- greater-or-equal row:address:number/deref, 0:literal
+    legal?:boolean <- greater-or-equal row:address:number/deref, 0
     reply-unless legal?:boolean, x:address:screen
     legal?:boolean <- lesser-than row:address:number/deref, height:number
     reply-unless legal?:boolean, x:address:screen
     column:address:number <- get-address x:address:screen/deref, cursor-column:offset
-    legal?:boolean <- greater-or-equal column:address:number/deref, 0:literal
+    legal?:boolean <- greater-or-equal column:address:number/deref, 0
     reply-unless legal?:boolean, x:address:screen
     legal?:boolean <- lesser-than column:address:number/deref, width:number
     reply-unless legal?:boolean, x:address:screen
     # special-case: newline
     {
-      newline?:boolean <- equal c:character, 10:literal/newline
-#?       $print c:character, [ ], newline?:boolean, 10:literal/newline
+      newline?:boolean <- equal c:character, 10/newline
+#?       $print c:character, [ ], newline?:boolean, 10/newline
       break-unless newline?:boolean
       {
         # unless cursor is already at bottom
-        bottom:number <- subtract height:number, 1:literal
+        bottom:number <- subtract height:number, 1
         at-bottom?:boolean <- greater-or-equal row:address:number/deref, bottom:number
         break-if at-bottom?:boolean
         # move it to the next row
-        column:address:number/deref <- copy 0:literal
-        row:address:number/deref <- add row:address:number/deref, 1:literal
+        column:address:number/deref <- copy 0
+        row:address:number/deref <- add row:address:number/deref, 1
       }
       reply x:address:screen/same-as-ingredient:0
     }
@@ -145,24 +145,24 @@ recipe print-character [
     len:number <- length buf:address:array:screen-cell/deref
     # special-case: backspace
     {
-      backspace?:boolean <- equal c:character, 8:literal
+      backspace?:boolean <- equal c:character, 8
       break-unless backspace?:boolean
       {
         # unless cursor is already at left margin
-        at-left?:boolean <- lesser-or-equal column:address:number/deref, 0:literal
+        at-left?:boolean <- lesser-or-equal column:address:number/deref, 0
         break-if at-left?:boolean
         # clear previous location
-        column:address:number/deref <- subtract column:address:number/deref, 1:literal
-        index:number <- subtract index:number, 1:literal
+        column:address:number/deref <- subtract column:address:number/deref, 1
+        index:number <- subtract index:number, 1
         cursor:address:screen-cell <- index-address buf:address:array:screen-cell/deref, index:number
         cursor-contents:address:character <- get-address cursor:address:screen-cell/deref, contents:offset
         cursor-color:address:number <- get-address cursor:address:screen-cell/deref, color:offset
-        cursor-contents:address:character/deref <- copy 32:literal/space
-        cursor-color:address:number/deref <- copy 7:literal/white
+        cursor-contents:address:character/deref <- copy 32/space
+        cursor-color:address:number/deref <- copy 7/white
       }
       reply x:address:screen/same-as-ingredient:0
     }
-#?     $print [saving character ], c:character, [ to fake screen ], cursor:address/screen, 10:literal/newline
+#?     $print [saving character ], c:character, [ to fake screen ], cursor:address/screen, 10/newline
     cursor:address:screen-cell <- index-address buf:address:array:screen-cell/deref, index:number
     cursor-contents:address:character <- get-address cursor:address:screen-cell/deref, contents:offset
     cursor-color:address:number <- get-address cursor:address:screen-cell/deref, color:offset
@@ -170,10 +170,10 @@ recipe print-character [
     cursor-color:address:number/deref <- copy color:number
     # increment column unless it's already all the way to the right
     {
-      right:number <- subtract width:number, 1:literal
+      right:number <- subtract width:number, 1
       at-right?:boolean <- greater-or-equal column:address:number/deref, right:number
       break-if at-right?:boolean
-      column:address:number/deref <- add column:address:number/deref, 1:literal
+      column:address:number/deref <- add column:address:number/deref, 1
     }
     reply x:address:screen/same-as-ingredient:0
   }
@@ -185,8 +185,8 @@ recipe print-character [
 scenario print-character-at-top-left [
   run [
 #?     $start-tracing #? 3
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
     2:address:array:screen-cell <- get 1:address:screen/deref, data:offset
     3:array:screen-cell <- copy 2:address:array:screen-cell/deref
   ]
@@ -200,8 +200,8 @@ scenario print-character-at-top-left [
 
 scenario print-character-color [
   run [
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal/a, 1:literal/red
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97/a, 1/red
     2:address:array:screen-cell <- get 1:address:screen/deref, data:offset
     3:array:screen-cell <- copy 2:address:array:screen-cell/deref
   ]
@@ -216,9 +216,9 @@ scenario print-character-color [
 scenario print-backspace-character [
   run [
 #?     $start-tracing #? 3
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
-    1:address:screen <- print-character 1:address:screen, 8:literal  # backspace
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
+    1:address:screen <- print-character 1:address:screen, 8  # backspace
     2:number <- get 1:address:screen/deref, cursor-column:offset
     3:address:array:screen-cell <- get 1:address:screen/deref, data:offset
     4:array:screen-cell <- copy 3:address:array:screen-cell/deref
@@ -234,10 +234,10 @@ scenario print-backspace-character [
 
 scenario print-extra-backspace-character [
   run [
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
-    1:address:screen <- print-character 1:address:screen, 8:literal  # backspace
-    1:address:screen <- print-character 1:address:screen, 8:literal  # backspace
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
+    1:address:screen <- print-character 1:address:screen, 8  # backspace
+    1:address:screen <- print-character 1:address:screen, 8  # backspace
     2:number <- get 1:address:screen/deref, cursor-column:offset
     3:address:array:screen-cell <- get 1:address:screen/deref, data:offset
     4:array:screen-cell <- copy 3:address:array:screen-cell/deref
@@ -253,10 +253,10 @@ scenario print-extra-backspace-character [
 
 scenario print-at-right-margin [
   run [
-    1:address:screen <- new-fake-screen 2:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
-    1:address:screen <- print-character 1:address:screen, 98:literal  # 'b'
-    1:address:screen <- print-character 1:address:screen, 99:literal  # 'c'
+    1:address:screen <- new-fake-screen 2/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
+    1:address:screen <- print-character 1:address:screen, 98  # 'b'
+    1:address:screen <- print-character 1:address:screen, 99  # 'c'
     2:number <- get 1:address:screen/deref, cursor-column:offset
     3:address:array:screen-cell <- get 1:address:screen/deref, data:offset
     4:array:screen-cell <- copy 3:address:array:screen-cell/deref
@@ -275,9 +275,9 @@ scenario print-at-right-margin [
 scenario print-newline-character [
   run [
 #?     $start-tracing #? 3
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
+    1:address:screen <- print-character 1:address:screen, 10/newline
     2:number <- get 1:address:screen/deref, cursor-row:offset
     3:number <- get 1:address:screen/deref, cursor-column:offset
     4:address:array:screen-cell <- get 1:address:screen/deref, data:offset
@@ -295,10 +295,10 @@ scenario print-newline-character [
 
 scenario print-newline-at-bottom-line [
   run [
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
+    1:address:screen <- new-fake-screen 3/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 10/newline
+    1:address:screen <- print-character 1:address:screen, 10/newline
+    1:address:screen <- print-character 1:address:screen, 10/newline
     2:number <- get 1:address:screen/deref, cursor-row:offset
     3:number <- get 1:address:screen/deref, cursor-column:offset
   ]
@@ -310,13 +310,13 @@ scenario print-newline-at-bottom-line [
 
 scenario print-at-bottom-right [
   run [
-    1:address:screen <- new-fake-screen 2:literal/width, 2:literal/height
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
-    1:address:screen <- print-character 1:address:screen, 98:literal  # 'b'
-    1:address:screen <- print-character 1:address:screen, 99:literal  # 'c'
-    1:address:screen <- print-character 1:address:screen, 10:literal/newline
-    1:address:screen <- print-character 1:address:screen, 100:literal  # 'd'
+    1:address:screen <- new-fake-screen 2/width, 2/height
+    1:address:screen <- print-character 1:address:screen, 10/newline
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
+    1:address:screen <- print-character 1:address:screen, 98  # 'b'
+    1:address:screen <- print-character 1:address:screen, 99  # 'c'
+    1:address:screen <- print-character 1:address:screen, 10/newline
+    1:address:screen <- print-character 1:address:screen, 100  # 'd'
     2:number <- get 1:address:screen/deref, cursor-row:offset
     3:number <- get 1:address:screen/deref, cursor-column:offset
     4:address:array:screen-cell <- get 1:address:screen/deref, data:offset
@@ -350,8 +350,8 @@ recipe clear-line [
     # space over the entire line
 #?     $start-tracing #? 1
     {
-#?       $print column:address:number/deref, 10:literal/newline
-      right:number <- subtract width:number, 1:literal
+#?       $print column:address:number/deref, 10/newline
+      right:number <- subtract width:number, 1
       done?:boolean <- greater-or-equal column:address:number/deref, right:number
       break-if done?:boolean
       print-character x:address:screen, [ ]  # implicitly updates 'column'
@@ -402,11 +402,11 @@ recipe move-cursor [
 scenario clear-line-erases-printed-characters [
   run [
 #?     $start-tracing #? 4
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
+    1:address:screen <- new-fake-screen 3/width, 2/height
     # print a character
-    1:address:screen <- print-character 1:address:screen, 97:literal  # 'a'
+    1:address:screen <- print-character 1:address:screen, 97  # 'a'
     # move cursor to start of line
-    1:address:screen <- move-cursor 1:address:screen, 0:literal/row, 0:literal/column
+    1:address:screen <- move-cursor 1:address:screen, 0/row, 0/column
     # clear line
     1:address:screen <- clear-line 1:address:screen
     2:address:array:screen-cell <- get 1:address:screen/deref, data:offset
@@ -440,13 +440,13 @@ recipe cursor-down [
       # if row < height-1
       height:number <- get x:address:screen/deref, num-rows:offset
       row:address:number <- get-address x:address:screen/deref, cursor-row:offset
-      max:number <- subtract height:number, 1:literal
+      max:number <- subtract height:number, 1
       at-bottom?:boolean <- greater-or-equal row:address:number/deref, max:number
       break-if at-bottom?:boolean
       # row = row+1
-#?       $print [AAA: ], row:address:number, [ -> ], row:address:number/deref, 10:literal/newline
-      row:address:number/deref <- add row:address:number/deref, 1:literal
-#?       $print [BBB: ], row:address:number, [ -> ], row:address:number/deref, 10:literal/newline
+#?       $print [AAA: ], row:address:number, [ -> ], row:address:number/deref, 10/newline
+      row:address:number/deref <- add row:address:number/deref, 1
+#?       $print [BBB: ], row:address:number, [ -> ], row:address:number/deref, 10/newline
 #?       $start-tracing #? 1
     }
     reply x:address:screen/same-as-ingredient:0
@@ -465,10 +465,10 @@ recipe cursor-up [
     {
       # if row > 0
       row:address:number <- get-address x:address:screen/deref, cursor-row:offset
-      at-top?:boolean <- lesser-or-equal row:address:number/deref, 0:literal
+      at-top?:boolean <- lesser-or-equal row:address:number/deref, 0
       break-if at-top?:boolean
       # row = row-1
-      row:address:number/deref <- subtract row:address:number/deref, 1:literal
+      row:address:number/deref <- subtract row:address:number/deref, 1
     }
     reply x:address:screen/same-as-ingredient:0
   }
@@ -487,11 +487,11 @@ recipe cursor-right [
       # if column < width-1
       width:number <- get x:address:screen/deref, num-columns:offset
       column:address:number <- get-address x:address:screen/deref, cursor-column:offset
-      max:number <- subtract width:number, 1:literal
+      max:number <- subtract width:number, 1
       at-bottom?:boolean <- greater-or-equal column:address:number/deref, max:number
       break-if at-bottom?:boolean
       # column = column+1
-      column:address:number/deref <- add column:address:number/deref, 1:literal
+      column:address:number/deref <- add column:address:number/deref, 1
     }
     reply x:address:screen/same-as-ingredient:0
   }
@@ -509,10 +509,10 @@ recipe cursor-left [
     {
       # if column > 0
       column:address:number <- get-address x:address:screen/deref, cursor-column:offset
-      at-top?:boolean <- lesser-or-equal column:address:number/deref, 0:literal
+      at-top?:boolean <- lesser-or-equal column:address:number/deref, 0
       break-if at-top?:boolean
       # column = column-1
-      column:address:number/deref <- subtract column:address:number/deref, 1:literal
+      column:address:number/deref <- subtract column:address:number/deref, 1
     }
     reply x:address:screen/same-as-ingredient:0
   }
@@ -525,7 +525,7 @@ recipe cursor-to-start-of-line [
   local-scope
   x:address:screen <- next-ingredient
   row:number, _, x:address:screen <- cursor-position x:address:screen
-  column:number <- copy 0:literal
+  column:number <- copy 0
   x:address:screen <- move-cursor x:address:screen, row:number, column:number
   reply x:address:screen/same-as-ingredient:0
 ]
@@ -626,22 +626,22 @@ recipe print-string [
   {
     # default color to white
     break-if color-found?:boolean
-    color:number <- copy 7:literal/white
+    color:number <- copy 7/white
   }
   bg-color:number, bg-color-found?:boolean <- next-ingredient
   {
     # default bg-color to black
     break-if bg-color-found?:boolean
-    bg-color:number <- copy 0:literal/black
+    bg-color:number <- copy 0/black
   }
   len:number <- length s:address:array:character/deref
-  i:number <- copy 0:literal
+  i:number <- copy 0
   {
     done?:boolean <- greater-or-equal i:number, len:number
     break-if done?:boolean
     c:character <- index s:address:array:character/deref, i:number
     print-character x:address:screen, c:character, color:number, bg-color:number
-    i:number <- add i:number, 1:literal
+    i:number <- add i:number, 1
     loop
   }
   reply x:address:screen/same-as-ingredient:0
@@ -649,7 +649,7 @@ recipe print-string [
 
 scenario print-string-stops-at-right-margin [
   run [
-    1:address:screen <- new-fake-screen 3:literal/width, 2:literal/height
+    1:address:screen <- new-fake-screen 3/width, 2/height
     2:address:array:character <- new [abcd]
     1:address:screen <- print-string 1:address:screen, 2:address:array:character
     3:address:array:screen-cell <- get 1:address:screen/deref, data:offset
@@ -675,13 +675,13 @@ recipe print-integer [
   {
     # default color to white
     break-if color-found?:boolean
-    color:number <- copy 7:literal/white
+    color:number <- copy 7/white
   }
   bg-color:number, bg-color-found?:boolean <- next-ingredient
   {
     # default bg-color to black
     break-if bg-color-found?:boolean
-    bg-color:number <- copy 0:literal/black
+    bg-color:number <- copy 0/black
   }
   # todo: other bases besides decimal
   s:address:array:character <- integer-to-decimal-string n:number