From 7635c9c15d25fce6b392f9899a68a36cdd7c06c4 Mon Sep 17 00:00:00 2001 From: henesy Date: Thu, 28 Feb 2019 12:48:48 -0600 Subject: add note about pete vnc ;; source, but no explanation for switch --- Switch/switch.b | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Switch/switch.b (limited to 'Switch/switch.b') diff --git a/Switch/switch.b b/Switch/switch.b new file mode 100644 index 0000000..a25220c --- /dev/null +++ b/Switch/switch.b @@ -0,0 +1,72 @@ +implement Switch; + +include "sys.m"; +include "draw.m"; + +sys: Sys; +print, FD: import sys; + +Switch: module { + init: fn(nil: ref Draw->Context, nil: list of string); +}; + +init(nil: ref Draw->Context, nil: list of string) { + sys = load Sys Sys->PATH; + + i := 10; + + # The label labelling the enclosing construct + loop: + + for(; i >= 0; i--) + case i { + 0 or 2 or 4 or 6 or 8 or 10 => + print("Even\n"); + continue loop; + * => + print("Odd\n"); + break loop; + } + + print("i's value: %d\n", i); + + c := 'c'; + + case c { + 'a' to 'f' => + print("Valid hex\n"); + 'C' => + print("The letter 'C'\n"); + * => + print("The default\n"); + } + + str := "ducks"; + + case str { + "ducks" => + print("Quack!\n"); + "" => + print("Nil string\n"); + } + + n := 1; + + case n { + 0 or 1 => + print("This is binary\n"); + * => + print("This is non-binary\n"); + } + + f := big 6; + + case f { + big 4 => print("The number 4\n"); + big 5 => print("The number 7\n"); + * => + print("Neither 4 nor 7\n"); + } + + exit; +} -- cgit v1.2.3