Phase
|
Function
performed
|
Limiting
goal
|
1 "parse"
|
Parse C into a stream of tokens that
associate identifiers and constants with both their text position (line,col)
in the compilation unit and their semantic units (= UIDs) in gcc's parse
tree.
|
Still recognizable as a stream of C
code.
|
2 "token"
|
Fixup the token stream: sort by (line,col),
merge duplicate tokens in macro definitions, deal with generated identifiers
from macro calls. Split the token stream by file of origin and
convert compilation-unit line numbers back to input-file line numbers.
|
Still processing each compilation unit
separately.
|
3 "merge'
|
Combine compilation units. Merge
the token-streams for header files mentioned in several units.
|
Still generic C processing.
|
4 "sum"
|
Produce summary counts of various things,
that will be used by phase 5.
|
Still no meat.
|
5 "calc"
|
Calculate marginal costs to coupling/cohesion
for each identifier and constant.
|
Still no HTML.
|
6 "html"
|
Reread input files, annotate with marginal-cost
info.
|
(Done.)
|