The parser needs a mechanism to pass values of attributes from definitions in one snippet
to uses in another. We will adopt notation used by YACC for snippets and passing
values. Recall that the skeleton LR(1) parser stored two values on the stack
We can replace this with triples 〈value,symbol,state〉. On a reduction by A → β, the parser pops 3×|β| items from the stack rather than 2×|β|. It pushes value along with the symbol.