diff options
-rw-r--r-- | 011load.cc | 2 | ||||
-rw-r--r-- | html/011load.cc.html | 2 | ||||
-rw-r--r-- | html/061text.mu.html | 2 | ||||
-rw-r--r-- | html/075channel.mu.html | 2 | ||||
-rw-r--r-- | html/chessboard.mu.html | 2 | ||||
-rw-r--r-- | html/edit/001-editor.mu.html | 12 | ||||
-rw-r--r-- | html/edit/002-typing.mu.html | 6 | ||||
-rw-r--r-- | html/edit/003-shortcuts.mu.html | 2 | ||||
-rw-r--r-- | html/edit/004-programming-environment.mu.html | 30 | ||||
-rw-r--r-- | html/edit/005-sandbox.mu.html | 20 | ||||
-rw-r--r-- | html/edit/006-sandbox-copy.mu.html | 2 | ||||
-rw-r--r-- | html/edit/007-sandbox-delete.mu.html | 2 | ||||
-rw-r--r-- | html/edit/008-sandbox-edit.mu.html | 2 | ||||
-rw-r--r-- | html/edit/009-sandbox-test.mu.html | 4 | ||||
-rw-r--r-- | html/edit/010-sandbox-trace.mu.html | 2 | ||||
-rw-r--r-- | html/edit/011-errors.mu.html | 2 | ||||
-rw-r--r-- | html/edit/012-editor-undo.mu.html | 8 | ||||
-rw-r--r-- | html/lambda-to-mu.mu.html | 16 | ||||
-rw-r--r-- | mu.vim | 4 |
19 files changed, 62 insertions, 60 deletions
diff --git a/011load.cc b/011load.cc index 20e4c2c8..9daf8fef 100644 --- a/011load.cc +++ b/011load.cc @@ -178,7 +178,7 @@ string next_word(istream& in) { bool is_label_word(const string& word) { assert(!word.empty()); - return !isalnum(word.at(0)) && string("$_-").find(word.at(0)) == string::npos; + return !isalnum(word.at(0)) && string("$_*@&,=-").find(word.at(0)) == string::npos; } bool ends_with(const string& s, const char c) { diff --git a/html/011load.cc.html b/html/011load.cc.html index 0a1991b9..065fd491 100644 --- a/html/011load.cc.html +++ b/html/011load.cc.html @@ -214,7 +214,7 @@ string next_word<span class="Delimiter">(</span>istream& in<span class="Deli <span class="Normal">bool</span> is_label_word<span class="Delimiter">(</span><span class="Normal">const</span> string& word<span class="Delimiter">)</span> <span class="Delimiter">{</span> assert<span class="Delimiter">(</span>!word<span class="Delimiter">.</span>empty<span class="Delimiter">());</span> - <span class="Identifier">return</span> !isalnum<span class="Delimiter">(</span>word<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> && string<span class="Delimiter">(</span><span class="Constant">"$_-"</span><span class="Delimiter">).</span>find<span class="Delimiter">(</span>word<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> == string::npos<span class="Delimiter">;</span> + <span class="Identifier">return</span> !isalnum<span class="Delimiter">(</span>word<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> && string<span class="Delimiter">(</span><span class="Constant">"$_*@&,=-"</span><span class="Delimiter">).</span>find<span class="Delimiter">(</span>word<span class="Delimiter">.</span>at<span class="Delimiter">(</span><span class="Constant">0</span><span class="Delimiter">))</span> == string::npos<span class="Delimiter">;</span> <span class="Delimiter">}</span> <span class="Normal">bool</span> ends_with<span class="Delimiter">(</span><span class="Normal">const</span> string& s<span class="Delimiter">,</span> <span class="Normal">const</span> <span class="Normal">char</span> c<span class="Delimiter">)</span> <span class="Delimiter">{</span> diff --git a/html/061text.mu.html b/html/061text.mu.html index 75e509fa..e5ac7644 100644 --- a/html/061text.mu.html +++ b/html/061text.mu.html @@ -540,7 +540,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Delimiter">{</span> <span class="Comment"># while i < template.length</span> tem-done?:bool<span class="Special"> <- </span>greater-or-equal i, tem-len - <span class="muControl">break-if</span> tem-done?, +done + <span class="muControl">break-if</span> tem-done?, <span class="Constant">+done</span> <span class="Comment"># while template[i] != '_'</span> in:char<span class="Special"> <- </span>index *template, i underscore?:bool<span class="Special"> <- </span>equal in, <span class="Constant">95/_</span> diff --git a/html/075channel.mu.html b/html/075channel.mu.html index 940540d6..94355181 100644 --- a/html/075channel.mu.html +++ b/html/075channel.mu.html @@ -440,7 +440,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color *line<span class="Special"> <- </span>put *line, <span class="Constant">length:offset</span>, buffer-length <span class="Delimiter">}</span> <span class="Comment"># and don't append this one</span> - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> <span class="Comment"># append anything else</span> line<span class="Special"> <- </span>append line, c diff --git a/html/chessboard.mu.html b/html/chessboard.mu.html index 5b24345b..8054e613 100644 --- a/html/chessboard.mu.html +++ b/html/chessboard.mu.html @@ -126,7 +126,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color cursor-to-next-line screen screen<span class="Special"> <- </span>print screen, <span class="Constant">[move: ]</span> m:&:move, quit:bool, error:bool<span class="Special"> <- </span>read-move buffered-stdin-in, screen - <span class="muControl">break-if</span> quit, +quit + <span class="muControl">break-if</span> quit, <span class="Constant">+quit</span> buffered-stdin-in<span class="Special"> <- </span>clear buffered-stdin-in <span class="Comment"># cleanup after error. todo: test this?</span> <span class="muControl">loop-if</span> error <span class="Delimiter">}</span> diff --git a/html/edit/001-editor.mu.html b/html/edit/001-editor.mu.html index b6ba98e8..a0044e7a 100644 --- a/html/edit/001-editor.mu.html +++ b/html/edit/001-editor.mu.html @@ -215,7 +215,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>move-cursor screen, row, column curr<span class="Special"> <- </span>next curr prev<span class="Special"> <- </span>next prev - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="Comment"># at right? wrap. even if there's only one more letter left; we need</span> @@ -229,7 +229,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color row<span class="Special"> <- </span>add row, <span class="Constant">1</span> screen<span class="Special"> <- </span>move-cursor screen, row, column <span class="Comment"># don't increment curr</span> - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> print screen, c, color curr<span class="Special"> <- </span>next curr @@ -449,7 +449,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> starting-comment? trace <span class="Constant">90</span>, <span class="Constant">[app]</span>, <span class="Constant">[switch color back to blue]</span> color<span class="Special"> <- </span>copy <span class="Constant">12/lightblue</span> - <span class="muControl">jump</span> +exit + <span class="muControl">jump</span> <span class="Constant">+exit</span> <span class="Delimiter">}</span> <span class="Comment"># if color is blue and next character is newline, switch color to white</span> <span class="Delimiter">{</span> @@ -459,7 +459,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> ending-comment? trace <span class="Constant">90</span>, <span class="Constant">[app]</span>, <span class="Constant">[switch color back to white]</span> color<span class="Special"> <- </span>copy <span class="Constant">7/white</span> - <span class="muControl">jump</span> +exit + <span class="muControl">jump</span> <span class="Constant">+exit</span> <span class="Delimiter">}</span> <span class="Comment"># if color is white (no comments) and next character is '<', switch color to red</span> <span class="Delimiter">{</span> @@ -467,7 +467,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color starting-assignment?:bool<span class="Special"> <- </span>equal c, <span class="Constant">60/<</span> <span class="muControl">break-unless</span> starting-assignment? color<span class="Special"> <- </span>copy <span class="Constant">1/red</span> - <span class="muControl">jump</span> +exit + <span class="muControl">jump</span> <span class="Constant">+exit</span> <span class="Delimiter">}</span> <span class="Comment"># if color is red and next character is space, switch color to white</span> <span class="Delimiter">{</span> @@ -476,7 +476,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color ending-assignment?:bool<span class="Special"> <- </span>equal c, <span class="Constant">32/space</span> <span class="muControl">break-unless</span> ending-assignment? color<span class="Special"> <- </span>copy <span class="Constant">7/white</span> - <span class="muControl">jump</span> +exit + <span class="muControl">jump</span> <span class="Constant">+exit</span> <span class="Delimiter">}</span> <span class="Comment"># otherwise no change</span> <span class="Constant"> +exit</span> diff --git a/html/edit/002-typing.mu.html b/html/edit/002-typing.mu.html index 88274b46..325e7f6e 100644 --- a/html/edit/002-typing.mu.html +++ b/html/edit/002-typing.mu.html @@ -64,7 +64,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Delimiter">{</span> <span class="muControl">break-unless</span> is-touch? move-cursor-in-editor screen, editor, t - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> <span class="Comment"># keyboard events</span> <span class="Delimiter">{</span> @@ -160,7 +160,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color column<span class="Special"> <- </span>copy left curr<span class="Special"> <- </span>next curr prev<span class="Special"> <- </span>next prev - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="Comment"># at right? wrap. even if there's only one more letter left; we need</span> @@ -170,7 +170,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color column<span class="Special"> <- </span>copy left row<span class="Special"> <- </span>add row, <span class="Constant">1</span> <span class="Comment"># don't increment curr/prev</span> - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> curr<span class="Special"> <- </span>next curr prev<span class="Special"> <- </span>next prev diff --git a/html/edit/003-shortcuts.mu.html b/html/edit/003-shortcuts.mu.html index ec91efbd..2dc6965f 100644 --- a/html/edit/003-shortcuts.mu.html +++ b/html/edit/003-shortcuts.mu.html @@ -1276,7 +1276,7 @@ d] no-motion?:bool<span class="Special"> <- </span>equal next-line, before-cursor <span class="muControl">break-unless</span> no-motion? scroll?:bool<span class="Special"> <- </span>greater-than cursor-row, <span class="Constant">1</span> - <span class="muControl">break-if</span> scroll?, +try-to-scroll + <span class="muControl">break-if</span> scroll?, <span class="Constant">+try-to-scroll</span> go-render?<span class="Special"> <- </span>copy <span class="Constant">0/false</span> <span class="muControl">return</span> <span class="Delimiter">}</span> diff --git a/html/edit/004-programming-environment.mu.html b/html/edit/004-programming-environment.mu.html index 6d2d8421..14ff221b 100644 --- a/html/edit/004-programming-environment.mu.html +++ b/html/edit/004-programming-environment.mu.html @@ -120,7 +120,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Comment"># todo: test this</span> touch-type:num<span class="Special"> <- </span>get t, <span class="Constant">type:offset</span> is-left-click?:bool<span class="Special"> <- </span>equal touch-type, <span class="Constant">65513/mouse-left</span> - <span class="muControl">loop-unless</span> is-left-click?, +next-event + <span class="muControl">loop-unless</span> is-left-click?, <span class="Constant">+next-event</span> click-row:num<span class="Special"> <- </span>get t, <span class="Constant">row:offset</span> click-column:num<span class="Special"> <- </span>get t, <span class="Constant">column:offset</span> <span class="Comment"># later exceptions for non-editor touches will go here</span> @@ -130,7 +130,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color sandbox-in-focus?:bool<span class="Special"> <- </span>move-cursor-in-editor screen, current-sandbox, t *env<span class="Special"> <- </span>put *env, <span class="Constant">sandbox-in-focus?:offset</span>, sandbox-in-focus? screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> <span class="Comment"># 'resize' event - redraw editor</span> <span class="Comment"># todo: test this after supporting resize in assume-console</span> @@ -149,7 +149,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>render-all screen, env, render-without-moving-cursor render-all-on-no-more-events?<span class="Special"> <- </span>copy <span class="Constant">0/false</span> <span class="Comment"># full render done</span> <span class="Delimiter">}</span> - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> <span class="Comment"># if it's not global and not a touch event, send to appropriate editor</span> <span class="Delimiter">{</span> @@ -164,7 +164,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Delimiter">{</span> <span class="muControl">break-unless</span> more-events? render-all-on-no-more-events?<span class="Special"> <- </span>copy <span class="Constant">1/true</span> <span class="Comment"># no rendering now, full rendering on some future event</span> - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="muControl">break-if</span> more-events? @@ -173,13 +173,13 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Comment"># no more events, and we have to force render</span> screen<span class="Special"> <- </span>render-all screen, env, render render-all-on-no-more-events?<span class="Special"> <- </span>copy <span class="Constant">0/false</span> - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Comment"># no more events, no force render</span> <span class="Delimiter">{</span> <span class="muControl">break-unless</span> render? screen<span class="Special"> <- </span>render-recipes screen, env, render - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Delimiter">}</span> <span class="Delimiter">}</span> @@ -192,7 +192,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Delimiter">{</span> <span class="muControl">break-unless</span> more-events? render-all-on-no-more-events?<span class="Special"> <- </span>copy <span class="Constant">1/true</span> <span class="Comment"># no rendering now, full rendering on some future event</span> - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="muControl">break-if</span> more-events? @@ -201,13 +201,13 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Comment"># no more events, and we have to force render</span> screen<span class="Special"> <- </span>render-all screen, env, render render-all-on-no-more-events?<span class="Special"> <- </span>copy <span class="Constant">0/false</span> - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Comment"># no more events, no force render</span> <span class="Delimiter">{</span> <span class="muControl">break-unless</span> render? screen<span class="Special"> <- </span>render-sandbox-side screen, env, render - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> <span class="Delimiter">}</span> <span class="Delimiter">}</span> @@ -298,7 +298,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>move-cursor screen, row, column curr<span class="Special"> <- </span>next curr prev<span class="Special"> <- </span>next prev - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="Comment"># at right? wrap. even if there's only one more letter left; we need</span> @@ -312,7 +312,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color row<span class="Special"> <- </span>add row, <span class="Constant">1</span> screen<span class="Special"> <- </span>move-cursor screen, row, column <span class="Comment"># don't increment curr</span> - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> print screen, c, color curr<span class="Special"> <- </span>next curr @@ -599,7 +599,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color column<span class="Special"> <- </span>copy left row<span class="Special"> <- </span>add row, <span class="Constant">1</span> screen<span class="Special"> <- </span>move-cursor screen, row, column - <span class="muControl">loop</span> +next-character <span class="Comment"># retry i</span> + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Comment"># retry i</span> <span class="Delimiter">}</span> i<span class="Special"> <- </span>add i, <span class="Constant">1</span> <span class="Delimiter">{</span> @@ -618,7 +618,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color row<span class="Special"> <- </span>add row, <span class="Constant">1</span> column<span class="Special"> <- </span>copy left screen<span class="Special"> <- </span>move-cursor screen, row, column - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> print screen, c, color column<span class="Special"> <- </span>add column, <span class="Constant">1</span> @@ -641,7 +641,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> redraw-screen? screen<span class="Special"> <- </span>render-all screen, env:&:environment, render sync-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] @@ -656,7 +656,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color sandbox-in-focus?<span class="Special"> <- </span>not sandbox-in-focus? *env<span class="Special"> <- </span>put *env, <span class="Constant">sandbox-in-focus?:offset</span>, sandbox-in-focus? screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/005-sandbox.mu.html b/html/edit/005-sandbox.mu.html index 825a64ee..735a45de 100644 --- a/html/edit/005-sandbox.mu.html +++ b/html/edit/005-sandbox.mu.html @@ -172,7 +172,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>update-status screen, <span class="Constant">[ ]</span>, <span class="Constant">245/grey</span> <span class="Delimiter">}</span> screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] @@ -253,7 +253,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Constant">load-ingredients</span> current-sandbox:&:editor<span class="Special"> <- </span>get *env, <span class="Constant">current-sandbox:offset</span> <span class="Comment"># first clear previous versions, in case we deleted some sandbox</span> - $system <span class="Constant">[rm lesson/[0-9]</span>* >/dev/null <span class="Constant">2</span>>/dev/null] <span class="Comment"># some shells can't handle '>&'</span> + $system <span class="Constant">[rm lesson/[0-9]</span>* <span class="Constant">>/dev/null</span> <span class="Constant">2</span>>/dev/null] <span class="Comment"># some shells can't handle '>&'</span> curr:&:sandbox<span class="Special"> <- </span>get *env, <span class="Constant">sandbox:offset</span> idx:num<span class="Special"> <- </span>copy <span class="Constant">0</span> <span class="Delimiter">{</span> @@ -415,7 +415,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color column<span class="Special"> <- </span>copy left row<span class="Special"> <- </span>add row, <span class="Constant">1</span> screen<span class="Special"> <- </span>move-cursor screen, row, column - <span class="muControl">loop</span> +next-character <span class="Comment"># retry i</span> + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Comment"># retry i</span> <span class="Delimiter">}</span> i<span class="Special"> <- </span>add i, <span class="Constant">1</span> <span class="Delimiter">{</span> @@ -434,7 +434,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color row<span class="Special"> <- </span>add row, <span class="Constant">1</span> column<span class="Special"> <- </span>copy left screen<span class="Special"> <- </span>move-cursor screen, row, column - <span class="muControl">loop</span> +next-character + <span class="muControl">loop</span> <span class="Constant">+next-character</span> <span class="Delimiter">}</span> print screen, c, color column<span class="Special"> <- </span>add column, <span class="Constant">1</span> @@ -741,7 +741,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> at-bottom-of-editor? more-to-scroll?:bool<span class="Special"> <- </span>more-to-scroll? env, screen <span class="muControl">break-if</span> more-to-scroll? - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> <span class="Delimiter">{</span> <span class="muControl">break-if</span> sandbox-in-focus? @@ -749,7 +749,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> page-down? more-to-scroll?:bool<span class="Special"> <- </span>more-to-scroll? env, screen <span class="muControl">break-if</span> more-to-scroll? - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] @@ -760,7 +760,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> page-down? more-to-scroll?:bool<span class="Special"> <- </span>more-to-scroll? env, screen <span class="muControl">break-if</span> more-to-scroll? - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] @@ -898,14 +898,14 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color number-of-sandboxes:num<span class="Special"> <- </span>get *env, <span class="Constant">number-of-sandboxes:offset</span> max:num<span class="Special"> <- </span>subtract number-of-sandboxes, <span class="Constant">1</span> at-end?:bool<span class="Special"> <- </span>greater-or-equal render-from, max - <span class="muControl">jump-if</span> at-end?, +finish-event <span class="Comment"># render nothing</span> + <span class="muControl">jump-if</span> at-end?, <span class="Constant">+finish-event</span> <span class="Comment"># render nothing</span> render-from<span class="Special"> <- </span>add render-from, <span class="Constant">1</span> *env<span class="Special"> <- </span>put *env, <span class="Constant">render-from:offset</span>, render-from <span class="Delimiter">}</span> hide-screen screen screen<span class="Special"> <- </span>render-sandbox-side screen, env, render show-screen screen - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> ] @@ -936,7 +936,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color hide-screen screen screen<span class="Special"> <- </span>render-sandbox-side screen, env, render show-screen screen - <span class="muControl">jump</span> +finish-event + <span class="muControl">jump</span> <span class="Constant">+finish-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/006-sandbox-copy.mu.html b/html/edit/006-sandbox-copy.mu.html index f738325c..8f96e319 100644 --- a/html/edit/006-sandbox-copy.mu.html +++ b/html/edit/006-sandbox-copy.mu.html @@ -170,7 +170,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>render-sandbox-side screen, env, render screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env show-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/007-sandbox-delete.mu.html b/html/edit/007-sandbox-delete.mu.html index 09752b87..ffae21e3 100644 --- a/html/edit/007-sandbox-delete.mu.html +++ b/html/edit/007-sandbox-delete.mu.html @@ -108,7 +108,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>render-sandbox-side screen, env, render screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env show-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/008-sandbox-edit.mu.html b/html/edit/008-sandbox-edit.mu.html index 883c2501..6b8599b5 100644 --- a/html/edit/008-sandbox-edit.mu.html +++ b/html/edit/008-sandbox-edit.mu.html @@ -165,7 +165,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>render-sandbox-side screen, env, render screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env show-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/009-sandbox-test.mu.html b/html/edit/009-sandbox-test.mu.html index 6606679d..1c350a57 100644 --- a/html/edit/009-sandbox-test.mu.html +++ b/html/edit/009-sandbox-test.mu.html @@ -169,7 +169,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env <span class="Comment"># no change in cursor</span> show-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] @@ -232,7 +232,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muControl">break-unless</span> response-is-expected?:bool row, screen<span class="Special"> <- </span>render-text screen, sandbox-response, left, right, <span class="Constant">2/green</span>, row <span class="Delimiter">}</span> - <span class="muControl">jump</span> +render-sandbox-end + <span class="muControl">jump</span> <span class="Constant">+render-sandbox-end</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/010-sandbox-trace.mu.html b/html/edit/010-sandbox-trace.mu.html index ff1e572f..ece61dee 100644 --- a/html/edit/010-sandbox-trace.mu.html +++ b/html/edit/010-sandbox-trace.mu.html @@ -232,7 +232,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color screen<span class="Special"> <- </span>update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env <span class="Comment"># no change in cursor</span> show-screen screen - <span class="muControl">loop</span> +next-event + <span class="muControl">loop</span> <span class="Constant">+next-event</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/011-errors.mu.html b/html/edit/011-errors.mu.html index f3a9b566..146b2b15 100644 --- a/html/edit/011-errors.mu.html +++ b/html/edit/011-errors.mu.html @@ -145,7 +145,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color *sandbox<span class="Special"> <- </span>put *sandbox, <span class="Constant">response-starting-row-on-screen:offset</span>, <span class="Constant">0</span> <span class="Comment"># no response</span> row, screen<span class="Special"> <- </span>render-text screen, sandbox-errors, left, right, <span class="Constant">1/red</span>, row <span class="Comment"># don't try to print anything more for this sandbox</span> - <span class="muControl">jump</span> +render-sandbox-end + <span class="muControl">jump</span> <span class="Constant">+render-sandbox-end</span> <span class="Delimiter">}</span> ] diff --git a/html/edit/012-editor-undo.mu.html b/html/edit/012-editor-undo.mu.html index 1d78409b..0953fed1 100644 --- a/html/edit/012-editor-undo.mu.html +++ b/html/edit/012-editor-undo.mu.html @@ -197,7 +197,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color typing<span class="Special"> <- </span>put typing, <span class="Constant">after-column:offset</span>, cursor-column typing<span class="Special"> <- </span>put typing, <span class="Constant">after-top-of-screen:offset</span>, top-after *op<span class="Special"> <- </span>merge <span class="Constant">0/insert-operation</span>, typing - <span class="muControl">break</span> +done-adding-insert-operation + <span class="muControl">break</span> <span class="Constant">+done-adding-insert-operation</span> <span class="Delimiter">}</span> <span class="Comment"># if not, create a new operation</span> insert-from:&:duplex-list:char<span class="Special"> <- </span>next cursor-before @@ -777,7 +777,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color move<span class="Special"> <- </span>put move, <span class="Constant">after-column:offset</span>, cursor-column move<span class="Special"> <- </span>put move, <span class="Constant">after-top-of-screen:offset</span>, top-after *op<span class="Special"> <- </span>merge <span class="Constant">1/move-operation</span>, move - <span class="muControl">break</span> +done-adding-move-operation + <span class="muControl">break</span> <span class="Constant">+done-adding-move-operation</span> <span class="Delimiter">}</span> op:&:operation<span class="Special"> <- </span>new <span class="Constant">operation:type</span> *op<span class="Special"> <- </span>merge <span class="Constant">1/move-operation</span>, cursor-row-before, cursor-column-before, top-before, cursor-row/after, cursor-column/after, top-after, undo-coalesce-tag @@ -1678,7 +1678,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color deletion<span class="Special"> <- </span>put deletion, <span class="Constant">after-column:offset</span>, cursor-column deletion<span class="Special"> <- </span>put deletion, <span class="Constant">after-top-of-screen:offset</span>, top-after *op<span class="Special"> <- </span>merge <span class="Constant">2/delete-operation</span>, deletion - <span class="muControl">break</span> +done-adding-backspace-operation + <span class="muControl">break</span> <span class="Constant">+done-adding-backspace-operation</span> <span class="Delimiter">}</span> <span class="Comment"># if not, create a new operation</span> op:&:operation<span class="Special"> <- </span>new <span class="Constant">operation:type</span> @@ -1905,7 +1905,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color deletion<span class="Special"> <- </span>put deletion, <span class="Constant">after-column:offset</span>, cursor-column deletion<span class="Special"> <- </span>put deletion, <span class="Constant">after-top-of-screen:offset</span>, top-after *op<span class="Special"> <- </span>merge <span class="Constant">2/delete-operation</span>, deletion - <span class="muControl">break</span> +done-adding-delete-operation + <span class="muControl">break</span> <span class="Constant">+done-adding-delete-operation</span> <span class="Delimiter">}</span> <span class="Comment"># if not, create a new operation</span> op:&:operation<span class="Special"> <- </span>new <span class="Constant">operation:type</span> diff --git a/html/lambda-to-mu.mu.html b/html/lambda-to-mu.mu.html index 7ffbe91a..98b868fc 100644 --- a/html/lambda-to-mu.mu.html +++ b/html/lambda-to-mu.mu.html @@ -268,7 +268,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color close-paren?:bool<span class="Special"> <- </span>equal c, <span class="Constant">41/close-paren</span> <span class="muControl">break-unless</span> close-paren? read in <span class="Comment"># skip ')'</span> - <span class="muControl">break</span> +end-pair + <span class="muControl">break</span> <span class="Constant">+end-pair</span> <span class="Delimiter">}</span> <span class="Comment"># still here? read next element of pair</span> next:&:cell, in<span class="Special"> <- </span>parse in @@ -378,7 +378,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[(abc def)]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < abc | < def | <span class="Constant"><></span> > > + app/parse: <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><</span> def <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -406,7 +406,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[ ( abc def ) ]</span> <span class="Comment"># extra spaces</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < abc | < def | <span class="Constant"><></span> > > + app/parse: <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><</span> def <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -434,7 +434,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[(abc def ghi)]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < abc | < def | < ghi | <span class="Constant"><></span> > > > + app/parse: <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><</span> def <span class="Constant">|</span> <span class="Constant"><</span> ghi <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -470,7 +470,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[((abc))]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < < abc | <span class="Constant"><></span> > | <span class="Constant"><></span> > + app/parse: <span class="Constant"><</span> <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -495,7 +495,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[((abc) def)]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < < abc | <span class="Constant"><></span> > | < def | <span class="Constant"><></span> > > + app/parse: <span class="Constant"><</span> <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">|</span> <span class="Constant"><</span> def <span class="Constant">|</span> <span class="Constant"><></span> <span class="Constant">></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -550,7 +550,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[(abc . def)]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < abc | def > + app/parse: <span class="Constant"><</span> abc <span class="Constant">|</span> def <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x @@ -574,7 +574,7 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color s:text<span class="Special"> <- </span>new <span class="Constant">[(abc def . ghi)]</span> x:&:cell<span class="Special"> <- </span>parse s trace-should-contain [ - app/parse: < abc | < def | ghi > > + app/parse: <span class="Constant"><</span> abc <span class="Constant">|</span> <span class="Constant"><</span> def <span class="Constant">|</span> ghi <span class="Constant">></span> <span class="Constant">></span> ] <span class="Constant">10</span>:bool/<span class="Special">raw <- </span>is-pair? x x1:&:cell<span class="Special"> <- </span>first x diff --git a/mu.vim b/mu.vim index 6929c8b2..a9e5e109 100644 --- a/mu.vim +++ b/mu.vim @@ -33,6 +33,7 @@ let b:cmt_head = "#? " " Mu strings are inside [ ... ] and can span multiple lines " don't match '[' at end of line, that's usually code +syntax match muLiteral %^[^ a-zA-Z0-9(){}\[\]#$_*@&,=-][^ ,]*\|[ ,]\@<=[^ a-zA-Z0-9(){}\[\]#$_*@&,=-][^ ,]*% syntax region muString start=+\[[^\]]+ end=+\]+ syntax match muString "\[\]" highlight link muString String @@ -45,8 +46,9 @@ syntax match muLiteral %[^ ]\+:literal/[^ ,]*\|[^ ]\+:literal\>% syntax match muLiteral %\<[0-9-]\?[0-9]\+\>% syntax match muLiteral %\<[0-9-]\?[0-9]\+/[^ ,]*% syntax match muLiteral "^\s\+[^ 0-9a-zA-Z{}#\[\]][^ ]*\s*$" +" labels syntax match muLiteral %[^ ]\+:label/[^ ,]*\|[^ ]\+:label\>% -syntax match muLiteral "<[^ ]*>" +" other literal types syntax match muLiteral %[^ ]\+:type/[^ ,]*\|[^ ]\+:type\>% syntax match muLiteral %[^ ]\+:offset/[^ ,]*\|[^ ]\+:offset\>% syntax match muLiteral %[^ ]\+:variant/[^ ,]*\|[^ ]\+:variant\>% |