TC-2 Goals
Things to learn during this stage that you should remember:
- Strict Coding Style
Following a strict coding style is an essential part of collaborative work. Understanding the rationales behind rules is even better. See Coding Style.
- Memory Leak Trackers
Using tools such as Valgrind (see Valgrind, The Ultimate Memory Debugger) to track memory leaks.
- Using STL containers
The AST uses
std::vector
,misc::symbol
usesstd::set
.- Inheritance
The AST hierarchy is typical example of a proper use of inheritance.
- Inclusion polymorphism
An intense use of inclusion polymorphism for
accept
.- Use of virtual specifier
Dynamic and static bindings.
- misc::indent
misc::indent
extendsstd::ostream
with indentation features. Use it in thePrettyPrinter
to pretty-print. Understanding howmisc::indent
works will be checked later, see TC-3 Goals.- The Composite design pattern
The AST hierarchy is an implementation of the Composite pattern.
- The Visitor design pattern
The PrettyPrinter is an implementation of the Visitor pattern.