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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
subroutine iferrc (lab, sense)
integer lab, sense
integer labgen, nlpar
integer t, gettok, gnbtok, token(100)
common /cdefio/ bp, buf (4096)
integer bp
integer buf
common /cfname/ fcname (30)
integer fcname
common /cfor/ fordep, forstk (200)
integer fordep
integer forstk
common /cgoto/ xfer
integer xfer
common /clabel/ label, retlab, memflg, col, logic0
integer label
integer retlab
integer memflg
integer col
integer logic0
common /cline/ dbgout, dbglev, level, linect (5), infile (5), fnam
*p, fnames ( 150)
integer dbgout
integer dbglev
integer level
integer linect
integer infile
integer fnamp
integer fnames
common /cmacro/ cp, ep, evalst (500), deftbl
integer cp
integer ep
integer evalst
integer deftbl
common /coutln/ outp, outbuf (74)
integer outp
integer outbuf
common /csbuf/ sbp, sbuf(2048), smem(240)
integer sbp
integer sbuf
integer smem
common /cswtch/ swtop, swlast, swstak(1000), swvnum, swvlev, swvst
*k(10), swinrg
integer swtop
integer swlast
integer swstak
integer swvnum
integer swvlev
integer swvstk
integer swinrg
common /ckword/ rkwtbl
integer rkwtbl
common /clname/ fkwtbl, namtbl, gentbl, errtbl, xpptbl
integer fkwtbl
integer namtbl
integer gentbl
integer errtbl
integer xpptbl
common /erchek/ ername, body, esp, errstk(30)
integer ername
integer body
integer esp
integer errstk
integer mem( 60000)
common/cdsmem/mem
integer errpsh(12)
integer siferr(20)
integer sifno0(15)
data errpsh(1)/99/,errpsh(2)/97/,errpsh(3)/108/,errpsh(4)/108/,err
*psh(5)/32/,errpsh(6)/120/,errpsh(7)/101/,errpsh(8)/114/,errpsh(9)/
*112/,errpsh(10)/115/,errpsh(11)/104/,errpsh(12)/-2/
data siferr(1)/105/,siferr(2)/102/,siferr(3)/32/,siferr(4)/40/,sif
*err(5)/46/,siferr(6)/110/,siferr(7)/111/,siferr(8)/116/,siferr(9)/
*46/,siferr(10)/120/,siferr(11)/101/,siferr(12)/114/,siferr(13)/112
*/,siferr(14)/111/,siferr(15)/112/,siferr(16)/40/,siferr(17)/41/,si
*ferr(18)/41/,siferr(19)/32/,siferr(20)/-2/
data sifno0(1)/105/,sifno0(2)/102/,sifno0(3)/32/,sifno0(4)/40/,sif
*no0(5)/120/,sifno0(6)/101/,sifno0(7)/114/,sifno0(8)/112/,sifno0(9)
*/111/,sifno0(10)/112/,sifno0(11)/40/,sifno0(12)/41/,sifno0(13)/41/
*,sifno0(14)/32/,sifno0(15)/-2/
xfer = 0
lab = labgen (3)
call outtab
call outstr (errpsh)
call outdon
I23000=(gnbtok (token, 100))
goto 23000
23002 continue
call outtab
goto 23001
23003 continue
call pbstr (token)
esp = esp + 1
if (.not.(esp .ge. 30))goto 23004
call baderr (35HIferr statements nested too deeply.)
23004 continue
errstk(esp) = lab
return
23006 continue
call synerr (19HMissing left paren.)
return
23000 continue
if (I23000.eq.40)goto 23002
if (I23000.eq.123)goto 23003
goto 23006
23001 continue
nlpar = 1
token(1) = -2
esp = esp + 1
if (.not.(esp .ge. 30))goto 23007
call baderr (35HIferr statements nested too deeply.)
23007 continue
errstk(esp) = 0
23009 continue
call outstr (token)
t = gettok (token, 100)
if (.not.(t .eq. 59 .or. t .eq. 123 .or. t .eq. 125 .or. t .eq. -1
*))goto 23012
call pbstr (token)
goto 23011
23012 continue
if (.not.(t .eq. 10))goto 23014
token (1) = -2
goto 23015
23014 continue
if (.not.(t .eq. 40))goto 23016
nlpar = nlpar + 1
goto 23017
23016 continue
if (.not.(t .eq. 41))goto 23018
nlpar = nlpar - 1
goto 23019
23018 continue
if (.not.(t .eq. 59))goto 23020
call outdon
call outtab
goto 23021
23020 continue
if (.not.(t .eq. -9))goto 23022
call squash (token)
23022 continue
23021 continue
23019 continue
23017 continue
23015 continue
23010 if (.not.(nlpar .le. 0))goto 23009
23011 continue
esp = esp - 1
ername = 0
if (.not.(nlpar .ne. 0))goto 23024
call synerr (33HMissing parenthesis in condition.)
goto 23025
23024 continue
call outdon
23025 continue
call outtab
if (.not.(sense .eq. 1))goto 23026
call outstr (siferr)
goto 23027
23026 continue
call outstr (sifno0)
23027 continue
call outgo (lab)
call indent (1)
return
end
c sifno0 sifnoerr
c logic0 logical_column
|