File: TooLargeBranch_off16.fth

package info (click to toggle)
fcode-utils 1.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 46,768 kB
  • sloc: ansic: 9,717; csh: 241; makefile: 129; sh: 17
file content (67 lines) | stat: -rw-r--r-- 1,527 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
\  Test case of a branch going over too large a range
\  Body generated by script.
\  (Numeric values, argument of 232 just exceeds the inner branches.)
\  (Numeric values, argument of N >= 233 exceeds them all.)
\  (Verbal argument of 179 just exceeds the inner branches.)
\  (Verbal argument of N >= 180 exceeds them all.)
\  Command-line definition of 'fld_cmd' should be of the form 'fload <filename>'
\  and can be used to load variable-sized bodies.

\  Default will be  TooLargeBranch_off16_body.fth

fcode-version2          \  Sixteen-bit offsets.

headers

: too-large-case ( n -- )

    ." Let's give it a large back-reference too."
    begin  ." We've just begun"
     ." 1 0 do " cr 1 0 do
    dup  ." if " cr
    if
        dup ." case"
	case
	0 of  ."  Just a short case" cr endof
	." default.  The Big One!" cr

[ifndef] fld_cmd
    fload  TooLargeBranch_off16_body.fth
[else]
    [defined] fld_cmd
[endif]

        endcase
    ." then"
    then
       ." Loop back and forward" cr loop

   ."  And here we are!"
   exit
   ."  Well, we needed some way out!"

    again  ."  Back to the fuchsia."
;

\  Let's make a small jump, just to see what normal looks like
: control-example
    ."  Small non-loop"
    begin   ."  Here's the beguine"

    dup  ." if "
    if
        dup ." case"
	case
	0 of  ."  Just a short case" cr endof
	." default.  Normal one!" cr
        endcase
    ." then"
    then

       ." and the way out"
   exit
       ." and the jump back"
    again   ."  Never do this" cr
;

fcode-end