Grades of expressions.
This is a tagged union type, introduced by fty::deftagsum.
See pprint-expression-algorithm for background.
The grade :top corresponds to the nonterminal expression; each of the other grades, :<grade>, corresponds to the nonterminal <grade>-expression.
We do not need a grade for binary-expression, which is just a synonym of boolean-or-expression.
We stop at primary expressions: we do not need grades for identifier, literal, etc.