'Initializer.  Takes optional type, content, and name.
The type, if given must be a token type (< 256).  If not given,
this matches any *leaf* node; the content may still be required.
The content, if given, must be a string.
If a name is given, the matching node is stored in the results
dict under that key.'

def __init__(self, type=None, content=None, name=None):

    if (type is not None):
        assert (0 <= type < 256), type
    if (content is not None):
        assert isinstance(content, basestring), repr(content)
    self.type = type
    self.content = content
    self.name = name
