def empty_adapter(_stream, matcher):
    """
    There is a fundamental mismatch between regular expressions and the 
    recursive descent parser on how empty matchers are handled.  The main 
    parser uses empty lists; regexp uses an empty string.  This is a hack
    that converts from one to the other.  I do not see a better solution.
    """
    results, stream_out = matcher()
    if results == ['']:
        results = []
    return results, stream_out
