Details
The language described here is the later version of Mouse, as described in the Mouse book. This version is an extension of the language described in the original magazine article. Symbols The following table describes each of the symbols used by Mouse. Here X refers to the number on the top of the stack, and Y is the next number on the stack. Expressions Common idioms These expressions appear frequently in Mouse programs. X: ~ store into variable X X. ~ recall variable X X. Y: ~ copy X into Y N. 1 + N: ~ increment N by 1 P. Q. P: Q: ~ swap values of P and Q ? A: ~ input a number and store in A P. ! ~ print variable P Input Mouse may input integers or characters. When a character is input, it is automatically converted to its ASCII code. ? X: ~ input a number and store into X ?' X: ~ input a character and store its ASCII code into X Output Mouse may print integers, characters, or string constants, as shown in these examples. If an exclamation point appears in a string constant, a new line is printed. X. ! ~ recall number X and print it X. !' ~ recall ASCII code X and print character "Hello" ~ print string "Hello" "Line 1!Line 2" ~ print strings "Line 1" and "Line 2" on two lines Conditionals A conditional statement has the general form: B [ S ] ~ equivalent to: if B then S Here B is an expression that evaluates to 1 (true) or 0 (false), and S is a sequence of statements. Loops Loops may have one of several forms. Most common are the forms: (B ^ S) ~ equivalent to: while B do S (S B ^) ~ equivalent to: repeat S until (not B) Here again B is a boolean value (0 or 1), and S is a sequence of statements. Macro calls The format of a macro (subroutine) call may be illustrated by the following example. Macro A in this example adds the two parameters passed to it from the main program, and returns the sum on the top of the stack. • A,p1,p2; ~ call in main program to macro A ... $A 1% 2% + @ ~ macro A (add parameters p1 and p2) Here p1 and p2 are parameters passed to the macro. Example programs This short program prints 'Hello world.' "Hello world." $ This program displays the squares of the integers from 1 to 10. 1 N: ~ initialize N to 1 ( N. N. * ! " " ~ begin loop; print squares of numbers N. 10 - 0 = 10 N. 1 + N: ) $ ~ increment N and repeat loop ==Notes==