to parse the source program into the basic elements or tokens of the language.
to build a literal table and an identifier table
to build a uniform symbol table
None of these
to recognize the major constructs of the language and to call the appropriate action routines that will generate the intermediate form or matrix for these constructs.