diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-10-23 19:45:36 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-10-23 19:56:28 -0700 |
commit | f918675c8b11adb80a83000a3a984e4ff3bdcf1b (patch) | |
tree | 2472316e3bf536e0bad76751c5f3504d029b8215 /html/092socket.mu.html | |
parent | af7349d50c40e0604c9bb1e9a50aa1c3c0d407d8 (diff) | |
download | mu-f918675c8b11adb80a83000a3a984e4ff3bdcf1b.tar.gz |
3569
Update syntax highlighting to not color numeric locations like literals.
Diffstat (limited to 'html/092socket.mu.html')
-rw-r--r-- | html/092socket.mu.html | 130 |
1 files changed, 65 insertions, 65 deletions
diff --git a/html/092socket.mu.html b/html/092socket.mu.html index b8c44663..3b18e2cd 100644 --- a/html/092socket.mu.html +++ b/html/092socket.mu.html @@ -64,31 +64,31 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muRecipe">def</span> new-port-connection port:num, contents:text<span class="muRecipe"> -> </span>p:&:port-connection [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - p:&:port-connection<span class="Special"> <- </span>new <span class="Constant">port-connection:type</span> - *p<span class="Special"> <- </span>merge port, contents + p:&:port-connection <span class="Special"><-</span> new <span class="Constant">port-connection:type</span> + *p <span class="Special"><-</span> merge port, contents ] <span class="muRecipe">def</span> new-fake-network<span class="muRecipe"> -> </span>n:&:local-network [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - n:&:local-network<span class="Special"> <- </span>new <span class="Constant">local-network:type</span> - local-network-ports:&:@:port-connection<span class="Special"> <- </span>new <span class="Constant">port-connection:type</span>, <span class="Constant">0</span> - *n<span class="Special"> <- </span>put *n, <span class="Constant">data:offset</span>, local-network-ports + n:&:local-network <span class="Special"><-</span> new <span class="Constant">local-network:type</span> + local-network-ports:&:@:port-connection <span class="Special"><-</span> new <span class="Constant">port-connection:type</span>,<span class="Constant"> 0</span> + *n <span class="Special"><-</span> put *n, <span class="Constant">data:offset</span>, local-network-ports ] <span class="muScenario">scenario</span> write-to-fake-socket [ <span class="Constant">local-scope</span> - single-port-network:&:local-network<span class="Special"> <- </span>new-fake-network - sink:&:sink:char, writer:num/routine<span class="Special"> <- </span>start-writing-socket single-port-network, <span class="Constant">8080</span> - sink<span class="Special"> <- </span>write sink, <span class="Constant">120/x</span> + single-port-network:&:local-network <span class="Special"><-</span> new-fake-network + sink:&:sink:char, writer:num/routine <span class="Special"><-</span> start-writing-socket single-port-network,<span class="Constant"> 8080</span> + sink <span class="Special"><-</span> write sink, <span class="Constant">120/x</span> close sink wait-for-routine writer - tested-port-connections:&:@:port-connection<span class="Special"> <- </span>get *single-port-network, <span class="Constant">data:offset</span> - tested-port-connection:port-connection<span class="Special"> <- </span>index *tested-port-connections, <span class="Constant">0</span> - contents:text<span class="Special"> <- </span>get tested-port-connection, <span class="Constant">contents:offset</span> - <span class="Constant">10</span>:@:char/<span class="Special">raw <- </span>copy *contents + tested-port-connections:&:@:port-connection <span class="Special"><-</span> get *single-port-network, <span class="Constant">data:offset</span> + tested-port-connection:port-connection <span class="Special"><-</span> index *tested-port-connections,<span class="Constant"> 0</span> + contents:text <span class="Special"><-</span> get tested-port-connection, <span class="Constant">contents:offset</span> + 10:@:char/<span class="Special">raw</span> <span class="Special"><-</span> copy *contents memory-should-contain [ - <span class="Constant">10</span>:array:character<span class="Special"> <- </span><span class="Constant">[x]</span> + 10:array:character <span class="Special"><-</span> <span class="Constant">[x]</span> ] ] @@ -98,12 +98,12 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Delimiter">{</span> <span class="muControl">break-if</span> resources <span class="Comment"># real network</span> - host:text, path:text<span class="Special"> <- </span>split-at uri, <span class="Constant">47/slash</span> - socket:num<span class="Special"> <- </span>$open-client-socket host, <span class="Constant">80/http-port</span> + host:text, path:text <span class="Special"><-</span> split-at uri, <span class="Constant">47/slash</span> + socket:num <span class="Special"><-</span> $open-client-socket host, <span class="Constant">80/http-port</span> assert socket, <span class="Constant">[contents]</span> - req:text<span class="Special"> <- </span>interpolate <span class="Constant">[GET _ HTTP/1.1]</span>, path + req:text <span class="Special"><-</span> interpolate <span class="Constant">[GET _ HTTP/1.1]</span>, path request-socket socket, req - contents:&:source:char, sink:&:sink:char<span class="Special"> <- </span>new-channel <span class="Constant">10000</span> + contents:&:source:char, sink:&:sink:char <span class="Special"><-</span> new-channel<span class="Constant"> 10000</span> start-running receive-from-socket socket, sink <span class="muControl">return</span> <span class="Delimiter">}</span> @@ -141,57 +141,57 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="muRecipe">def</span> start-writing-socket network:&:local-network, port:num<span class="muRecipe"> -> </span>sink:&:sink:char, routine-id:num [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - source:&:source:char, sink:&:sink:char<span class="Special"> <- </span>new-channel <span class="Constant">30</span> + source:&:source:char, sink:&:sink:char <span class="Special"><-</span> new-channel<span class="Constant"> 30</span> <span class="Delimiter">{</span> <span class="muControl">break-if</span> network - socket:num<span class="Special"> <- </span>$open-server-socket port - session:num<span class="Special"> <- </span>$accept socket + socket:num <span class="Special"><-</span> $open-server-socket port + session:num <span class="Special"><-</span> $accept socket <span class="Comment"># TODO Create channel implementation of write-to-socket.</span> <span class="muControl">return</span> sink, <span class="Constant">0/routine-id</span> <span class="Delimiter">}</span> <span class="Comment"># fake network</span> - routine-id<span class="Special"> <- </span>start-running transmit-to-fake-socket network, port, source + routine-id <span class="Special"><-</span> start-running transmit-to-fake-socket network, port, source ] <span class="muRecipe">def</span> transmit-to-fake-socket network:&:local-network, port:num, source:&:source:char<span class="muRecipe"> -> </span>network:&:local-network, source:&:source:char [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> <span class="Comment"># compute new port connection contents</span> - buf:&:buffer<span class="Special"> <- </span>new-buffer <span class="Constant">30</span> + buf:&:buffer <span class="Special"><-</span> new-buffer<span class="Constant"> 30</span> <span class="Delimiter">{</span> - c:char, done?:bool, source<span class="Special"> <- </span>read source + c:char, done?:bool, source <span class="Special"><-</span> read source <span class="muControl">break-unless</span> c - buf<span class="Special"> <- </span>append buf, c + buf <span class="Special"><-</span> append buf, c <span class="muControl">break-if</span> done? <span class="muControl">loop</span> <span class="Delimiter">}</span> - contents:text<span class="Special"> <- </span>buffer-to-array buf - new-port-connection:&:port-connection<span class="Special"> <- </span>new-port-connection port, contents + contents:text <span class="Special"><-</span> buffer-to-array buf + new-port-connection:&:port-connection <span class="Special"><-</span> new-port-connection port, contents <span class="Comment"># Got the contents of the channel, time to write to fake port.</span> - i:num<span class="Special"> <- </span>copy <span class="Constant">0</span> - port-connections:&:@:port-connection<span class="Special"> <- </span>get *network, <span class="Constant">data:offset</span> - len:num<span class="Special"> <- </span>length *port-connections + i:num <span class="Special"><-</span> copy<span class="Constant"> 0</span> + port-connections:&:@:port-connection <span class="Special"><-</span> get *network, <span class="Constant">data:offset</span> + len:num <span class="Special"><-</span> length *port-connections <span class="Delimiter">{</span> - done?:bool<span class="Special"> <- </span>greater-or-equal i, len + done?:bool <span class="Special"><-</span> greater-or-equal i, len <span class="muControl">break-if</span> done? - current:port-connection<span class="Special"> <- </span>index *port-connections, i - current-port:num<span class="Special"> <- </span>get current, <span class="Constant">port:offset</span> - ports-match?:bool<span class="Special"> <- </span>equal current-port, port - i<span class="Special"> <- </span>add i, <span class="Constant">1</span> + current:port-connection <span class="Special"><-</span> index *port-connections, i + current-port:num <span class="Special"><-</span> get current, <span class="Constant">port:offset</span> + ports-match?:bool <span class="Special"><-</span> equal current-port, port + i <span class="Special"><-</span> add i,<span class="Constant"> 1</span> <span class="muControl">loop-unless</span> ports-match? <span class="Comment"># Found an existing connection on this port, overwrite.</span> put-index *port-connections, i, *new-port-connection <span class="muControl">reply</span> <span class="Delimiter">}</span> <span class="Comment"># Couldn't find an existing connection on this port, initialize a new one.</span> - new-len:num<span class="Special"> <- </span>add len, <span class="Constant">1</span> - new-port-connections:&:@:port-connection<span class="Special"> <- </span>new <span class="Constant">port-connection:type</span>, new-len + new-len:num <span class="Special"><-</span> add len,<span class="Constant"> 1</span> + new-port-connections:&:@:port-connection <span class="Special"><-</span> new <span class="Constant">port-connection:type</span>, new-len put *network, <span class="Constant">data:offset</span>, new-port-connections - i:num<span class="Special"> <- </span>copy <span class="Constant">0</span> + i:num <span class="Special"><-</span> copy<span class="Constant"> 0</span> <span class="Delimiter">{</span> - done?:bool<span class="Special"> <- </span>greater-or-equal i, len + done?:bool <span class="Special"><-</span> greater-or-equal i, len <span class="muControl">break-if</span> done? - tmp:port-connection<span class="Special"> <- </span>index *port-connections, i + tmp:port-connection <span class="Special"><-</span> index *port-connections, i put-index *new-port-connections, i, tmp <span class="Delimiter">}</span> put-index *new-port-connections, len, *new-port-connection @@ -201,33 +201,33 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> <span class="Delimiter">{</span> - req:text, eof?:bool<span class="Special"> <- </span>$read-from-socket socket, <span class="Constant">4096/bytes</span> - bytes-read:num<span class="Special"> <- </span>length *req - i:num<span class="Special"> <- </span>copy <span class="Constant">0</span> + req:text, eof?:bool <span class="Special"><-</span> $read-from-socket socket, <span class="Constant">4096/bytes</span> + bytes-read:num <span class="Special"><-</span> length *req + i:num <span class="Special"><-</span> copy<span class="Constant"> 0</span> <span class="Delimiter">{</span> - done?:bool<span class="Special"> <- </span>greater-or-equal i, bytes-read + done?:bool <span class="Special"><-</span> greater-or-equal i, bytes-read <span class="muControl">break-if</span> done? - c:char<span class="Special"> <- </span>index *req, i <span class="Comment"># todo: unicode</span> - sink<span class="Special"> <- </span>write sink, c - i<span class="Special"> <- </span>add i, <span class="Constant">1</span> + c:char <span class="Special"><-</span> index *req, i <span class="Comment"># todo: unicode</span> + sink <span class="Special"><-</span> write sink, c + i <span class="Special"><-</span> add i,<span class="Constant"> 1</span> <span class="muControl">loop</span> <span class="Delimiter">}</span> <span class="muControl">loop-unless</span> eof? <span class="Delimiter">}</span> - sink<span class="Special"> <- </span>close sink + sink <span class="Special"><-</span> close sink ] <span class="muRecipe">def</span> write-to-socket socket:num, s:text [ <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> - len:num<span class="Special"> <- </span>length *s - i:num<span class="Special"> <- </span>copy <span class="Constant">0</span> + len:num <span class="Special"><-</span> length *s + i:num <span class="Special"><-</span> copy<span class="Constant"> 0</span> <span class="Delimiter">{</span> - done?:bool<span class="Special"> <- </span>greater-or-equal i, len + done?:bool <span class="Special"><-</span> greater-or-equal i, len <span class="muControl">break-if</span> done? - c:char<span class="Special"> <- </span>index *s, i + c:char <span class="Special"><-</span> index *s, i $write-to-socket socket, c - i<span class="Special"> <- </span>add i, <span class="Constant">1</span> + i <span class="Special"><-</span> add i,<span class="Constant"> 1</span> <span class="muControl">loop</span> <span class="Delimiter">}</span> ] @@ -237,30 +237,30 @@ body { font-size: 12pt; font-family: monospace; color: #eeeeee; background-color <span class="Constant">local-scope</span> <span class="Constant">load-ingredients</span> <span class="Comment"># empty text? return empty texts</span> - len:num<span class="Special"> <- </span>length *text + len:num <span class="Special"><-</span> length *text <span class="Delimiter">{</span> - empty?:bool<span class="Special"> <- </span>equal len, <span class="Constant">0</span> + empty?:bool <span class="Special"><-</span> equal len,<span class="Constant"> 0</span> <span class="muControl">break-unless</span> empty? - x:text<span class="Special"> <- </span>new <span class="Constant">[]</span> - y:text<span class="Special"> <- </span>new <span class="Constant">[]</span> + x:text <span class="Special"><-</span> new <span class="Constant">[]</span> + y:text <span class="Special"><-</span> new <span class="Constant">[]</span> <span class="muControl">return</span> <span class="Delimiter">}</span> - idx:num<span class="Special"> <- </span>find-next text, delim, <span class="Constant">0</span> - x:text<span class="Special"> <- </span>copy-range text, <span class="Constant">0</span>, idx - y:text<span class="Special"> <- </span>copy-range text, idx, len + idx:num <span class="Special"><-</span> find-next text, delim,<span class="Constant"> 0</span> + x:text <span class="Special"><-</span> copy-range text,<span class="Constant"> 0</span>, idx + y:text <span class="Special"><-</span> copy-range text, idx, len ] <span class="muScenario">scenario</span> text-split-at [ <span class="Constant">local-scope</span> - x:text<span class="Special"> <- </span>new <span class="Constant">[a/b]</span> + x:text <span class="Special"><-</span> new <span class="Constant">[a/b]</span> run [ - y:text, z:text<span class="Special"> <- </span>split-at x, <span class="Constant">47/slash</span> - <span class="Constant">10</span>:@:char/<span class="Special">raw <- </span>copy *y - <span class="Constant">20</span>:@:char/<span class="Special">raw <- </span>copy *z + y:text, z:text <span class="Special"><-</span> split-at x, <span class="Constant">47/slash</span> + 10:@:char/<span class="Special">raw</span> <span class="Special"><-</span> copy *y + 20:@:char/<span class="Special">raw</span> <span class="Special"><-</span> copy *z ] memory-should-contain [ - <span class="Constant">10</span>:array:character<span class="Special"> <- </span><span class="Constant">[a]</span> - <span class="Constant">20</span>:array:character<span class="Special"> <- </span><span class="Constant">[/b]</span> + 10:array:character <span class="Special"><-</span> <span class="Constant">[a]</span> + 20:array:character <span class="Special"><-</span> <span class="Constant">[/b]</span> ] ] </pre> |