/* Copyright (c) 1979 Regents of the University of California */
* pi - Pascal interpreter code translator
* Charles Haley, Bill Joy UCB
* Version 1.2 November 1978
* table and returns a pointer to
register struct udinfo
*udp
;
derror("%s is undefined", s
);
* Lookup1 is an internal lookup.
* It is not an error to call lookup1
* if the symbol is not defined. Also
* lookup1 will return FVARs while
* lookup never will, thus asgnop
* calls it when it thinks you are
* assigning to the function variable.
* We first check the field names
* of the currently active with
* statements (expensive since they
for (p
= withlist
; p
!= NIL
; p
= p
->nl_next
) {
if (reclook(q
, s
) != NIL
)
* Return the WITHPTR, lvalue understands.
* Symbol table is a 64 way hash
* on the low bits of the character
* pointer value. (Simple, but effective)
for (p
= disptab
[i
]; p
!= NIL
; p
= p
->nl_next
)
if (p
->symbol
== s
&& p
->class != FIELD
&& p
->class != BADUSE
) {
bn
= (p
->nl_block
& 037);
for (p
= disptab
[i
]; p
!= NIL
; p
= p
->nl_next
)
if (p
->symbol
== sp
&& (p
->nl_block
& 037) == 0)