1           /* START OF:        rdc_next_stmt_.incl.pl1         *  *  *  *  *  *  */
 2 
 3           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
 4           /*                                                                    */
 5           /* N^H__^Ha_^Hm_^He:  rdc_next_stmt_.incl.pl1                                   */
 6           /*                                                                    */
 7           /*      This include segment is used by compilers generated by the    */
 8           /* reduction_compiler.  It includes a procedure which shifts the      */
 9           /* compilation process to the next source statement.                  */
10           /*                                                                    */
11           /* S^H__^Ht_^Ha_^Ht_^Hu_^Hs                                                               */
12           /*                                                                    */
13           /* 0) Created:  April, 1974 by G. C. Dixon                            */
14           /*                                                                    */
15           /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
16 
17 
18 NEXT_STMT:          procedure;                              /* invoked to begin parsing the next statement of */
19                                                             /* the input tokens.                              */
20 
21      dcl  null                          builtin,
22           Ssearching                    bit(1) aligned;
23 
24           Ptoken = Pthis_token;                             /* make sure these pointers are the same.         */
25           Pstmt = token.Pstmt;                              /* address "current" statement's descriptor.      */
26           Ssearching = "1"b;                                /* start scanning forward for next statement.     */
27           do while (Ssearching & token.Pnext ^= null);
28                Ptoken = token.Pnext;
29                if token.Pstmt = Pstmt then;
30                else Ssearching = "0"b;
31                end;
32           if token.Pstmt = Pstmt then                       /* if there is no next statement, and             */
33                if SPDL then                                 /*   in PUSH DOWN LANGUAGE mode, can't run off    */
34                     Ptoken = Ptoken;                        /*   end of input list.                           */
35                else Ptoken, Pthis_token = null;             /*   otherwise, input list exhausted.             */
36           else Pthis_token = Ptoken;                        /* normally, next statement exists and Ptoken     */
37                                                             /*   points to its 1st _^Hn_^Ho_^Hn-^H__^Hd_^He_^Hl_^He_^Ht_^He_^Hd token.      */
38 
39           end NEXT_STMT;
40 
41           /* END OF:          rdc_next_stmt_.incl.pl1         *  *  *  *  *  *  */