32 lines
956 B
Text
32 lines
956 B
Text
$ include "seed7_05.s7i";
|
|
|
|
const proc: runCode (in string: code) is func
|
|
local
|
|
var char: ch is ' ';
|
|
var integer: bottles is 0;
|
|
var integer: accumulator is 0;
|
|
begin
|
|
for ch range code do
|
|
case ch of
|
|
when {'H'}: writeln("Hello, world!");
|
|
when {'Q'}: writeln(code);
|
|
when {'9'}: bottles := 99;
|
|
repeat
|
|
writeln(bottles <& " bottles of beer on the wall");
|
|
writeln(bottles <& " bottles of beer");
|
|
writeln("Take one down, pass it around");
|
|
decr(bottles);
|
|
writeln(bottles <& " bottles of beer on the wall");
|
|
writeln;
|
|
until bottles = 0;
|
|
when {'+'}: incr(accumulator);
|
|
end case;
|
|
end for;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
begin
|
|
if length(argv(PROGRAM)) >= 1 then
|
|
runCode(argv(PROGRAM)[1]);
|
|
end if;
|
|
end func;
|