1\  Test case of a branch going over too large a range
2\  Body generated by script.
3\  (Numeric values, argument of 232 just exceeds the inner branches.)
4\  (Numeric values, argument of N >= 233 exceeds them all.)
5\  (Verbal argument of 179 just exceeds the inner branches.)
6\  (Verbal argument of N >= 180 exceeds them all.)
7\  Command-line definition of 'fld_cmd' should be of the form 'fload <filename>'
8\  and can be used to load variable-sized bodies.
9
10\  Default will be  TooLargeBranch_off16_body.fth
11
12fcode-version2          \  Sixteen-bit offsets.
13
14headers
15
16: too-large-case ( n -- )
17
18    ." Let's give it a large back-reference too."
19    begin  ." We've just begun"
20     ." 1 0 do " cr 1 0 do
21    dup  ." if " cr
22    if
23        dup ." case"
24	case
25	0 of  ."  Just a short case" cr endof
26	." default.  The Big One!" cr
27
28[ifndef] fld_cmd
29    fload  TooLargeBranch_off16_body.fth
30[else]
31    [defined] fld_cmd
32[endif]
33
34        endcase
35    ." then"
36    then
37       ." Loop back and forward" cr loop
38
39   ."  And here we are!"
40   exit
41   ."  Well, we needed some way out!"
42
43    again  ."  Back to the fuchsia."
44;
45
46\  Let's make a small jump, just to see what normal looks like
47: control-example
48    ."  Small non-loop"
49    begin   ."  Here's the beguine"
50
51    dup  ." if "
52    if
53        dup ." case"
54	case
55	0 of  ."  Just a short case" cr endof
56	." default.  Normal one!" cr
57        endcase
58    ." then"
59    then
60
61       ." and the way out"
62   exit
63       ." and the jump back"
64    again   ."  Never do this" cr
65;
66
67fcode-end
68