The src/assem Directory

Namespace assem, delivered for TC-7.

This directory contains the implementation of the Assem language: yet another intermediate representation that aims at encoding an assembly language, plus a few needed features so that register allocation can be performed afterward. Given in full.

Files: instr.* & move.* & oper.* & label.* & comment.* (src/assem/)

Implementation of the basic types of assembly instructions.

File: fragment.* (src/assem/)

Implementation of assem::Fragment, assem::ProcFrag, and assem::DataFrag. They are very similar to tree::Fragment: aggregate some information that must remain together, such as a frame::Frame and the instructions (a list of assem::Instr).

File: visitor.hh (src/assem/)

The root of assembler visitors.

File: layout.hh (src/assem/)

A pretty printing visitor for assem::Fragment.

File: libassem.* (src/assem/)

The interface of the module, and its implementation.