TC-1 GoalsΒΆ
Things to learn during this stage that you should remember:
- Basic use of the GNU Build System
Autoconf, Automake. The initial set up of the project will best be done via
autoreconf -fvim, but once the project initiated (i.e.,configureand theMakefile.inexists) you should depend onmakeonly. The GNU Build System.- Integration into an existing framework
Putting your own code into the provided code base.
- Basic C++ classes
The classes
LocationandPositionprovide a good start to study foreign C++ classes. Your understanding of them will be controlled, including theoperators.- Writing and debugging a scanner and a parser
Learn to use Flex and Bison. Resolve simple conflicts due to precedences and associativities thanks to directives (e.g.,
%leftetc.) and hard conflicts with loop unrolling. For example, you will need to resolve the important lvalue and array instantiation conflict.- Location Tracking
Understand how to track the location and update it, within the scanner and the parser.
- Implementation of a few simple C++ classes
The code for
misc::symbolandmisc::uniqueis incomplete.- A first standard container:
std::set The implementation of the
misc::uniqueclass relies onstd::set.- The Flyweight design pattern
The
misc::uniqueclass is an implementation of the Flyweight design pattern.- Version Control System
Using the Git version control system is mandatory. Learn to use its powers carefully to handle working in group and merge from a different upstream remote.