blob: 50a04025cc5afc97598ed34cb38851cbf29d8632 (
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
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
|
#-h- relate 1276 local 12/01/80 15:54:35
# relate - convert relational shorthands into long form
include defs
subroutine relate (token, last)
character token (ARB)
integer last
character ngetch
integer length
if (ngetch (token (2)) != EQUALS) {
call putbak (token (2))
token (3) = LETT
}
else
token (3) = LETE
token (4) = PERIOD
token (5) = EOS
token (6) = EOS # for .not. and .and.
if (token (1) == GREATER)
token (2) = LETG
else if (token (1) == LESS)
token (2) = LETL
else if (token (1) == NOT | token (1) == BANG |
token (1) == CARET | token (1) == TILDE) {
if (token (2) != EQUALS) {
token (3) = LETO
token (4) = LETT
token (5) = PERIOD
}
token (2) = LETN
}
else if (token (1) == EQUALS) {
if (token (2) != EQUALS) {
token (2) = EOS
last = 1
return
}
token (2) = LETE
token (3) = LETQ
}
else if (token (1) == AND) {
token (2) = LETA
token (3) = LETN
token (4) = LETD
token (5) = PERIOD
}
else if (token (1) == OR) {
token (2) = LETO
token (3) = LETR
}
else # can't happen
token (2) = EOS
token (1) = PERIOD
last = length (token)
return
end
|