[...] in addition to an AST description, you need a set of rules defining how to build a language construct from a list of tokens. This ruleset is called a formal grammar, and it corresponds closely to the AST description.
Which data structure should we use for this ruleset?
From page 15:
Which data structure should we use for this ruleset?