PTHL Goals
Things to learn during this stage that you should remember:
Writing/debugging a scanner with Flex.
Using start conditions to handle non-regular issues within the scanner.
Using
yy::parser::make_{SYMBOL}
to build whole symbols (containing a token type, a location, and possibly a semantic value) and pass them to the parser.Writing/debugging a parser with Bison.
Resolving simple conflicts due to precedences and associativities thanks to directives (e.g.,
%left
etc.).Resolving hard conflicts with loop unrolling. The case of lvalue vs. array instantiation is of first importance.