|
@@ -383,7 +383,10 @@ PROCEDURE GetSymVal (name: ARRAY OF CHAR; VAR v: ARRAY OF CHAR): BOOLEAN;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.val[0] = CHR(0)) THEN
|
|
|
|
|
|
|
+ IF node = NIL THEN
|
|
|
|
|
+ v[0] := CHR(0); RETURN FALSE
|
|
|
|
|
+ END;
|
|
|
|
|
+ IF node^.val[0] = CHR(0) THEN
|
|
|
v[0] := CHR(0); RETURN FALSE
|
|
v[0] := CHR(0); RETURN FALSE
|
|
|
END;
|
|
END;
|
|
|
Assign(v, node^.val);
|
|
Assign(v, node^.val);
|
|
@@ -830,9 +833,8 @@ PROCEDURE ProcTypeOf (name: ARRAY OF CHAR): TypeIndex;
|
|
|
k: CARDINAL;
|
|
k: CARDINAL;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN InvalidType END;
|
|
|
t := NewDesc(FProc, node^.rslt);
|
|
t := NewDesc(FProc, node^.rslt);
|
|
|
IF t = InvalidType THEN RETURN t END;
|
|
IF t = InvalidType THEN RETURN t END;
|
|
|
procstart[t] := nProcP;
|
|
procstart[t] := nProcP;
|
|
@@ -989,9 +991,8 @@ PROCEDURE FieldOwner (name: ARRAY OF CHAR): TypeIndex;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindField) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF node^.kind # KindField THEN RETURN InvalidType END;
|
|
|
IF node^.scope = NIL THEN RETURN InvalidType END;
|
|
IF node^.scope = NIL THEN RETURN InvalidType END;
|
|
|
RETURN node^.scope^.ofRec
|
|
RETURN node^.scope^.ofRec
|
|
|
END FieldOwner;
|
|
END FieldOwner;
|
|
@@ -1073,7 +1074,8 @@ PROCEDURE MethodExists (t: TypeIndex; name: ARRAY OF CHAR): BOOLEAN;
|
|
|
s := tscope[r];
|
|
s := tscope[r];
|
|
|
IF s = NIL THEN RETURN FALSE END;
|
|
IF s = NIL THEN RETURN FALSE END;
|
|
|
node := TreeFind(s^.root, name);
|
|
node := TreeFind(s^.root, name);
|
|
|
- RETURN (node # NIL) AND (node^.kind = KindProc)
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ RETURN node^.kind = KindProc
|
|
|
END MethodExists;
|
|
END MethodExists;
|
|
|
|
|
|
|
|
PROCEDURE PushClassMembers (t: TypeIndex): BOOLEAN;
|
|
PROCEDURE PushClassMembers (t: TypeIndex): BOOLEAN;
|
|
@@ -1144,7 +1146,8 @@ PROCEDURE ResumeProc (name: ARRAY OF CHAR): BOOLEAN;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
IF curUnit # UnitImpl THEN RETURN FALSE END;
|
|
IF curUnit # UnitImpl THEN RETURN FALSE END;
|
|
|
node := TreeFind(curScope^.root, name);
|
|
node := TreeFind(curScope^.root, name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN RETURN FALSE END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN FALSE END;
|
|
|
node^.plink := NIL; (* implementation re-enters formals *)
|
|
node^.plink := NIL; (* implementation re-enters formals *)
|
|
|
curProc := node;
|
|
curProc := node;
|
|
|
curPTail := NIL;
|
|
curPTail := NIL;
|
|
@@ -1157,7 +1160,8 @@ PROCEDURE ReenterProc (name: ARRAY OF CHAR): BOOLEAN;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := TreeFind(curScope^.root, name);
|
|
node := TreeFind(curScope^.root, name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) OR NOT node^.fwd THEN
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF (node^.kind # KindProc) OR NOT node^.fwd THEN
|
|
|
RETURN FALSE
|
|
RETURN FALSE
|
|
|
END;
|
|
END;
|
|
|
node^.fwd := FALSE;
|
|
node^.fwd := FALSE;
|
|
@@ -1197,9 +1201,8 @@ PROCEDURE ProcRes (name: ARRAY OF CHAR): TypeIndex;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN InvalidType END;
|
|
|
RETURN node^.rslt
|
|
RETURN node^.rslt
|
|
|
END ProcRes;
|
|
END ProcRes;
|
|
|
|
|
|
|
@@ -1223,14 +1226,16 @@ PROCEDURE IsExternal (name: ARRAY OF CHAR): BOOLEAN;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- RETURN (node # NIL) AND node^.ext
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ RETURN node^.ext
|
|
|
END IsExternal;
|
|
END IsExternal;
|
|
|
|
|
|
|
|
PROCEDURE ProcLink (name: ARRAY OF CHAR; VAR link: Name): BOOLEAN;
|
|
PROCEDURE ProcLink (name: ARRAY OF CHAR; VAR link: Name): BOOLEAN;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR NOT node^.ext THEN RETURN FALSE END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF NOT node^.ext THEN RETURN FALSE END;
|
|
|
Assign(link, node^.link);
|
|
Assign(link, node^.link);
|
|
|
RETURN TRUE
|
|
RETURN TRUE
|
|
|
END ProcLink;
|
|
END ProcLink;
|
|
@@ -1261,7 +1266,8 @@ PROCEDURE ProcDepthOf (name: ARRAY OF CHAR): CARDINAL;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN RETURN 0 END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN 0 END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN 0 END;
|
|
|
RETURN node^.fdep
|
|
RETURN node^.fdep
|
|
|
END ProcDepthOf;
|
|
END ProcDepthOf;
|
|
|
|
|
|
|
@@ -1269,7 +1275,8 @@ PROCEDURE ProcUid (name: ARRAY OF CHAR): CARDINAL;
|
|
|
VAR node: SymPtr;
|
|
VAR node: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN RETURN 0 END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN 0 END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN 0 END;
|
|
|
RETURN node^.uid
|
|
RETURN node^.uid
|
|
|
END ProcUid;
|
|
END ProcUid;
|
|
|
|
|
|
|
@@ -1287,7 +1294,8 @@ PROCEDURE ProcNPar (name: ARRAY OF CHAR): CARDINAL;
|
|
|
n: CARDINAL;
|
|
n: CARDINAL;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN RETURN 0 END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN 0 END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN 0 END;
|
|
|
n := 0; p := node^.plink;
|
|
n := 0; p := node^.plink;
|
|
|
WHILE p # NIL DO INC(n); p := p^.plink END;
|
|
WHILE p # NIL DO INC(n); p := p^.plink END;
|
|
|
RETURN n
|
|
RETURN n
|
|
@@ -1297,9 +1305,8 @@ PROCEDURE ParamType (name: ARRAY OF CHAR; i: CARDINAL): TypeIndex;
|
|
|
VAR node, p: SymPtr;
|
|
VAR node, p: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN InvalidType END;
|
|
|
p := NthParam(node, i);
|
|
p := NthParam(node, i);
|
|
|
IF p = NIL THEN RETURN InvalidType END;
|
|
IF p = NIL THEN RETURN InvalidType END;
|
|
|
RETURN p^.typ
|
|
RETURN p^.typ
|
|
@@ -1309,7 +1316,8 @@ PROCEDURE ParamIsVar (name: ARRAY OF CHAR; i: CARDINAL): BOOLEAN;
|
|
|
VAR node, p: SymPtr;
|
|
VAR node, p: SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindProc) THEN RETURN FALSE END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF node^.kind # KindProc THEN RETURN FALSE END;
|
|
|
p := NthParam(node, i);
|
|
p := NthParam(node, i);
|
|
|
IF p = NIL THEN RETURN FALSE END;
|
|
IF p = NIL THEN RETURN FALSE END;
|
|
|
RETURN p^.isVar
|
|
RETURN p^.isVar
|
|
@@ -1481,9 +1489,8 @@ PROCEDURE OpaqueBase (name: ARRAY OF CHAR): TypeIndex;
|
|
|
r : TypeIndex;
|
|
r : TypeIndex;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.kind # KindType) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF node^.kind # KindType THEN RETURN InvalidType END;
|
|
|
r := node^.typ;
|
|
r := node^.typ;
|
|
|
IF (r < 0) OR (r >= VAL(INTEGER, nTypes)) THEN
|
|
IF (r < 0) OR (r >= VAL(INTEGER, nTypes)) THEN
|
|
|
RETURN InvalidType
|
|
RETURN InvalidType
|
|
@@ -1551,7 +1558,8 @@ PROCEDURE QualProcUid (mod, name: ARRAY OF CHAR): CARDINAL;
|
|
|
VAR n : SymPtr;
|
|
VAR n : SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
n := QualNode(mod, name);
|
|
n := QualNode(mod, name);
|
|
|
- IF (n = NIL) OR (n^.kind # KindProc) THEN RETURN 0 END;
|
|
|
|
|
|
|
+ IF n = NIL THEN RETURN 0 END;
|
|
|
|
|
+ IF n^.kind # KindProc THEN RETURN 0 END;
|
|
|
RETURN n^.uid
|
|
RETURN n^.uid
|
|
|
END QualProcUid;
|
|
END QualProcUid;
|
|
|
|
|
|
|
@@ -1569,7 +1577,8 @@ PROCEDURE QualProcNPar (mod, name: ARRAY OF CHAR): CARDINAL;
|
|
|
c : CARDINAL;
|
|
c : CARDINAL;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
n := QualNode(mod, name);
|
|
n := QualNode(mod, name);
|
|
|
- IF (n = NIL) OR (n^.kind # KindProc) THEN RETURN 0 END;
|
|
|
|
|
|
|
+ IF n = NIL THEN RETURN 0 END;
|
|
|
|
|
+ IF n^.kind # KindProc THEN RETURN 0 END;
|
|
|
c := 0; p := n^.plink;
|
|
c := 0; p := n^.plink;
|
|
|
WHILE p # NIL DO INC(c); p := p^.plink END;
|
|
WHILE p # NIL DO INC(c); p := p^.plink END;
|
|
|
RETURN c
|
|
RETURN c
|
|
@@ -1580,9 +1589,8 @@ PROCEDURE QualParamType (mod, name: ARRAY OF CHAR; i: CARDINAL):
|
|
|
VAR n, p : SymPtr;
|
|
VAR n, p : SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
n := QualNode(mod, name);
|
|
n := QualNode(mod, name);
|
|
|
- IF (n = NIL) OR (n^.kind # KindProc) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF n = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF n^.kind # KindProc THEN RETURN InvalidType END;
|
|
|
p := QualNthParam(n, i);
|
|
p := QualNthParam(n, i);
|
|
|
IF p = NIL THEN RETURN InvalidType END;
|
|
IF p = NIL THEN RETURN InvalidType END;
|
|
|
RETURN p^.typ
|
|
RETURN p^.typ
|
|
@@ -1593,7 +1601,8 @@ PROCEDURE QualParamIsVar (mod, name: ARRAY OF CHAR; i: CARDINAL):
|
|
|
VAR n, p : SymPtr;
|
|
VAR n, p : SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
n := QualNode(mod, name);
|
|
n := QualNode(mod, name);
|
|
|
- IF (n = NIL) OR (n^.kind # KindProc) THEN RETURN FALSE END;
|
|
|
|
|
|
|
+ IF n = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF n^.kind # KindProc THEN RETURN FALSE END;
|
|
|
p := QualNthParam(n, i);
|
|
p := QualNthParam(n, i);
|
|
|
IF p = NIL THEN RETURN FALSE END;
|
|
IF p = NIL THEN RETURN FALSE END;
|
|
|
RETURN p^.isVar
|
|
RETURN p^.isVar
|
|
@@ -1603,9 +1612,8 @@ PROCEDURE QualProcRes (mod, name: ARRAY OF CHAR): TypeIndex;
|
|
|
VAR n : SymPtr;
|
|
VAR n : SymPtr;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
n := QualNode(mod, name);
|
|
n := QualNode(mod, name);
|
|
|
- IF (n = NIL) OR (n^.kind # KindProc) THEN
|
|
|
|
|
- RETURN InvalidType
|
|
|
|
|
- END;
|
|
|
|
|
|
|
+ IF n = NIL THEN RETURN InvalidType END;
|
|
|
|
|
+ IF n^.kind # KindProc THEN RETURN InvalidType END;
|
|
|
RETURN n^.rslt
|
|
RETURN n^.rslt
|
|
|
END QualProcRes;
|
|
END QualProcRes;
|
|
|
|
|
|
|
@@ -1705,7 +1713,8 @@ PROCEDURE GlobalRef (name: ARRAY OF CHAR; VAR g: Name): BOOLEAN;
|
|
|
i, j : CARDINAL;
|
|
i, j : CARDINAL;
|
|
|
BEGIN
|
|
BEGIN
|
|
|
node := Find(name);
|
|
node := Find(name);
|
|
|
- IF (node = NIL) OR (node^.mod[0] = CHR(0)) THEN RETURN FALSE END;
|
|
|
|
|
|
|
+ IF node = NIL THEN RETURN FALSE END;
|
|
|
|
|
+ IF node^.mod[0] = CHR(0) THEN RETURN FALSE END;
|
|
|
i := 0;
|
|
i := 0;
|
|
|
WHILE (i < HIGH(g)) AND (node^.mod[i] # CHR(0)) DO
|
|
WHILE (i < HIGH(g)) AND (node^.mod[i] # CHR(0)) DO
|
|
|
g[i] := node^.mod[i]; INC(i)
|
|
g[i] := node^.mod[i]; INC(i)
|