Most of the code that turns the first pass (parsing)
into a second pass for code generation
is in gcc/gcc/f/std.c
.
It has external functions,
called mainly by siblings in gcc/gcc/f/stc.c
,
that record the information on statements and expressions
in the order they are seen in the source code.
These functions save that information.
It also has an external function that revisits that information,
calling the siblings in gcc/gcc/f/ste.c
,
which handles the actual code generation
(by generating GBEL code,
that is, by calling GBE routines
to represent and specify expressions, statements, and so on).