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.