 frame::Access | Variables have to be stored. There are two kinds of places: saved in a register, or in the frame. Access abstracts both |
  frame::In_Frame | Local variable stored in the stack frame |
  frame::In_Register | Local variable stored in register |
 translate::Access | Wrapper around frame::Access |
 adjacency_list | |
  misc::graph< boost::bidirectionalS, ast::FunctionDec *, empty > | |
   misc::directed_graph< ast::FunctionDec * > | |
    callgraph::FundecGraph | |
  misc::graph< boost::bidirectionalS, const assem::Instr *, EdgeLabel > | |
   misc::directed_graph< const assem::Instr *, EdgeLabel > | |
    liveness::FlowGraph< EdgeLabel > | Flow graph |
  misc::graph< boost::bidirectionalS, const assem::Instr *, temp::temp_set_type > | |
   misc::directed_graph< const assem::Instr *, temp::temp_set_type > | |
    liveness::FlowGraph< temp::temp_set_type > | |
     liveness::Liveness | FlowGraph labeled with live Temp |
  misc::graph< boost::bidirectionalS, VertexLabel, EdgeLabel > | |
   misc::directed_graph< VertexLabel, EdgeLabel > | |
  misc::graph< boost::undirectedS, temp::Temp, empty > | |
   misc::undirected_graph< temp::Temp > | |
    liveness::InterferenceGraph | Provide liveness analysis |
  misc::graph< boost::undirectedS, VertexLabel, EdgeLabel > | |
   misc::undirected_graph< VertexLabel, EdgeLabel > | |
  misc::graph< Orientation, VertexLabel, EdgeLabel > | |
 target::Assembly | An assembly language comes with its syntax, its runtime library, and its layout of fragments |
  target::ia32::GasAssembly | Implements a GAS compatible assembly language |
  target::mips::SpimAssembly | Implements a SPIM compatible assembly language |
 ast::Ast | Ast |
  ast::Dec | Dec |
   ast::FunctionDec | FunctionDec |
    ast::MethodDec | Method declaration |
   ast::TypeDec | TypeDec |
   ast::VarDec | VarDec |
  ast::Decs | Declare Decs |
   ast::AnyDecs< D > | Abstract a "list of D-declarations" node |
  ast::DecsList | DecsList |
  ast::Exp | Exp |
   ast::CastExp | Cast the type of an expression to a given type |
   ast::ForExp | ForExp |
   ast::IntExp | IntExp |
   ast::NilExp | NilExp |
   ast::OpExp | OpExp |
   ast::WhileExp | WhileExp |
  ast::Field | Field |
  ast::FieldInit | FieldInit |
  ast::Ty | Ty |
   ast::ArrayTy | ArrayTy |
   ast::ClassTy | ClassTy |
   ast::NameTy | NameTy |
 type::Attribute | The base object for Class attributes |
 canon::BasicBlock | A location independent piece of tree::Tree code |
 canon::Canon | Object function to canonicalize tree::Tree code |
 ast::CastVar | Cast the type of an l-value to a given type |
 task::char_ptr_less | 'char*' lower-than functor |
 target::Codegen | Abstract a Code Generator |
 regalloc::Color | Just color the graph itself |
 canon::commute_p | Return false if a and b cannot be swapped, try to say true as much as possible |
 misc::constify_traits< T > | Return T constified |
 target::Cpu | A Cpu mainly describes target machine's registers |
  target::ia32::Cpu | Describes IA-32's registers |
  target::mips::Cpu | Describes MIPS's registers |
 target::CpuLimits | A set of restriction over a Cpu |
 misc::Deref | |
 misc::empty | |
 misc::error | Handle errors in the whole project |
 misc::escaped | |
 translate::Exp | Root for all the following classes |
  translate::Cx | Natural representation for conditionals |
  translate::Ex | Natural representation for expressions |
  translate::Ix | Specialization of Exp for branchings |
  translate::Nx | Natural representation for statements |
 type::Field | The base type for Record fields |
 misc::file_library | Manage search path |
 FlexLexer | |
  yyFlexLexer | |
 tree::Fragment | Piece of intermediate representation resource |
  tree::DataFrag | Fragment for a string data |
  tree::ProcFrag | Fragment for some code `data' |
 assem::Fragment | Abstract a fragment in assembly language |
  assem::DataFrag | Encapsulate a data fragment in assembly language |
  assem::ProcFrag | Encapsulate an instruction fragment in assembly language |
 tree::Fragments | Fragments: Fragment list |
 assem::Fragments | Abstract a fragment in assembly language |
 frame::Frame | Stack frame (or activation record) of a function |
 tree::GenVisitor< Const > | |
 assem::GenVisitor< Const > | |
  assem::Layout | Abstract a fragments's layout |
   target::ia32::GasLayout | Abstract GAS' fragments's layout |
   target::mips::SpimLayout | Abstract SPIM's fragments's layout |
  regalloc::RegisterAllocator | "Allocate-registers" functor |
 ast::GenVisitor< Const > | Root class of all Ast visitors |
  ast::GenDefaultVisitor< Const > | Just visit the whole Ast tree (except object-related nodes) |
   ast::PrettyPrinter | Visit an Ast and print the content of each node |
   astclone::Cloner | Duplicate an Ast |
    desugar::BoundCheckingVisitor | Add dynamic array bound checks while duplicating an AST |
    desugar::DesugarVisitor | Desugar some syntactic structures while duplicating an Ast |
    inlining::Inliner | Perform inline expansion of functions |
    inlining::Pruner | Prune useless function declarations within an AST |
    object::DesugarVisitor | Desugar some object structures while duplicating an Ast |
   bind::Binder | Binding identifier uses to their definitions |
    object::Binder | Computing bindings with support for objects |
    overload::Binder | Computing bindings with support for overloaded functions |
   bind::Renamer | Perform identifier renaming within an AST (in place) |
    object::Renamer | Perform identifier renaming within an AST (in place), with support for objects |
   callgraph::CallGraphVisitor | Computes the CallGraph |
   escapes::EscapesVisitor | Compute the escapes |
   translate::Translator | Translate an ast::Ast into High level tree::Tree code |
   type::TypeChecker | |
    object::TypeChecker | |
    overload::TypeChecker | |
  ast::GenNonObjectVisitor< Const > | |
   bind::Renamer | Perform identifier renaming within an AST (in place) |
   callgraph::CallGraphVisitor | Computes the CallGraph |
   escapes::EscapesVisitor | Compute the escapes |
   translate::Translator | Translate an ast::Ast into High level tree::Tree code |
   type::TypeChecker | |
  ast::GenObjectVisitor< Const > | |
   ast::PrettyPrinter | Visit an Ast and print the content of each node |
   bind::Binder | Binding identifier uses to their definitions |
 misc::id_traits< T > | Return T as is |
 temp::Identifier< Traits_ > | Root for Named or anonymous (fresh) identifiers |
 temp::IdentifierCompareVisitor< Cmp_ > | |
 assem::Instr | Root for abstract assembly instructions |
  assem::Comment | |
  assem::Label | |
  assem::Move | |
  assem::Oper | |
 assem::Instrs | |
 misc::iomanipulator | Defines the operator() for the classes get_type, set_type and swap_type |
  misc::xalloc< StoredType >::get_type | Handle the data to get from the xalloced place |
  misc::xalloc< StoredType >::set_type | Handle the data to put in the xalloced place |
  misc::xalloc< StoredType >::swap_type | Swap the data stored in the stream for a given one |
 canon::is_nop | Return false if tree has to be run. Try to say true as much as possible |
 tree::Iterator | |
 canon::jump_name_p | Is tree a JUMP(NAME())? This is a predicate |
 canon::label_to_p | Is tree a LABEL pointing to label? |
 temp::label_traits< misc::symbol > | |
 temp::label_traits< unsigned > | |
 translate::Level | Stack frames for languages with non local variables |
 misc::list< Ident_ > | |
 misc::map< T, N > | Wrapper around std::map providing syntactic sugar for any mapping of types manipulation |
 misc::map< T, T > | |
  misc::endo_map< T > | A renaming mapping defaulting to identity: Mapping a class with itself (endomorphism). Unless a value is already mapped onto another, map it to itself if nonstrict. This is a special case of std::map |
 misc::map< unsigned, ast::DecsList * > | |
 misc::map< unsigned, ast::Exp * > | |
 misc::map< unsigned, ast::NameTy * > | |
 misc::map< unsigned, ast::Var * > | |
 misc::map< unsigned, parse::Tweast * > | |
 parse::MetavarMap< Data > | A generic map of metavariables |
 parse::MetavarMap< ast::DecsList > | |
  parse::Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
 parse::MetavarMap< ast::Exp > | |
  parse::Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
 parse::MetavarMap< ast::NameTy > | |
  parse::Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
 parse::MetavarMap< ast::Var > | |
  parse::Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
 parse::MetavarMap< parse::Tweast > | |
  parse::Tweast | TWEAST stands for ``Text With Embedded Abstract Syntax Trees'' |
 overload::OverTable< T > | |
 misc::pair< Fst, Snd > | |
 misc::path | Helper for handling paths |
 misc::scoped_map< Key, Data > | |
 misc::select_iterator< T > | The iterator over a non const structure is plain iterator |
 misc::select_iterator< const T > | The iterator over a const structure is a const_iterator |
 misc::separator< C, S > | |
 misc::set< K, C, A > | The class misc::set is wrapper around std::set |
 shared_ptr | |
  misc::ref< T > | |
 ast::SimpleVar | SimpleVar |
 ast::SubscriptVar | SubscriptVar |
 target::Target | A Target is the union of a Cpu and a Codegen |
  target::ia32::Target | An IA-32 Target is the union of an IA-32 Cpu and an IA-32 Codegen |
  target::mips::Target | A MIPS Target is the union of a MIPS Cpu and a MIPS Codegen |
 task::Task | A function bound to a command line option |
  task::BooleanTask | A simple Task that sets a Boolean variable to true |
  task::DisjunctiveTask | |
  task::FunctionTask | A simple Task that invokes a callback function |
  task::IntTask | A simple Task that sets an Int variable |
  task::MultipleStringTask | A simple task that invokes callback function with string argument |
  task::StringTask | A simple Task that sets a String variable |
 task::TaskRegister | Register Tasks |
 temp::temp_traits< misc::symbol > | |
 temp::temp_traits< unsigned > | |
 parse::TigerParser | Conduct the scanner and the parser |
 misc::timer::time | |
 misc::timer::time_var | |
 misc::timer | Timing nested tasks |
 canon::Traces | Object function to linearize canonicalized tree::Tree code |
 tree::Tree | |
  tree::Exp | Node that has a value, contrary to Stm |
   tree::Binop | |
   tree::Call | |
   tree::Const | |
   tree::Eseq | |
   tree::Mem | Memory indirection |
   tree::Name | |
   tree::Temp | An Exp for a temporary (pseudo register) |
  tree::Stm | Node that has no value, contrary to Exp |
   tree::Cjump | Conditional branching |
   tree::Jump | |
   tree::Label | |
   tree::Move | Copy the content of the second operand to the first operand |
   tree::Seq | |
   tree::Sxp | An expression which value is discarded |
 type::Type | Abstract a type |
  type::Array | Array types |
  type::Class | Class types |
  type::Function | Function types |
   type::Method | Method types |
  type::Named | Named types |
  type::Nil | The builtin type of `nil' only (singleton class) |
  type::Record | Record types |
 misc::unique< T, C > | Define unique class |
 misc::unique< std::string > | |
  misc::symbol | Define symbol class |
 regalloc::UselessMove | Predicate (object function) checking whether an instruction is a useless MOVE according to the TEMPMAP, and deleting it |
 variant | |
  misc::generic_variant< T0_, > | |
  misc::variant< T0, T1 > | |
 misc::xalloc< StoredType > | Allocate slots in std::ostreams |