Suppress CR in quiet mode, patch by Derek Fawcus.
[debian/pforth] / fth / t_locals.fth
1 \ @(#) t_locals.fth 97/01/28 1.1\r
2 \ Test PForth LOCAL variables.\r
3 \\r
4 \ Copyright 1996 3DO, Phil Burk\r
5 \r
6 include? }T{  t_tools.fth\r
7 \r
8 anew task-t_locals.fth\r
9 decimal\r
10 \r
11 test{\r
12 \r
13 \ test value and locals\r
14 T{ 333 value  my-value   my-value }T{  333 }T\r
15 T{ 1000 -> my-value   my-value }T{ 1000 }T\r
16 T{ 35 +-> my-value   my-value }T{ 1035 }T\r
17 : test.value  ( -- ok )\r
18         100 -> my-value\r
19         my-value 100 =\r
20         47 +-> my-value\r
21         my-value 147 = AND\r
22 ;\r
23 T{ test.value }T{ TRUE }T\r
24 \r
25 \ test locals in a word\r
26 : test.locs  { aa bb | cc -- ok }\r
27         cc 0=\r
28         aa bb + -> cc\r
29         aa bb +   cc = AND\r
30         aa -> cc\r
31         bb +->  cc\r
32         aa bb +   cc = AND\r
33 ;\r
34 \r
35 T{ 200 59 test.locs }T{  TRUE }T\r
36 \r
37 .( Test warning when no locals defined.) cr\r
38 : loc.nonames { -- } 1234 ;\r
39 T{ loc.nonames }T{ 1234 }T\r
40 \r
41 \ try to put EOLs and comments in variable list\r
42 : calc.area {\r
43         width    \ horizontal dimension\r
44         height   \ vertical dimension\r
45         -- area , calculate area of a rectangle }\r
46         width height *\r
47 ;\r
48 \r
49 T{ 5 20 calc.area }T{ 100 }T\r
50 \r
51 }test\r
52 \r