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
169
170
|
subroutine strdcl
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 t, token (100), dchar (100)
integer gnbtok
integer i, j, k, n, len
integer length, ctoi, lex
integer char(11)
integer dat(6)
integer eoss(3)
data char(1)/105/,char(2)/110/,char(3)/116/,char(4)/101/,char(5)/1
*03/,char(6)/101/,char(7)/114/,char(8)/42/,char(9)/50/,char(10)/47/
*,char(11)/-2/
data dat(1)/100/,dat(2)/97/,dat(3)/116/,dat(4)/97/,dat(5)/32/,dat(
*6)/-2/
data eoss(1)/48/,eoss(2)/47/,eoss(3)/-2/
t = gnbtok (token, 100)
if (.not.(t .ne. -9))goto 23000
call synerr (21Hmissing string token.)
23000 continue
call squash (token)
call outtab
call pbstr (char)
23002 continue
t = gnbtok (dchar, 100)
if (.not.(t .eq. 47))goto 23005
goto 23004
23005 continue
call outstr (dchar)
23003 goto 23002
23004 continue
call outch (32)
call outstr (token)
call addstr (token, sbuf, sbp, 2048)
call addchr (-2, sbuf, sbp, 2048)
if (.not.(gnbtok (token, 100) .ne. 40))goto 23007
len = length (token) + 1
if (.not.(token (1) .eq. 39 .or. token (1) .eq. 34))goto 23009
len = len - 2
23009 continue
goto 23008
23007 continue
t = gnbtok (token, 100)
i = 1
len = ctoi (token, i)
if (.not.(token (i) .ne. -2))goto 23011
call synerr (20Hinvalid string size.)
23011 continue
if (.not.(gnbtok (token, 100) .ne. 41))goto 23013
call synerr (20Hmissing right paren.)
goto 23014
23013 continue
t = gnbtok (token, 100)
23014 continue
23008 continue
call outch (40)
call outnum (len)
call outch (41)
call outdon
if (.not.(token (1) .eq. 39 .or. token (1) .eq. 34))goto 23015
len = length (token)
token (len) = -2
call addstr (token (2), sbuf, sbp, 2048)
goto 23016
23015 continue
call addstr (token, sbuf, sbp, 2048)
23016 continue
call addchr (-2, sbuf, sbp, 2048)
t = lex (token)
call pbstr (token)
if (.not.(t .ne. -75))goto 23017
i = 1
23019 if (.not.(i .lt. sbp))goto 23021
call outtab
call outstr (dat)
k = 1
j = i + length (sbuf (i)) + 1
23022 continue
if (.not.(k .gt. 1))goto 23025
call outch (44)
23025 continue
call outstr (sbuf (i))
call outch (40)
call outnum (k)
call outch (41)
call outch (47)
if (.not.(sbuf (j) .eq. -2))goto 23027
goto 23024
23027 continue
n = sbuf (j)
call outnum (n)
call outch (47)
k = k + 1
23023 j = j + 1
goto 23022
23024 continue
call pbstr (eoss)
23029 continue
t = gnbtok (token, 100)
call outstr (token)
23030 if (.not.(t .eq. 47))goto 23029
23031 continue
call outdon
23020 i = j + 1
goto 23019
23021 continue
sbp = 1
23017 continue
return
end
c logic0 logical_column
|