The function scan() generated by make_scan() takes a string or an open
file as input and produces a list of Token objects. The function
parse() generated by make_parse() takes a list of Token objects and
produces a syntax tree composed of Syntax and Token objects.

A Token instance has the following attributes:

code: unicode

The token type; usually coincides with the name of the production rule
which matched the token.

text: unicode

The token value.

Each Syntax instance has the following attributes:

code: unicode

The type of the syntax node; coincides with the name of the rule which
produced the node.