Merge pull request #13 from philburk/fixrom
[pforth] / fth / t_locals.fth
CommitLineData
bb6b2dcd 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
6include? }T{ t_tools.fth\r
7\r
8anew task-t_locals.fth\r
9decimal\r
10\r
11test{\r
12\r
13\ test value and locals\r
14T{ 333 value my-value my-value }T{ 333 }T\r
15T{ 1000 -> my-value my-value }T{ 1000 }T\r
16T{ 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
23T{ 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
35T{ 200 59 test.locs }T{ TRUE }T\r
36\r
37.( Test warning when no locals defined.) cr\r
38: loc.nonames { -- } 1234 ;\r
39T{ 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
49T{ 5 20 calc.area }T{ 100 }T\r
50\r
51}test\r
52\r