aboutsummaryrefslogtreecommitdiff
path: root/unix/boot/spp/rpp/rpprat/errgo.r
blob: 81aa582c0e16b027480bb9d9faff56db7e2f9e29 (plain) (blame)
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
include defs

# ERRGO -- Ouput error checking code.

subroutine errgo

include COMMON_BLOCKS
string	serrchk "if (xerflg) "

	# In the processing of the last line, was an indentifier encountered
	# for which error checking is required (named in errchk declaration)?

	if (ername == YES) {
	    call outtab
	    if (esp > 0) {				# in iferr ... stmt?
		# Omit goto if goto statement label number is zero.  This
		# happens in "iferr (...)" statements.
		if (errstk(esp) > 0) {
		    call outstr (serrchk)
		    call ogotos (errstk(esp)+2, NO)	# "goto lab"
		}
	    } else {
		call outstr (serrchk)
		call ogotos (retlab, NO)
		call outdon
	    }
	    ername = NO
	}
end