gil writes:
> Does that imply that the value of
>      SYMBOL   EQU   *
> following such a field whose "length cannot be resolved"
> is similarly unresolvable by lookahead?

Lookahead does not resolve locations.  It can resolve the type
of a symbol or the length of a DC/DS statement or similar.

During the assembly pass, the assembler builds up sections
leaving gaps wherever the alignment padding required or the size
of an item is unknown at the time the relevant statement is
processed.  Each contiguous chunk is handled in a similar way to
a LOCTR section at the user level.  The location counter is
initially set to the offset within the current chunk.  The
difference between two symbols can therefore be resolved to an
absolute value during the assembly pass provided that they are
within the same contiguous chunk with no gap between them.

At the end of the assembly pass, there is a process called the
"interlude" which repeatedly scans the list of unresolved EQU
symbols and location counter gaps trying to resolve them,
adjusting location counters as chunks are merged into complete
sections.  If it can't resolve anything, it issues an error
message saying that a statement cannot be resolved then discards
it then tries again until all gaps are resolved or discarded.

Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to