about summary refs log tree commit diff stats
path: root/edit/001-editor.mu
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-10-22 12:08:10 -0700
committerKartik K. Agaram <vc@akkartik.com>2016-10-22 12:08:10 -0700
commitada5eb55cb185edf30dcac48b25cc485d44677ef (patch)
treee147838f053a582e33146ac4fc4ab30ac8434e0e /edit/001-editor.mu
parenta6deb48067f8049922f16ed3489896f7749fd39f (diff)
downloadmu-ada5eb55cb185edf30dcac48b25cc485d44677ef.tar.gz
3552
Stop requiring jump instructions to explicitly provide a ':label' type
for jump targets.

This has been a source of repeated confusion for my students:
  a) They'd add the ':label' to the label definition rather than the
  jump target (label use)
  b) They'd spend time thinking about whether the initial '+' prefix was
  part of the label name.

In the process I cleaned up a couple of things:

  - the space of names is more cleanly partitioned into labels and
    non-labels (clarifying that '_' and '-' are non-label prefixes)
  - you can't use label names as regular variables anymore
  - you can infer the type of a label just from its name
Diffstat (limited to 'edit/001-editor.mu')
-rw-r--r--edit/001-editor.mu12
1 files changed, 6 insertions, 6 deletions
diff --git a/edit/001-editor.mu b/edit/001-editor.mu
index bbe16390..82f4c4fa 100644
--- a/edit/001-editor.mu
+++ b/edit/001-editor.mu
@@ -180,7 +180,7 @@ def render screen:&:screen, editor:&:editor -> last-row:num, last-column:num, sc
       screen <- move-cursor screen, row, column
       curr <- next curr
       prev <- next prev
-      loop +next-character:label
+      loop +next-character
     }
     {
       # at right? wrap. even if there's only one more letter left; we need
@@ -194,7 +194,7 @@ def render screen:&:screen, editor:&:editor -> last-row:num, last-column:num, sc
       row <- add row, 1
       screen <- move-cursor screen, row, column
       # don't increment curr
-      loop +next-character:label
+      loop +next-character
     }
     print screen, c, color
     curr <- next curr
@@ -414,7 +414,7 @@ def get-color color:num, c:char -> color:num [
     break-unless starting-comment?
     trace 90, [app], [switch color back to blue]
     color <- copy 12/lightblue
-    jump +exit:label
+    jump +exit
   }
   # if color is blue and next character is newline, switch color to white
   {
@@ -424,7 +424,7 @@ def get-color color:num, c:char -> color:num [
     break-unless ending-comment?
     trace 90, [app], [switch color back to white]
     color <- copy 7/white
-    jump +exit:label
+    jump +exit
   }
   # if color is white (no comments) and next character is '<', switch color to red
   {
@@ -432,7 +432,7 @@ def get-color color:num, c:char -> color:num [
     starting-assignment?:bool <- equal c, 60/<
     break-unless starting-assignment?
     color <- copy 1/red
-    jump +exit:label
+    jump +exit
   }
   # if color is red and next character is space, switch color to white
   {
@@ -441,7 +441,7 @@ def get-color color:num, c:char -> color:num [
     ending-assignment?:bool <- equal c, 32/space
     break-unless ending-assignment?
     color <- copy 7/white
-    jump +exit:label
+    jump +exit
   }
   # otherwise no change
   +exit