summaryrefslogtreecommitdiff
path: root/usergrps/uktug/baskervi/6_4/java-goto.tex
blob: 61cf61c74c8cc6978bb4c9423fa2f4ce34a57320 (plain)
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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% this figure relates to something a little later on; placed here to
%%% force it to come atop the proper case
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{figure*}[htp]
\begin{verbatim}
    @x
    @<Start translation of command |o| and |goto| the appropriate label to
      finish the job@>;
    fin_set: @<Finish a command that either sets or puts a character, then
        |goto move_right| or |done|@>;
    fin_rule: @<Finish a command that either sets or puts a rule, then
        |goto move_right| or |done|@>;
    move_right: @<Finish a command that sets |h:=h+q|, then |goto done|@>;
    show_state: @<Show the values of |ss|, |h|, |v|, |w|, |x|, |y|, |z|,
      |hh|, and |vv|; then |goto done|@>;
    done: if showing then print_ln(' ');
    @y
    Done: loop begin
    show_state: loop begin
    move_right: loop begin
    fin_rule: loop begin
    fin_set: loop begin
    @<Start translation of command |o| and |goto| the appropriate label to
      finish the job@>;
    break end; @<Finish a command that either sets or puts a character, then
        |goto move_right| or |done|@>;
    break end; @<Finish a command that either sets or puts a rule, then
        |goto move_right| or |done|@>;
    break end; @<Finish a command that sets |h:=h+q|, then |goto done|@>;
    break end; @<Show the values of |ss|, |h|, |v|, |w|, |x|, |y|, |z|,
      |hh|, and |vv|; then |goto done|@>;
    break end; if showing then print_ln(' ');
    @z
\end{verbatim}
\caption{Translation of targets of \texttt{goto}s in
  \texttt{dvitype.ch}}
\label{fig:dvitype}
\end{figure*}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%