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 * * * * * * */